Hi Polycount !
After years of lurking, now I think I'm ready to post my first real job.
About myself, in few words, I'm a CG student and I just completed my 3rd year at HEAJ ( now called ESIAJ). The environment I want to share with you is inspired from Half-life², Rage, Bioshock, and more, and was optimized for an Ipad2. But just for the eye, I took high res screen with the Ios previewer.
To complete my post, a sample of the tillable textures made...
And to finish, a little composition made from inused asset (rendered on PC this time.)
If you enjoyed my work, you can visit my new portfolio :
geoffreyrosin.com
Any critics, suggestions are welcome
Thanks for your attemption !
Replies
If you where just wanting a environment to showcase visually, i think its great, but since you said its optimized for A5 only (iPad2, iPhone 4s) it makes me think the FPS is really bad on the 4G stuff (which is the #1 target platform for developers).
I've worked with UE3 Mobile for the past 1 1/2 years and i can tell you right now its a nightmare to build optimized environments. Its a completely different workflow than working with regular UDK (or any other next gen engine)
Im curios to see what your grouping and texture count look like (aka draw calls) and are you using PCV?
TBH saying it runs good on a iPad 2 isnt much of an accomplishment. In our game we can have a fully unoptimized environment with 50 high poly creatures running around (and dynamic lighting, ect) with a solid frame rate. And thats without Pre Computed Visibility as well.
Looks great though, just the big question when posting mobile stuff is- is it optimized? The fact you are using tilable textures in the tradional sense raises alarms for me. Tilables on mobile are a big no- no. And there are alot of reasons for that. An entire level shouldnt have more than 3-4 textures. For this environment you could easly have done it with 1-2 textures and very few static mesh draw calls. I dont see any reason why this couldnt be running 40fps + on a iPhone 4G.
Also, did you use normal maps in this environment? The textures look a little flat. You can bake normal lighting information into the lightmaps on UDK Mobile, giving the illusion of bump mapping with no runtime memory cost, and yeah using lightmap modifcation maps generally give you bad results unless you have a massive lightmap resolution size.
You have to know that it's just a student job given on a target platform^^'. I manage to never reach more than 45 drawcall and 45K tris per room and it permit me to stay above the 60 Fps, using gama correction and no PCV (just a cull distance volume) , so I think I can say my work is optimized. Maybe not for Ipad1 (I don't have one to test), but for Ipad2 and it runs. As an exemple, I can show you a sample of my "grouping".
And it use this texture :
I have an other example :
This bit is composed of 2 objets ; The vents and the metal walk. And they use the same texture.
About my generic textures, I only use them for my "main" base. I have so a big mesh (2000 tris generally) wich use 4-5 generic textures. Yeah, maybe it's 4-5 drawcall, but it's a lot easier to work with and that's the only case where I did that.
About the normal map, it was just impossible in my case because of the kind of texture I used (they are really flat ). I manage to never used more than 1024 Lightmaps because I had a lot of meshs in my level and it just permits me to use sometime Lightmap modification.
Did I answer to all of your interogations ?
My only concern was the optimization factor. If you where looking to get a job doing mobile games or such, constructing your environment this way might not be effecient. Having more than 2 material IDs per object is not going to be good. Also, all of these textures you have, you can combine into one atlas. For tilable textures, you can merge all into 1 sheet and tile them via geometry. Polycount is actually not the bottleneck for mobile, it is Draw Calls. The Mobile Devices can handle a surprisingly large number of polygons, but if they recieve more than 20-25 draw calls on screen, they choke. Thus the goal becomes to reduce texture count and mesh count as much as possible. Even if it means increasing your polycount and reducing your texture resolution (by merging textures).
Let me show you an example of a map i completed for a UE3 Mobile game to give you an idea of what i mean..
You will note here everything in this scene is on 1 texture, including the buildings in the distance. And all together the meshes in this screenshot come out to 4. So this entire scene is 8-10 draw calls when the player is running through. I get 40-50 fps on a iPhone 4G here because of this. Of course, it is also designed in such a way that as you run through, the entire parking lot + shopping center mesh do not render untill you are about to enter that area, making PCV and max draw distance w/ lods very important. But with a room like yours, you could have combined all textures (including tilables) into 1 or 2 texture atlas's and combined meshes for a very optimized scene. Yes your texture resolution will suffer as will your lightmap shadow quality, but its really not a bad as it sounds and of course, it runs very smoothly on all devices, which when making levels for an actual game is the number one priority.
Its all good bro, you did a really good job with your scene, but if you want great optimization, you have to think in `extremes` with mobile. I cant wait untill iPhone 4G is obselete and no one uses it anymore (like 1G, 2G, or even 3G) than all this optimization stuff will be a thing of the past. Give it 2-3 more years and everything i just said will be useless
You should be able to use Dominant lights in UDK mobile for lightshafts and stuff. If that is what you mean? Dynamic movable lights arent supported in mobile though, i dont think.