Sunday 18 May 2014

Episode 37: Project Monkey, Cost and Shaders

     Hi guys! I decided to talk about the progress I've made on Project Monkey and realized I haven't posted anything about it since January 2013. Sixteen months ago! How time flies. As I said earlier, I had to take a one year hiatus from actively developing the game so that I could face my final year in the university properly, but I continued to passively work on it by recording my ideas, searching for better methods and tools for the project and using my compulsory final year thesis at school as a whetstone for my game programming skills. You can read more about (or download) the software I created in the process here, and if you don't know what Project Monkey is, you can check out my earlier posts. In this post, I'll be talking mainly about shaders and how they affect the look of the game.
Khuutra screenshots. Left: Cel-shading. Right: No shader

        The last time I blogged about this game, I introduced Khuutra, the fastest character in the game. I'm going to use his model to explain what shaders are. The model is the 3D object in the game engine, while the shader applied to the model affects the way light will be reflected off the model, which of course will affect its appearance in the game. Think of it like the filters you apply to pictures on Instagram or within most modern image editing apps. The difference here is that shaders can affect only specific objects (or even just a portion of the total object), while filters affect the entire picture. There's a way to apply shaders to the entire video that the game shows too (that's called scene shading) but let's talk about model shading first.
       I made the mistake of conceptualizing a fairly large project as my first game. I should have made a few simple 2D games for starters, but now that I've already invested so much time in this one, I decided to go ahead and finish it up. I've been using the free edition of 3D Gamestudio to make the game but recently, I decided to purchase the commercial edition because I needed access to some features, like shaders, that weren't available in the free version. Anything worth doing is worth doing right, right? To show you how much of a difference shaders make to the game's graphics, I'll let pictures do the talking. Just look at the exact same model with different shaders applied.

Khuutra model with a Wireframe Shader

Khuutra model with a Chrome Reflection Shader

Khuutra model with a Chrome Bumpmapping Shader

Khuutra model with an Environmental Glass Shader (meant for glass walls and similar stuff)
Khuutra model with a Water Realtime Mirror Shader

Khuutra model with an Environmental Water Shader
Khuutra model with an Occlusion Shader
Khuutra model with Toon/Cel Shader
       From these pictures, you might have noticed that even water can have different looks depending on the shader applied. The last two images show the kind of style I'm going for with this game. Most of the game will be cel-shaded or have similar shaders that will give it a hand-drawn, comic book look and feel. The characters aren't realistic after all, there's no need to try to apply photo-realistic shaders. I mentioned scene shaders earlier, which is like applying Instagram filters to the lens of the in-game camera. Here's a few pictures to illustrate that.

Monochrome Scene Shader

Sabel Scene Shader

Posterize Scene Shader

Hyper Dynamic Rendering Scene Shader (Compare the sun in this picture to that in earlier pictures)
      So there you have it. I have had to actually spend more cash than I originally budgeted for the creation of this game so that I can apply shaders. I'll release some more information and video footage of the game within the next few weeks. In the meantime, please help me choose the final name of the game by voting here. Project Monkey is just a place holder name. I'm leaning towards a name with "Parkour" in it. Something like "Parkour Extreme". I've also gotten better tools for making the models so you'll be seeing better-looking models soon. Let me know what you think by leaving some comments.

No comments:

Post a Comment

Comment here: