From: Shae M. E. <sh...@Sc...> - 2003-04-26 16:03:49
|
Please respond with any comments, thoughts, or ideas. Basic Idea: real-time strategy, similar to warcraft, starcraft, command&conquer, etc different in that the player writes the AI for his units ahead of time, and then uses high level less-detailed controls/commands in battle (or more detailed if you want to write it that way) Problems seen in other games: In starcraft, single units or groups of units will attack enemies effectively committing suicide by running into situations that are obviously deadly In most RTS games, each of your units in a group will shoot at the enemy unit or building nearest to them, rather than all of them focussing on killing off the most threatening opposing unit at the time. Example, a group of units shooting at a building while they're picked off one by one by a single strong enemy unit Solution: write a game that has elements of both detailed interactive real-time strategy games such as warcraft and non-interactive programming games like corewars Planned Features: 'fog of war' Human player has line of sight and direct control close to hir command center and nearby buildings Orders can propagate from one unit to another across the battlefield. Information about the map, dead units, etc can propagate back to the player from units returning from the field Events: All events and orders should be timestamped, otherwise insanity will result Orders: UI should be a pictorial finite state machine states should be modes such as "attack enemy base" "defend myself" FSMs can be composed of other FSMs order replacement should be allowed without needing to restart at the beginning of the new orders that would require mapping the old to the new, how to do that? order primitives: "Stay where you are and do nothing" "Stay where you are and shoot at any enemy that comes within range" "Go to waypoint X" "Build a tank" (buildings need orders too!) "Build a tank and put it in group 'Attack force' and group 'Team 2'" "Build a tank and put it in group 'Attack force' and group 'Attack Team 2' with orders 'Attack team 2'" Units: spotter aircraft to quickly update the shaded portions of your map, and to see friendly forces, losses, and enemy troops; should these aircraft be able to relay orders? probably not fast courier units will be important, and obvious targets for the enemy Waypoints: there will be global waypoints to use in order construction Open questions: Is communication jamming a good idea? Current plan: Igloo says "write a command and conquer clone, then we can extend from there" Darius found an SDL sprite engine written in C++ multi-player is one of the necessary early features, for fun, motivational purposes, effective testing, etc basic features: map grid units one piece (square? hexagon?) of the grid should have some way to approximate slopes Unit types have max hit points, max speed, sight/comms radius, weapon(s?) and special abilities. Individual units have hit points, velocity, time(s?) till can next fire, orders. Buildings are units too. UnitType should be records so we can get e.g. the hit points of any unit type with the same function easily. We'll probably need hasFoo functions for some of the ones that not all types have. So should everything else so we can add bits without breaking all the code. -- Shae Matijs Erisson - 2 days older than RFC0226 #haskell on irc.freenode.net - We Put the Funk in Funktion 10 PRINT "HELLO" 20 GOTO 10 ; putStr $ fix ("HELLO\n"++) |