Wednesday, February 26, 2014

7DRL 2014 plans

I figured it would probably be a good idea to set goals for myself for this year's 7DRL challenge, like I did last year, so here goes:

Day 1: Map generation. This involves creating a network of linked star system maps ("rooms"), connected by warp points ("doors"). They'll probably be laid out on a grid to simplify map generation code, and so I don't have to swipe code from FrEee to do that. And of course, the stereotypical @-ship running around on the galaxy-map!

Day 2: Enemies and combat! This means enemy shipyards (which will start off as visible, until I implement tachyon sensors) that spawn enemy ships. Combat will be simplified, since I won't have ship components yet.

Day 3: Ship components. For both the player and enemies! Will be defined in JSON files for easy moddability. Won't have generic "abilities" like in SE4; that's too much work for a 7DRL. Instead, each component will have a single function, and each JSON file will contain only components of a single function (e.g. weapons.json or engines.json). Not all components will be defined yet; only a basic subset of them as a proof of concept.

Day 4: Shopping shopping shopping shopping! Killing enemies should give the player minerals, as should discovering allied colonies. Allied colonies should also allow refitting of your ship using some sort of shop interface.

Day 5: More components! Just filling out the data files here with more components to make the game interesting, now that we have shopping. This is when the enemy shipyards become cloaked, since now you can buy tachyon sensors.

Day 6: Testing & bugfixes. Let's make sure the game is winnable, and it doesn't crash (very much)!

Day 7: Extra day planned into the schedule in case I'm not up to working on the game some other day!

Thursday, February 20, 2014

7DRL 2014 ponderings: Beware of Strange Warp Points

So I thought it would be fun to do a Space Empires themed roguelike for this year's 7DRL challenge. I think I'll call it "Beware of Strange Warp Points". It will play out sort of like the old DOS Trek games (could those perhaps be considered early roguelikes?), or like last year's KlingonRL - you're the captain of the last surviving ship of the Terran fleet, and it's your job to stop the Jraenar invasion!

I'm thinking the map will be laid out on a grid, with star systems being like "rooms" and warp points being like "doors". I say a grid and not a freeform warp point network because grids are easier to program. That said, I'd like for there to be "holes" in the galaxy map, so it resembles a cave level in a traditional roguelike.

The player will start with a basic ship, and will be able to upgrade it at a spacedock using minerals he collects, either from defeated enemies, or from allied colonies. Unlike in traditional Space Empires games, ship design will be a bit more freeform - there won't be any preset "hull sizes"; instead, you can just install whatever components you want. The more components you install, the heavier your ship becomes and the slower it goes, unless you install more engines to counter this effect. I guess it's kind of akin to a traditional roguelike's inventory system - you carry more equipment, it slows you down; you drink strength potions, it lets you carry more stuff!

Since most weapons in Space Empires are ranged, and targeting ranged weapons in a roguelike is a pain, I thought I'd do something a bit different with the combat system. Weapons will automatically fire at a randomly selected (or perhaps the closest, if there is ranged accuracy/damage loss) appropriate target every time they are reloaded. So all you have to worry about is maneuvering your ship to stay in range, but out of range of too many enemies' weapons!

I'm thinking the goal of the game will ultimately be to destroy all the Jraenar shipyards scattered around Terran space. Perhaps they will be cloaked, so you'll need to upgrade your ship with a tachyon sensor to detect them! Destroying the Jraenar ships is ultimately a diversion; once you take out all the shipyards, the game would only get easier from there, so there's no point in dragging it out.

I haven't decided how I'm going to handle missiles and units yet. Perhaps missiles will behave the same as they did in SE4 - move at a set speed toward their target, and be able to be shot down by specialized point defense weapons. Or, if I'm feeling lazy, they'll just be long-ranged weapons with 100% accuracy but high cost and low fire rate. Another alternative is a MOO2-style "missile evasion" stat, which the point defense weapons would increase, abstracting away the missile/PD balance while still keeping it in play.

As for units, I suppose there's really only a few kinds that I'd need to worry about. Troops and weapon platforms are pretty much irrelevant, unless I actually want to include planetary combat. Drones are basically just fancy missiles, so I don't really see the need to include them. Fighters would be interesting - have them controlled by AI and pursue the enemy (or you, if they're enemy fighters)? Mines would also be interesting, especially if they're invisible like in SE4! Satellites are basically just giant immobile fighters, so I'm not sure if they're really all that necessary.