Archive for the ‘Development Diary’ Category

Christmas Update

December 25, 2009

Progress on the game continues, although I really ought to pick up the pace. You can build new ships now (you could before, but there was no UI to change the type, so all you’d get are scouts). I’ve largely fleshed out how technologies work and coded definitions 60-70% of them – weapons, shields, armor, engines, power sources are all done. Research is half done, with some UI work left to finish. I’ve also done various optimizations, tweaks, fixes, and other uninteresting work.

Combat will be tactical and turn-based. It will be  halfway between the combat from MOO 2 and what Gratuitous Space Battles should have been, if you could control the ships rather than idly watching them. After mulling it over for several weeks, I’ve settled on using normal-mapped sprites rather than plain sprites or 3D models for the ships. This will let me add a high level of detail to the ships, with lower system requirements (maybe), while still being able to light them realistically in 3D as they turn and move. The trade-off is that it forces a fixed overhead perspective, but I think that’s fine. You’ll still be able to zoom in and out, and 3D cameras in a 2D battle space don’t add much value. I dismiss the alternative of conducting battles in full 3D as being cumbersome and inappropriate given that combat here is just part of a larger game. I’m excited and eager to get working on the battle engine.

First screenshots, interfaces, thoughts

December 8, 2009

Work on the planet and  colony interfaces has made great strides over the last several days. This has taken longer than it should have, possibly because I believed it would be more difficult than it really was. I’ve had to rework the economy simulation somewhat to incorporate the spending controls, but the result looks good and will minimize micromanagement. Construction of ships and missile bases now works. With that in place, I’ve decided to post a few early, work-in-progress screenshots. Tomorrow’s project, once I finish writing detailed descriptions of all the planet types, is to work on the fleet panel which will let you issue movement orders.

First, the colony panel. This drops down when you select a star system which you have control and shows you all the vital information about the colony. Spending controls allocate percentages of the remaining production in a cascading fashion from top to bottom – you can see here that “Growth” is taking the bulk of the funds. You can rearrange the sliders to reflect different priorities. On the right you can see that the colony is building Scout ships. Pressing the Shipyard button will open another panel allowing you to select which kind of ship to build. A few finishing touches, like an ETA for ship completion, still need doing. Notice the UI elements match the player’s color choice.

Second, the planet panel. This describes uncolonized planets which you’ve explored. You can also toggle between it and the colony panel once you’ve colonized a planet, although it isn’t necessary (everything you need to know is available on the colony panel). The terrain distribution is unique to each planet, with trends determined by planet type. Presently the terrain amounts determine the planet’s maximum population and  its natural capacity to absorb pollution. Among the various alien races which you can choose to play, some will be better suited to terrains other than solid land, and their preferences for which worlds are most desirable will differ. I’d like to do both an aquatic race and a race modeled loosely on the Mycon from Star Control 2 who will prefer volcanic terrain, provided the experience of playing as them sufficiently distinct from the other races without unbalancing the game.

A vision of how the combat system will work has started to materialize, and I’ve some good ideas about the ship design UI as well. Combat is tricky, because it must be fun but brief, and supports ship design by giving you an opportunity to see your designs in action (which likewise give you an opportunity to apply your researched technology). The danger of putting too much detail into combat is that if battles become very involved, it slows the game down and detracts from the higher level strategic gameplay. Combat should involve huge fleets pounding each other into oblivion and not degenerate into protracted maneuvering and evasion. I’ve also thought about whether it makes sense to build the AI around something resembling a blackboard system, versus what I think is a more conventional design using multiple layers of decision-making and thresholds applied to weighted sums of various evaluators. Writing the AI will be very interesting.

Planet panels, AI musings

December 3, 2009

