The noble history of Expedition goes way back into the past as far as 2009. I invested around 300 development hours on it, and many times I’ve sit to plan its future… now that Ananias is released it’s time to finish it for good.

Expedition was the original Slashware Interactive project (I abandoned my day-job to work on it). I was going to be a great indie developer, but then many things happened when I tried to scale the work I had already made into a bigger product with features to appeal more people (I lacked the experience to create a fully working 2D game engine with Java, and back then there were little options). Simple things such as adding tile animations turned into a hell dealing with threading stuff and trying to make Swing behave, and performance was subpar.

There’s been a public version at the website for some years; it is completely playable but doesn’t include all that I had planned for it. Now I’m wondering again what would be the better approach to finish it, for which I have two main issues:

Issue # 1 – What technology to use

Option 1 – Finish the development from the current codebase in Java

Pros Cons Quicker time to market. No animations AT ALL.

No scrolling possible ever.

No 2D graphic effects.

Not very fun to work in (may cause frustration)

Not available for mobile devices.

Support for music / SFX is limited.

Option 2 – Remake in JS using Phaser

Pro Cons Can use animations and graphic effects

Scrolling is possible

Rewriting is always fun and adding the new stuff.

Available for more platforms. Start from scratch, may take around 80 hours to get to the current point.

JS weakly typed nature may make maintenance harder.

Issue # 2 – What features to include / How to roll them out

There’s a huge roadmap with lots of features I’ve dreamed. But what will be the best approach to release them as a product?

Option 1 – Release a first edition with minimum features.

Reduce the feature set to include mainly exploration focused stuff, leaving aside other stuff for the future.

This first interaction cycle could be summarized as follows:

Assemble your Expedition in Spain making the best use of limited resources.

Survive transatlantic journey to America braving storms and handling your crew.

Establish towns to serve as safe places for your Expedition.

Explore the new world looking for native civilizations, ruins, natural wonders, exotic plants and animals, obtaining fame to be rewarded on Spain.

Trade with natives or conquer them, obtaining goods to sell on Spain.

Survive transatlantic journey to Europe.

Be rewarded for your journey, prepare for next voyage.

Having in mind the previous issue, an attractive option would be doing a first release using the current Java codebase, which already covers most of this cycle (I would still need to invest some time on the exploration and trading parts tho)

Option 2 – Go a little further

Expedition won’t be a graphics intensive game (See issue #3 below). This means it has to be good in other aspects in order to be attractive for people. Releasing an early version without all the features may just not be appealing enough and make Slashware look bad.

Here’s a summary of some prioritized features from the roadmap that could be added:

Autosailing: Follow a direction for a given time or until an event happens.

Colonies production: Make towns produce goods

Colonies growth: Make colonies grow on size on themselves

Military buildings: Allow building barracks to train colonists into soldiers, walled fortresses and towers.

Road making: Allow creating roads of different quality. Units can move faster over them, mounted units and vehicles get an additional bonus.

Mines: Allow finding veins and creating mines, linking them to colonies.

Camping: Add expedition fatigue, allow to make camp for the night, and sleep on the ships.

Land Vehicles: Add land vehicles you can use to carry more, restricting movement to some terrain types.

River Exploration: Add rowboats to explore shallow waters.

Zoomed in areas: Generate zoomed in areas for mountain passes, caverns and towns, allow zooming into them.

Also not included in the roadmap but definitively interesting to pursue:

More random events that could happen both in the sea or during land expeditions.

Personalized profiles per expedition member and relationships between them

Option 3 – Aim for something even grander

There are many other things from the original roadmap which I consider just don’t fit a concise vision for the game: To make the player experience being in one of the first European expeditions into the new world, that feeling of being tracing new lines into the world map. This is due to an initial biggest statement of Expedition being a “detailed sandbox of the XV century world”, that’s just too big and may be very hard to turn into a fun experience.

These include things like interacting with other European expeditions, traveling to other parts of the world (including visiting mediterranean cities), simulating relationship between the different nations, laying siege to cities (but then expeditions become armies), trading all around the world

There are however some facets that I still consider interesting exploring, may be as add-ons to the original since they’d require more populated territories to work:

Piracy: Be a pirate captain, recruit rogues, steal ships, look for buried treasures, attack cities.

Religion: Spread your faith in the land, combat infidels.

Issue # 3 – Graphics Style

The game currently supports 5 different graphic styles, where the player is left with the choice of which one to use. Should I instead impose a single choice to give the game an unique character and make development easier?

SwingBox and Curses are ASCII modes where all output is represented with characters, I think only an extremely minor portion of the players will enjoy and understand it which makes it hard to consider a default choice… but interesting enough, if I were to use them then continuing using Java would be a perfectly valid option. (this was the original output mode, and all complications began when I added graphics over it). They work using libjcsi, a java ascii display lib I did years ago.

Then we have the modes with actual graphics, there are currently two tilesets for Expedition, a 32×32 tileset made by Denzi and an 8×8 tileset made by Oryx. Denzi tileset is shown 1x in “Denzi” mode and 2x on “Big Denzi” mode (with tiles being distorted as rectangles in order to fit the screen). Oryx tileset is shown 3x.

The Oryx tileset should have a familiar style. It’s very iconic and does a great job of providing a graphics representation while not requiring a great production effort for new tiles. I’ve thought on using a slightly modified version of it in order to make it feel a bit more unique.

Of course, Denzi tileset is more detailed (specially for the units), however due to the nature of the game engine, the map model and the turn based interaction, the world looks a bit weird on it. May be it would look a bit better with some post processing for the “beaches” to use the corner tiles supplied. May be it’s the color of the sea, I don’t know.

I am not sure about the “BigDenzi” mode… On one hand I think the perspective fits more the higher resolution of the characters, but some people have complained about the distortion on the map. I also dislike having two different scales of pixel art shown at the same time (one for the UI, another one for the map). In any case, the font choice for the Denzi modes is absolutely horrible.

Of all the graphics mode I think I prefer the Oryx one for it’s symbolic potential and ease of extension in case newer features are added.

That’s the current status of things with Expedition… I’m in a bit of a development paralysis pondering these things… if you have any thoughts please let me know, all input is very helpful! Would you play a game with NO ANIMATIONS AT ALL? do you find the basic interaction/gameplay cycle interesting enough?