Maya: Totus Village

Totus in MayaWith my work on getting even better frame rates in my engine, I’ve began instancing objects, z-ordering, scenegraphing, etc. And to make the most of this, I’ve begun to learn to use Maya with some helpful tips from the artists and work. So I’ve started to improve the quality of my original Totus Village model I made using Milkshape3D.

As you can see I’ve added doorways now, and well as roofs (although some are still not quite complete roofs yet). There is a new terrain being work on, that will hopefully be better for area Totus village is in (between two mountain ranges, with a forest to the south and plains to the north).

I’m currently decided what to do with the walls, its hard to tell from the original SNES graphics what they were trying to do with the walls. On the one hand they appear to be supported by beams, on the other those shadows on the beams could just the be the wall on the upper half. I’ve began working on a tool that takes the COLLADA file and converts it to my geometry format, as well as some geometry optimisations through Tootle.

Legend of Bob: Title Screen

Legend of Bob - Loading ScreenThe day of the hand was today, so myself and my housemates did an all nighter to add the finishing touches to our AGT projects, and despite not liking coffee, by the end of the night I was drinking it.

One of my housemates, Johnny, made me a great loading screen and title screen. The loading screen, would have been better if the candle flickered, but I didn’t have time to multithread it.

More research is needed to know if Ogre3D can be multithreaded safely.

Legend of Bob - Title ScreenThe title screen is just as basic as the loading screen, after I created a Lua script to control it. It has only two options, “Start New Game” and “Exit”.

I wish, as with the loading screen I had time to improve it, maybe some ambient music for the background, and the ability to save and load.

Legend of Bob: Bloom and Cel Shading

agt_16I finally rewrote my Cel Shading shader from DirectX to Cg, giving a very nice effect compared with the old one. The one I was using previously was per vertex shading, which gave an ugly look, however the one I’ve converted over from DirectX I wrote a while ago uses per pixel shading.

However there is a downside, the black outline edge is current done by drawing backfaces in wireframe with line thickness, the lower the anti-aliasing, the worse it appears. I’m thinking that if I use the depth buffer I can generate my own outlines based on depth change per pixel.

agt_17

I have also modified the texture splat ARGB map to be smoother and use more toon like textures rather than realistic to go more with the overall theme of the game.

The contrast before was noticable, however the lack of shadows does give the impression now that the character is hovering above the ground, so I added basic shadows to solve this.

To finish off the post process effects, I added a Bloom shader.

Early Bird Gets the Worm, but Second Mouse Gets the Cheese

Lots more work done on Tales of Phantasia last night, animations, NPC interaction and a bit more framework optimization. Screenshots to be added soon.

Not only did I do that, but I finally got around to putting the finishing touches to my event system, now it now the type of variable that is being set, and I also finally found a use for template functions (thats right, functions, not classes, didn’t know they existed til last month).

What use you say? Quick function overloading, not really much point, but it saves the hassle of type casts. I’m currently using a 32bit unsigned integer for storing the variable type, which gives me 32 potential arguments for my events, I only use 5 at the moment, and I think I can remove one of them.

template<typename T>
void SetArgumentAsNumber( const unsigned int inIndex, const T inValue )
{
	Arg[inIndex].d = (double)inValue;
	m_type &= ~( 1 << inIndex );
}
 
void SetArgumentAsString( const unsigned int inIndex, const char *string )
{
	Arg[inIndex].text = string;
	m_type |= ( 1 << inIndex );
}
 
bool IsArgumentAString( const unsigned int inIndex ) const
{
	return ( m_type & ( 1 << inIndex ) ) ? true : false;
}

 

Legend of Bob: Night

agt_10After a bit of thinking, I’ve decided that it would be better if the game was in a night time mode.

So I’ve changed the skybox for my AGT project to be of a night sky with stars.

I’ve also reduced the fog near and far distance to be closer, and then darkened the colour. These worked together quite well, and the night effect was achieved.

I think with a bit of Bloom, the snow would look great like this.