How could they do it?

major game makers for some reason are able to create huge scenes with tons of perfectly made models of characters and huge building left and right and the game still runs very well.
Take for instant, latest spider man game, spiderman model doesn’t have edges and stuff, it’s all nice and round, in the same scene has many enemy characters which are also nice and round, not boxy at all, background with many building models…
All that and the game runs really well, you can jump, kick and punch and no problem.

Now do this in Unity and you are guaranteed a close to 5 frames per second, that if you can even get to 5!!!

How could they do it, while clearly we can’t!

How are we ever going to compete and get at least some of the market share, if we don’t even have decent tools???

Not trying to bash Unity3D, but just trying to understand how?

I think they are using Occlusion Culling.

+profiling to squeeze the most performance out of it
+well-written shaders which run like a dream

+massive amounts of time to get it done right
+highly skilled professionals
+working on the problem every waking hour
+a commitment to doing the best work they can

-not trying to churn out some piece of crap for the lowest bid
-not using off-the-peg crappy Turbosquid models made by some 14yr-old with a pirated copy of Maya
-not trying to get it done in 3 days and then proclaiming “TADA! I MADE GAME! PAY ME NOWZ!”

i feel even more pessimistic than i was before posting !
i am trying to find any ideas to cheer me up a bit???

Yeah you can make 14k with 5 days work making a minigame? I know I did.

They probably have multiple fulltime artists and programmers. Its priced at 6.99 which is pretty damn expensive for an iphone game, and I wont buy anything made by gameloft.

well i think big companies put a lot of risk on this, because of the big budget they get into the play…

i mean, they must have like a whole team of very talented and skilled artists working on this, i dont know how much are them for game but i guess they must be lets say… 4 modelers, 4 graphic artists, sound compousers and effects technicians, like 3 coders maybe i dont know…
but my point is, each group of artists can work together and create great stuff, they support together, like a team! and each of them specializes in their strongest area, in the other hand it’s you, or me, or anyone here wich most of the time we are like 1 man shop… we have to take care of everything, and with none to almost none budget / time to get it done, because most of us do this on our free time.

i mean, in my specific case i had to start from learning some blender ( because its free ) to get my models and assets done to learn about music effects or spend hours trying to get some “tune” done in any free soft i can get on google, trying to learn some gimp with free tutorials on the web to try to do some nice graphics and textures for my games and besides of all that get all the coding part done, and done right because things have to work as expected, you just cant do a game where the scores are failing or when an script some times work and some times doesnt… that is huge work, very demanding and at least in my case i have to do things that are not my area like graphics things, im coder i even cant draw a simple square house on paiper…

so i think thats maybe a reason, this companies have a lot of people involved, people working on their expertices and they do great things, now, im not saying we cant, because you learn to do stuff with the pass of the time, but you just can expect trying to make your first game and expecting to get something like Infinity Blade done in 3 months starting from 0.

that’s my two cents, sorry my english!

cheers and keep it up!

It’s just experience that allows you to squeeze every possible drop of power from the device… Also, smart art direction, recycling of assets and extremely efficient code :slight_smile:

We try to work to 15,000 triangles total (10,000 static), and ideally half of those or less on screen at once, no more than 4 major textures, and the less components and scripts, the better.

Read the ‘Optimising for iPhone’ guide 30 times. It’s got great advice :slight_smile:

Hey there.

Can you point me to this guide? Is this a forum thread or a book?

It’s basic section in Unity documents right here: Unity - Manual: Optimizing Performance on iOS

It’s not just the tools. Many games, even on PC and console, use a great deal of smoke and mirrors to get across what the art team want to achieve.

That said, tools can box you in if you rely on them too much, and it’s one of the pitfalls of do-it-all game engines; they remove many reasons for new would-be devs to actually learn about doing things the hard way. Unity, as a tool, is tremendous, but it’s not the whole story. Our own in-house tech has been matured over the past decade - on iOS we can get nearly double the performance that we can through Unity, but there are many reasons for that, such as very lightweight and highly optimised code. We could probably get better performance out of Unity if we pressed it, but we just haven’t been in a position to need to, because we aim low. Life’s too short!

Anyway, as I say, just aim low with your content. Big buildings and impressive vistas don’t mean lots of huge textures and high poly objects. Work from the bottom up, rather the top-down, until you get a feel for how the tricks work and are able to plan from both ends when putting your art together.

Also have a look at other games and engines and how they do stuff. I can only talk for the graphics side of things as I’m not that much of a programmer. Nevertheless: There’s the projects that come with Unity. Then tehre’s UDK - which comes with its own projects and demos. Then there’s other games that ship with the editors and tool so you can have a look at how they do things. Last not least there’s more forums besides this one - polycount, cgsociety, zbrushcentral. There’s books on game art even though most of them can’t possibly be as up to date with the tech as they need to be. Still there are quite a few out there that teach you the basic knowledge.

The rest is practis. Practis, practise, practise. Try what works and what doesn’t. If you put a model in the scene and suddenly the framerate drops by 10fps there’s something very wrong with it, you’ve used an extremely expensive shader or you’ve reached a threashhold of your games capabilities. Read through the documentation of unity on what to do and what game asset is how expensive.

Or in short: Stay educated! The more you know the better you get. The better you are the more you can get out of your tools. The more you can get out of your tools the smoother everything will run.

How ? What kind of games are we looking at ?

Polycount is one of the major things to look for when making huge scenes. If you have 30k polys in the scene, there is no way that i can see that would make that 30k polys act like 7k polys!? is there ?
What i see, those major game makers must be using something that Unity cannot achieve! I mean there is no way that a scene in the latest spiderman game would have less than 30k polys, yet the game runs very well.
When in unity, if i have over 9k in the scene, the game drops in frame rate dramatically!
Specially on the iPhone, iPad seem to be better (not saying FR does not drop, it does but still looks fine on screen since iPad runs at 60FPS).

you can only go so far with profiling and shaders. I am working on a game with a 12k level, 700 an enemy, 700 each weapon. The level is huge, so only part of the level shows at a time, which most of the time gives 6k on the unity stats. Once two or more enemies get in the scene, the FR drops to 10fps and less!
stats says 9k to 10k and sometimes 11k.
That’s on iPhone, however iPad runs smoothly giving the fact that it runs at 60fps and not 30fps like the iPhone.

gameloft make very good games, at least most of the time!

You can handle a lot more poly without problem, you probably have other bottleneck in the scene. You can push arount a lot of vertices on iPhone 3GS+, but look out for skinned animation, physics, very heavy script, creating and destroying object at runtime, anything CPU-related. If you have higher framerate on the iPad 1 than on an iPhone, you’re CPU bound, not GPU bound.

12k polys for a single level pose no problem for Unity, you can push a lot more around without problem.
If your framerate drops when you have two enemy the problem is probably related to some script, maybe IA routine, or heavy physics, or maybe skinned animation, not on the number of polygon itself.
It’s pretty easy to kill the framerate using the wrong practice on iOS.

My AI is simple, perform a search for player based on distance, then attack if player is in range and shoot angle is in range.
There is about 22 animation attached to each enemy, used around 5 of them.
As to physics, basically both player and enemy are using character controller. Only when an enemy has died, it instantiate a ragdoll of itself based on a prefab, with a small script that copy’s the position and rotation.

My testing is on iPhone 3Gs and iPad 1.
iPhone FR drops to a really bad rate around 10fps when there is two or more enemies, where as iPad rungs just fine even with 4 or 5 enemies at a time.

Each enemy is 700 polys, where the player is only a gun that sticks out in the scene with around 700 polys as well.