Paper Trails
click for larger versions.
Synopsis:
A two-week game project, written in python and pygame, with the silen v0.9 engine as a base. The other programmer in my group was significantly less experienced, and could not produce working code, so the resultant project was the work of one programmer (Me).
Immediately following "A Walk in the Park", this game was in a different style. It's a tower defense that isn't a tower defense (as I hate that genre). Rather than having a concrete distinction between the "strategy phase" and the "watching phase", I wanted the player to be able to change strategies on-the-fly, and add obstacles directly in front of moving enemies. In Paper Trails, the "towers" are people that take orders on what to target, and this changes gameplay fundamentally.
The game follows a rookie security company, that specializes in corporate espionage. Competitors break through the windows of the office, hoping to steal precious information and confidential documents, but your company will stop at nothing to see that these thieves are brought to justice. Your forces are composed of gunners, 'naders, fighters, whistlers, and desks, and you can direct them individually or globally via the intercom system.
Tech:
This game features a variety of tech, including rotation to face target, right-click menus, a visual effect when moving up floors of the skyscraper, and advanced targeting logic.
All units but the desks rotate smoothly to face their targets, to indicate which enemy they are targeting. This was done by using the firing delay as the percentage to move between the current rotation and the targeted rotation. Upgraded desks have a secret overpowered attack, where an employee throws a paper plane on a curved animation arc toward the targeted enemy, and this plane also faces its target smoothly.
The right-click menus were handled as a stack, where input was only passed to the topmost layer. This was later incorporated into scenes in the silen 1.0 engine.
When you move up to the next level, you might notice that the walls have a 3d-ish effect (see screenshot 3). This was achieved by using very specific assets for the floor background, which were a solid color on the walls and windows. Then, using a dirty buffer containing the last frame, the scene was redrawn slightly smaller than before, so that the walls appeared to grow above the floor. Also, each level progression loaded a new side image, which contained the old scene scaled to 50% in the middle right of the new image. This allowed the roadside-to-rooftop scaling without a massive asset file.
The pathfinding was an A* algorithm, which stored a list of movements to the exit. This list was also used to prevent on-the-fly added units from blocking off enemies from their exit. Units target enemies with a simple distance check first, and then a second level of logic for closest (min distance), furthest (min # of entries in remaining exit path), min hp and max hp. These four strategies seemed to encompass all the functionality that you would want, and the global assigment via the intercom's right-click menu made quick strategy changes intuitive and easy.
Lastly, the fighter was initially supposed to punch once, and then return to its position (by animating half the distance between the target and back). However, in balancing Erik Finnegan discovered that if you dropped the attack delay below the animation time, the fighter would freak out and taze its enemies to death. This was found to be so humorous that the final balancing was decided to have this "feature".
Additional notes:
In Erik's balancing, upgrades are highly favored over numbers. I believe you do triple damage with a lv2 gunner versus a lv1 gunner. This isn't really what I would consider balanced, but I don't play tower defense games, so I wouldn't know... Just make sure to hit that [++] upgrade icon in the right-click menus a lot.
Use the [+] and [-] keys on the keyboard to change health (the blue bar)/cheat.
'Naders have an area of effect on their attacks, which can do some serious damage to groups when fully upgraded.
It might be expensive to get your sleeping employees to do some work, but it's worth the cost.
Team:
Greg Lane (Me) - All Code & Interface Art
Erik Finnegan - Music, Level Design, & Balancing
Chris DelGobbo - Sound Effects
Ryan Michaels - Sprite Art, Animations, & Side Backgrounds
Adam Rhoda - Learning Python (no content)
Gameplay Video:
Requirements:
Exe:
Windows (download exe, tested on WinXP)
Python:
Python 2.5 (cross platform, Mac and Windows)
Download Now: [exe] [python]








