Mechanism: Days 1 - 3
Still coding away on Mechanism (tentative title). I am developing the game and the level editor in parallel with each other - adding new features incrementally. I've been fortunate enough to have several hours a day to spend working on the game. Even so, I'm scaling back on the original concept of the game in order to finish on time.SUMMARY OF GAME CONCEPT
The game is set in the robot testing facility of FringeTech Laboratories. The player controls TCM-1138, a prototype telepresence robot designed to be used in hazardous situations. During a routine testing session, FringeTech's servers are hacked by a disgrunted employee, who unleashes a virus that infects all the maintenance robots in the testing facility - causing the robots to behave erratically.
The player must use TCM-1138 to clear the testing facility of the infected robots. This is done by placing objects in an infected robot's path to steer it toward a Universal Multi-Purpose Device, which safely teleports the robot out of the level and into a holding chamber where it can be decontaminated. Once all infected robots are removed, the exit to testing area can be opened - allowing the player to leave the area and be teleported into the next test area.
DAY ONE ACCOMPLISHMENTS
Coded enough of the level editor to begin creating game levels using "3D tiles" that represent components of the level geometry - mainly floors, walls, and water surfaces. Can save and load game level data to and from text files. Spend a lot of time figuring out how to use pyglet's Batch class to speed up 3D rendering.
DAY TWO ACCOMPLISHMENTS
Wrote code to handle the rendering of the player character (a red robot) and a few game objects:
- Teleporters: used to instantly transport game characters and objects to remote places in the level
- Universal Multi-purpose Device: this device has two planned purposes - it can be used by the player character to "save state" (basically saves game progress - sort of like the Vitachamber in the game Bioshock) and it can be used by non-player characters to safely exit the level.
Also implemented the camera system for the game. The game is played from a third-person perspective, and the player can rotate the camera around the player character to view the action from one of four possible angles. The player can also zoom in and out and adjust the height of the camera above
the game level.
Also implemented the game title screen, which displays a 3D scene in the background as the camera rotates slowly around the player character.
DAY THREE ACCOMPLISHMENTS
Implemented the logic for player character movement (including collision detection). The player character can now move around to explore the game level!
Implemented code for rendering the non-player characters (maintenance drones).