Home General Discussion

Programming for the iPhone

polycounter lvl 11
Offline / Send Message
joe gracey polycounter lvl 11
My friend and I think we have a good idea for an iPhone game, but the problem is, we don't have any programming knowledge.

I've looked through the Apple website, and I have a general idea of what I need to do to get started. It says I need to have a good understanding of C Programming before I can start learning Cocoa (I'm guessing Cocoa is the iPhone language?).

So the first thing I need to do is get a compiler program, then learn some C Programming, then learn Cocoa?

Also, do I need to do all my programming on a Mac or can I do it on a PC then transfer it to a Mac?

I apologize if anyone finds this question annoying or whatever, I really would like to learn.

Thank you!

Replies

  • Kevin Albers
    Offline / Send Message
    Kevin Albers polycounter lvl 18
    Are you expecting to quickly learn programming in C, then learn Apple's Objective C language, then program an iphone app? Unless your idea for the app is nothing more than a 'hello world' message displayed on a blank screen, I think you may be underestimating what is involved in learning programming. You might be better off trying to hook up with a programmer. Becoming a programmer is not a trivial deal.

    If your interested in learning programming, one approach that I'd recommend is downloading the free Visual Studio C# software from Microsoft, and learning to program using XNA.

    You can do some programming on a PC and then transfer it to a Mac, yes. You can use C++ code in iphone apps, and only a bit of Objective C code. However, since you are just starting out, I think you will find yourself in over your head.
  • ScoobyDoofus
    Offline / Send Message
    ScoobyDoofus polycounter lvl 20
    Look into the Unity engine. It has a "publish to Iphone".

    http://unity3d.com/
  • joe gracey
    Offline / Send Message
    joe gracey polycounter lvl 11
    I completely understand how complicated programming is, and I had no intention of learning over night. :). I'm just curious as to how to get started with it.

    @Kevin Albers - thank you for the recommendation, I'm definitely going to check that out.

    @ScoobyDoofus - do you know what the difference is between the basic and advanced publish to iphone versions are?

    Thanks for the your responses guys, I know this isn't the best forum to ask programming questions, but I thought I would try anyway.
  • brandoom
    Offline / Send Message
    brandoom polycounter lvl 15
    Does all coding for the iphone need to take place on a mac? or can it be done on a pc?
  • Pseudo
    Offline / Send Message
    Pseudo polycounter lvl 18
    you can write the code on a PC I suppose but you need a Mac and xCode to compile it properly and to run the iPhone simulator.
  • eld
    Offline / Send Message
    eld polycounter lvl 18
    has to be done all on the mac, to be work effective.
  • Pseudo
    Offline / Send Message
    Pseudo polycounter lvl 18
    The main reasons to upgrade from Unity iPhone basic to Pro are removing the "Made in Unity" splash screen, and bitcode stripping. Essentially it removes all of the unused Unity libraries, shaving a few MB off the install size.
  • joe gracey
    Offline / Send Message
    joe gracey polycounter lvl 11
    So if I buy Unity Pro with iPhone advanced, it's going to cost me $3k, and that's just to save a couple MB... interesting. Or I can get Unity Indie with iPhone basic for $600. As long as I can make iPhone games with the basic, I don't see any reason for the advanced. I'm sure there is more to advanced than just extra MB's, but I'm hoping I don't need to use any of it.
  • Kevin Albers
    Offline / Send Message
    Kevin Albers polycounter lvl 18
    Using the Unity engine is a fine way to get started doing iphone apps. It depends on what your longer term goals are. If you mainly want to make a specific app without having to learn a major skill, Unity could work out great. If you want to learn programming so you can make lots of programs, you might want to learn programming from scratch rather than use someone else's engine. Building your own simple engine is a great way to learn programming.

    One thing I like about Unity is that they now have a PC version. I bought a PC indie license, which is very cheap, and allows me to learn about Unity. If I get serious enough about using Unity, I can buy a Mac iPhone Unity license once I already have Unity projects that I think would be worth releasing on the iPhone.
  • Vito
    Offline / Send Message
    Vito polycounter lvl 18
    For an easier iPhone development path, there's Unity (Zombieville was made in Unity by an artist with no prior programming knowledge, and he recently quit his job off the profits) and there's Torque (which I've heard, anecdotally, isn't so great/stable/performant on the iPhone side) and there's Corona (which is like Flash, but it isn't released yet).

    You'll almost certainly want to pop for the full version of Unity at some point. You don't get network support with the Basic version, and build stripping removes features you don't use, so your customers can download your game faster, and your game uses less memory. Remember, an iPhone 2G/3G has a best-case of 40MB of memory free. That's not a lot. The less overhead your middleware-using game has, the better it'll run, especially compared to games that were written straight in Objective C. Look at the changelog for Zombieville: lots of updates to reduce crashing from memory usage.

    Your best bet for getting it out quickly and as performant as possible is probably to hire someone to write it in straight Objective C. Sign up on eLance or Rentacoder and look for experienced iPhone devs. Just like in the industry, there are lots of developers with no art ability who'd rather work on something with an artist than nothing at all. Hire them in a work-for-hire scenario so you don't have to share profits.

    Good luck!
  • joe gracey
    Offline / Send Message
    joe gracey polycounter lvl 11
    Thank you for your comments Kevin and Vito!

    I don't know how much programming I want to learn right now. The Unity package seems great because, like what was stated, I don't need to know a lot of programming to use it, which makes me happy. After I learn some programming for Unity, and I like it, I might continue learning more. Right now, I'm not trying to become a programmer, just learn enough to make some small games!

    I would like to buy the advanced Unity Pro version, but the price tag is way to steep for me right now, so I will have to go with the Indie version for now. Hopefully I can upgrade to pro later!

    Thanks again for all your comments, received more than I expected. :)
  • Richard Kain
    Offline / Send Message
    Richard Kain polycounter lvl 18
    Okay, I've got your hook up, right here. I'm actually working on my own iPhone app right now, so I've done some research, and gotten some programming practice in.

    For starters, you will need a Mac at some point in order to publish your app. I don't believe there are any solutions that allow you to compile your iPhone app on a PC. Even if some of your development is done on a PC, you will need to move your effort onto a Mac for final compiling.

    If you want to do most of your development on the PC, then you will want to try out Stonetrip's Shiva. http://www.stonetrip.com/ I belive that their iPhone solution allows you to develop your app on the PC, and then use some manner of conversion program to compile it on the Mac. Unity's iPhone solution requires that you purchase and use it with the Mac version of Unity. So if you go the Unity route, you will have to do all of your development on the Mac.

    A solution that requires more coding but is considerably cheaper is SIO2. http://www.sio2interactive.com/HOME/HOME.html This is an open-source 3D game engine designed to work with Blender. I believe it uses Ruby for its scripting and programming, and Blender for defacto content development. A good option for those already familiar with Blender.

    My personal project doesn't require 3D graphics, so I am using the Cocos2D engine. It is much more coding-focused, and requires the use of Objective-C. Coding using the iPhone's default GUI elements is done using Cocoa. But the base language for the iPhone is Objective-C. Objective-C is a rather odd language, with some very strange bracketed syntax. It takes a little while to wrap your brain around it.
  • Richard Kain
    Offline / Send Message
    Richard Kain polycounter lvl 18
    If you are going to want to get more in-depth into iPhone development, you will want to eventually learn some programming. Solutions like Shiva and Unity are nice, but have certain performance constraints. There is also the fact that iPhone touch interactions are tied to Objective-C coding. So more advanced interactivity is going to require a working knowledge of Objective-C.

    Objective-C isn't so bad once you've gotten a little more used to it. I was already decently familiar with OOP coding and a few OOP languages before I started on Objective-C. I struggled at first, but now I'm extending classes, writing custom functions, managing variable scope, the whole nine yards.
  • joe gracey
    Offline / Send Message
    joe gracey polycounter lvl 11
    Thanks Richard, very good info! :)
  • Daaark
    Offline / Send Message
    Daaark polycounter lvl 17
    A brief history of the Torque game engine

    2000 - Buggy, badly documented, will be all fixed soon!
    2001 - Buggy, badly documented, will be all fixed soon!
    2002 - Buggy, badly documented, will be all fixed soon!
    2003 - Buggy, badly documented, will be all fixed soon!
    2004 - Buggy, badly documented, will be all fixed soon!
    2005 - Buggy, badly documented, will be all fixed soon!
    2006 - Buggy, badly documented, will be all fixed soon!
    2007 - Buggy, badly documented, will be all fixed soon
    2008 - Buggy, badly documented, will be all fixed soon!
    2009 - Buggy, badly documented, will be all fixed soon!
    ..
    ..
    2020 - Buggy, badly documented, will be all fixed soon!
  • xyan
    You could also try GameSalad. It let's you create 2D iPhone and Web games with physics and logic without a single line of code. The tool itself is free to use right now and next month they will be releasing the actual service that let's you export to iPhone.
    www.gamesalad.com
  • Ben Apuna
    @zhzubair4:

    You will need access to a intel based Mac and pay a yearly fee of $99 to Apple.

    Start here: https://developer.apple.com/library/ios/#referencelibrary/GettingStarted/RoadMapiOS/Introduction/Introduction.html

    I don't think Visual Basic will work at all. If Objective C isn't your thing, there are numerous game engines that will export to iOS.

    There are also many cross platform programming languages such as AS3 through the AIR runtime, Mono with Monotouch, HaXe with NME, and Monkey. You should look into Monkey it was made by the same guy that made DarkBASIC.

    http://monkeycoder.co.nz/

    EDIT:

    hmm... looking at your links it appears I've been fooled by a bot :poly136:
  • zhzubair4
    iPhone 4s iOS 8.1 firmware or flash file download
    Firmware Detail:


    Firmware Name: iPhone4*1_8.1_12B411_Restore.ipsw

    File Size : 1.66 GB

    File Version : iOS 8.1

    This file is tested* but use this file at your own risk.
    This file is resume supported* and you can download this file with idm easily.

    Download
  • NegevPro
    Offline / Send Message
    NegevPro polycounter lvl 4
    Using the Unity engine is a fine way to get started doing iphone apps. It depends on what your longer term goals are. If you mainly want to make a specific app without having to learn a major skill, Unity could work out great. If you want to learn programming so you can make lots of programs, you might want to learn programming from scratch rather than use someone else's engine. Building your own simple engine is a great way to learn programming.

    One thing I like about Unity is that they now have a PC version. I bought a PC indie license, which is very cheap, and allows me to learn about Unity. If I get serious enough about using Unity, I can buy a Mac iPhone Unity license once I already have Unity projects that I think would be worth releasing on the iPhone.
    +1 to this. To make a rough comparison to game art, using Unity for your project would be like using a pre-made base mesh for a character rather than spending the time to learn anatomy the hard way. You can get results up and running faster, but if you want to be a good programmer then you should consider learning the basics first.

    Different people recommend different learning paths, personally I think it's best to learn a non-object oriented language first, like C, in order to get a good understanding of important programming concepts, then from there move onto object oriented languages, then from there, move onto actually making your game.

    Of course it goes back to the question of if you actually want to become a programmer, or if you just want to do a single project. Keep in mind, it would probably take no less than 3 months of dedicated time to get a great understanding of a single programming language assuming you don't have prior knowledge, so the learning route will take longer.
  • RyanB
    joe gracey wrote: »
    My friend and I think we have a good idea for an iPhone game, but the problem is, we don't have any programming knowledge.

    I've looked through the Apple website, and I have a general idea of what I need to do to get started. It says I need to have a good understanding of C Programming before I can start learning Cocoa (I'm guessing Cocoa is the iPhone language?).

    So the first thing I need to do is get a compiler program, then learn some C Programming, then learn Cocoa?

    Also, do I need to do all my programming on a Mac or can I do it on a PC then transfer it to a Mac?

    I apologize if anyone finds this question annoying or whatever, I really would like to learn.

    Thank you!

    Here's how I'm doing it:

    Unity Engine plus these plugins: Playmaker, NGUI. Adding SimpleSQL and Master Audio later. Playmaker is a visual scripting tool that will speed up your development 10x. NGUI is the best UI plugin for Unity and it ties into Playmaker. NGUI sends events to Playmaker.

    Unity is free, Playmaker $90 and NGUI is $95. You can also get Unity Pro and iPhone pro, that will cost you around $3,000.

    You can work on PC, but at some point you have to send your project to an Apple machine to build. That's because you need XCode to run in the background after you build your app in Unity. Don't worry, you don't need to learn much about how XCode works.

    Unity will build for iOS. For that you need, the following from Apple:
    - an Apple computer with updated OS, I use a five year old mac laptop
    - an Apple device, like an iPhone, iPod, etc.
    - an Apple developer account $99
    - download XCode from your developer account
    - download certificates for your apps in development from your developer account
    - spend half a day setting all of this stuff up

    I would also recommend online backup and source control. Check out GitHub or similar sites.

    Here's what I'm currently working on. You can see what visual scripting in Playmaker looks like. I haven't written a single line of code for this simple app so far.
    https://www.youtube.com/watch?v=MeyxdUVQKLY
Sign In or Register to comment.