Saturday, March 28, 2009

Concurrent animator and architectures screen shot

It has been quite a while since the last post. We have been really busy working on pushing the first release of our character editor. The good news is that most of the functionalities have already been implemented and tested, we are just finishing off the particle editing and binary format exporting. Then we should be all set to go.

The quick report for the work that we've done for the past two weeks is as follows: first, I finished implementing the concurrent MD5 animator, which allows concurrent updating of animations for a character. The benchmark with a single character animator running in parallel with the rendering operation shows a 7.3% percent frame rate increase and a 12% CPU utilization increase on an Intel Core 2 Duo processor. The result should scale up very nicely once you introduce hundreds of characters running around on the screen. In our single character test, the total CPU utilization is only about 20%. Second, Tim has been working really hard to finish up implementing the particle editing functionalities for the character editor. Some of the early test cases have shown very impressive effects. The last time I checked, we only have two more functionalities to go.

That's pretty much the shortened version of what we've been doing. And here's a nice treat. Last week we got a screen shot from our art team of some of the environmental architectures. So here it is, the first public screen shot of Project Essence.

04/02/2009

Further testing both by our team and outside sources who also use the import has shown a great performance improvement of the concurrent animator over the single threaded version. Here are some of the testing results:

Single threaded 1 character:   95 FPS
Single threaded 2 characters:  47 FPS
FPS decrease: 102%

Concurrent 1 character:   880 FPS
Concurrent 2 characters:  705 FPS
FPS decrease: 24.8%


04/03/2009

I have made several optimizations to both concurrent and single threaded versions of the MD5Importer animator. The performance of the single threaded version has been significantly improved. The "laggy" problem in the concurrent version has been solved with these optimizations. Also the concurrent version has gained a 4% performance improvement as well. With the help from these new optimizations, the scalability of the concurrent version should be significantly improved. You should see a linear performance decrease with very small slope as you add in a lot of animated characters.

Here are some new testing results:

Single threaded 1 character:   820 FPS
Single threaded 2 characters:  670 FPS
FPS decrease: 22.4%

Concurrent 1 character:   870 FPS
Concurrent 2 characters:  720 FPS
FPS decrease: 20.1%

Notice the result here is largely GPU bound rather than CPU bound. The 2 character case is not enough to show CPU scalability.



Saturday, March 7, 2009

The beginning of Essence

It is exciting that I have finally created the first public portal to Project Essence, a commercial project that I have been working on for the past two years. This blog will be maintained by me and Tim, our talented lead software engineer and gameplay designer. As of me, I am the creative director and lead architect of Project Essence.

Project Essence is a two part commercial project initiated in the fall of 2006. The first part of Project Essence is to develop a next generation commercial quality graphics engine using Java and OpenGL technologies. And the second part of Essence is a revolutionary cross-platform, highly action oriented massive multi-player online game. The project is scheduled to reach its alpha stage in fall 2009, which is about half a year from now. Currently the graphics engine architecture has been implemented. Some essential modules have also been implemented and tested. The team is busy working on the first release of our character editor.

Due to time constraints, Essence is currently utilizing some parts of JavaMonkeyEngine at the lower system level. I would really like to thank the brilliant developers of jME. Without their excellent work, Essence would not be able to reach its current stage. And the team of Essence would also like to contribute back to the jME community. Therefore, we will be releasing our character/world editor to the general public under open source license very soon.

That's it for the first post. Stay tuned for more information on our graphics engine and the current progress of the soon to be released character editor next time.

Thanks
Yi