Fleet deployment works

Deploying fleets is in. Basically, you can select a fleet (which can contain multiple stacks of ships), pick a subset of those ships and then send them to another system. Pressing “Next Turn” will move those ships along until they arrive at their destination.

I have a hit list of tiny bugs to fix and features to verify (stargates, hyperspace communication), but a player can now design, build and deploy ships across the galaxy. Colonization is not in yet, but there will need to be a bit of image scraping before that can be done.

Here are some sample screenshots…

Below you can the error displayed when a ship cannot reach its destination.


However, as seen below, that same destination may be reachable by a ship with reserve fuel tanks. The destination line turns green and an Estimated Time of Arrival is displayed.


Finally, after a few presses of “Next Turn”, two of the 3 ships deployed arrive at their destination, which are immediately scanned by the ships.


Still a few kinks to work out but, once they are done, I’m switching to the “Map” UI.




Ship Design is functional

The ability to design and build customized ships in Java MOO is complete. All of the options in the original game are implemented. All that is left is visual polish, which I will be working on for a few more days.

The screenshot below provides a good example. I played the Psilons for about 120 turns or so, learning a bunch of technologies. I then designed some large ship and built about 5 of them on the home colony. You can see the configuration for this ship below.


I’ve settled on a greenish-tint for this UI. There are still some minor visual bugs… The Ship Icon on the bottom is oversized. The weapon damage values should be centered…. I need to verify all of the textual descriptions of the various weapons and ship specials. The specials have descriptions, but they’re not being displayed at the moment. Bad coding, obviously.

Below is the selection panel that comes up when you want to select a new ship weapon. I still need to implement scrolling for really long lists, but that’s a trivial point. Also, the numbers should be right-aligned (although they are left-aligned in the game).


Finally, below is a screenshot of selecting Ship Specials. Please note that all of the other selection options (Computer, Shield, ECM, Armor, Engine and Maneuverability) are also working. You can see how I placed a green haze over the underlying UI to make it clear that you can only interact with the selection panel.


I expect maybe 2-3 nights of polish on this feature and then I’ll move onto the next step of Phase 2… Sending ships out to other planets to scout and colonize.

Fun stuff! I am very pleasantly surprised with my progress so far.



Early Ship Design screen

Phase 2 work is well underway. I am wrapping up “Step 3” in my earlier post, the UI for displaying and scrapping ship designs. Because of the blandness of the original UI from MOO1 and also overlap of this functionality with the Ship Design UI, I have decided to combine the two UIs into one.

This not only simplifies the development but also improves the player experience since you no longer have to jump to a new screen to scrap obsolete designs.

Below is an early mockup of the ship design UI. Right now, you can display, scrap or build a design… but you cannot modify one. That will come next week and requires a bit more UI work.



And here is a version of the game UI that I made when I was first learning Java. I think there’s a huge difference!




Phase 2 plans

Work on Phase 2 (ships! exploration! empire!) starts tonight. Broadly, here is my current planned order of work.

1. Display fleets – show fleets on map and allow them to be selected

2. Change ship designs – allow player to choose which ship design he wants to build on a colony. This could include a stargate, which would also be drawn on the map.

3. Fleet design listing – the screen that shows the current active designs (up to 6), with the ability to scrap a design. A pretty simple screen.

4. Create new ship designs – The Ship Design UI is a complex beast and one of the most important UIs in the game. I’ll get on it fairly early.

5. Send fleets to destinations – provide the ability to send fleets to other systems. Will need to account for stargates and hyperspace communications.

6. Fleet arrival events – things that happen when you get where you are going. Scouting new systems. Learning a technology for being the first to scout an artifact planet. Colonizing planets.

7. Fleet status screen – the UI that shows all of the player’s fleets and where they are at or going to.

8. Strategic Map – the map that shows the entire galaxy and various aspects about the races and planets in it.

9. Colony listing – the UI providing information all of the player’s colonies, empire-wide income and expenses, and the ability to transfer from the empire reserve to a colony.

