There are lots of software development strategies, but the one that comes naturally to me is rough iterative development. The process starts with an idea for a feature, which is then used to produce a gameplay prototype. I try the prototype out to see how it feels, and show it to people to collect feedback. That feedback is used to refine the prototype into a second iteration, which is then tested and shown to people again to collect feedback. This cycle continues until eventually I’m happy with the feature. Usually I do all the testing myself and only show the prototypes to a few real life friends, but over the past few weeks I’ve been showing the prototypes to people via the blog. Even with just a few people commenting, it’s been really useful.
There are now a lot more squares to scan on a planet, meaning a lot more exploration is required.
There are now buttons for sending out missions of different sizes: 1×1, 3×3, 5×5 etc.
The scout travels to the center square of the mission, spends 1 turn per square surveying, and then heads back to base.
On arrival at base, the area is revealed and a survey report pops up listing what has been found.
You can queue up as many missions as you want and they’ll be tackled in order.
Missions have a cost based on the distance and number of squares surveyed, which must be paid up front when you schedule the mission. This makes it really expensive to scout far away places.
I feel like the basic scouting mechanics are now very solid, but I need to add a few more things to the next iteration of this system:
Option to cancel any scheduled scout mission before it begins to get a refund.
Some way to have multiple scouts? Maybe they’d just speed up the surveying process itself, and reduce its cost.
Scanners that can instantly scan squares in exchange for energy reserves.
Colonising settlements, and scout missions being sent from the nearest settlement.
Try out different “fog of war” effects for the squares. It might be better if unexplored squares were dark and opaque, and it’d work better on ice worlds than the current pale white.
Once those features are in, I’ll begin work on a system for placing extractors on resources. I should be able to get that done within just a few days if nothing comes up that stops me from working. I’ll post a video of it when it’s done. If you have any feedback on the planet exploration system described above, please leave it in the comments as it’ll be very useful as I do the third iteration on the feature this week. For example, should scout missions cost money at all or should the balancing factor in scouting far away places be just time?
This week I’ve been working on a prototype of the planetary exploration feature discussed on the Colonisation page. The plan was to split each planet up into a grid, and then have the player survey squares to find out what’s there. Exploration only needs to be done once for every planet, and it’s the only way to find resources or increase a planet’s maximum population. The idea is that every time you colonise a new world you’ll explore it and decide how to capitalise on what you’ve found. You might find the planet has a lot of ore deposits, for example, and build extra factories to take advantage of it. Or you might find ancient ruins to build research outposts on, or a uranium deposit that would let you put up a nuclear power plant.
As you progress in the game, you’ll get technologies that make scanning a planet faster and easier, like scanning tech that can spend reserve energy to scan a square, several squares, or a full screen instantly. Ultimately, you’d get the tech to automatically scan all planets from orbit so that when you’re in the late game war stages you don’t have to deal with the micromanagement of exploring new planets. Below is a video of the current gameplay prototype of this exploration system (using massive placeholder models for ore deposits etc). Watch in 1080p fullscreen if possible:
Things you can discover:
Ore deposit — One required per factory.
Ancient Ruins / Scientific curiosity — Build research outpost on this. Not sure if it’ll increase research output of colony by a percentage or if you’ll need 1 per lab like ore deposits for factories.
Food — Particularly good food source that you can build a farm on. Not sure how I’m going to implement this bonus.
Settlement location — Start settlement here to increase planet population. Cost of gathering resources is based on distance to nearest settlement.
Coal/Oil — Required for fossil fuel power plants, which output more energy than solar/geothermal.
Uranium deposit — Required for nuclear power plants, highest energy output.
Random discovery — Find new technology, stuff you can salvage for money, or something else.
What I’d really like feedback on is the exploration/scouting system itself. You currently send scouts out from the nearest colony/settlement, and they travel to the location, survey it, and return home. This doesn’t feel very fun as the scouts all come home at different times and you have to send them out individually again. If you go for a few turns without sending one out again, it’s a waste of a limited resource. Being forced to send them out constantly isn’t really fun, and I don’t want the player spending a lot of time in this screen.
So I’ve been thinking of removing the limit on the number of scouts and just charging the player a fee to send a scout mission. That way it becomes a financial consideration, and you don’t feel obligated to send a new scout mission out every few turns. You could wait a few turns, build up some money, and then send 10-15 scouts at once. It also means that when you colonise a new planet you can spend a large amount of cash to rapidly survey the surrounding area. and start building factories etc quickly.
Anyone have any ideas or suggestions on making this exploration process more fun?
Every 4X game has a way to notify the player when something happens that requires his attention. Games will typically have a turn summary page reporting anything important, but I want a more direct visual notification that isn’t just a text list. The idea I’ve been prototyping this week is a taskbar that runs along the bottom of the screen and alerts the user to tasks that require their attention. If a planet has a building that needs to be placed or a problem that needs to be fixed, or if a discovery is made or a scout finishes surveying a planet etc, a small icon relating to the event will drop down into the task bar. When clicked, a window would open explaining the notification and with a shortcut button to go directly to the screen/window that will let you deal with whatever the notification is for. Either that or clicking the icon might bring you straight to the source of the notification.
For example, you could start building a colony ship and check a box that says you want to be notified when it’s complete. When it’s built, a little ship icon would drop down and land in the task bar. On clicking the icon, a small ship/fleet window would open and you could immediately give the ship orders. Similarly, if a survey mission on a planet completes, a notification could immediately appear in the taskbar and open the planet or solar system when clicked.
I got some great feedback on what type of system window to use, and have decided that a small self-contained window is the best option. This week I developed a modular window system that keeps track of all the windows that are open and has options to resize, close and minimise to the taskbar. The game now supports having multiple system windows open, which might be handy if you need to keep track of or compare multiple systems. The video below demonstrates both the modular window and taskbar system:
I’ve tried out two different schemes for the system view: A small separate system window with evenly spaced planets like in MOO2, and a fullscreen version with more realistic full solar systems. I promise that I would put up a video of both to collect feedback, so below is a video with examples of each:
Small system window: This setup has the advantage that it doesn’t take up a lot of screen space, so you can open it quickly while doing other things on the main galaxy map. It’s limited to a maximum of about 6 planets/asteroid fields/gas giants, and would use the same kind of random distribution as Master of Orion II. The window can be used to quickly show information like fleets stationed in the system. I could easily make the window resizable, and there’s a possibility of having more than one open at a time.
Full-screen system window: This setup allows for more realistic solar systems, with up to 9 rocky planets, one massive asteroid field and up to two gas giants. The gas giants would orbit the system mostly outside the screen, and if gas giants are present an asteroid field can exist between the rocky planets and gas giants. Unfortunately, to get this kind of realistic planet distribution and still allow the user to click on planets this view has to take up the entire screen, meaning you could only have one open at a time and couldn’t have it open while watching other things on the main screen. It could allow for gameplay like exploring individual segments of an asteroid belt or moving fleets within a solar system, but it would also make it so gas giants couldn’t be used in any gameplay and would increase habitable planet density to up to 9 per solar system, which might be too much for large maps.
After testing both systems for a while, I’m still leaning toward the small system window. I’ve got a lot of positive feedback on it already and I don’t think the full-screen version brings enough to the table. I’m all for making the game look good and having more realistic solar systems, but I don’t want to do that at the cost of usability. Most of the game will be played on the galaxy map, and covering that whole screen up just to see what’s going on in a solar system or click on a planet might end up being a nuisance.