Space Game Design Log

February 2013

I was on a short trip and then preparing for college, hence not working on my project for awhile.
I'm back at college now, and progress will therefore be limited.
  • Moved movementArea array to LevelState (from Player).
Todo list:
  • Multiple Units
  • Map Editor: Save the units along with the terrain. One file would be best.
  • Reset movement, attack, and shield (at upkeep or end turn).
I'll be on a short trip with friends from the 5th through 7th.
  • Moved movementArea array to LevelState (from Player).
  • Disabled the mouse from scrolling, enabled the keyboard (WASD).
I implemented turns!
  • Added functionality for a non-standard button size.
  • Implemented turns
I counted up the line numbers for my own curiosity. Counting only main.cpp, source files, and header files that don't have an accompanying source file, the sum is 3034 lines (includes whitespace and comments).
The largest file is LevelState.cpp at 382 lines. This file manages most things when a level is running (or at least calls another class's function to run).
  • Modified (mainly) Window, Cursor, and Player to add in spots for menus. (Example 7)
Example 7

January 2013

I updated the website a bunch, organizing the articles and setting the background.
  • Modified the display, attackable units have a red shade over them. (Example 7)
  • Moved unit data to a file.
  • Map Editor:
  • Separated Civ and Terrain, added Units
  • Edited the transparency of selected tile.
  • Displays a shield around units if they currently have a shield. (Example 7)
  • Implemented the Map Editor (Terrain only). No Options yet.
I didn't work on the project due to watching a ton of the TV show Dollhouse.
  • Added Health bars (0 - 100% in 10% increments)
  • Units may attack enemy units. (Example 6)
Example 6

I made all sprites 64x64 pixels. This is to allow greater detail in the sprites and to create room for healthbars and other information.
  • Sprites are 64x64 pixels
  • Added an "Attacking Cursor." No functionality yet.
I modified the cursor tileset and added in an "attacking" cursor.
I was on a trip for the week and didn't work on the project.
I didn't work on it much due to hanging out with friends and finishing the anime Serial Experiments Lain.
  • I undid the tileset resizing as it would require too much time right now.
I updated the formatting for this log.
  • Created a Player class for turns.
  • You can only move your own units.
  • Modified movement display to darken inaccessible locations. (Example 4)
  • Unit attack is currently disabled, as the display function was rewritten.
  • Added a color box to show who owns each unit. (Example 5)
  • Started work on resizing tilesets.
Example 4

Example 5

  • Unit movement now prevents moving over units
  • Unit movement display properly shows where you can move. (Example 3)
  • Unit attack properly displays (for a range of 1).
  • Added some attributes to units.
  • Read in unit data
Example 3

I visited with friends today and therefore didn't work on the project much.
  • Finished the second BFS.
  • Unit movement problem was fixed.
I finished troubleshooting issues I had with the hosting site for this (
  • Started redoing the optimized BFS.
  • Finished BFS check for terrain movement for units.
  • Alpha display for unit movement works properly.
  • Unit movement problem: walking through >1 terrain only takes away 1 movement.
I started working on finding a free hosting place for this website.
  • Fixed Cursor to work for selecting Units
  • Changed Unit and Terrain arrays to be vectors of unique_ptr
  • Started working on Unit movement
  • Finished optimizing code.
  • Worked on inheritance with Unit and sub-Units
A friend visited during this time period.
  • Reorganized and optimized code with GameObjects.

December 2012

I visited friends on these days and didn't work on the project much.
  • Started reorganizing code.
  • Logging
  • Error Handling
  • Renamed MenuItem to Button
  • Reformatted the directory structure
  • Python Backup Script
  • Changed camera to scroll independent of tiles.
  • Created the Main Menu (Example 2)
  • Created a MenuItem (Button) class
  • Decided against using a 2D array for the terrain and units.
  • terrain[y*width + x]
Example 2

I neglected to record what I did before now, but I mostly followed tutorials at:
  • Wrote the state engine. (Example 1)
Example 1