Mermelin

Mermelin

For my master thesis, we wanted to explore the posibilities of shaders. Specifically a game where the effects of a shader had direct impact on the gameplay.

THE PLOT!

In a previous project we created a basic engine (which, to the end, ran on both windows and linux). With this framework we started brainstorming ideas.

We came up with a game idea based upon the Kugellabyrinth (if there’s an english name, please tell me). Kugellabyrinth

In our game you would influence a sphere to roll around in a labyrinth. You would find a wooden gate, which you can’t pass. Next you have to find a fire-plate to roll over, setting your sphere on fire. With this, you would then go back to the door and burn it down. Given that you managed to thread your sphere through a narrow path cornered by water.

Given this basic outline, we planned a game based upon the classical elements fire, air, water and earth. Each element would give your sphere different properties, and allow you to pass different areas. We were even thinking about combining elements, like fire and water would create steam, allowing you to pass fences.

With this basic idea, we started developing.

ENGINE!

At first, we wanted to use Unity, but our professor wasn’t comfortable with using a proprietary tool to create a master thesis. So we wrote our own engine, as previously stated. We built it upon open-source frameworks.

Engine overview

So that you don’t have to look every single framework up, I listed them up here:

Everything was written in C++, save for the shaders who were created with GLSL.

GAMEPLAY!

We spent most of our time getting the engine to work properly. We weren’t used to developing with C++, taking most of our time figuring out how to work with it. On top of that, we also had to learn new frameworks, like OGRE, which didn’t help that much. But in the end, we produced a playable level.

Here’s the menu screen: Menu screen

And here are screenshots of the different shaders in action. Try to guess which is which ;)

Air Earth Water Fire

WRAPPING UP!

It was a stressfull project and I’m happy that in the end we got a good grade for it. If you’re interested in more details, our thesis is online. It is in german, so beware.

If you’re intereste in the project itself, I invite you to peak around in it over at github.