Tuesday, August 31, 2010

Day 1-3 - Now it gets serious

Now, here's where the work really starts.

Day 1: Assessment and Design

Here, there be monsters

No, just kidding, here, at this point, is where the most of your actual layout work is done

For me, using game maker, the game will have a number of rooms, each room pertaining to a different section of the game, for projekt h, the rooms look like this (Name, Simple name)

rm_menu_main = The main game menu, from here, the player can start a game, Change the game options, or exit the game

rm_menu_options = The options room, here the player can turn the music on or off, the sound effects on or off, or return to the main menu (Since Projekt H is scaled for 800x600 res, changing the window size could cause graphic issues, and is disabled as such)

rm_gametype = Where the player chooses between Arcade or story mode for projekt H, has a main menu button to return

rm_difficulty = where the player chooses the difficulty level of the game

rm_player_select = Where the player chooses the ship (Character) they wish to use

rm_game_ingame = Where the actual game is played, Projekt: H uses a timeline system and global variables to imitate having multiple different levels, in reality, the entire game is played in this room, and the "Room change" is faked by using graphics that cover the screen to show a breakdown of the level, these are then deleted and the "Next level" (timeline) starts

Pressing escape in any room other than the main menu or the main game room causes you to go to the previous screen, in the main menu it has no effect, in the game window, it pauses the game and brings up a pause menu

Once you've figured out how many rooms you need, next, you need to fire up paint again, and design the layouts for your menus, button locations, etc. similar to how we previously designed the layout for the playfield of the game. I Won't lie, this is a lot of work, even before you start coding, Projekt: H alone has over 50 design sheets covering all the game menus and layouts, plus effects that keys have (Such as escape and screenshot keys)

Congratulations, if you're not beating your head off your keyboard by now, you may be cut out for a future in indie game design

(Part 2 incoming)

Saturday, August 28, 2010

Starting a game project - Basic theory of Design

For my first theory post, i thought i'd go over an element of design a lot of people and companies seem to skip: Properly starting a project

First things first, you should ALWAYS create a design document for the game, consisting of several parts, as if you were pitching the idea to a team of people, this gives you a reference, and a place to outline mechanics the game will use

As usual, i'll be using my Projekt: H for this

Part 1: Creating your concept and Picking a genre and theme

Here is a Surprisingly hard one, most of your design basis will be made from this

For instance, the Concept of Projekt: H is a unique bullet-hell type shooter, but with player-specified dynamic elements beyond difficulty, unlike most bullet hell shooters, where the patterns are predetermined entirely based on difficulty and time

For my Genre, i'm going with top-down 2D, but using Celshading and lighting to create a 3D Look. it's a vertically scrolling shooter of the Danmaku type

As a general rule, you should also be thinking about your final graphical look while doing this, but i'll touch more on how to properly do this later

For my theme, i'm going with a space/future theme, Heavily influenced by games i've played like Tyrian and Deimos Rising

Part 2: Mechanics & Preplanning

This part will deal with how your games mechanics work, what the game will feature for them, and simple code as to how basic mechanics work, which makes coding them later easier - you've already designed how they should work

for instance, in my game, there is a touhou-style collection boundary at the top of the screen, as well as an autocollect circle around the player that pulls powerups to you from a small radius, so my example for it looks like:

Autocollect zone (Screen top): This zone is a player-ship height area (Invisible) at the top of the screen, when the players ship touches or enters this zone, all powerups will become homing, and gain a speed boost, causing them to fly towards the players ship faster than normal, and to home perfectly in on it, powerups spawned after the player leaves the area will be unaffected unless they reenter it

Autocollection zone (Player) Around the player ship is a collision zone circle, any powerups that touch this circle are redirected in the same manner as the zone at the top of the screen, all other collisions are ignored

There are similar descriptions for each Ship type and it's weapon, it's countermeasure, and various mechanics in the game (such as the health system, extra lives, weapon power bar, etc.)

Part 3: Designing the Playfield

This is one people tend to overcomplicate a LOT

In this phase of design, people always seem to make the mistake of attempting to make the final graphics for the game as they code it, even in game maker

The easier way to do it, is to make simple graphics using MS Paint or The included sprite editor, or a combination of them, for instance, this is the "Alpha" Appearance of Projekt: H for the ingame room, as one would see in the playtest distribution before i add final graphics

However, as you can see, the darkened areas where things go are sometimes hard to see for the purposes of lining up ingame objects that use them

As such, when first starting, it's best to make a simple background with labels showing where each thing is supposed to go, like this:

As you can see, this shows me right where everything is supposed to be, the maximum size they should take up, as well as the furthest the player and enemies should be able to move, while this may look stupid while you're making the game, you can later remove the text easily, and create the background in photoshop or Paint.net in a new layer ABOVE this, using it as a template, before deleting this layer, leaving just your alpha or final background, and since you've already lined everything up using it, when you replace this with the much more game-looking background, you need to do no resizing - just maybe some recoloring to go with the new, proper look

In closing

At this point, you've come up with your theme, your genre, your games mechanics, Possibly a name for your game, and you've designed the playfield or main play enviroment.

In short, you're ready to start making the game, in my next post, i'll show you what i call the "Day one" phase of making a game, consisting of menu design, and Aesthetic theory


Welcome to my dark, dusty corner of the internet, Don't worry though, we ARE up to code here now!

Joking aside, welcome to my blog, i decided to finally get into this after a couple years, since i'm intrested in seeing what people think of my methods for gaming design

A Bit about me and my madness: Currently, i'm working on a few retail gaming projects using a cheaply-available game design program known as "Game Maker" the unrestricted "Pro" version will run you about 25$ USD, and allows full retail game creation and sales with no restrictions (No splash screens, required logos, etc.) as well has having far more available for you to use

As far as it goes, it's actually pretty powerful, allowing both 2d and 3d game creation, features a very Basic/C++-esque coding language, called "GML" and with enough work and knowledge of it, it can be more powerful, as it's more simple

This first series of posts will take you through the day-by-day creation of a game i'm calling internally "Projekt: H" it's a top-down 2D Shooter of the "Danmaku" or "Bullet hell" Variety, the screenshots i'll post are all using placeholder graphics made completely in Game maker 8 with the sprite editor, and backgrounds made with Apophysis or Paint.net, Retail will have a different name and much better graphics

Down the line, i'll eventually cover using other programs, Such as Multimedia Fusion by clickteam, Coding in things like Unrealscript (For modding games like Killing floor, or using the Unreal Development Kit) and general theory on what makes a Great game

For now however, i'll settle for the intro