Advice in Developing

Discussion in 'Public Game Developers Forum' started by yankjenets, Mar 2, 2010.

  1. yankjenets

    yankjenets Well-Known Member

    Dec 12, 2008
    142
    0
    0
    Hey,
    I am currently a high-school senior, and now that it is the second semester, I've been trying to find things to do with all of my spare time. I will be majoring in CS next year at CMU, so I figured, hey, why not learn something from my experience and try to develop a simple iPhone game. My current programming experience includes being fairly advanced in Java, and "knowing" C (this means I know the syntax and such, but I am not very good with the memory-management aspect).

    So, my question is this. I've been looking over Objective-C and the iPhone SDK over the past few days and it is more complex than I thought. Do you guys think that, spending 1-2 hours a day from now till the end of June, I could become proficient enough to make a simple game? By simple, I mean something like an iCopter clone. Also, having absolutely no artistic skill, how would you suggest I get my artwork/music? Is there some sort of open library where I could freely take some sprites/backgrounds, or would I have to make some crappy images myself?
    Thanks in advance.
     
  2. swiftest

    swiftest Well-Known Member

    May 18, 2009
    95
    0
    0
    I have a C/C++/Java background, and I didn't want to have to learn yet another language like Objective-C. Also, that's pretty low-level development compared to integrated development platforms like Shiva and Unity. I am more interested in quick prototyping using script-like conveniences. We decided to write our game using Unity 3D where you can code in Javascript or C#. And the great thing about Unity is you can easily port your game between iPhone, Mac, Windows, and web. And I think you will be able to port to Xbox 360 at some point in the future. You can get Unity basic for free: unity3d.com to see if that style of development works for you. Then spring for the basic iPhone upgrade which lets you develop for the iPhone for around $500.
     
  3. patrickC

    patrickC Active Member

    Aug 6, 2009
    41
    0
    0
    Indie Developer
    Amsterdam, Netherlands
    I don't entirely agree with swiftest's point of view.
    Being able to quickly prototype is a good thing of course, but I personally dislike having to "learn" a scripting language, all the surrounding environment and along with it all the limitations and frustrations that are bound to come with packages like unity, torque, sio2, etc...

    I tend to stay away from pre-made environments such as Unity, which yes allow for a quick prototype development but in my experience become a huge pain when you want to polish the game, add that extra feature that isn't already in the engine, etc...

    If already you know Java, which means you're familiar with OOP, and you also know some C (syntax wise), it would only take you a few weeks to switch over to Obj-C.

    If you final aim is to develop games, I would highly suggest you pick up the cocos2d API.
    No scripting , no closed sources, no bullsh*t basically.
    A solid framework with loads of features, easy to build new "layers" on top of it and most of all easy to understand and learn.

    Of course that's just my two cents, but having tried most of the APIs out there to aid in game development for the iPhone (Unity, SIO2, Torque, cocos2d) I would never ever pick anything else other than cocos2d.
    Unless of course you're wanting to do a full 3d game, in which case good luck to you.

    So, a big vote in favor of cocos2d and a little whinge when it comes to pre-built scriptable engines like Unity and Torque.
    Of which by the way I hear the "multi platform" capabilities are more of a limitation than a feature, and as always I strongly think that being able to work "under the hood" will make the ultimate difference.
    Scripting with pre-built engines and templates makes things work fast, but really you have no idea what you're doing and if something isn't already "done for you" you'll start crying and cursing.

    Then again, just my two cents.
    Good luck :)
     
  4. yankjenets

    yankjenets Well-Known Member

    Dec 12, 2008
    142
    0
    0
    Sorry swiftest, but I am going to have to side with patrickC here. I definitely do not want to go the Unity route, as it almost seems cheating and also not really what I had in mind anyway (in terms of programming, etc.). Cocos2d looks great though, thanks so much! It also seems to have a great community where I can ask questions and get quick answers if I'm stuck and having some problems. I'll look at it more thoroughly today to make sure its what I'm looking for.
    Thanks!
     
  5. lazypeon

    lazypeon Well-Known Member
    Patreon Bronze

    #5 lazypeon, Mar 2, 2010
    Last edited: Mar 2, 2010
    I don't think of it as cheating -- no one cares how much time you spent implementing XYZ feature, instead of using someone else's pre-built one. At the end of the day, what matters is how many copies you sell. If there is a shortcut to get your game to market, you should take it. No sense reinventing the wheel.

    That said, Cocos2D is IMO the easiest way to get started with 2D iPhone development. You don't have to know OpenGL for the most part -- it hides all that from you. I have a solid programming background, and went from never having used a Mac to having a game on the app store in 3 months. I definitely credit Cocos for being able to do this.

    Also yes -- the Cocos community is great. The lead developer (riq on the forums) is really helpful, and the project is very frequently updated/maintained. If you do make money on the app store, I highly encourage you to donate some of the sales to riq, for doing such an awesome job with the project.
     
  6. yankjenets

    yankjenets Well-Known Member

    Dec 12, 2008
    142
    0
    0
    Sorry, I should have clarified. I don't feel that it is cheating in making a game, but it is "cheating myself" and my intended purpose with this project. I am not trying to make an amazing game that sells a ton of copies (I will make the game free anyways), I just want to get a good programming experience from making this game and I feel using Unity is not the way to go for this.
     
  7. swiftest

    swiftest Well-Known Member

    May 18, 2009
    95
    0
    0
    #7 swiftest, Mar 2, 2010
    Last edited: Mar 2, 2010
    If I were around college age and only wanted to pursue game development as a hobby, then I'd probably feel the same way. But the app store is a ferocious competitive beast and every little edge helps. Also, most of the major studios on PC and consoles don't roll their own engine, but opt to license Unreal, Quake/Doom, CryENGINE and the like. I think Unity is the best of breed engine for iPhone development at the moment with an excellent support community. Will be interesting to see the Unreal engine for iPhone.

    Also, I think learning Objective-C gives you a limited audience--only for Mac or iPhone/iPad products. You won't be able to translate that skillset directly to the corporate world or other platforms. It's a lot of time to invest unless you're sure of its utility to you.

    I agree that you won't go wrong with Cocos2D for 2D games. Free ain't a bad price when you've got a great open source community around with Cocos2D. Unity can do 2D with some tricks, but that's not its strength. Zombieville was done with Unity, for example.

    Unity's javascript and C# are compiled down to bytecode. While it's not as fast as pure Objective-C, it's pretty close in my estimation. Also, learning Javascript or C# is great from a programming perspective since those languages are applicable in the "real" world for web and application development. I'm more interested in higher level concepts like AI and game mechanics, and having to write the graphics, sound, and animation engine is just too much of a time sink and fraught with peril/bugs.

    And being able to build it once and easily porting to a multitude of platforms using Unity is amazing. We're a two-man team at the moment and having this ability will come in handy if we can develop a good title.
     
  8. tmsquasher

    tmsquasher Well-Known Member

    Hi yankjenets,

    A second-semester senior myself :)D), I can totally relate to your post here. I more or less just went through (and am still going through) the same process you're looking at.

    I learned Java over the last summer, pretty much with the goal of transitioning from that into Objective-C to write iPhone apps.

    As was mentioned earlier in this thread, Obj-C will take a few weeks to learn and get used to the basics (the syntax is a little funky at first), but it's really not that hard at all. Like you mentioned, the memory-management is a significant difference from Java, but with a little practice you learn to take care of it.

    I thank dear God that I found Cocos2d quickly as I began to experiment with the iPhone. It is simply amazing, especially with the prospect of learning all the insanity that comes with OpenGL... I have yet to go there! So definitely go with Cocos2d -- it'll save you TONS of brain-damage.

    It's been a blast, and it's really exciting when you finally get an app up and running on your own device. I've currently got one game on the App Store right now and another one coming very soon. That was few months of work, but, like you, I've been fitting it around a busy school/sports/whoknowswhatelse schedule. It's all doable if you're motivated.

    I'd highly recommend going for it and trying to get something up on the store: it's a great experience, you'll learn a lot, and -- who knows? -- you just may get lucky. (just don't bet the ranch on it!)

    Best of luck to you -- and hooray for 2nd Semester!

    Tom
     
  9. Cocos2d

    I came from languages like Java and Ruby and found Objective-C to be easy enough to learn. The syntax is as people say - a bit strange at first - but you get the hang of it pretty quickly. I went from almost no experience with Objective-C to having a game in the App Store (link in my signature) in just over two months.

    I'm also loving Cocos2d for iPhone. Check out this tutorial for a quick run down.

    I didn't find it until I was mostly finished my other game but I've since started using it to build my next game ;)
     
  10. yankjenets

    yankjenets Well-Known Member

    Dec 12, 2008
    142
    0
    0
    Hey guys,
    I just skimmed over an e-book on Obj-C and after wrapping my brain around some of the crazy syntax its easy enough. Thanks for tutorial link, nathanhoad, it saved me about 100 lines with that super easy collision detection method >.<

    Tmsquasher, man that game looks amazing! May I ask how you got such awesome graphics, as I assume you are only a programmer? I know almost nothing about art and I'm having trouble with making it look pretty :(
    P.S I find it hilarious that you are a two man team working on iPhone games and...selling lasers.

    Thanks.
     
  11. tmsquasher

    tmsquasher Well-Known Member

    Haha, thanks -- glad to hear you like the graphics! I spent a fair amount of time on those. I'm a decent artist when it comes to traditional pen/pencil and paper, but I'm just now getting the hang of making things to come to life digitally.

    Art is tricky: it requires a LOT of practice, experimentation, and patience. I am by no means an expert, but I'm starting to make progress -- an important thing as graphics are essential to getting noticed on the App Store!

    If you're willing to put in the effort to do the art yourself, my advice is to find graphics in other games that you really like, then try and copy them with your own style. Bear in mind, though, it's A LOT more work to do both the art and the programming. If you've got a friend with some artistic ability, definitely see if they're interested. And really, who wouldn't be interested in the chance to help put an iPhone game on the App Store?


    And, yes, haha... our "team." My good friend from school is the laser guru, and I develop the apps. It doesn't make much sense, but we like it anyway. At least Diaballic has lasers in it... (my friend's idea, of course!) :p
     

Share This Page