Do you use any other frameworks/engines?

Hi,
I´m wondering if you also use other frameworks or (game) engines for the iPhone besides unity? The more I look into unity for the iPhone the more I get the impression that it is really most suitable for 3D games and that it may be better to develop “easy” 2D games with a different engine or framework.

So do you have any experiences with other engines or (open source) frameworks like cocos2D for example? I really think I´m going to learn a good portion of Objective-C and the cocoa framework and try to see how I can work with them.

Today I got two books(“The iPhone´s developer´s cookbook” and “Cocoa Programming for Mac OS”) They look quite promising…

Thanks,
Marco

Unity generally is best for 3D
2D is pretty hard as it lacks the common base features for that end (tilemaps, 2d animations, 2d collision, …) so you have to implement them or fake stuff

I’ve iTGB for this very purpose of 2D development, as it is focused on 2D through 3D on its offered platforms and comes with full sources in case I need to wire in stuff.

@Marco:
How to write 2d games w/ Unity

– iPhone-Match

I am writing a 2d game(dominoes variant) with Unity but using 3d for special effects.

edited to fix url links

I’ve used Torque/Torque 2d for a lot of time, and various other engines.

I’m a Unity users since the first version came out, and I think it’s an amazing product.
It’s powerful from a technological standpoint (shaders, great graphics, realtime shadows, physics engine and so on…) and, most important, let you achieve an amazing productivity. It’s easy to use, easy to learn, and let you actually get the work done, and fast.
You can prototype an idea in a matter of hours, import and update assets in a very straightfoward way, test out what works and what not and then refine the results.

I’m now prototyping various idea for some iphone games, i have a nice selection of scripts and after a month of playing around with Unity iPhone I have a pretty good idea of what works on the phone, its limitations, control sensitivity, how many polygons, draw calls, vertices, animation I can push and so on.

Pushing 10k vertex at 30fps, with very cool touch and accelerometer control and nice partcile effects is not bad for a month of work with Unity… :stuck_out_tongue:

For 2d: Unity is a 3d engine, but it’s easy to use it for 2d content, with the added bonus of nice 3d effects.

Just use only the x and y axis, use plane with texture as sprite, texture offsets to animate your ‘sprite’, use an ortographic camera. Job done. :wink:

PS: sorry for my poor english, I’m italian. :slight_smile:

Thanks a lot, guys.

Marco

FWIW, Shiva is pretty sick. Definitely worth a look and it’s pretty cheap for the “Unlimited” version is 169.00 EU which is about $218 USD today. The big difference is that Shiva only runs on Windows. You can compile/deploy on iPhone which requires Mac, XCode, iPhone SDK and iPhone Developer status on ADC (etc.).

Here’s what I don’t like about Shiva and this may be a bonus to windows people coming to mac to get iPhone apps out. **Disclaimer: this is just my opinion here so please consider this when reading below.

  • Runs on Windows only (means using windows more than I have to which sucks)
  • Is oriented towards 3DS Max (at least the docs and tutorials are) so expect wonkiness importing from something other than Max.
  • If you want a smooth asset workflow you probably gotta shell out the huge $$ for Max. (not big on wasting time finding my mesh imports are screwy)
  • Exporting STX files to iPhone publishing tool leaves a “detached” feel when you are in that develop / deploy / test loop. Basically the workflow is develop, test on windows, export project, copy to mac, export project to XCode, build and deploy on device (a little clunky).
  • Many of the networking code examples employ the Ston3d server which costs $$ and seems like such a dated idea in the first place (note: amazon scales much better than your php server).
  • A ‘flavor’ thing but I’m pretty big on that since that means I have to waste my own time tweaking it and like Unity has some goofiness with the default rasterizer. Instead of looking dark and murky like Unity, the lighted, textured polys have too much specular intensity so they are overly ‘shiny’ and it makes the polys looks ‘plastic’ as if the textures where painted on with shiny paint. It’s just one of those ‘flavor’ things and I’m sure it can be tweaked.

Some things I like about Shiva

  • TONS of tutorials and a huge community
  • Docs are awesome especially when in comparison with the sparse unity docs
  • Single scripting language/runtime so presumably smaller footprint (NOTE: i have not actually compared the runtime footprint of Shiva and Unity but AFAIK Unity is already 25 megs out the door and much of that is those runtime DLLs). When you are talking about downloading and installing over a sucky edge connection every meg counts.
  • Many of the same features of unity (mesh import, animation blending, particle engine, physics, and networking) and possibly even some new features (poly trails motion blur etc.)
  • Lots of features and tools to get you going in any direction (terrain, animation, 2d) with loads of tutorials and examples

