Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

EmptyPockets

macrumors regular
Original poster
Jan 15, 2008
129
0
It would be really inspiring to hear a success story of someone starting from scratch (i.e no programming knowledge, never did anything like this before) who successfully released an app or game.

Seems like a lot of people are trying to do this (me included) but who knows if it ever works out. Maybe we can discuss pit falls of why it didn't work out.

For people with existing programming knowledge, what would you suggest we do if we don't have the time or money to take a class.

I'm starting with watching tutorial videos and reading the book "Programming in Objective C" - it assumes no knowledge
 

robbieduncan

Moderator emeritus
Jul 24, 2002
25,611
893
Harrogate
From the point of view of an experienced programmer:

  1. Be prepared to get frustrated and annoyed. You will
  2. Be prepared to start at the very beginning: you will not be able to write a 3D game as your first app. You will probably struggle to write a simple to-do list
  3. Learn to use the documentation. It's excellent. Probably at least 80% of the newbie questions on here can be answered using the documentation directly.
  4. Be prepared to give up: many people simply can't program. In general if you are not good at maths, logical problem solving and breaking problems down you will not get anywhere. It's not a matter of effort.
  5. Be prepared for things to fail. Often. You need to be able to try things, understand why they fail and work around the issues
  6. Understand that this will be a long road. It may be many months (or even years0 before you get close to writing the app you currently have in mind
 

fenrus110

macrumors regular
Mar 24, 2008
142
0
yes, totally be prepared to be frustrated and fail.

people go to university to learn programming and many of them drop out or change majors.

And it is true that sometimes it isn't about effort. Some people just can't do it and don't get it.
 

wizard

macrumors 68040
May 29, 2003
3,854
571
From somebody half way in the middle

A little back ground. Most of my formal training in software was more than twenty years ago and that was not a major nor even realistically a minor. Just a few quarters of morula 2, 6502 & Vax assembly. Remember any of those.

In any event in the first response above, the first item to be numbered was to be prepared to be frustrated. I bring this up because it was very frustrating for me especially with the first few betas. Even now it can be very frustrating due to issues with the SDK, NDA ( gone), XCODE, documentation and whatever else. The iPhone SDK is certainly not Apples best effort. So frustration and the feeling of being stranded on an island with a half working computer is about right.

Frankly if you have not had any formal training in programming nor taken a personal interest to date in programming then you really should find a practical class. It is the only way in my estimation to come up to speed quickly and more importantly with guidance to properly develop your skills. You can succeed the DIY way too, don't get me wrong, but it will take more time in my estimation. A little online time or a smart friend might help but that depends on your ability to communicate your issues in a forum clearly. If you read through the various forums you should see such examples of poor communications.

As a side note poor communications doesn't mean you can't program either. There are all sorts of reasons for poor communications one being differences in languages. The problem here is that Objective C is a language also, thus you need to be able to communicate with it and about it. Then there is computer science concepts in general. Can you adapt and learn quickly in an online environment of short and quick messages


Another issue would be to much complexity for a beginner. Generally CS students start out writing small program to master concepts. With iPhone even a hello world app requires a bit more effort. More so what is the value of a iPhone hello world app if it does teach you anything at a level you can initially digest. Your succes will depend on you ability to grasp Abstract ideas quickly. If you can do so great but it could take months for somebody with no programming background at all. Again DIY education here is possible, it just that you can't expect to be producing good ObjC code in a months time much less understand all the libraries. Speaking of which, I've hardly touched a number of features in the SDK, which brings us back to complexity. Limit the complexity of your first couple of apps to limit you exposure to new APIs and to allow your self to understand what you are working with well.

Running into Apple bugs is a pain. Online resources might help you sort this out. In atleast one case this happened to me and was extremely frustrating. This was before the NDA listing but fortunately I was able to locate online verification. A lot of wasted time that was.

Frankly being stuck with just ObjC and web apps is frustrating. I would love to see Apple support Python. The problem is ObjC is simply over kill many simple apps that could be really useful on iPhone. I guess that doesn't fit with Apples objectives but it is frustrating none the less.

In any event nothing is lost in trying. Hit a chord with your app and you might not have to worry about that formal education. I don't mean to sound negative above but I believe you need to go into this with open eyes. The right concept can lead to a lot of success, but even a good concept built on buggy software will die quickly.


Best of luck

Dave
 

EmptyPockets

macrumors regular
Original poster
Jan 15, 2008
129
0
Let me just first thank everyone for their thoughtful comments and considerate replies. As a beginner programmer, the help provided by the members of this forum is invaluable.

It looks like I have a tough journey ahead of me but the drive is there and hopefully it will last the year (estimated) that it will take me to get the game I have in mind developed. (and beyond!)

To consolidate some of my previous posts, here is my basic plan so far.

1. Read the pdf from Cocoalab called 'Become an Xcoder':
http://www.cocoalab.com/?q=becomeanxcoder (recommended by spinyanteater) - do practice exercises

2. Read Programming in Objective-C by Stephen G. Kochan - do practice exercises

3. Try to develop some free basic apps that seem to be missing (calculator style apps)

4. Start learning the necessary skills required to develop a 2D game. Here is where I need help, it looks like I will need to learn Quarts> Is that correct?

5. ?

6. Profit

Thanks again,

Mr. Pockets

*Side Note: I have taken some programming classes in college but never really got into it. I never really understood the concepts involved in writing a program and eventually switched majors. After just reading the CocoaLab PDF I have a much deeper understanding of those very same concepts. I suppose now that I really care my brain has kicked into overdrive. :)
 

