Blog

 Developer Comments                                             

Localization Update

The main focus of the next update is localization support for Emerald Run. The supported languages will be French, German, Portuguese and Spanish. I'll expand to more languages in the future.

Also, there will be some improvement in the graphics shaders. iPad 2 shadow mode should be better. Another interesting tidbit is that doubling the shadow map resolution on iPad 2 does not really harm performance but yields much better results. Lower end armv7 devices should run a little better too.

Emerald Run Enhancements

iPad 2 players its your lucky day ! I have enabled OpenGL ES 2 graphics on iPad 2. The OpenGL ES 2 switch is enabled after the update. You will now see wind effects on the trees, shadows, enhanced water and bump mapping. If you do not like the new look, you can always disable it and go back to the old graphics. The screen layout on all iPads has been updated too.


p1b


Speaking of wind effects, one thing I've always wanted to enhance is the pine tree leaves. The leaves now sway in the wind -- vertex shaders can be a wonderful thing. If you travel to the tops of hills, there are wind gust sounds. The trees also make pine needle sounds. It gives the environment an ambient feel.

The OpenAL sound model was adjusted and there is more of a roll off effect with distance sounds.

There are more particle effects when Spiders are destroyed. Purple sparks are emitted.

When the truck is moving on steep hills, it will kick loose debris and make additional sounds. Moreover, if you are lower on steep hills, the camera will elevate itself and the ground is not clipped.

Emerald Run Holiday Update

I've submitted a free update for the Emerald Run game to the app store. The focus of the update is optimization and bug fixes.

As a side note, the game runs marvously well on an iPhone 4S with all settings turned on max. Also, the shadow sample rate is double on the 4S!

On the flip side, there will be speed ups in graphics especially with shadows turned off -- 3rd and 4th generation iPods and iPhone 3GS should see this improvement the most.

Robots

I finally got to the point where there is a monster! I constructed a robot figure and made tentacle arms which really shows off weights and skinning. Next action item is to give the robots some AI. I need to offset the initial animation for each robot. In this case, they are too synchronized with each other.

Screenshot 2011.11.22 20.23.48

Another issue is the player has to tilt a little when going up and down hills. Otherwise, the shots will not follow the contour of the hills -- this is not a platform game. But the twist is if the player goes sideways on the hill, then no need to bend up or down. So, while the animation is happening, there is an additional transform to the one of the joint matrices.

p3

I replaced my standard game UI with Storyboards. Storyboards in Xcode 4.2 are much simpler to use! In addition, I've thrown in some basic Game Center support for scores and achievements. Game Center integration was a little simpler than I initially expected. So, a time saver.

I just really liked this screenshot and threw this one into the blog. The robots need dust puffs too.

Laser carbine.

Slowly making progress on my next game!

The latest challenge was integrating a laser carbine with the character animation. So, I had to tweak the model. The difficult part was lining up the shot and finding the muzzle of the laser carbine while the model is actually animating. But it all worked out. The gun is moving while the character walks.

Looks like the next steps are creating all sorts of monsters etc. Populate the world more with stuff. I can use the skinning techniques on background objects too. So, should be interesting. I will have to switch to a modelers frame of mind.

I spent some time on the controls too. The next game will not use the accelerometer. Moreover, things in the hud are now driven from the database.

Threw in some sounds too. Little different this time because its someone walking and the focal point is not a vehicle driving or flying around.

Here are some shots. These were taken on a 4th generation iPod with 8G of memory. Had to down sample the shots for the blog. In the real game the play button will disappear too.

Preparing for iOS 5

It is iOS 5 update time! I've reviewed my games and downloaded the latest Xcode tools.

Emerald Run has some issues on iOS 5. Fortunately, they have been resolved and I submitted an update today. The case that broke is when shadows are turned on. There was a problem with the fragment shader related to shadows in iOS 5. Also, I ran the game with the OpenGL ES analysis tools again which showed some new issues -- its Xcode 4.2 / Instruments which appears to catch more problems.

Ant Planet, Astroidica and Sea Assault appear to run well on iOS 5. I synced with the new iTunes beta on a test iPod with iOS 5.

I'm glad the new tools went gold master. I'm interested in ARC and story boards.  -- its been a long wait. I like to wait until the GM release, then quickly get things in order. If its like the iOS 4 release, there will be a small time window to get things updated. Seems like OpenGL ES 2 runs faster too.

Emerald Run update and new project Improvements

Always the busy bee programming...