In short it comes down to finding a good asset workflow with your favorite modeling tool and building your game on a windows machine and jumping over to a mac to build/deploy/test on the device. If you already have Max and are used to working on windows great.

When you throw Max in there Unity is a steal since it works great with Cheetah which is $150 and you don’t need another development machine, you can do it all from your mac.

Thanks for your detailed view on Shiva! Maybe worth another look. I´m used to working on windows (but I mainly use Maya and a little bit of modo for my 3D stuff). What is true, unfortunately, is that there are not lots of tutorials for unity and the documentation could be really better, too, indeed.

What about a rigid starting screen (as in unity (indie)) in Shiva? Is there one? That´s one point which makes the indie version of unity iPhone more or less useless for me (that topic has been discussed here recently, I know… For me unity iPhone indie is a paid time-unlimited demo version :wink: )

Thanks again,
Marco

i just got unity pro and iphone advanced but i have been using cocos2d for 2d stuff and playing with sio2 for 3d… oolong looks good too but at this point im not advanced enough to need to get really low level… cocos2d is cool for 2d stuff like puzzle games and stuff like that… and if you really need a 3d object you can still do it, since you can access the glview, but i havent needed to yet… and i have been making many mods to the engine i use so its almost turning into something else… and its pretty simple to pick up…

i did see shiva and was curious how it was… its priced pretty cheap, but there is only 1 game i know of made with it so id like to see some more examples. and i have vmware so i can run windows in parallel but i really hate doing it.

before unity, i also used shiva quite some time. so here are my 2 cents:

the only import format supported is the collada format, which is supported by a wide range of applications, even wider than fbx. there are tutorials on how to get stuff from xsi - which i use - to shiva, and i successfully imported from the free blender

additional one should mention, that there is a* pathfinding integrated, which i really miss in unity, yes, i can do it myself, but it a) would be the 3rd time that i have to programm a* from scratch in another language, and b) the shiva integration is real nice integrated and set up with only a few clicks.

the linux client also is something that should be mentioned.

other then that, josgraha has pretty much said everything

Easy, easy! I’m working on it :slight_smile:

This is not my experience. My game is looking bright and crisp on the device. I am simply using diffuse textures and a directional light.

Maybe you are observing that the iphone has different Gamma than Mac OS and some of the Unity sample projects artwork especially TunnelRunner don’t really take into consideration. The lighting in TunnelRunner is also a bit tricky if I recall.

This is no different than if you are developing for the PC, or for a Console, on a Mac. Your artwork has to have the right gamma to make it look good on the target platform.

Anyways thanks for the rundown on Shiva. I am even more happy to be here with Unity now. :smile:

I wanted to put this “splash screen” issue to bed as well. I think that Unity will realize this was not such a great decision because it works both ways and may end up biting them in the end. I don’t work for Unity and do not speak on behalf of them but here is my take on the situation.

Because of the long delayed Unity logo and the loading time of all the overhead unity requires the user will end up associating all of their bad experiences with the Unity platform and not the implementor (developer). I think that companies that can afford the time it’s going to take to build the assets and tweak the playability around a highly polished game are not going to cry about $3k for the uber version. I think this is due mostly to the fact that lackluster titles are due largely to poorly thought out or unpolished implementations. Those are going to be the shops in a hurry to get an app out the door. I think those are the shops more likely to purchase the “basic” version and publish their title on that version alone. Lackluster titles are going to be more likely to carry the Unity splash banner and that in the end is going to leave the user with an association of the poor experience with Unity.

I think the splash screen is not a big deal for “web” publishing or even “desktop” publishing where a desktop machine is absorbing all the runtime overhead (faster load / shorter splash maybe?) of the unity engine and the whole splash / loading process is something common to desktop and web gamers. This also goes back to the whole asset and playability investment and particularly for web games you can have a fairly popular title without the commensurate asset investment that the typical iphone user expects. I think this goes with the apple consumer crowd. I think Apple has a strong desire to provide a consistent and quality user experience to put it mildly. I think that slow load times and lengthy moments of time where the user is looking at a loading or splash screen goes against many of the things Apple preaches to developers and the typical iphone user is probably going to whine a little when you go against such principles.

That said, look at the most popular titles on the app store. Maybe not as feature rich as what you get out of the box with Unity but all the top titles are certainly polished in the asset and playability department. Sexy visual effects, cool graphics, great sound effects and many hours spent on polishing the user and playability experience. One can be pretty sure that the underlying technology investment is at the very least somewhat proportional to the asset and playability investment. Here are some examples of popular titles:

  • Super monkey ball (assets were already done before the app was ported)
  • Cro-mag rally (same situation)
  • Crash Bandicoot (same thing)

