Game development in iOS and xcode

Discussion in 'iOS Programming' started by Pootan, Oct 28, 2014.

  1. Pootan macrumors member

    Pootan

    Joined:
    Oct 28, 2014
    #1
    Hi, I'm a long time lurker and I wanted to get your advice on starting game development.

    I am a software engineer in c# and .net (doing seriously boring stuff, trust me) and I wanted to make my own game for mobile (iPad). I like resource management simulations (like Capitalism) and I wanted to make a game like that to learn. Last time I worked on a game was 1995 so I basically know nothing.

    I have extensive background in 3d animation (especially Maya) and aftereffects animation. I also have background in visual arts for asset creation (I have cs4 and maya 2010 kicking around somewhere). I've never used these skills for games however (I worked in tv/film) so I'm not sure how they would integrate. I also have an extensive library of licensed sound effects and music.

    I looked online for research and I was overwhelmed. If anyone can point me in the right direction (or even the right forum, I'm posting here because I read macrumors a lot), it would be very helpful. Thanks :eek:
     
  2. 1458279 Suspended

    1458279

    Joined:
    May 1, 2010
    Location:
    California
    #2
    Before you get too far into any one tool, I'd look at different types of tools.

    Generally there are a few types:

    Xcode + ObjC or Swift
    Unity (game engine)
    Other script/multi-platform engines.

    Apple just came out with Swift and it seems to have a bunch of new stuff for game development.

    Although all these tools can probably get the job done, it's really an issue of how hard it would be.

    From the looks of it, I would investigate Unity because the game looks to be less of a role playing game or action game and more of a strategy game.

    It also looks like it's very graphic and rules/choice dependent more than heavy interactive like a shooter.

    If it's going to be a MMOG (Massive Multiplayer Online Game) then Unity might have a leg up, but I'd be concerned about the rules. What I mean by that is, if you have a player invest 20% in a sports bar, it's return would be impacted by middle class growth which would be based on other players as well as other sports bars in the area.

    I could see this being a real logic mess and would have to be right to be realistic. Tools like Unity would likely handle graphics and player interaction, but offer nothing towards handling the logic or calculations.

    ObjC is harder to learn than Swift but you have a strong background, so that's shouldn't be much of an issue.

    ObjC has a very very strong background for example code, whereas Swift is new.

    Swift has a new interactive design layout thing in Xcode, but you probably don't need that much.

    Both Swift and ObjC offer basically nothing for cross-platform whereas Unity is cross-platform out of the box.

    Depending on how you write / control your rules (calculating returns) etc... could be a factor. Once you figure out how to calculate a given return on investment then look at which tool best handles that.

    Example: if you handle the calculations mostly internal (switch statements) vs external database with several "weighted" factors, you'd want to know what kind of database would work best with each tool.

    I'd look at expansion too, can you add new investments without new code? You can if it's a shared database.

    Example: One player builds a hotel and offers restaurant space for lease, how would you put that into the game?

    If it were a shared database, just add it to the database. You'd be concerned about if Unity offers good support for that.

    I can say ObjC does, Swift probably does too.

    The upside to Swift is that you can have Swift and ObjC in the same app.

    I'd also consider how are you going to handle the graphics? One day the hotel is not there, next day it is... is that going to be a graphic stored in a shared database?

    Although it looks like a heavy graphic game on the outside, I'd look at the logic under the hood. I could see this being done in a Swift/ObjC combo.

    Unity (and other game engines) are known for handling things like player interaction, but you really don't need that (at least the way I see it). You don't have players flying around shooting people, you have a map and very slow interaction that's more dependent on past choices.

    If you are going to have a fixed map and the goal of the game is to build wealth, this is much more non-gaming logic.

    However, I'd take some time to look into those role playing games engines. I'm sure they have the ability to handle logic, but do they have the ability to show all the changes as investments change. Example: how do you handle an area that goes into recession or rapid growth?

    Interesting game idea. I'd find out how those other popular MMOGs are written. Unity might be the answer, but I haven't dug into it much.
     
  3. grandM macrumors 6502a

    grandM

    Joined:
    Oct 14, 2013
    #3
    Only thing I know is bitfontain has a free course on iOS game development using Sprite kit...
     
  4. Barna Biro macrumors 6502a

    Barna Biro

    Joined:
    Sep 25, 2011
    Location:
    Luzern, Switzerland
    #4
    IDE-wise, I recommend throwing a look at AppCode ( https://www.jetbrains.com/objc/ ). Maybe it's just me, having an ActionScript / Flex / Java background, but I find XCode way too primitive ( even compared to Eclipse... for that matter, I find VisualStudio almost just as lacking, but it's still slightly better than XCode ). Language-wise, whatever works... Swift is new and will eventually ( after quite a few years ) be the main language to use, but Objective-C is much more mature and you'll find way more examples / articles using it. You can't go wrong with either pick...

    If you prefer reading over video tutorials, then take a look at the Big Nerd Ranch books: http://www.bignerdranch.com/we-write/ Those should help you get started.
     
  5. ArtOfWarfare, Oct 29, 2014
    Last edited: Oct 29, 2014

    ArtOfWarfare macrumors 604

    ArtOfWarfare

    Joined:
    Nov 26, 2007
    #5
    Between three key things you said, I'm going to recommend Unity:

    1 - You said you wanted to make a game, not a general program. Unity is purpose made for making games, whereas the iOS SDK is for making apps. Whereas Unity comes out of the box with stuff for quickly getting up and going with a 3D (or 2D - it's great for either) world and a HUD on top, the iOS SDK allows you to quickly make drill-down type apps (IE, in Mail where you have a list of mailboxes and you tap one to drill into your message list and then you tap another to see all the message details.)

    2 - You mentioned being experienced with C#. This is one of the three supported languages in Unity, and the one that the company recommends you use. They also offer Boo (a statically typed variant of Python) and UnityScript (a statically typed variant of JavaScript). In contrast, the iOS SDK only supports Obj-C and Swift, so you'd be learning a new language if you chose to use it.

    3 - You mentioned being experienced with Maya. Unity has tools for importing models from Maya. I'm not aware of any such tools for iOS/Xcode (although that doesn't mean they don't exist.)

    If your goal is to make a game, I definitely recommend you use Unity, regardless of what target platform you have in mind initially, because it allows you to deploy to numerous platforms, including the 3DS, Wii, Wii U, Xbox 360, Xbox One, PS3, PS4, Vita, Blackberry, Android, iOS, Windows, Linux, OS X, and the web*. So no porting or rework will be required should you decide to change platforms (controls may have to change if you're swapping between mouse/keyboard, game controller with buttons and joysticks, motion controls, and touch... but Unity makes wiring that kind of stuff a breeze, wouldn't take more than a minute to set up and then test.)

    * In version 4, web deployments require a plugin from Unity. Version 5, currently in beta, utilizes WebGL, instead of a plugin, which 70% of people currently surfing the web can now use... current versions of all the major web browsers support it, including iOS 8's Mobile Safari and Android, now support it, so as people upgrade their browsers/OS and replace their computers, expect that number to grow to 100% over the next year or two.
     
  6. grandM macrumors 6502a

    grandM

    Joined:
    Oct 14, 2013
    #6
    Reading this it's obvious: he'd better go unity
     
  7. firewood macrumors 604

    Joined:
    Jul 29, 2003
    Location:
    Silicon Valley
    #7
    Xcode and Objective C are free (plus a Mac and $99/annum for the iOS dev program). But is sounds like you've purchased enough software tools that the subscription fee for using Unity (which includes lots of tools for game dev in C#) won't be a problem for you.
     
  8. ArtOfWarfare macrumors 604

    ArtOfWarfare

    Joined:
    Nov 26, 2007
    #8
    Unity's free version is quite permissive.
     
  9. 1458279 Suspended

    1458279

    Joined:
    May 1, 2010
    Location:
    California
    #9
    What kind of database support does Unity offer? Can he use over-the-counter products and/or cloud or remote data storage?
     
  10. Pootan thread starter macrumors member

    Pootan

    Joined:
    Oct 28, 2014
    #10
    Thank you everyone for your responses. It looks like Unity is the right direction to go as far as it stands. The point made about swift is well taken though, as I do plan on having strong database integration, particularly since I want to make a multiplayer version too eventually.

    Graphics wise it'll be mostly ui, with the graphics mostly enhancing the experience and for data visualization i.e. looking at a map is easier to understand than JUST spreadsheets (... for some :)).
     
  11. ArtOfWarfare macrumors 604

    ArtOfWarfare

    Joined:
    Nov 26, 2007
    #11
    Not sure - I've never tried to make anything in Unity like that. I know that they include modules for networking. Googling around I found tutorials on using SQLite in Unity.
     
  12. Strange Famous macrumors member

    Joined:
    Oct 30, 2014
    #12
    I worked with Gamesalad for a little, then moved to Corona, and from there moved to Codea to make apps straight on the iPad. With Codea and iDraw I can do everything on the iPad.

    Codea uses the Lua language, but when finished with your project you can export to an Xcode project that is pretty much ready to submit, except for a little tweeking for iAds/GC/etc.
     
  13. Pootan thread starter macrumors member

    Pootan

    Joined:
    Oct 28, 2014
    #13
  14. 1458279 Suspended

    1458279

    Joined:
    May 1, 2010
    Location:
    California
    #14
  15. f77coder macrumors newbie

    f77coder

    Joined:
    Jun 13, 2014
    Location:
    Twilight Zone
    #15
    if you want simple and stripped down start with cocos2d
     
  16. forcesteeler macrumors 6502

    Joined:
    Oct 1, 2007
    #16
    If your trying to create a game and maximize revenue i would go the Unity Game Engine Route.

    Unity is the best for making games because you can Port to many Platforms from PC,MAC, IOS, Android, PS4, Xbox, etc..

    Unity will cut your development time dramatically. You will have to write a lot of code in SprikeKit for 2D games, and for 3D games you will need to know, OpenGL or the New Metal API which is a very powerful but very hard to learn.

    Unity will also support Metal API with unity 5.0 so no need to learn Metal API to take advantage of the New iPhone GPU.
     
  17. ArtOfWarfare macrumors 604

    ArtOfWarfare

    Joined:
    Nov 26, 2007
    #17
    Here's another set of free tutorials that builds up to making a platformer. They use UnityScript (sort-of but not-really like JavaScript) instead of C# for it.
    http://www.walkerboystudio.com/html/unity_training___free__.html
     

Share This Page