robbieduncan

Moderator emeritus
Jul 24, 2002
25,611
893
Harrogate
4. Start learning the necessary skills required to develop a 2D game. Here is where I need help, it looks like I will need to learn Quarts> Is that correct?

On the iPhone you are probably going to want OpenGL ES, even for a 2D game. It is possible that you can get by with Quartz, but performance will be much better in OpenGL.

The choice of API will largely come down to the sort of game. If you are developing a turn-based kind of game with graphics that mostly don't move animate Quartz may be OK, otherwise it's OpenGL...
 

EmptyPockets

macrumors regular
Original poster
Jan 15, 2008
129
0
On the iPhone you are probably going to want OpenGL ES, even for a 2D game. It is possible that you can get by with Quartz, but performance will be much better in OpenGL.

The choice of API will largely come down to the sort of game. If you are developing a turn-based kind of game with graphics that mostly don't move animate Quartz may be OK, otherwise it's OpenGL...

So looks like its going to be OpenGL. I have resources on objective C and generally working in the Cocoa environment but I don't have anything as a grounding in OpenGL. Can anyone post up some resources? Books? is this a language?

The skills I need to make a graphically motion driven game:
- Objective C
- OpenGL ES
- Am I missing anything? (I know I am...)

Thanks
 

robbieduncan

Moderator emeritus
Jul 24, 2002
25,611
893
Harrogate
I'd forget about games/OpenGL ES right now.

Worry about getting a basic grounding in programming. Understand the basics of algorithms in the abstract. The learn something about object-oriented programming. Once you know that Objective-C should make sense. Ensure you fully understand the Cocoa memory management rules. Learn the basic Cocoa patterns: delegation is very important.

Once you've got that you can start looking at getting basic iPhone apps running. Once you can get code up and running on the iPhone you can start thinking about learning OpenGL ES (which is a C-based API, so make sure you learn some C as well as Objective-C).
 

EmptyPockets

macrumors regular
Original poster
Jan 15, 2008
129
0
I'd forget about games/OpenGL ES right now.

Worry about getting a basic grounding in programming. Understand the basics of algorithms in the abstract. The learn something about object-oriented programming. Once you know that Objective-C should make sense. Ensure you fully understand the Cocoa memory management rules. Learn the basic Cocoa patterns: delegation is very important.

Once you've got that you can start looking at getting basic iPhone apps running. Once you can get code up and running on the iPhone you can start thinking about learning OpenGL ES (which is a C-based API, so make sure you learn some C as well as Objective-C).

Sounds like a plan. Thanks again for your help.

How is your app doing in the store? Any upcoming apps?
 

Nonnus3G

macrumors member
Jul 9, 2008
52
0
1. do you really think calculators are missing in the app store ?
2. apple docs suck big time, as their dev support, bug report is actually ok
3. start with simple stuff, really...

be carefull regarding developing games :
unless it is some pretty simple stuff
most graphically advanced games are hardly ever done by single developers
usually teams of ppl with different areas of expertise

i have been programing for over 20 years and i must say serious game dev is actually sort of a black magic to me ;)
 

EmptyPockets

macrumors regular
Original poster
Jan 15, 2008
129
0
1. do you really think calculators are missing in the app store ?
I think there is one specific type of calculator missing and its more of a lets get something completed and offer it for free kind of thing
2. apple docs suck big time, as their dev support, bug report is actually ok
3. start with simple stuff, really...