The value proposition with unity is that you get the same or better technology that the big shops get and you can spend your time on the asset pipeline which is where you need to be spending most of your time to get a popular title on the app store. When you have a large enough investment on creative assets you won’t feel the $3k licensing to remove the splash screen. Heck, borrow the money if you think your app is good enough and if it is, show the me title and maybe i’ll lend you the money. :wink:

I think Unity will eventually get wise and go with a ‘per title’ licensing for someone who just wants to test their game concept on the app store vs. someone who is really serious about long term relationship with unity and investing hours of time building titles with their technology. The word will get out when those killer titles built with unity come out (splash screen or not).

That’s my $.02
-joe

Another thing worth checking out is SIO2 that drunknbass mentioned. This is a pretty slick framework if you don’t mind doing all your scripting in Lua.

I posted a question about this on the SIO2 forums just because i’m too lazy to do it myself and was impressed with the answer.

“… a clean project compiled with SIO2 is around 1.4 MB with everything included… Bullet, LUA, Jpeglib, theora, vorbis, zlib SIO2…”

I would be willing to give up many features (and scripting options ahem) for a smaller binary footprint, the user experience must come first and this is a mandate from apple not a matter up for debate.

However the fact is that you are not giving up very many features (except for the awesome Unity IDE), as it has a collision detection system, rigid body physics, particle system, shaders and so on. For most stuff we do in unity (game logic, col. det., scripting object heirarchy) there is a Lua analog in SIO2. But for advanced stuff you’re stuck using plain ole C code. The price is right (free) and licensing rocks (MIT). FWIW might be worth a look too.

BR_joe

Maybe not debatable for you. But as dreamora pointed out in the interminable spash screen thread, Apple’s own Texas Hold’em poker app is an astonishing 129MB.

Besides Unity Pro has stripping features to remove unused code and libraries.

SIO2 sounds cool tho.

And according to Apple, it’s the #1 best selling game of 2008. The #2 selling game is 30MB. Looks like half the top 10 are over 10MB, actually.

–Eric

…“you are not giving up very many features (except for the awesome Unity IDE”…

probably the one feature I won’t compromise on either :wink: Who knows maybe prototype in Unity and port your JS libs to SiO2 for the overly ambitious.

Note that Apple’s Texas hold’em isn’t one of the top performing games either but it’s rich with video cutscenes and photorealistic backgrounds etc. Probably all of that footprint is creative assets with a pretty minimal runtime. I didn’t bother reading through all of the near 1800 comments to find someone complaining about install time or that it’s only available on 3G and Wifi (I wouldn’t be suprised to see something like that). There is a hard 10 meg limit on app installs over 10 megs to Wifi and 3G (and iTunes) only. Even 3G phones in Edge zones will use Edge where 3G is unavailable. This is probably most areas or in buildings where 3G signals are not as strong as Edge. If your total assets are say around 5 megs because it’s all textures, sounds, and meshes for let’s say for a casual game it would be nice to have the option to sell your game to your impulse shopping user sitting in an office building on an iPhone in Edge mode who wants your casual game to be able to buy and install it right then and there. However the runtime won’t allow that because it is over 10 megs the user must resort to 3G, wifi, or iTunes to install.

Nice to have the option is all i’m saying. It’s going to be a point of pain for the user even if it doesn’t cost you a single sale on the app store.

I love Unity, but if you are making a 2-D game, you’d be nuts to fight against Unity when Cocoa is so great. There’s a reason the Unity devs picked Cocoa to build Unity in.

I think the cookbook is a little out of date – it was written based on the JailBreak API, pre-XCode and Interface Builder, and so it has you building all of your interfaces in code. Which isn’t all bad, certainly you can write a fantastic game that way. I wrote my first game without using IB at all. But a lot of Apple’s more recent docs lean the other way.

Check out Bill Dudney’s Core Animation book. It’s a little overpriced for what you get and the iPhone chapter feels tacked on, but overall it’s pretty thorough and the author replies to questions on his forum or twitter.

just so you know the iphone book by nervegas is being updated and a new updated version is being printed. so its more sdk compliant. but after doing games in core animation ill never do one again… you dont have a very high roof and it seems ca is more oriented to interface animation not game animation

Apps are distributed as ZIP compressed. Unity main executable compressed is below 4Mb.

But they seem to first be wrapped with DRM, which randomizes the bits enough where the compression brings it up above 10 megabytes considerably. Are there any Unity apps out there currently under 13 megabytes?