diff --git a/README b/README deleted file mode 100644 index 09a4c12..0000000 --- a/README +++ /dev/null @@ -1,4 +0,0 @@ -lobo: Logo Bolo -(c) Ben Kurtovic, 2011 - -Logo Bolo is a re-envisioning of the classic tank game by Stuart Cheshire in NetLogo. diff --git a/README.md b/README.md new file mode 100644 index 0000000..abbbdaa --- /dev/null +++ b/README.md @@ -0,0 +1,112 @@ +__lobo__: _Logo Bolo_ +(c) Ben Kurtovic, 2011 + +__Lobo__ is Logo Bolo: a re-envisioning of the classic tank game by Stuart +Cheshire in NetLogo. Below you will find a short tutorial on how to play, some +known bugs and limitations, and credits. + +TUTORIAL +-------- + +In Lobo, you control a tank and attempt to gain strategic control of the map by +posessing all of the refueling bases, while simultaneously using your bullets +and automated "pillboxes" as defensive or offensive weapons. + +You move your tank, which is black, by clicking anywhere on the playing field – +you'll drive to that square and stop once you've reached it. If you change your +mind and want to stop immediately, double-click anywhere on the map or +press "C" (cancel order). The color of the tile represents the type of ground, +which determines how fast you drive over it. You drive the fastest on road, +which is black; light green grass gives you a medium speed; dark green forest +makes you move slowest. + +When you start, you'll have a bit of ammunition and full armor. Fire your gun +straight by pressing "F", lowering your ammo count by one. Getting shot by +another tank or a pillbox will lower your armor count by one, and if that +reaches zero, you'll die and respawn randomly. (Both of these counts are +displayed on the top-left of the screen.) + +The map contains a few bases, which look like yellow squares. At the start of +the game, they are gray (neutral) and any tank can claim one by driving over +it. If you own a particular base, stopping over it will refuel your tank with +ammo and armor. An base you don't own won't refuel you, but you can repeatedly +shoot at it to weaken it, then drive over it to "capture" it. + +The map also contains a few pillboxes, or "pills", which look like gray circles +with colored rectanges sticking out of them. Pills will automatically shoot at +their nearest target within range, and they have infinite ammo, but not +infinite armor. Destroy an enemy pill (red) and pick it up by driving over it, +then place it below you, anywhere on the map, with "P". It'll be green, and +will shoot at your enemies instead of you! + +You win the game by controlling all refueling bases on the map and then +destroying your rival tanks – tanks that don't control any bases don't respawn! + +ADVANCED TIPS +------------- + +* Refueling bases have limited reserves of armor and ammo, which regenerate +slowly over time. In particular, shooting at a base lowers its armor reserves, +and it is "destroyed" when its armor count reaches zero. Therefore, trying to +refuel yourself on a recently captured base might not help that much! + +* At the start of the game, try your hardest to ignore the enemy tanks and +pills and go straight for bases – controlling bases is the most important +strategic element, after all. + +* To protect your bases from enemy attack, try placing pillboxes directly +adjacent to them. + +* Pillboxes have "anger" – they'll shoot faster if you shoot at them, but +they'll calm down over time. In other words, it might not be the best idea to +take down an entire pillbox in one go, but hurt it and then come back later. + +* Consider shooting your own pillboxes if an enemy is nearby – you'll "anger" +it, and it will shoot at your opponent faster! Also, don't hesitate to destroy +your own pills completely and re-place them in a better location, or even in +the same location with full health if they were damaged beforehand. + +BUGS / LIMITATIONS +------------------ + +In the original Bolo, the map takes up many screen widths and is scrollable +with the tank at the center. "follow" by itself wouldn't work, because NetLogo +does not allow objects off-screen. I spent a while trying to figure this out, +at one point essentially rewriting the rendering engine and using a table of +"actual" patch coordinates that was translated into "virtual" patch coordinates +each frame – not only was this very slow, but it was very overcomplicated and I +wasn't able to do everything I had wanted. Instead, the map was made one screen +size. + +In the original Bolo, patches are not merely colors - they have patterns on +them (grass has little green lines, forests are spotted, roads have white +stripes). This was not possible in NetLogo because patches can only have a +single color. + +Time was also a limiting factor: I had planned a lot of additional features +found in the original Bolo, like a nicer GUI for showing armor and ammunition, +water as a ground-type (which drowns your tank), allies and multiple enemies +(grr!), a nicer game-over screen, and a much, much smarter AI. These were +skipped so more work could be spent on general polishing and testing. + +CREDITS / MISC +-------------- + +* Stuart Cheshire for the original Bolo game. Some graphics used in this +project (tanks, pillboxes, and bases) were heavily based on old sprites taken +from Bolo. + +* My dad for introducing me to Bolo many years ago, and for helping me simplify +the original Bolo game into something possible with NetLogo. + +* Josh Hofing for advice on implementing certain features and positive +encouragement. + +* Chain Algorithm - I wrote the entire AI routine in less than an hour +immediately before the project was due (ha!), and I don't think it would be +possible if I hadn't been listening to your music on loop the entire time. +Really gets your blood pumping, y'know? Yeah. + +This project is available on [GitHub](https://github.com/earwig/lobo). I used +it for syncing code between my netbook and my desktop when working on the +project away from home. diff --git a/lobo.bz2 b/lobo.bz2 new file mode 100644 index 0000000..e46a7d6 Binary files /dev/null and b/lobo.bz2 differ diff --git a/lobo.zip b/lobo.zip deleted file mode 100644 index acaec58..0000000 Binary files a/lobo.zip and /dev/null differ