Another Naive Person Interested in Developing an App

Discussion in 'Public Game Developers Forum' started by MaxiCalifornia, Mar 24, 2010.

  1. MaxiCalifornia

    MaxiCalifornia Active Member

    Jul 12, 2009
    32
    0
    0
    I'll start off by saying that I have absolutely no experience in programming (only experience I've had is making simple programs on the TI Calculators). However, programming has always sparked an interest in me, and I'm currently trying to learn C. After C, I plan on moving on to C++ and eventually Objective C. I was wondering if this was the right path to take for a person who is starting programming. I'll be taking Computer Science at the community college in my area over the summer, or I might go to a university over the summer instead. I've read that Objective C was used mainly with the iphone and the mac. I've also heard that Cocoa and OpenGL are related to Objective C, but I'm not sure what this relation is. So far, my goal is to create a game (whether it be simple or complex) to put on the apple store.

    I do realize that this is a pretty hard task that will probably take several years and lots of dedication and time, but I hope I'll manage somehow. My sister took a course on game design and creation at USC, so hopefully she'll point me out in the right direction. I have another sister who is currently enrolled at the Art Center College of Design at Pasadena and she agreed to provide the art assets if I go through with this goal. However, I do not plan on continuing this path as a career; this is just something I wish to do in my free time.

    So I've come here to ask, how did you begin and end where you are (in terms of developing apps for the app store)? Any tips or advice would be greatly appreciated as well. Thanks!:)
     
  2. Flickitty

    Flickitty Well-Known Member

    Oct 14, 2009
    761
    1
    0
    iPhone Dev
    Learning C is a little difficult, but in my opinion I think C --> C++ --> Objective-C is a good approach. You will definitely have a solid foundation and understanding with a wide array of options available. I understand that it is possible to start with just C++ or Objective-C without messing with the others.

    I think the fact that you have two family members that can help you and provide assets is great.

    I've been all over the board with programming. I learned BASIC back in the 80's and moved on to Visual Basic in the mid-90s. In the latter 90's, I learned ASM, C and C++. I have been using Scripting languages for the remainder of the decade. Mostly PHP (websites), ActionsScript (Flash games) and Lua (mobile games, including iPhone).

    I don't remember much about C++ anymore, so diving into Objective-C is kind of a pain and it feels like starting over.

    Cocoa and OpenGL are just libraries. Cocoa is specific to Apple products, and OpenGL is used nearly everywhere now- Windows, Linux, Windows Mobile, iPhone, OSX...
     
  3. MaxiCalifornia

    MaxiCalifornia Active Member

    Jul 12, 2009
    32
    0
    0
    Thanks for the reply :D. I just talked to my sister about this, and she recommended me to just go with C#. From an iphone development standpoint, however, would learning just Objective C be enough since Cocoa and OpenGL use it? Between those two, I think I'll stick with OpenGL if I manage to get that far since it's so versatile as you stated.
     
  4. Flickitty

    Flickitty Well-Known Member

    Oct 14, 2009
    761
    1
    0
    iPhone Dev
    I don't know anything about C#. I know that C/C++ can easily be used to create iPhone apps, with minimal usage of Objective-C.

    Flickitty was 99% C/C++.

    TBH, I'm not even fully aware of what Cocoa provides. I've only just started playing with XCode and Objective-C

    OpenGL strictly handles the graphical stuff, and the similar OpenAL handles the audio stuff. There are various libraries that can be linked and used in your app. Box2D and Chipmunk are two physics libraries that are commonly used in iPhone development. I'm only telling you this, because you don't need to program every little aspect of an application- the libraries are provided to make this easier, consistent and stable.
     
  5. lazypeon

    lazypeon Well-Known Member
    Patreon Bronze

    I continue to recommend Cocos2D for iPhone game development http://code.google.com/p/cocos2d-iphone/

    You don't need to know anything about Cocoa, or OpenGL. You just need to know a little Obj-C which, besides a few weird syntax things, is basically the same as C or any other languages.

    I really like C# as a language, since it's like Java, but unless you go a specialized route and use an engine like Unity, I'm not sure how you could go from C# -> iPhone app. One of the big differences between C#/Java and C/Obj-C is memory management.

    Anyway, give Cocos a try. I have 3 games on the App Store, and I haven't really had to touch but a few Cocoa classes, and no OpenGL.
     
  6. NickFalk

    NickFalk Well-Known Member

    I think your plan is a sound one of your main goal is to learn how to become a programmer. I do believe however that if your short term goal is to become an iPhone developer I would skip C++ for now and go straight from C to Objective-C. Objective-C and C++ are kind of cousins as they are both object-oriented offspring of good old procedural C. Meaning: They are about equal when it comes to what they can do but they implement stuff in different ways. When you have a good grasp of one of them it shouldn't be too hard getting up to scratch on the other one as well.

    The advantage of Objective-C when it comes to iPhone development is the Cocoa framework. This is what more or less every productivity app on the iPhone uses as well as a few games. The beauty of Cocoa is that you get access to a lot of the iPhone specific iPhone stuff for "free" (handling inputs, keyboards, windows, images etc.). C# makes very little sense as it is (was?) geared towards Microsoft's .NET platform.
     
  7. NickFalk

    NickFalk Well-Known Member

    News to me, so I stand corrected. :) I think this is probably more interesting to people who already know C# and want to get into iPhone development than someone starting out fresh though.
     
  8. MaxiCalifornia

    MaxiCalifornia Active Member

    Jul 12, 2009
    32
    0
    0
    So starting off with C seems like a solid first step. Next up I can choose among 3 languages, but going straight to Objective C will allow me to begin development as soon as possible.

    After that, it seems that Cocoa is the ideal library to use, with Chipmunks being my physics engine since apparently it incorporates the best of the best, including assets from Box2D as well as several others. OpenGL and OpenAL deal with mainly the artistic aspect and appear to be part of Cocoa (as said in here:http://developer.apple.com/technologies/mac/cocoa.html). Monotouch seems interesting, but I think I'll wait to see what apps/games have been made from it.

    From looking at the videos of Chipmunk and Box2D in work, I can see that they are mainly used as 2D (obviously) sidescrollers. I was wondering, would making a 2D sidescroller be easier than making a top-to-down style game? Would the top-to-down game even require a complex physics engine? I'm thinking of something like NetHack which, for those who don't know, is a top to down rpg game with literally no physics, and very simple graphics (here's the wiki for those who don't know: http://en.wikipedia.org/wiki/NetHack).
     
  9. kohjingyu

    kohjingyu Well-Known Member

    Mar 20, 2009
    1,770
    0
    0
    Student/Developer
    Singapore
    In my opinion, a top down game would be easier.
     
  10. Uptown Arts

    Uptown Arts Well-Known Member

    I'm going to go a bit against the grain here. If you're in it for the long haul, and you're going to go to college for it, I'd go with Java as a starter language. That would make Android your first deployment target.

    Java is likely to be the language used in your college classes (but check your particular college to be sure). Java is a great teaching language because it has direct support for all of the building blocks of object-oriented programming, which is the basis of modern programming. There's also a whole lot of messiness and syntactic candy in c and c++ that's not there in Java, which makes them more confusing for starting out with. Java programs will most likely run a little slower than C or C++ programs, but Android is a level playing field where everybody uses Java, and it won't be a disadvantage there. Once you know any language and platform well, the others are much easier to learn; they all accomplish the same things in pretty much the same ways.

    I don't think it'll be years before you can do something viable. If you have an aptitude for it, it'll probably take a few months. If you don't have an aptitude for it, you'll never get there. You'll know yourself pretty soon.

    FWIW, I've been a pro programmer since the mid-80's. My earliest programming was in BASIC, then Assembler, C, and C++. I recently picked up an MS, so I have some idea what's been going on in the schools.
     
  11. bcarbone

    bcarbone Well-Known Member

    Mar 19, 2010
    221
    0
    0
    iPhone Developer
    Estero, FL

    I started out learning BASIC on a microcontroller, and then I moved on to MS Visual Basic, then C# (Microsoft XNA). A few months ago I got interested in iPhone development and picked up a few books on Objective-C and iPhone Development. Only took a few weeks to get used to Objective-C. And for iPhone games, I'd definitely have to recommend Cocos2d.

    Brandon
     
  12. originalcopy

    originalcopy Well-Known Member

    Sep 10, 2009
    369
    0
    0
  13. Flickitty

    Flickitty Well-Known Member

    Oct 14, 2009
    761
    1
    0
    iPhone Dev
    I didn't realize GLBasic is still being used. I used it somewhere around 1990, and all my previous BASIC code worked.

    GOTO is not your friend.
     
  14. originalcopy

    originalcopy Well-Known Member

    Sep 10, 2009
    369
    0
    0
    Yes, but this is a special type of basic. This one is not related to the old ones, and it can apparently generate code on many different platforms, including the iphone. I find its syntax much simpler and easier to understand than the ugly as f*** difficult c/c++/java syntax. Nonetheless, i read somewhere that basic isnt really easier in its syntax, and that pascal is actually the easier development framework. Of course that's mostly said by pascal fans. :) And I dont mean the old pascal either, i meant modern pascals like freepascal. http://www.freepascal.org/ That one can generate code for the iphone too.
     
  15. Steve Oldmeadow

    May 22, 2009
    23
    0
    0
    Not true, you can do native development on Android. I'll bet in a years time all the Android games that are blowing people away are written in C or C++ and using OpenGL ES 2.0.
     
  16. originalcopy

    originalcopy Well-Known Member

    Sep 10, 2009
    369
    0
    0
    Is it possible to make Android games with C/C++?
     
  17. Flickitty

    Flickitty Well-Known Member

    Oct 14, 2009
    761
    1
    0
    iPhone Dev
    Yes it is possible, although I am not sure whether it requires a lot of trickery or whether it is well documented. I haven't really looked into it, but the whole java thing just turns me off.
     
  18. Uptown Arts

    Uptown Arts Well-Known Member

    #19 Uptown Arts, Mar 27, 2010
    Last edited: Mar 27, 2010
    Unless there's something new, you can't write an Android program in C/C++. The NDK lets you call procedures written in C++ from an Android program, but those procedures can't make calls into the Android framework.

    After a couple of days to get acclimated, I really don't care if I'm writing in Java or C++. Objective-C is more irritating than either, but it's still minor. Anyway, the point was what to use if you don't know any of it and you've decided to go to school to learn it. Once you know what you're doing, use whatever works.
     
  19. originalcopy

    originalcopy Well-Known Member

    Sep 10, 2009
    369
    0
    0
    Yep me too. What exactly you dont like about java? I didnt like all that syntax crap you were required to type for the simplest of orders.
     

Share This Page