I’ve made good progress on the panel UIs for viewing stars, planets, and colonies. These slide down from the top of the screen when you click a star system on the map. Which one appears depends on whether you have explored the star and have up to date information about it. I’m really happy with how they’re looking. I’ve finished the star and planet information panels. The colony panel presents its information about the colony but doesn’t implement spending controls. I’ve sketched out a design in Inkscape, but I want to think about it more before committing the details to code. Having a working planet panel led me to spend some time scrolling around various random maps, inspecting planets and tweaking creation parameters for the planet types to make them bigger, smaller, more or less hostile, and adjust the balance of terrains. I also added planetary mineral wealth to the map generator. The panels look great but highlight the need to finish artwork for all the planet classes – only half of them have unique images so far. I’ll take a stab at that today, along with some work on the colony controls. I’m eager to get that done and move on to fleet controls.

Once I have ships flying around, I could piece together a playable subset of the game with a few days effort. There’d be huge swaths missing (research, ship design, tactical combat), but it would be a useful milestone. I suppose I’d have to add a crude AI in there too. I don’t think that would take very long. It might even be a better approach versus putting the AI off until later, as it would give me a manageable starting point and shake out the worst of my ideas early. If I put the AI off until the game was closer to feature-complete, there’s the risk that I get paralyzed trying to juggle all the game’s aspects simultaneously and don’t know where to start. Growing the AI incrementally seems worthwhile.

I’m tempted to post screenshots, but I think I’ll wait until I can spruce the space backgrounds up. I’d also prefer to wait until there’s more going on in the star map to show off.

Status and Economy Controls

December 1, 2009

The game is roughly two and a half weeks into development now, and proceeding slower than I’d expected. There’s a lot of design work left to be done. Still, the pieces are starting to come together. There’s a functional starmap, map generator, and a fair portion of the graphical and UI infrastructure in place that we’ll need for the game. Roughly half the model of the game world is in place – stars, planets, colonies, economy simulation, and fleets are mostly there, but research/technology, trade, and ship design are still on the drawing board. I don’t want to the model and simulation to grow too far without implementing the user-interface side that connects to them, so the coding blitz is presently stymied by the need to design interfaces for controlling fleets and planets. Fleets should be straightforward, but controlling planet economies takes quite a bit of thought.

Internally, spending controls boil down to eight numbers determining spending amounts in each category, but there’s some redundancy such that certain combinations of spending just don’t make any sense (i.e. terraforming a polluted or underdeveloped planet), and the player shouldn’t need to micromanage at that level. The per-category economy sliders as implemented in the original Master of Orion are a viable approach, but I’m striving for something more streamlined. My first idea was to combine that concept with controls to automate spending – in particular, a mode which locks ecology spending at the minimum, and a “Growth” mode that balances housing and industry development as needed to grow the colony. Funds not allocated to maintenance/growth could then be divided between construction/defense/research. In a framework of MOO-style spending allocation, this doesn’t obviate the need to monitor colonies continuously except in simple cases (colonies dedicated to shipbuilding or research). Therefore I’ve departed from this idea somewhat.

The current plan is to divide available funds in prioritized stages, each stage allocating a percentage of the funds remaining after the previous stage. The first stage obviously is colony maintenance and growth. You can crank this to 100% and be secure in the knowledge that if the money can’t be spent productively here, it will be passed through to the next stage instead of being wasted. Once a colony set to 100% growth reaches its maximum population and industy it will spend only the minimum needed for maintenance at this stage and pass the rest of the funds through, but if new technology such as terraforming becomes available that allows further growth, a setting of 100% will automatically take advantage of it. Defense spending seems logical as a second allocation stage, with a target number of missile bases past which spending is cut off, so you don’t have to worry about runaway base construction. The third spending stage would allocate funds to ship construction. Remaining funds may go directly into research, or go through a final allocation stage of research versus trade. I have some ideas for a trade system which I hope will become an important part of the game, but it’s very tentative right now. Presently I’m mocking up UI ideas for the planetary spending controls. Doing a good job with planet controls means the player should see them less often, without losing flexibility in how his colonies are employed.