Logo Bolo: a re-envisioning of the classic tank game by Stuart Cheshire in NetLogo
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

README.md 5.4 KiB

12 years ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. __lobo__: _Logo Bolo_
  2. (c) Ben Kurtovic, 2011
  3. __Lobo__ is Logo Bolo: a re-envisioning of the classic tank game by Stuart
  4. Cheshire in NetLogo. Below you will find a short tutorial on how to play, some
  5. known bugs and limitations, and credits.
  6. TUTORIAL
  7. --------
  8. In Lobo, you control a tank and attempt to gain strategic control of the map by
  9. posessing all of the refueling bases, while simultaneously using your bullets
  10. and automated "pillboxes" as defensive or offensive weapons.
  11. You move your tank, which is black, by clicking anywhere on the playing field –
  12. you'll drive to that square and stop once you've reached it. If you change your
  13. mind and want to stop immediately, double-click anywhere on the map or
  14. press "C" (cancel order). The color of the tile represents the type of ground,
  15. which determines how fast you drive over it. You drive the fastest on road,
  16. which is black; light green grass gives you a medium speed; dark green forest
  17. makes you move slowest.
  18. When you start, you'll have a bit of ammunition and full armor. Fire your gun
  19. straight by pressing "F", lowering your ammo count by one. Getting shot by
  20. another tank or a pillbox will lower your armor count by one, and if that
  21. reaches zero, you'll die and respawn randomly. (Both of these counts are
  22. displayed on the top-left of the screen.)
  23. The map contains a few bases, which look like yellow squares. At the start of
  24. the game, they are gray (neutral) and any tank can claim one by driving over
  25. it. If you own a particular base, stopping over it will refuel your tank with
  26. ammo and armor. An base you don't own won't refuel you, but you can repeatedly
  27. shoot at it to weaken it, then drive over it to "capture" it.
  28. The map also contains a few pillboxes, or "pills", which look like gray circles
  29. with colored rectanges sticking out of them. Pills will automatically shoot at
  30. their nearest target within range, and they have infinite ammo, but not
  31. infinite armor. Destroy an enemy pill (red) and pick it up by driving over it,
  32. then place it below you, anywhere on the map, with "P". It'll be green, and
  33. will shoot at your enemies instead of you!
  34. You win the game by controlling all refueling bases on the map and then
  35. destroying your rival tanks – tanks that don't control any bases don't respawn!
  36. ADVANCED TIPS
  37. -------------
  38. * Refueling bases have limited reserves of armor and ammo, which regenerate
  39. slowly over time. In particular, shooting at a base lowers its armor reserves,
  40. and it is "destroyed" when its armor count reaches zero. Therefore, trying to
  41. refuel yourself on a recently captured base might not help that much!
  42. * At the start of the game, try your hardest to ignore the enemy tanks and
  43. pills and go straight for bases – controlling bases is the most important
  44. strategic element, after all.
  45. * To protect your bases from enemy attack, try placing pillboxes directly
  46. adjacent to them.
  47. * Pillboxes have "anger" – they'll shoot faster if you shoot at them, but
  48. they'll calm down over time. In other words, it might not be the best idea to
  49. take down an entire pillbox in one go, but hurt it and then come back later.
  50. * Consider shooting your own pillboxes if an enemy is nearby – you'll "anger"
  51. it, and it will shoot at your opponent faster! Also, don't hesitate to destroy
  52. your own pills completely and re-place them in a better location, or even in
  53. the same location with full health if they were damaged beforehand.
  54. BUGS / LIMITATIONS
  55. ------------------
  56. In the original Bolo, the map takes up many screen widths and is scrollable
  57. with the tank at the center. "follow" by itself wouldn't work, because NetLogo
  58. does not allow objects off-screen. I spent a while trying to figure this out,
  59. at one point essentially rewriting the rendering engine and using a table of
  60. "actual" patch coordinates that was translated into "virtual" patch coordinates
  61. each frame – not only was this very slow, but it was very overcomplicated and I
  62. wasn't able to do everything I had wanted. Instead, the map was made one screen
  63. size.
  64. In the original Bolo, patches are not merely colors - they have patterns on
  65. them (grass has little green lines, forests are spotted, roads have white
  66. stripes). This was not possible in NetLogo because patches can only have a
  67. single color.
  68. Time was also a limiting factor: I had planned a lot of additional features
  69. found in the original Bolo, like a nicer GUI for showing armor and ammunition,
  70. water as a ground-type (which drowns your tank), allies and multiple enemies
  71. (grr!), a nicer game-over screen, and a much, much smarter AI. These were
  72. skipped so more work could be spent on general polishing and testing.
  73. CREDITS / MISC
  74. --------------
  75. * Stuart Cheshire for the original Bolo game. Some graphics used in this
  76. project (tanks, pillboxes, and bases) were heavily based on old sprites taken
  77. from Bolo.
  78. * My dad for introducing me to Bolo many years ago, and for helping me simplify
  79. the original Bolo game into something possible with NetLogo.
  80. * Josh Hofing for advice on implementing certain features and positive
  81. encouragement.
  82. * Chain Algorithm - I wrote the entire AI routine in less than an hour
  83. immediately before the project was due (ha!), and I don't think it would be
  84. possible if I hadn't been listening to your music on loop the entire time.
  85. Really gets your blood pumping, y'know? Yeah.
  86. This project is available on [GitHub](https://github.com/earwig/lobo). I used
  87. it for syncing code between my netbook and my desktop when working on the
  88. project away from home.