I circled the wagons and improved shadows -- there is enough juice on the third generation iPod for it. The first generation iPad defiantly does not have enough juice. One of the issues was using a perspective projection to draw shadows. I changed this to an orthographic projection. So, shadows draw better with directional lighting. This is better suited to an outdoor scene. Sometimes you can fudge a perspective projection with a light that is very distant.  Also, I'd like to do cascading shadow maps but I'm pretty sure there is not enough juice on these iDevices to handle it.

I've updated the Emerald Run game with orthographic shadow projections. I've submitted these changes to the app store yesterday.  Before the shadows would drift a little when the player moved because the light was too close. There are other minor fixes in the free update too.

The shadows in the following shots have percentage closer filtering to smooth the edges. For Emerald Run, I disable this on slower hardware. In these shots, there are five samples being taken for each shaded fragment.

Test World and Tools

The test game world needs boundaries. Typically it can be an island  or an area surrounded by barriers. I've seen some games that even make a small planetoids with fractals. In this case, I made an island.

Depending on the camera angle, the horizon can be an issue. OpenGL ES 2 can really help with drawing horizons. One can do all sorts of alpha channel and depth tricks with shaders.

I made the character mesh with the free MakeHuman program. One initial issue was the default mesh is too much for the iDevice. Fortunately, newer versions of MakeHuman do have a lower poly count mesh suitable for games. One issue about using MakeHuman is you have to go through Blender with an export -- they have their own file format. I recall the lower polygon mesh is limited to the blender mbx export. By default Blender has the MakeHuman import disabled and you need to enable it.

I upgraded my Carrara and Modo programs. One thing to be careful of is the first release of Lion disables the super user on the Mac. When this happens, you cannot register the Carrara upgrade! Lion 10.7.1 might fix this. The Modo upgrade is much improved since 301. My only gripe with Modo is the program crashes all the time on the Mac -- annoying when you did not save! The crash consistency is about that same on 5.x and 3.x was. I really like the Modo material presets.

Engine Improvements

I've been busy the last month improving Reliabit's game engine. The focus this time has been dae file import and animation.

The first phase of this development process has been to read an alternative format to .obj . I initially chose .obj / mtl because it was commonly supported and easy to parse. All of the modeling tools I have support it. Newer file formats I considered reading are fbx or dae files. I did not feel comfortable with fbx -- Seems to crash lots of my tools. Also, dae is a xml format and by default the Mac operating system displays these files. ( albeit without animation )  So, I feel modeling tool developers will be compelled to support the dae format. Anyhow, the point of importing from dae is I can get at  joints ( called nodes ), weights and animation data. This is something that the old .obj format did not support. The new version of Cheetah 3D supports dae export. I used the Alien Walk model as a test case. The dae file format is really extensive -- it describes an entire scene. dae was developed at Sony and is an open standard. Though, I wish they could improve their official documentation because the vertex skinning portion of the pdf document is confusing.

Emerald Run Maintenance

I submitted an Emerald Run update to the app store. The primary focus of this update is to improve the graphics performance in OpenGL ES 2.

One interesting thing I found is how important discard buffer extension is in OpenGL ES 2 -- especially if your using Apple's multisampling. Discarding the buffers improved performance. In OpenGL ES 1, this was a non issue.

I also added vertex array objects when using OpenGL ES 2.

There were many issues detected in the instruments program that is bundled with Xcode 4. The OpenGL ES analyzer results led to many good graphics fixes.

I replaced the UIWebViews in scores and faq. I feel these objects are too heavy weight for the application and might interfere with performance.

The new application is constructed with Xcode 4.02.

We'll see how fast the app review process is chugging these days. The update is free.

Site Update

I updated the Reliabit website with Karelia's Sandvox 2.0 software. Things appear to have gone smoothly.

Emerald Run now universal

iOS 4.2 is available and now I can update Emerald Run for iPad! I had already created infrastructure for this previously but had not enabled it. The update will be free.

Also, some minor shader tweaks on iOS 4.21. Apparently, if you have a unused varying variable in your vertex and fragment program you get a link error! Fortunately, if I get a shader compile or link error, the program will always fall back to something I call the bumper shader. I always make the bumper shader the simplest shader possible -- just making a blue color with no shading. One of the drawbacks of glsl in general is that it can puke in different versions of the OS and hardware depending on the driver implementation. I would emphasize lame pc video cards, for example, as being unreliable in general. But the point of a bumper shader fallback is to ensure the app does not crash badly which it did not in this case. So, blue brake lights and blue radar dots -- fixed in the update.

Also, I put in some minor fixes n' tweaks with regards to rotation and physics.


©2012 Reliabit,LLC. All rights reserved.