PyWeek - Mechanism
Good game for the grid
Presented by TOTOleHero
Blast from the Past
Presented by Luke
|mechanism.zip — final||83.73 Kbytes||mespringfield||2012/05/12 19:41|
|Source code and data files|
|mechanism.jpg||397.87 Kbytes||mespringfield||2012/05/12 19:35|
|Army of drones approaching|
Saturday 12 May, 2012
[ mespringfield @ 19:53 ] Mechanism: Finis
I've uploaded a final submission for Mechanism. Hopefully, it runs well for everyone who tries it. I got frame rates of 50-60 fps on two different Windows 7 machines and a MacBook Pro, but when I tried it on an older iBook G4 it slowed to a crawl (~10 fps).
The game still could use a lot of work (texturing, lighting, sound, improved performance, etc). I'm planning to continue working on the game over the next few weeks/months, as there are many other features I'd like to add: lasers, conveyor beams, hunter robots, power-ups to collect, and lots of other types of devices...
I'm fried - I'm gonna go rest now. I look forward to playing everyone's games.
[ mespringfield @ 01:45 ] Mechanism: Final Push
Today I made a few more levels (got a total of six so far) and wrote the text for the tutorials. I also implemented the scoring system. I've decided to drop the lasers to focus on polishing what I've already gotten done.
I'm in bachelor mode this weekend, so I'm planning to pull an all-nighter (or more likely a most-of-the-nighter) to get things finished. I still need to implement the menus and the information screens for the tutorials and end-of-level score reporting. I also want to get a few more levels made. I think I'll work til around midnight, take a break and watch Tron, then work a couple more hours.
Friday 11 May, 2012
[ mespringfield @ 01:36 ] Mechanism: Days 4 - 5
DAY FOUR ACCOMPLISHMENTS
Implemented the logic/AI for drone character movement. When a drone collides with an object it either always turns right or always turns left and continues moving. The player will be able to predict drone character movement by watching its behaviour pattern when it collides. If a drone collides with the player character then the player character becomes infected with a virus and the game is over.
Also implemented rendering and logic for crates. The player character can push crates around in the level. If a crate is pushed into the path of an infected drone it will collide with it and immediately change course according to its pattern (always turn left or always turn right).
DAY FIVE ACCOMPLISHMENTS
Implemented logic for when game characters/objects collide with water. The player can push crates into the water to build bridges. Drones can fall into the water and be destroyed. However, the player character will refuse to enter the water (due to its self-preservation programming).
Implemented logic for teleporters, universal multi-purpose devices (UMD's), and level exits. I've decided that UMD's will actually serve only one purpose: remove infected robots from the level.
Also finished designing, building, and test-playing the first two levels of the game.
Most of the game programming is complete, but I have lots of loose ends to tie up. Here's what I'm planning to accomplish over the next two days:
- Implement automatic saving of game progress after each level is completed
- Implement menu and information screens
- Implement laser beams!!!
- Tweaks to the shapes and colors of game objects
- Design and build the remaining levels (as many as I can before the deadline)
- Testing, testing, testing
- Write-up the readme file
- Package everything and upload
Thursday 10 May, 2012
[ mespringfield @ 02:44 ] 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).
Monday 07 May, 2012
[ mespringfield @ 03:37 ] Mechanism - Day 1
I'm working on a game called Mechanism. The player is cast in the role of a technician employed by FringeTech Laboratories. A new Telepresence Cybernetic Mechanism is about to be put through its paces in FringeTech's elaborate testing environment, but what starts as another routine day of guiding the TCM through a series of challenges begins to go horribly wrong...
After a day of coding, I have enough of the level editor working to create a simple test level.