Monthly Archives: February 2015

If it works as well, just fake it :)

We’ve managed to fix many of the issues which plagued our game for the longest time. One of the major ones I helped with was the jitter due to wall walking. The player would raycast downwards and get the average of the normals of all the tiles around him to calculate his up vector. But this would cause jitters when he would move from one tile to the other, on account of the abrupt change in the normal.

While discussing this issue with Skip, I suggested using another cylinder outside our main level cylinder which would be invisible, and its only purpose would be to aid the player in the calculation of the normal. This cylinder had a large number of sides( almost 500), and the normal calculation based off of this cylinder made the jitter un-noticable!

It was a huge win, and our game felt a ton better. Skip also addressed many camera issues, and combined with the jitter elimination and the amazing new art, I felt really confident about our game.

Systems are good..

I’m really glad that I took the extra effort to clean up and refine our menu system. It helped me crank our new menus for our pause menu, options menu, controller layout screen etc. really easily.

I’ll describe briefly the architecture for the menu system ( big thanks to Ron Romero for his contribution).

The game has a MenuManager which knows about all the menu states that exist. It is the class which loads all your menus at the beginning, and the class you rely on to toggle between menu states. All of these menu states derive from a base MenuState class. The base class has functionality which lets it know about the player controlling the menu, as well as arrays to store the normal, rollover, and pressed textures for all the buttons in the derived classes. It also has an array of delegates ( or function pointers) which point to the callback associated with each button. When you create a new menu state, you derive from this class, and based on the number of buttons in your current menu, you initialize the texture arrays. You do not need to specify each of the locations for the textures for each button. I’ve created functionality which maps a string like “Options” to options_text_normal, options_text_rollover, and options_text_pressed, so that all these textures can be loaded automatically. All you have to do is fill in an array corresponding to these buttons ( Something like array={“Resume”, “ControlsLayout”, “Quit”}). You also have to decide what happens when each button is pressed, but that’s it! You menu is ready 🙂

MainMenu

Art makes all the difference :)

We got new artwork for our game this week, and the game looks AMAZING!

The artists decided to go back to the initial vision we had for our game, and came up with a neon-like feel for our tiles. We also had a new character for the game. Rob created a robotic female steampunk character with the upper body of a woman and the lower body consisting of a robotic apparatus comprising of a wheel and a spring. SteamPunk

 

This would help us minimize animations for our character, and also feel a lot smoother as we traversed the cylindrical world. The new tiles, combined with the shader effects created by Shelwin and Sty took the game to a whole new level. Kudos to these guys for all the hard work they put in!playfield_mockup02_720