21.12.11

NanoEngine

NanoEngine is a next generation 3D engine - which is developing by me, day-by-day it gets new functionality. Primary tasks are: full scalability on multicore processors, robust memory management, stereo support(NVIDIA 3DVision and AMD HD3D) and next generation graphics algorithms.
Engine uses task-based multithreading to do self-parallelization on all processor's cores. So we got a lot opportunities: parallel sorting, parallel cycles(for, while), parallel jobs - all these are tasks. Tasks are attached to a core in random way, this technique known as "task steal": every thread has Spy, which tells to a thread, that it can steal task from task pool.
Memory management is a very complex task for a programmer, because of many drawbacks using bad algorithm - everything is R&D here. We are using memory pool system. This thing gives us controlling jacks how memory was used. Another is a technique called "smart pointers". I will not describe this programming technique, because you may already used in your code. For those who haven't used it:
boost::smart_ptr
Wikipedia page about Smart Pointers
Stereo support is also complex R&D question: we have a lot of techniques like stereoscopic via anaglyph, or true stereo through glasses like NVIDIA 3D Vision. It's very easy to add stereo to your application, but sometimes graphics techniques needs to be reworked to accomodate changes. This happened to me. I have Deferred Shading in NanoEngine - stereoscopic vision will not work in traditional version - as I mentioned, we need to rework DS to be stereoscopic. I will describe what I've done in next post.
Most wanted feature by me is flexible toolset, "cut" compile-times as much as I can, and make it more run-time-based. Run-time - I mean game and editor must be a whole: we edit something, press "Let's play!" button, and here we are - in the game! No compiling of a level, no jumping from editor executable to game executable.
This is what I am working on. I will try to update engine state in the blog as fast as I could: screenshots, videos, more technical information and etc.

17.12.11

In English, please!

I have account in Linked-In professional social network - this blog is main web page link in my account. Non-russian readers also joined us, so that's why I move on other language boat.
In near future I will translate all previous posts into english language, please wait for a while.