Character Head Model

Found a great video tutorial on modeling a human head in Blender.  First of all it instructs to use a subdivision modifier to make the starting cube a spherical object, with 2 View subdivisions.  Then in edit mode, the proportional editing tool (key “o”) is used with moving vertices to give the object more of an egg shape.

 

Then, half of the head mesh is deleted and the mirror modifier is applied to ensure that the head has a symmetrical shape.  Then the Loop Cut tool is applied twice (Ctrl – R – 2) to add additional vertices and edges around the neck.

 

Finally, more vertices are moved around with proportional editing to give the neck a more realistic shape.  This is just a start, so I’ll have to add the body later in addition to making the face look more like my character design.

Blasting Bits – Game Design

I didn’t do any coding tonight, so I worked some on design and conceptual art.  Instead of a development update, I thought I would share the designs that I created from my project notebook since I started working on this project.

I’ll admit that I’m not a great artist, but I think I can do good enough to use as a guide for creating the models for the game.  Below is a sketch that I drew tonight that will be the basis for the main character in the game.  I still haven’t finalized a name for this character.  First of all, I knew that I wanted the character to look humanoid, so I used that as a starting point.  The coat is long which almost looks like a cape at the bottom.  I may end up removing this due to the difficultly (and my inexperience) of rendering loose cloth.  Looking into waving flag models may give me some more insight on how to create that effect.  I always hate the sexism in video games debate, so I gave the hero a helmet which allows the player to imagine the hero as a man, woman, alien, or whatever.

The next image contains the notes I made while creating the socket system.  This isn’t inclusive of all of the abilities, but it gave me a starting point on how implement the system.  It’s really helpful to start on paper, that way I can mark out, erase, and add abilities as I get new ideas.

The level editor was and is still fairly simplistic in design.  I will need to modify this design some to handle the location of new rooms.  I’m thinking about letting the left thumbstick control movement on the room grid, and letting the D-pad move between rooms.  If the user uses the D-pad to move to a room that doesn’t exist, then it will prompt the user to create a new room.  There will also need to be some work on how to connect a door from one level to another level.  For now, I’m thinking about just having one exit for each level to keep it simple.  However, I want to make it so that there are a variety of conditions for unlocking the door.  Currently, the player just has to defeat all of the enemies to unlock the door.

Below is the original story concept.  Again, I marked out and revised portions to make the story more interesting.

The most difficult part of coding this game so far has between switching between rooms.  I could have used a standard tile editor to create the worlds, but those make the game world very limited.  My room approach allows continuous scrolling to loop around on a level.  Additionally, it also allows the possibility of moving vertically and horizontally between rooms at the same time without a break.  Most platformers only scroll horizontally or vertically, which requires a break (such as a door) to change the scroll orientation.  Also pictured is one of my notes I made when trying to figure out how to handle placement after collision with a block.

 

I haven’t started creating the game overworld yet, and that may be left out.  Below is some simple notes I made for the overworld, which would allow the player to take multiple paths to complete the game.  Each level would be a different part of the computer world, which would use real computer hardware and software concepts.  Also included are some of the original abilities that I had planned for the game.  The last image shows some of the original level design, but this may change significantly if I scrap the two separate zero and one guns.

 

 

I haven’t done much enemy AI programming yet, but I did jot down some simple enemy behaviors as shown below.

 

Below is a puzzle that I thought about including, which would require the player to shoot letter blocks based on the ASCII character code.  Other puzzles would require the player to shoot switches based on the RGB values.  I think these puzzles would be educational, but maybe to difficult or confusing for most players.

 

Lastly, this is an image of the original design that I created for the game.  Almost all of this will be left on the cutting room floor, but I may use some of the binary concepts as puzzles or a minigame.

Health Sockets

Added four new body sockets tonight, which increases the player’s health.  Actually, I just had to write the health socket code once and just change the variable that controls the health bonus magnitude.  The player can choose from Health +1, Health + 2, Health + 3, and Health + 4.  I modified the method in the player class that returns the player’s maximum health to account for these sockets if they are active.  Currently, the player can only socket one ability to the body.  I think it’s more important to get it working for one, and then later I can modify the sockets for each body part to a dynamically sized list.  I still haven’t decided if socket slots will be statically bound to each piece of equipment, or if additional slots  can be purchased from an in-game store.

The player’s base health is currently set to 200.  Each +1 health socket adds 40 additional health.  I will need to decide if the Health sockets will stack when multiple body sockets are available.  For instance, equipping a Health +1 and Health +2 socket would result in 120 additional health.  I will also need to handle the case where the player unequips a health socket, which would result in the player possibly having more health than the maximum.

I also modified the health meter display while I was working with the health code.  Now there are segmented bars for each 20 health.  Green bars are health remaining and gray bars are health lost.  I added a variable to the enemy class that indicates how much damage the enemy inflicts, which I now have set to 5.  Previously, I just subtracted a static 20 value from the player’s health when they collide with an enemy.  This way, when an enemy is subclassed, specific damage values can be assigned for the enemy subclass.  The reason I chose 5 for default was because it lets me see the fraction of a health bar left over when the player is hit.  This will need to be rebalanced later, because  40 hits (200/5) seems to be too generous.  Filling the full health bars is easily completed in a loop, but determining how much to fill the last bar which may only be a portion of a bar requires some additional calculations.  Basically, the value of  modulo current health of health unit size (20) is used to determine how much of the last bar should be displayed.