Jan 5, 2010 - 28

I am improving my game design ability, did some brainstorming. Already have around 80 gameplay ideas ))
I want to have clear picture of gameplay before implementing something. After 2 or 3 project without gameplay at all ))
Here is my plan:
1) raw ideas in mind and pictures 2) design document 3) draft demo with simple graphics and animations 4) play testing 5) final graphics and animations




Dec 24, 2009 - First horde tests


Spent day for implementing steering behaviors for horde.

Recast navigation + avoid nearest neighbor (with prediction, OpenSteer style) + avoid near walls

Recast navigation + avoid nearest neighbor (with prediction, OpenSteer style) + avoid walls only after collision + avoid dynamic obstacles


It needs time to update nav mesh (usually nav mesh updated with 0.5 sec intervals), so sometimes bots can go throw obstacle. Maybe for moving obstacles I need to use same steering behavior as for another bots. Does it look natural? Or need some enhancements?

Dec 24, 2009 - 26

http://forums.tigsource.com/index.php?topic=8625.0 very funny about indies style=”font-size: 13px;”>

Dec 18, 2009 - 25

finally understand, what is Velocity Obstacle.
it’s freakin simple ))
print of the source article helps a lot
it will be hordes of zombies!!!

Dec 17, 2009 - Recast navigation + steering behavior + wall repulse force


path following force + steering behaviors + wall repulse force red line - path from Recast grreen line - resulting velocity blue line - wall repulse force

Dec 15, 2009 - Simple steering behavior


I added yesterday simple steering behavior for bots. Movement became more realistic than previous direct path following. Now bot has velocity and acceleration, and it tries to move along current path line.

Remaining task - dealing with walls (current bot position now not exactly on the safe path), moving obstacles.

Dec 14, 2009 - simple optimization

If you have vector assignment in your code, use Swap member function of std::vector, if you will not need source vector anymore it will save you one memory allocation

void SetPath_Dirty(vec3& path) {
	m_path.swap(path);
}

Dec 9, 2009 - Lighting features of my engine


Deferred shading (plus Doom3-like lighting for slow hardware), more than 1000 lights (without shadows) possible simultaneously, soft shadow maps for omni lights, attenuation maps, fog, bump maps, specular maps, ambient etc.

Dec 7, 2009 - Recast dynamic navigation meshes


Some examples of using Recast dynamic navigation meshes in gameplay

Dec 1, 2009 - Memory management

</a>

Usually C++ uses linked list to holding free memory chunks, so searching for free chunk is not fast. Especially for small objects. So I decided to optimize allocating of memory using special pool allocator. All small objects in engine have base class, which get and release memory from pool allocator. 3x times optimization for memory allocation (small objects) Look Andrei Alexandrescu Modern C++ Design and in details here</span>