As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
There are a number of discussions on stackoverflow.com about what is the best iPhone game platform/engine. My question is not necessarily what is the best, but what is the best for an experienced iPhone developer but not not experienced in game design. This will also be a solo project plus a graphics designer. Consider I will be working full-time at my day job and will need to support a number of other iPhone apps. In other words, designing the game will be very much a part-time project but needs to go out in 2 - 4 months(?). Ramp up time needs to be quick. I'd like to build 2D in the beginning and then go to 3D.
I lean toward Unity 3D since it has lots of documentation and help. From what I can see, the iPhone basic version is $399 and you get the IDE for free. Can anyone confirm?
Unity3D is for 3D but I've read you can still do 2D. I'm trying to find out what is involved there. One drawback with Unity3D is the 8-15 second Unity splash screen. I've also read this doesn't get much better with the higher priced version. But I suppose that is the price you pay for the convenience of having a simpler framework available.
Cocos2d is a great framework and free but lacks documentation. It also requires much ramp up time to learn its framework and choose a suitable physics engine. I don't see this route as practical. I can see learning it across a long timeline as a side project but then you eat into getting your game out the door fairly quick. If I go with Unity, I probably abandon Cocos2d altogether since I will have invested so much into Unity.
Does my reasoning for Unity sound feasible?
---EDIT---
Based on some of the comments, here is the type of game I'm referring to initially: A 2D shooter similar to Zomebieville but most likely without its large feature set.
I'll vote for Unity 3D. It contains a very nice interactive development environment and supports a variety of platforms (including the iPhone). If you don't have experience writing game loops or any of that, then you will depend heavily on such development environments - you might as well get the best.
If your game is worth it, people won't mind the wait screen.
This will also be a solo project plus a graphics designer.
designing the game will be very much a part-time project but needs to go out in 2 - 4 months(?).
Two words:
Forget it!
Yes - Unity3D is $399 for the basic iPhone license.
Using Unity to create 2D games works in most simplistic terms as follows:
The Camera views a 3D world and creates a 2D game when the camera is directly facing a platform from the side. I guess you could also aim the camera straight down (birds eye view) on a surface as well.
The difference is as follows: In Cocos2D you are still running an openGL ES app. You have the ability to have layers in the Z coordinates.
Unity however would be best used when using 3D objects to be animated as the art. If your art is already 2D then in Unity you would be placing your art onto a flat plane. If you are concerned about the quality of the artwork when it comes to your game - if the art is 2D then there really is no point in using Unity and spending the money.
Also consider that Unity3D's basic package will not give you access to your own methods outside of it's framework - if you have some objective c you would like in your game from say another project or you have a special server you want to connect to using your own code that will not work. This kills it for me.
I understand there is a lack of documentation however - There are a lot of tools and tutorials to help.
First consider that Unity3D has a WYSIWYG approach with actions built in for physics.
Cocos2D allows you to use several different physics libraries including the one in Unity3D.
Youtube Cocos2d iphone box2d and chipmunk - mix the tags up
One nice thing about 2D art in cocos is SVG and tiles - see this tutorial / video - not much work - not much at all.
http://www.youtube.com/watch?v=yvZM-YPPbII
Cocos is actual simple - it is python and the documentation is poor - however there are plenty of small open source games out there using cocos - a quick google code search will reveal a few - open one up in xcode and it becomes quite clear and if you are a developer who knows an actual programming language it should look as easy as html form there.
I am convinced after working on several projects opening a few games that are out there will make complete sense of all of it.
I don't know much about Unity3D. But I know of a very nice game engine witch you can use it's called Game Maker. I think it's very useful for the inexperienced/solo game developer. With it you should be able to create good quality games in about two to three months. The last I checked it's about $20 for the full version of the software. So, I guess it's light on the wallet too.
2D games are easy with Unity. Its as simple as changing the view mode of the camera. Technically the game is still 3d but seen as 2d. If your looking to solo make a game in a short time then Unity is the way to go. Unity can make a 2d game for a iPhone to a super advanced MMO. Also there are hundreds if not thousands of tutorials out there that can teach you pretty much anything you need to know.
Unity is easy to make games for every platform and gets rid of the heavy lifting. I like Unity because you see the results fast and its cross-platform compatibility.
Related
I have good experience with the iPhone development tools and making apps with window based applications and stuff. I am now trying to make an awesome 3D game, which is an area I have never tried out.
I am very interested in learning about the development of "INFINITY BLADE" and I am very curious to know how it was developed and how they were able to develop it with so much detail.
I had already looked at links like iPhone 3D Engines, but it seems outdated.
Where is a good place to start for learning HIGH Performance 3D games for iPhone / iPad ?
Could you share any tips on the development life cycle for the 3D Games ??
Tools used for making high quality 3D images for the creative side of iPhone Development ? And resources on the creative side ?
Could you share the game development life cycle for a particular app , or perhaps your comments on the development of Infinity Blade ?
This isn't a full answer, but I decided to post it anyways.
Infinity blade was written using unreal engine 3, which recently (or not so recently) got an export to iPhone option. Unreal engine is the same engine used for games such as gears of war. I'm assuming that the actual difficulty of getting high quality graphics to run well on the iPhone was handled by unreal engine. As for making the graphics, I'm sure they hired a (bunch of) 3D artists. You can get the UDK for unreal off of their website, which allows you to start learning with it. The only caveat is the cost of the engine when you actually want to release a game.
I've never actually used it so I can't give too much information on it, but you could try looking at cocos2d's lesser known sibling, cocos3d. That would probably be the most cost effective way to learn how to do some 3d game programming in obj-c.
http://brenwill.com/cocos3d/
But if you're looking to bang a game out quickly and learn a good amount about game development, Unity3D might be the best option. They have a few really good hands on tutorials.
http://unity3d.com/support/resources/tutorials/
I might be wrong, but I think Unity might require the use of C# under mono, in which case I'm not sure if that would be something you're looking for.
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 9 years ago.
I'm new in iPhone programming but I have a good grounding in Java and I'm starting to understand how Objective-C works.
I'd like to start developing iOs games.
Do I need to study Open-GL?
Even for 2D games (like Angry Birds, Cut The Rope, Doodle Jump or Tiny Wings)?
What do I need to learn to switch from simple UI apps (with buttons, sliders, labels etc.) to real games?
First off, you need a developer account with Apple to publish games on the iPhone app store.
Second, you probably aren't going to be using Objective-C all that much for games programming. Its runtime binding just doesn't compare to the speed of C or C++ method calls.
For any cross-platform game development (probably iPhone + Android) you will need OpenGL. OpenGL also happens to be the only way to make hardware-accelerated 3D games on either of these platforms.
My recommendation would be to learn OpenGL for iPhone games development. This has the added advantage of allowing you to write games for most other mobile platforms as well with minimal additional learning.
You could of course use Apple's own 2D APIs for game development, but I wouldn't recommend it for the reasons previously stated.
Games programming is an entirely different animal from applications development. I'd suggest starting simple.
Happy games programming! Its my favorite development field.
Edit: I realized I made OpenGL seem as if it is exclusively used for 2D games development, which isn't true at all. OpenGL is well-suited to 2D as well as 3D games development, although the majority of its material is focused on 3D programming. 2D programming with OpenGL is effectively setting the Z coordinate to 0.
if your interested in making 3D games, check out Unity3D for iOS
http://unity3d.com/support/documentation/Manual/iphone-basic.html
Angry Birds was developed around the Box2D engine
http://www.box2d.org/features.html
.. and anecdotal wise the game developers didn't give the engine makers credit. (so don't make the same mistake when developing your game! :)
You don't need to know OpenGL at all. There are some really nice engine options, such as my company's BatteryTech Engine which you simply say what you want to draw and where you want to draw it, what sound to play, etc in Lua (which is super easy) and you also deploy on Android and others. There are a bunch of other options too but this is the one I prefer, though I am of course biased :)
The others are right - you need an iOS Developer account and you still need to understand the basic structure of an XCode project and how Apple does things no matter what solution you use. I've published over a dozen games over the past 4 years so Let me know if you have any questions and I'll be happy to answer.
Good luck!
Cut the Rope is actually created with HTML5/CSS3/Js...using the 'canvas' element...
I'm interested in creating games like Cut the Rope too. You need to know how to create Sprite animations though, which are used with Css3's #keyframe property.
But Unity3D seems to be the best choice to develop 3D games on iOS and Android.
If you know any 3D graphics application like Maya or Blender you can create your very own 3D game by importing assets into unity... such an example here... http://www.eatsheep.com/
In both the cases you need work with a 2D Game Artist and 3D modeler respectively, where as you can handle the development.
good luck with that.
I have a couple ideas for some 3D games/apps and need to know which 3D engine to go with. I like the high-level approach of Unity and UDK. I have done some 2D games using cocos2d before, but I'm entirely new to the 3D world, which is why i think Unity or UDK are a good choice. I know about the differences in licensing, and i am more concerned with the learning curve instead of the licensing cost.
Plans:
A 3D "side scroller" that goes forwards (up) instead of to the side. Third person space ship. This would primarily be for learning. Tilt to steer, tap to jump. Very simple graphics, vertex coloring would be enough.
A 2.5D "side scroller" like the above one but with a car. This game would generate the levels randomly out of a couple prefab blocks of a certain length that fit together seamlessly.
A 3D augmented reality display for pilots with a terrain mesh loaded from DEM data. Accelerometer and GPS access required.
Other important points:
Must be able to tie in to In-App purchases.
The more community content like tutorials and forums the better.
Ability to add third party libraries like Flurry Analytics is a big plus! But i guess this isn't possible?
Which engine would you recommend for these projects, and why? Preferably, i'd like to pick one and stick with it.
You’re going to have a way, way better time developing with Unity. UDK’s got a fantastic, incredibly capable engine, but its tools don’t have the ease-of-use of Unity’s, its developer documentation leaves a lot to be desired, and the community hasn’t been using it for long enough for there to be much help to be found there. Some quick Googling suggests you can write your own Objective-C plug-ins for Unity games, so in-app purchases and third-party libraries are definitely a possibility. I think Unity’s your best bet.
What about cryengine? it free for non commercial use and also provides mono c#.
Check it out CryEngine
What are people's opinions and/or experiences with game engines such as Unity or Torque Engine? If one were new to iPhone game dev is it worth it to learn one of the engines? What is the performance difference between apps generated by those engines vs a natively built App using the sdk?
Both will equal the performance of what most people could write themselves (i.e. if you're not an experienced game engine developer).
Whether it's worth learning (and buying since both Unity and Torque cost for iPhone development) you'll have to ask yourself two questions:
Is my game idea suited the engine?
Is my passion for programming or game design?
Looking at the range of games made with Unity, it seems very flexible because although it is a 3d engine, lots of 2d games have been made with it. The downside of using Unity for something very simple (say, a match-3 tile game) is that it's a bit over the top in terms of download size.
On the passion issue, some people like programming a lot and will always feel it's better to write the engine themselves. And that's OK. But if you have a great idea for a game and just want to 'bring it to market' as soon as possible, and it requires 3d rendering, character animation, that sort of thing, using Torque or Unity is going to get you there a lot faster.
If you want to do 2d development you should have a look at cocos2d iphone it is implemented in cocoa free open source and very easy to pick up
I think time to market is important to consider - if your going to burn out after a short time and of the engines mentioned above will allow you to build and launch a game quickly compared to writing the engine & game from scratch.
Like U62 said, where is your passion?
Currently I'm building a framework/engine and a game. Its a great learning experience, but we had to understand that it would take a long time (we have day jobs) and that we have to just keep chipping away at it. So far, the experience has been an eye opener and I've learned a great deal ... however, would I do it again? Probably not - I think I prefer designing the game and coding game specific logic - not engine specific.
I've done a lot of research on the platforms and I personally really like Unity. You can email them and request the iphone trial license.
Anyways, good luck!
I have been developing iPhone Applications for a couple of months. I would like to know your views about the Quartz vs OpenGL ES 1.x or 2.0 learning curve. You can tell your perspective. My Questions are
*I am a wannabe game developer, So is it a good idea to first develop in quartz , then move
on to OpenGL ES or does it not make an difference
*Can you please tell your experiences when you were having the similar question
Thanks :)
Quartz 2D is not applicable for game development IMHO. It is a software rendering API. It won't give you realtime rendering speed. It's good for drawing charts or vector text with shadows, or for blending several images together. Just not for games. Unless you want to make a game where few images are moving against a monochrome background and even in that case I doubt it will be really smooth on older devices. I've seen some games obviously coded with Quartz. A pitiful sight.
Sooner or later you'll end up using Open GL ES or a game framework build on top of it. I recommend you to check cocos2D, SIO2 engine, or examples from SDK.
With careful programming it is possible to make an Open GL ES game with parallax scrolling and relatively small amount of objects work at 60 FPS even on 2nd gen devices. Tiny Wings is an example of such game. And maintaining stable 30 FPS is not a problem at all.
I skipped Quartz and went right to OpenGL ES. I started with a 2D sprite based game. Thought it was pretty easy.
The key is having a good example to look at. I used the Lunar Lander clone (Crash Lander), but I don't think that's easy to find anymore. Maybe someone who has done it recently knows of a better, newer example that uses current best practices.
I'm in the same boat as you describe, although I have no programming background. (Although I don't know what your background is either) Currently, I am in the process of learning to code as I learn the various API's that are available. I'm an objective-c guy going backwards to the c-based Quartz API, and it's a little bit of a challenge. Luckily, Programming in Objective-C 2.0 by S. Kochan has a great chapter on underlying C features to keep you afloat.
I have taken a couple of stabs # OpenGLES, and I have to say, that from a conceptual standpoint, I'm not ready for it. The Quartz2d API is a bit easier to learn conceptually because it's very easy to get up & running with a few commands. Right now, I'm at the point where I can define shapes and point to point images with out too much trouble.
OpenGLES is going to be something in my future, but it takes such an enormous amount of code to configure the drawing view, set up buffers, etc. If you are familiar with everything the code is doing, then it's a bit easier. However, from a learning perspective, Quartz is an easier way to get going, quickly.
Resources I'm using: The aforementioned book, and an anemic amount of blogs containing tutorials, which are limited # best. At this point, make an appointment with the apple docs and get cozy, because it's about the best (free) stuff that's out there (& exhaustive) With that said, I'd love for someone to prove me wrong on this site by posting a great resource for learning, but that's about it. Good Luck.
I have been looking for the fundamental differences so I can decide between OpenGL (ES) or Quartz or a hybrid. The good news is that the hybrid is an option. Clearly Quartz is easier to master for O-O programming and the answer from Apple appears to be that OpenGL, "...is ideal for immersive types of applications..."
http://developer.apple.com/library/ios/#DOCUMENTATION/General/Conceptual/Devpedia-CocoaApp/DrawingModel.html
I don't want to limit the category to games as I believe any game UX can be applied to a business App, a productivity App, entertainment viewing, etc. By the same token, I fully expect the technology (both h/w and s/w) to advance to make either a choice.