Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking us to recommend or find a tool, library or favorite off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.
Closed 8 years ago.
Improve this question
I'm basically new and starting iPhone game development and I want to create 3D games for the platform, I had a look around and it doesn't seems to have much choice if you want a pure 3D oriented game engine that provide you physic etc...
While Googling I come up with 2 solutions:
Unity (unity3d.com), which seems to be somewhat restricted to scripting and while testing I saw the even a simple build is like 28meg... Look to me that the basic version doesn't get you nowhere as most of the features to optimize your Apps. comes with the full version... and you still need a flash screen.
SIO2 (sio2interactive.com), they seems to just release a new version that seems pretty good, they seems to use C++ for coding which is great and have a blender integration. Executable size is like 2meg which seems to me unbelievable for the features they provide, and you can also get the source, and from my tests it run pretty fast too.
Anyway, my question is what does people are using out there?
Unity seems to be the popular choice for "easy" game creation, but SIO2 seems to be more expandable to me (am I right to think that?).
And finally, what would you guys recommend (basically iPhone 3D newbie) to use based on your experience?
PS: I have experience in C++ and basic knowledge in OpenGL (desktop).
Unity is very cool, IMO, but I just started using it for game dev.
I suggest you take a look at http://isgl3d.com/. it has written in Objective-C and has many good features, it has OpenGl ES 2 and bullet physics support and can import 3D objects from blender or maya with POD format.
also if you have C++ knowledge you can consider using openframeworks or cinder,
both are C++ and created for creative programming but can be used for some type of games.
http://libcinder.org
http://openframeworks.cc
There are far more iPhone 3D game engines to choose from than unity and SIO2. I can suggest at least 19 for iOS + 3D development: http://mobilegameengines.com/iphone/3d_game_engines
Unity would probably be the best option to use in regards to game programming. However, are you a one man or do you have modelers getting animation for your game? If you do not then I recommend Blender, which is an open source tool used to model characters for games and such.
Back to Unity, it seems like the best options just because of the many different types of coding you can do on it. This includes C# and a version of JavaScript for video games. Also, if you're interested in a career for game development then Unity can help you learn scripting so you already know how to do it if you apply for a job.
Lastly, Unity seems to be the like the best engine that is free that can do the most 'stuff' quickly. Prototyping is incredibly quick on Unity and this will help you in the long run when you need to test your game.
Related
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 9 years ago.
Improve this question
i'm starting game programming (for iPhone) and i'm would love to know more about it.
From what i seen i can choose 3 different ways:
1) Lua on Kobold 2D
2) Cocos 2d
3) Basic UIKit
Which ones are the real differences? For the ones that already have tried them, why should i pick one technique instead of another?
Do you know witch style was picked same the most game like: Angry Birds, Fruit Ninja, Ruzzle, Draw Something, Candy Crush, Words whit friends, Temple Run, Four pic one word, Song Pop, Fun run, and so on.
Are there any other ways to programming game to iPhone? Such as other Kit or API that i didn't mention?
Thank's
Cocos2D is a proper 2D game engine. You can find so many tutorial sources on the net. you can also use cocos2D with box2d or chipmunk physics engine if you need physics simulations or accurate collisions in game world. Beware though there are 2 versions of cocos2D one that uses openglES 1.0 ; which is used for older ios devices and the one that uses openGL ES 2.0; which has a support for shaders. Also there is a flavour of Cocos2D called Cocos2D-x which is written with c++. so if you planning for cross plaltform go for Cocos2D-x. be warned though cocos2D-x doesn't have as much tutorial as the Cocos2D.
Kobold 2d is actually suppose to be extended and improved version of cocos2d that acts as a wrapper arouund cocos2D, so that creating games are a bit more simpler compare to creating in cocos2D. However this is more likely based on personal view of the author of the Kobold2D. Personally I haven't tried it but I believe its going to cause more headache to me then it would help or more likely it will limit me down since I already started grasping the idea of developing games. Also there is less amount of tutorials on the web for Kobold2.
Basic UIKIT. erm... this is the hardest choice you can make. UIKIT is composed of OPENGL ES and QuartzCore framework and uses these to draw the your game on the scene. So its not a game engine. if you are going for UIKIT you will be reinventing lots of things from scratch. rendering textures, managing your scenes, handling your sprites, and resources.
Obviously rendering is not the only thing the game does. if you going for UIKIT you also have to find solutions for collisions "such as when a paddle hits a ball" and user interactions "such as how player controlls the game with touch screen". So my suggestion is keep away from UIKIT and start with Cocos2D. it will make the life simple enough to get you going yet complex enough to let you have freedom and think.
lua is a different programming language than objective-c, but you can use it in objective-c with the Wax api.
Kobold2d is an extended version of cocos2d, but i haven't tried so can't say much.
cocos it's like a wrapper that help you drawing lines, using collisions etc.
unity it's most used with 3d games
open gl it's more raw and you have to customize everything, it's more powerful but it require way more work
all of them are pretty much just wrapper frameworks that help you writing games because they include different functions that you normally would write on ur own. unity it's usually chosed for 3d games, open gl for bigger project but will require way more work. if you want to do a simple 2d games the real choice is between lua( throught wax api ), kobold and cocos.
personally i prefer kobold, because it's still objective-c ( lua uses it only with wax ) but still has many helpful functions and uses arc ( which cocos doesn't ) but try to see if other programmers give you different advices.
i don't know which is best to chose but i know that Angry birds is done with Lua ( which is a cross-platform programming language )
read more on this link
http://www.learn-cocos2d.com/2011/08/comparison-lua-scripting-corona-sdk-wax-kobold2d/
http://www.kobold2d.com/display/KKSITE/_Kobold2D+vs+Cocos2D+Comparison+Chart
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.
I know Java pretty well. I know now most of the Basics in Objective-C.
I know nothing about Photoshop. I know how to use TurboCAD 10 Professional, so I do have some experience in 3D object modelling. Although not much.
What do I have to learn step-by-step, to come to 3D game Development for iPhone? What Tools do I need? Which Books help out? How long did you learn?
Learning the basic ins-and-outs of OpenGL ES on the iPhone took me about 3 weeks. I post some of my observations on the subject here. The source code to my Molecules iPhone application, which uses OpenGL ES, is available here. Maybe you'll be able to find something useful in that example. However, there's nothing in there that deals with textures, which you'll probably need for your game. Bill Dudney has posted source code for a Wavefront OBJ modeler on the iPhone that may help in that regard. For a good text on OpenGL ES, I'd recommend "Mobile 3D Graphics: with OpenGL ES and M3G".
When it comes to Cocoa development in general, it will take you a little while to get up to speed. For me, it was about 6 months before I felt comfortable with it, although that was in the more complex Mac desktop environment. I post some resources for learning Cocoa here, although that's by no means an exhaustive list.
I agree with diciu, this is a bit much for someone just starting out on the platform. I'd find a simpler application or series of targeted applications (that you may never even release) to help you learn the core concepts before you leap into 3-D game design.
Your goal is very ambitious - I think it's a very hard project to tackle as the first project on the iPhone and you'd be better off starting out with a couple of simple Cocoa touch applications to get a feel for the platform.
For a simulation game I would start with experimenting with some physics engine such as bullet. Bullet is C++ and you can use it from Objective-C++.
For rendering 3D you probably want to use OpenGL ES.
I guess that OpenGL is worth a look.
I'm not a graphics or game designer but would like to build more interactivity into my iPhone apps and eventually start developing gaming apps. Tools such as Blender seem for out into the future for anything I'll produce useful from them. I need something similar to a FrontPage for game developers. For 300 bucks, Torgue for the iPhone seems like a nice all in one package: http://www.garagegames.com/products/torque-3D. Has anyone used this or something similar and can comment about how good it is?
One of the coolest end-to-end solutions that I've seen to date is Unity3D, which now allows you to publish your game directly as an iPhone application. It's not exactly cheap, but you can get an indie license for $598. There's good support and plenty of community examples and stuff to get you going.
Torque and Blender aren't really comparable: Torque is primarily a game engine and Blender is primarily a 3D modelling application. You'd use the latter to create content for the former.
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 7 years ago.
Improve this question
What is the quickest way to come up to speed on OpenGL ES 1.x?
Let's assume I know nothing about OpenGL (which is not entirely true, but it's been a while since I last used OpenGL). I am most interested in learning this for iPhone-related development, but I'm interested in learning how it works on other platforms as well.
I've found the book OpenGL ES 2.0 Programming Guide, but I am concerned that it might not be the best approach because it focuses on 2.0 rather than 1.x. My understanding is that 2.0 is not backwards-compatible with 1.x, so I may miss out on some important concepts.
Note: For answers about learning general OpenGL, see https://stackoverflow.com/questions/62540/learning-opengl
Some resources I've found:
http://khronos.org/opengles/1_X/
http://www.imgtec.com/powervr/insider/sdk/KhronosOpenGLES1xMBX.asp
OpenGL Distilled by Paul Martz (a good refresher on OpenGL basics)
If I may plug my own work, I'd direct you to my post at http://www.sunsetlakesoftware.com/2008/08/05/lessons-molecules-opengl-es. It's not the best overall introduction to OpenGL ES, and it gets fairly technical pretty quickly, but it's my take on the subject from my experience writing Molecules. Also, I've just started reading the book "Mobile 3D Graphics: with OpenGL ES and M3G".
I agree with the suggestion that the best way to learn is by doing. I started out knowing nothing about OpenGL and three weeks later had Molecules in for review in the App Store. Once you have a clear set of goals ("OK, I need to draw a 3-D sphere", "Now I need to rotate it on demand") it becomes easy to find the examples or parts of documentation that apply to just the task you're working on.
There are many code examples out there, although a lot of them use immediate mode and other calls that are not supported in OpenGL ES. I'd love to add to the list by releasing the source to Molecules, but Apple's NDA has prevented that so far. The source code to Molecules is now available.
Video for the class I taught on OpenGL ES 1.1 is now available to download as part of my spring course on iTunes U. The notes for that session can be found here. And the fall semester videos have a class on OpenGL ES 2.0.
Also, Philip Rideout has released an excellent book on OpenGL ES 1.1 and 2.0 development for the iPhone, called iPhone 3D Programming. I highly recommend it.
There is some documentation in iPhone SDK itself.
Other than that, just take what you know about OpenGL (or learn that via other means), and forget about all things that are "old cruft" (display lists, immediate mode, things that are in OpenGL but are not directly related to just drawing triangles). Basically, unlearn everything that has been declared deprecated in OpenGL 3.0.
GL ES 1.x is for pretty simple devices. What you have is a way to draw geometry (vertex buffers), manage textures and setup some fixed function state (lighting, texture combiners). That's pretty much all there is to it.
There are some excellent tutorials at https://web.archive.org/web/20160309222642/http://iphonedevelopment.blogspot.com/2009/05/opengl-es-from-ground-up-table-of.html
FYI, Brad Larsons Molecules code is now available here.
I found these quite helpful when starting out with OpenGL ES, just to see what approach one would take when dealing with ES as opposed to normal GL.
http://www.zeuscmd.com/tutorials/opengles/index.php
As has been mentioned earlier there are some samples available from the iPhone developer site as well:
https://developer.apple.com/documentation/opengles
https://developer.apple.com/library/archive/documentation/3DDrawing/Conceptual/OpenGLES_ProgrammingGuide/Introduction/Introduction.html
You might want to take a look at this excellent Jef LaMarche’s Tutorial to OpenGL ES on the iPhone.
After spending quite a lot of time developing 3D I came to realize that in most cases the best way is to learn by examples and advance with them as you go.
Start by setting to yourself a goal to achieve (for example - implementing a particles system. this includes usage of blending modes, textures, vertex colors, batching and transformations), and then go and start with the simplest element - drawing and rotating a quad. From there go on and add textures, add more quads, etc...
While doing that you'd need some info about the syntax - this you can find in many books, but the best (very boring) source is the specification committee publication that can be found here: http://www.khronos.org/opengles/spec/
Even with that you'd bump into many problems, well, once you have a problem go to your best friend in these situations: demos and examples!
You can find many examples sources for the iPhone online and at the apple site so download them, copy paste what you need and then alter to your needs.
Have fun.
If you have downloaded the iPhone SDK examples, check out crash landing's EAGLview file. It is a pretty straight forward implementation of a GLES view that can be imported and used fairly cleanly in another project. There is another class in that project called Texture2d (if I recall) which is also pretty interesting if you are into using GLES for 2D.
May I also suggest Android - it's easy to get and you can have a working simulator really quickly. Also, it uses v1.0 as far as I know.
There could be more tutorials, but even the APIDemos provided by Google has introduction to OpenGL ES. I certainly found it helpful.