Tuesday, April 23, 2013

Day Before Presentation

Sweating palms...
Frantic typing...
Muttered curses...

Those are just three of the issues I am having right now with my nervous breakdown. Tomorrow we show out Alpha version of the Chain Engine for our game "Chain of Memories" (Working Title). There are a few split ends that need to be tied, and code to be forged into a working game level.

This is the end of our frantic production and tomorrow we will see if it has all paid off.

To be honest, my concern is blown out of proportion because I really shouldn't me nervous. However, as most programmers or developers, I have an urgent need to fine tune every little detail before presenting my child before critics. Not critics - per say - but they are grading me on our work and so I am nervous.

This is something school books can't teach you how to handle.

Honestly, our engine should do fine as well as our alpha version of our game, then we can get the go ahead to work on the Beta version. That will be more fun as it will mostly be design - even if I do want to revamp the graphics engine.

Our engine incorporates the following:

Graphics engine - DirectX 9.0c compatible
Sound engine - using FMOD API
Input handling - using Direct Input
Collision detection - using a custom build physics library

What we will need to incorporate later is an actually physics library ripe full of fun things like gravity and acceleration. Another addition would be to create a GUI for designing levels so that not everything is hardcoded - but rather created, saved to a file, then loaded into the main game driver. This will allow for rapid development.

Next post will be tomorrow, after the 'show and tell' of our game - complete with pictures.

Until next time.

Thursday, April 18, 2013

Crunch Time

This week marks the inevitable crunch time for game development. So far we have been able to keep up with our assigned workloads and with this last week we still have that goal. So far we have full player input and control, a working HUD, a working health meter, a full game state manager, dynamically buildable levels, a weapon, an enemy, and some collision. With everything done on the graphical and input side, we are now focused on our collision and physics in the game. With one week, we have to fine tune that and do some polishing but I beleive we can do it.

It was tough creating a workable level from scratch using C++ and DirectX, however, a challenge is always welcome and I am glad that the team has taken it in full stride and created something everyone can soon enjoy.

Saturday, April 13, 2013

Game Engine Update and Some Concerns

It seems that the development phase has swept by in the past few weeks and we already have a working engine in DirectX9.0. We have implemented a Game state manager, have declared multiple classes and created a few game objects including a grid of the level and an animated character. The engine is almost done, all we have to incorporate is physics, the weapon, and a monster. So far the biggest issue I had was implementing a HUD that stores objects in it.

At first I had decided to use a small array of void pointers; however, this lead to type casting issues. I decided against this. It seemed that the easiest description of an inventory is  a list of class objects. Now, how do I implement different objects into a list? At first I thought I could initialize it with a template parameter of the GameObject class and add children to that. Nope, this caused an issue that is caused slicing. Essentially, it cuts down the child class to its parent class and loses the other data. To fix this, I simply had to assign the template as a pointer to the parent class, and whenever I add a new object, I use the new declaration and that fixes the slicing issue.

I will keep up to date on our week 6 progress.

Friday, April 5, 2013

Week 4

Week 4 of the Development phase has come and is soon to pass. As of right now, most of the development work is done and we have been working on the core game engine to get an Alpha version up and running by week 8 or our class.

The On-Paper Development phase is done as we close with our Statements of work (this details what our jobs are for the project) and a Technical Design Document. According to the statement of work, I am in charge of the Graphics Engine, User Interface, and the construction of physical data (bounding boxes and spheres.) As one can see, all of my work involves programming. This means for the most part - my blogs will be more on the technical side of game creation than on the design side.

As far as technical work goes. I have a working DirectX Framework up and running with a base GameObject Class, a child of that class that supports sprites, Direct Input controls, as well as a sound engine class that wraps FMOD into the game to be used. There is also a small state manager that goes from the start menu to the first level. So far, it is looking good, the only thing I need to get my hands on are sprites to incorporate.