The hope is to have this done by the end of June. We’ll see. There are a lot of large UIs to do but this is all very straightforward work.

Phase 1 screenshots

Phase 1 is officially “done”, so I’ve rounded up a set of representative screenshots to demonstrate the look of the game so far. Anyone who remembers the original Master of Orion should like these.

The opening splash… not much here except a nice background image. Kind of sucks that the best-looking screen is the one that took the least amount of effort!


Next are the two-stage setup screens. These are the identical options available in MOO1 except that the number of opponents is currently locked at 0.



Here’s the main map after you start a game. I chose the Bulrathi for this round. There are some improvements to this screen that are not in the original MOO. Most notably, you have the ability to set colony-specific limits on the number of missile bases you want. The map is easier to navigate, and there is a bit more info on the colony detail… factories and shield level.  Note that the unfinished gray area is where the ship design selection is going for Phase 2.


Here is a view of an explored but uncolonized system. Note that the range text is in green which indicates it can be reached by your ships without extended fuel tanks. The planet type is in Green as well, which indicates that you can colonize it.


Below is an explored system that can only be reached with extended fuel tanks (range text is yellow). The planet type is in Red which means that you do not have the technology to colonize it.



The final system is one that’s unexplored — you only know the star type. Also, the range text is in Red which indicates that even your scout ships cannot reach it.



Here is the Tech allocation screen. It’s almost a mirror image of the original MOO screen:



Below is the screen presented when you need to select a technology to research. Identical to the original game.




Below is the screen you see when you have learned a technology that allows you to automatically reallocate spending in your colonies. Identical to MOO as well.


After pressing next turn, the shot below may display after you’ve completed building factories or your population. Unlike the original game, if you complete more than one item in a turn for a colony, it will notify you only one time.



Below is the new notification that shows up when you have finished building missile bases on a colony. Any MOO1 veteran knows that the lack of base limits was one of few micro-management issues in the original game. This problem will be gone in Java MOO.


That basically covers the UIs added in Phase 1. A lot of the work in this phase was not related to UIs at all, but getting all of the underlying game mechanics working properly.


Progress update

I’ve divided this project into 5 distinct phases, giving myself perhaps 3 months to complete each phase. Executable jar files will be made available after each phase is complete.

Phase 1: Colony management

All of the capabilities of colony management will be available. You’ll be able to research technologies and upgrade your colony based on technologies you have learned. For example, you’ll be able to terraform your planet, build ships, factories, missile bases and planetary bases.

You won’t be able to expand into other worlds yet, but huge chunk of the game’s infrastructure will be in place after this phase. Although you’ll be able to select your race and enjoy the benefits from that, there won’t be other races in the galaxy just yet.

I expect this phase to be complete by the end of March (3 weeks from now). Maybe. I am really focused on not hurrying this project so that I can spend more time polishing.

Phase 2: Fleet management

You’ll be able to direct ships you’ve built in Phase 1 to other planets. This will allow you to scout distant systems, build colony ships, and expand throughout the galaxy. All of the ship design options will be available but there won’t be much point in building warships. Transports will be functional as well.

I am planning on this phase to be complete by the end of June.

Phase 3: Diplomacy 

Alien races will begin populating the galaxy and you’ll be able to interact with them diplomatically. This includes the various diplomatic states: war, no treaty, non-aggression pact, and alliance. Trade agreements will be allowed including the ability to trade technologies. Players will be able to establish spy networks to learn more about their opponents as well as commit acts of espionage and sabotage.

There is a lot of dialogue related to this release, so I hope I can stay on schedule and finish this portion by the end of September (3Q). Automated ship combat may get in this phase, but possibly not.

Phase 4: Combat

Ship combat and planetary invasions will be support. Ship combat is complex and will take up the majority of the time. Planned by end of December (4Q).

Phase 5: Events and finish polish

Random events will be added along with anything else that needs polish. Saving and loading games as well. If it is warranted, the aging graphics of the original game may be upgraded. In any case, they will definitely stay in theme with the original Master of Orion. This phase will be done when it’s done.