Tuesday, March 19, 2013

Week 2: Development Process

This week heralded the second week of our game development phase. So far in development we have a High Level Concept document and we are currently working on a Game Design Document. On the technical side of things we have begun a rough abstract of the classes needed to create our 2D platformer.

Part I:
As mentioned above we currently have a working High Level Concept document that outlines the basics of what our game is and what makes it so interesting. Essentially it is our pitch. The game, "Chain of Memories" (working title) is about an amnesiac genius. The player is the protagonist and must navigate through challenging obstacles using uniquely crafted items. One of the main items in the game is the chain arm that the character creates for himself. "Chain of Memories" will contain basic WASD movement controls as well as the use of the mouse for using various items.
Apart from that, the Game Design Document will define what we plan to implement as far as Game flow, User Interface, Story, Characters, Environment, and Game Mechanics are concerned. That will be discussed next week.

Part II:
Jumping ahead of the Game Design Document, and even the Technical Design Document - our group has described several classes that are required for the coding of "Chain of Memories" in C++ and the DirectX API.
The classes are as listed:
==================

+DXRenderer
--This class creates and defines all of the various required functions for rendering images to the screen.

+GameObject
--This class is the base class to be inherited by all 'physical' objects in the game, i.e. characters, blocks.

+Collider
--This class defines the collision boxes or spheres for GameObjects. It also contains code for detection collisions.

+ PhysicsLib & MathLib
--These classes are a little self explanatory. They define all of our Physics and Math variables as well as functions.

+GameStateManager
--The Game State Manager is a class (perhaps implemented as a Singleton) that controls the flow of the game between the menu, loads, saves, pauses, and levels.

+SoundManager
--This class will contain on wrapping the sound API we plan on using (FMOD) to implement sounds and music throughout the game. (Also may be implemented as a Singleton)

+DirectInput
--This class contains the code to implement DirectInput into our game application to handle user input for the controls of the character and the various menu items.

+WinMain
--This class contains the code to create, register, and handle the window in which our application will run.

+Camera
--This class is used to create a camera for setting the view in the game window.

Of course, these are not all of the classes that we plan on implementing into the game. There are still a few others, such as inherited classes, that need to be defined. However, that is a few weeks ahead.

As for now, that is all that is going on for this week and I will update again next week on the status of our work.

Monday, March 11, 2013

Very First Entry!

Today marks the beginning of a new blog!

The aim of this blog is as follows:

-Give insight into the creation of a game through an 8 week class at DeVry University.
-Give readers information about game design and programming processes.
-Most importantly, log the process of creating an Alpha version of a game in 8 weeks.

The posts of this blog will be done on a weekly basis and will primarily be broken down into two parts:

-Part One: Design. This will contain all the story, design processes, art, and non-technical aspects of the game that is to be created.

-Part Two: Technical. This will contain all of the programming and technical side of the creation of the game. This part of the blog will be relatively short for some time until we hit to about the 4 week mark of the blog.

Now that you have an understanding of what this blog is about, let us begin with the design aspect of the game that my group and I are preparing to create.

Part One: High Level Concept

As of right now our game exists only on paper and in our minds. We have just finished and polished off our high level concept for the game we plan on creating. The high level concept is a document that is a narrative description of what the game is about, basic features and game play, as well as what we are targeting. By targets I am referring to platform and audience. So far our draft explains a concept, game play, and our targets.

As of right now our concept is straight forward. The game is untitled as of right now as well as the protagonist - which is fitting since, according to the story plot, is amnesiac. Although typically found as an 'easy out' to explain why a hero starts at such a low skill level and without much experience - the amnesia storyline persists and lends itself as a vital part of the game play. The game will be a simple action adventure 2D platformer with a few twists and exciting features. After the group decided on that as our story and game play we decided on a target. Since we are familiar with DirectX, we decided to target just Windows based PCs as of right now.

Part Two: Technical Considerations

From what one can gather from the description of the high level concept - a few technical features are already unmasked. The game will take keyboard input for most interaction. Unlike most retro platformers though, the game will also take mouse input to use special devices that the player can possess. From here we have decided to use DirectInput, C++ programming, and the DirectX API. That will take care of most of the basic needs for the game.

Unfortunately, since the game is in its infancy and just at the design phase, there is not much else to say on the technical side of things.

Closing Notes

I hope that you have enjoyed the first post of this wonderful blog and it helps give you insight into what goes into developing and programming a game. Look forward to more content next week!