be carefull regarding developing games :
unless it is some pretty simple stuff
most graphically advanced games are hardly ever done by single developers
usually teams of ppl with different areas of expertise

i have been programing for over 20 years and i must say serious game dev is actually sort of a black magic to me ;)
The game is relatively simple and 2D so it might be possible (Honestly, I have no idea and will reconsider this statement in a few months) . I know other developers that would probably join the project but I don't expect them to work on it if I don't know how to do anything and need to be baby sat

See above comments
 

robbieduncan

Moderator emeritus
Jul 24, 2002
25,611
893
Harrogate
I'd say don't offer anything for free. Once you get users used to the price of "free" that's all they'll ever accept. Start as you mean to go on: charge something, even if it's the minimum.
 

liptonlover

macrumors 6502a
Mar 13, 2008
989
0
I didn't start programming because of the iphone, I started when I was 9 which was 6 years ago now. I haven't had any formal courses or anything, I started learning BASIC from my dad and then a little over a year ago switched to mac, then to iphone when the sdk came out. So pretty much since the iphone came out I've been working seriously on programming. Anyways, longish story short, I'm working on an app that I will put on the app store. It's not 3D, no stunning animations/graphics. Just coding and music by me, graphics by my brother. But I'm pretty sure I have the skill to finish the app, it's just a matter of working now. It really depends on if you have the knack for programming, and how willing you are to work on it. Like I said, I started pretty early and had programming basics out of the way when I moved to iphone. But it was still a lot of work.
 

EmptyPockets

macrumors regular
Original poster
Jan 15, 2008
129
0
Looks like a game has never been successfully developed without previous programming experience. That is both inspiring and terrifying (or the post has only been up for a day)

I "wrote" my first program yesterday in Xcode using the C example from the previously posted "learning Cocoa" link. Input length, width, and radius and you can get the area of a square or circle. Feels good but I realize it gets insanely more difficult.
 

Niiro13

macrumors 68000
Feb 12, 2008
1,719
0
Illinois
Looks like a game has never been successfully developed without previous programming experience. That is both inspiring and terrifying (or the post has only been up for a day)

I "wrote" my first program yesterday in Xcode using the C example from the previously posted "learning Cocoa" link. Input length, width, and radius and you can get the area of a square or circle. Feels good but I realize it gets insanely more difficult.

Depends. Before the iPhone SDK, the most I've ever learned in programming is two dimensional arrays in Java. And even then, for a lot of previous code, I had to copy and paste (couldn't remember the code...but understood it).

Now, I've got applications that are ready for sale (apparently you can't release before the availability date :/) and development that range from simple applications to a bit more complex with writing and reading (which I've never learned before the SDK). As for game, I still am not up to OpenGL yet (as not only is there minimal documentation for it...at least Apple-wise, the OpenGL sample code is too complex (apparently, Apple likes sample code that includes so many complex stuff...until you learn it from a simpler tutorial somewhere else and it's super easy)...but I have managed to finish games with Quartz.
 

EmptyPockets

macrumors regular
Original poster
Jan 15, 2008
129
0
Depends. Before the iPhone SDK, the most I've ever learned in programming is two dimensional arrays in Java. And even then, for a lot of previous code, I had to copy and paste (couldn't remember the code...but understood it).

Now, I've got applications that are ready for sale (apparently you can't release before the availability date :/) and development that range from simple applications to a bit more complex with writing and reading (which I've never learned before the SDK). As for game, I still am not up to OpenGL yet (as not only is there minimal documentation for it...at least Apple-wise, the OpenGL sample code is too complex (apparently, Apple likes sample code that includes so many complex stuff...until you learn it from a simpler tutorial somewhere else and it's super easy)...but I have managed to finish games with Quartz.

Thats great and very inspiring! You had a touch more experiance than I do to start but from what I understand you had to learn from scratch.

What are the names of the apps? Lets get you some free exposure

Do you have any links to the "super easy" tutorials?
 

MikeBrWade

macrumors member
Oct 21, 2008
58
0
Oh anyone can program it is all in your state of mind. I have been doing it for a while and i have seen people who said they could "never do it" put out some nice software.

Granted starting with an true object oriented language with signal driven function calls, and a environment that will make you want to beat your head against the wall is probably a bad place to start. Ha, and don't even get me started on the whole "cert" process.

Look at it this way, if you have a passion for it you will stick with it and you will either be able to do it or not. Either way you will learn a lot in the process. I say go for it ;-)
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.