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.
Are there any game engines for iPhone?
Yes. A quick google search shows:
cocos2d
Unity
Oolong Engine
Torque
And others.
The two most popular are probably Oolong and SIO2 but for what it's worth, I recommend you do something like this:
Sound: use CAF files and apple's own SoundEngine OpenAL wrapper class from the samples (beware, there are memory leaks in the example code you'll need to plug)
Models: use this wavefront OBJ loader for obj and mtl files exported directly from Blender or Max
Textures: use Apple's own Texture2D class from the samples (bmp will work, but I recommend png because of the platform optimizations)
'Engine' is really just the classes that glue this stuff together. This guy's doxygen seems kind of "textbook". This guy also has a decent example UML too (IMHO).
Personally I think it's all so subjective, you really should write this stuff yourself because it should be architected for the way you need it, not just something written that tries to be everything to everybody.
FYI, our team decided to do everything in Objective-C++, where the core of the game is written in C++ and there is a thin layer of Objective-C on top of it that glues the code to the UI widgets and such things.
Check out the Airplay SDK which is a C++ cross-platform game SDK for iOS, Android, and 6 more mobile OSes. The code is compiled into native ARM binary. You even don't need a Mac to create and deploy your app, and there is a nice license for indies.
I have also heard of the Esenthel engine, which is a Windows/Mac engine that also supports iOS, according to their website. Looks like a one-man project though.
There is an iPhone version of the Torque Game Engine.
There is also:
The SIO2 Game Engine
ShiVa
Unity
The best way to do this is to use Cocos2d or role your own code. The apple sdk does not permit for third party sdk's and you would want to take advantage of the full resources of objective c in xcode anyway. Learn objective c it is not hard and it is getting miserable listening to all the web and javascripters out there trying to find an easy way when it couldn't be easier then Apples own tools.
Yes.
Cocos2d is a great one. I have used it frequently and it provide all what you need.
www.cocos2d-iphone.org
Related
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.
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.
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.
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.
Is there any way we can convert text to speech in an iPhone app?
Is it possible using the SDK?
The Flite speech synthesis engine can be run on an iPhone, ref http://artofsystems.blogspot.com/2009/02/speech-synthesis-on-iphone-with-flite.html
I don't think iPhone SDK provides any TTS facility internally. You should use a third party TTS engine or write one yourself.
OpenEars also does text-to-speech on the iPhone (note: I'm the developer).
I'm probably bumping a dead thread but the Flite text-to-speech engine worked wonders for me!
Hope it helps!
Here's another text to speech:
https://bitbucket.org/sfoster/iphone-tts/
You need to download it and install as an API
then you can use it like that :
[fliteEngine speakText:#"Hi there"]; // Make it talk
[fliteEngine setPitch:90.0 variance:50.0 speed:0.9]; // Change the voice properties
[fliteEngine setVoice:#"cmu_us_awb"]; // Switch to a different voice
[fliteEngine stopTalking]; // stop talking
Pretty easy to use once you installed it as an API correctly.
http://github.com/KingOfBrian/VocalKit
I wrote a wrapper around pocket sphinx and flite, you should be able to check it out pretty quickly.
The Tomsoft engine is only slow with the custom voices. I'm not sure why. But if you remove the other voices and just the integrated basic KAL voice it will speak almost instanteously. Please send me an email using the contact form on my website if you need any help with this.
for text to sound files I just found these will researching above files
http://www.ivona.com/online/editor.php
http://www.acapela-box.com/
IVONA also has IPhone SDK
http://www.ivona.com/developer.php
Hoya VoiceText is the original provider of the TTS engine. Most of the commercial companies in US create a wrapper around VocieText and resell it.
This was developed by Pentax (LG's spinoff - Korean) which got bought by Hoya (a huge Japanese firm).
Visit here to send a request for the TTS engine:
http://voicetext.jp/blog/122.html
Use google translate for English website.
Hoya is based in Japan, but they own NeoSpeech, which is their US provider of the VoiceText Engine. Check out their website for demos.
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.