Plans for Expedition

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?

Ananias 2.3 released, challenges and steam achievements


A lot of work went into adding support for Steam achievements using the excellent Greenworks library. This version includes 37 achievements and there are 10 additional ones I couldn’t add due to the API for progressive achievements not being available on Greenworks; the addition doesn’t look overly complex, however I would need to set up a complete dev env for it (right now I’m using their precompiled binaries).

The challenges are not steam exclusive, but they are only tracked right now on Steam (that means you’ll still see when you complete them on any other version, but they won’t be added to your profile).

I also bumped the version of nw.js to 0.20.3 (I think I had to do it in order for greenworks to work). This increased the size of the downloadable packages for desktop quite a bit.

I think I’ve ran out of Steam to work on Ananias for the moment… it’s been such a long time, and I’ve got a couple of projects to work in (for $$$) and also the rebirth of Expedition keeps haunting me day and night. Although the backlog is filled with feedback from players, I don’t think I’ll be able to tackle their suggestion for some months, so it’s now on maintenance mode where I’ll only be fixing critical issues.

This version also includes some small but important gameplay changes, see below for complete info.

Check out version 2.3.0!

Achievements

  • Add support for Steam achievements via Greenworks
  • Add 19 challenges (all linked to Steam achievements but also tracked on the other versions)
    • Assault, Flintstone, Brave Chamo, “That comes handy…”, Caretaker, Shepherd, Die Hard, Dungeon Explorer, Breaking stereotypes, Burning stereotypes, “I gotta be the very best”, Dungeon diver, Sword collector, Super Shepherd, Die Hard II, Massacre, Legendary Shepherd, Genocide, “Was this supposed to be hard?”
  • Add 16 “marks” as Steam achievements
    • Discover the ruins of Ananias, Discover the Caverns of Chaos, Discover the Underground Lagoon, Discover the Crystal Caverns, Hero of Alchemy, Hero of Wizardry, Hero of Chivalry, Hero of Archery, Hero of Hack’n Slash, Hero of Soul, Hero of the Elements, Hero of the Mind, Hero of Humility, Discover the Lair of the Ancients, Discover the Darkness Abyss, Back to the roots
  • Add 2 steam unachievements
    • “Are you there?”, “Oh well…”

Gameplay

  • Allow shooting over friendlies
  • Show health description for enemies on inspector
  • Prevent levels with far too many “big rooms”
  • Increase max carry capacity to 30
  • Drastically reduce chances for boosted Combat and Strength when fully exploring levels.

User Experience

  • Add intro track to intro

Still pending…

  • Complete support for Steam overlay
  • Keyboard support for:
    • Using multiple selection dialogs
    • Checking player and pet stats
    • Navigating thru menus
  • Additional Steam Achievements for Marks
  • Detailed GFX for weapons and armor.
  • Adding more plot and may be even random stories.

SPID11 – Prince of Transylvania

I will be posting SPIDs (Slashie’s Project Idea Drafts) in the blog, they will be short ideas for games or other projects I may or may not develop into full projects. May be someone will be inspired by them and save me the trouble of developing them.

A crossover between Castlevania and Prince of Persia leaning heavily towards puzzle solving and with minimal combat. We have Nosferatu for SNES, while it may look similar it plays very differently!

The castle would feel dark and creepy, centuries long abandoned and full of traps and hidden places. Enemy encounters would be scarce, with each one of them being relevant to the puzzles or in some way unique.

The plot may remain simple, defeat Dracula as you would in any Castlevania game. Save the twists on “Dracula’s identity” for more dramatic games, in this one the environment would be the protagonist.

If you know about a game that would be similar to this, please put it on the comments 🙂

Publicize Connect April’17 at Espacio

Last Saturday I checked out Publicize Connect, an event organised by Publicize (PR Service For Startups) at Espacio (A startup incubator). They invited local startups to do a quick pitch of their products in front of a panel of journalists.

Mr. Eddie Arrieta, cofounder of Espacio
Eddie Arrieta, one of the cofounders of Espacio

Following are some notes of what they are doing, check out their website to find more info!

cuidamos

cuidamos.co offers specialized affordable HR management consulting for small companies and startups, taking care of all the legal aspects of having people work for them and saving them the hassle of dealing with everchanging regulations.

20170422_165321

B11 is a product which allows people to place orders on restaurant and bars without having to install an app, just browse to a  website, scan a QR code and place your order to your table.

20170422_170000

Yuxi Global is no longer a startup, it was one the first companies to graduate from RutaN landing program and is now a thriving software development company. They continue innovating creating new products and launching them to the market.

20170422_171239

Fractal-VR allows companies to have their customers “experience” their end products using Virtual Reality. They are working with the real estate and the automotive industries, so you can feel like you are inside your new apartment or checking out a new cool bike from their sales rooms.

20170422_172535

Workplace Anywhere brings remote workers from North America to Latin America any time from one to six months, to experience the culture of different countries and participate in social programs while having the chance to work in high quality co-working spaces.

20170422_173912

viajala, another successful not-much-of-a-startup-anymore aggregates data from non-traditional, smaller airlines and travel agencies from Latin America, to provide their users with a wider array of choices for local flights and hotels.

20170422_175159

ideaslab partners with start ups to transform their great innovative ideas into software products ready to hit the market. They have already launched several products and continue growing.

Ananias introspection: Content Creation and Balance

This new series of blog posts will be based on /r/roguelikedev FAQ Fridays, a long standing series of discussions where roguelike developers share their techniques and experiences around a single topic.

FAQ Fridays Revisited # 6 Content Creation and Balance (original)

How do you decide what mobs/items/abilities/terrain/etc to add to your game? In any good roguelike content creation is inseparable from the concept of balance, so your methods of balancing content are certainly within the scope of this discussion.

Ananias has a fairly static collections of monster races. They were first added based on the original rogue monsters and with a single criteria on mind: each race should have an unique feature or ability.

Sometimes implementing an ability is costly and there’s the temptation of parameterizing it so it can be reused with slight variations, but I think it gives more character to the monsters having their distinctive skills. This means Ananias doesn’t have Ice, Fire, Water, Earth and Thunder dragons whose only distinction is the “type” of their attacks, I’d rather have a single Dragon monster distinguished by a strong ranged attack.

The uniqueness of an enemy race is not defined only by their active skills, their stats are also put in consideration. In this case they are assigned relative values first (i.e. orcs have high attack and medium hp, Lizardmen have extreme high attack and low hp). This is balanced so that races without cool active skills get some advantage stats-wise.

The dungeon is then split into 5 areas with increasing difficulty. Mob races are grouped thematically on these areas and then assigned final values for their stats by scaling their relative values to the difficulty level of the group they are in. In order to do this, I do a projection of the average stats for the player on each one of these areas and then I apply some simple general rules (for example, a strong monster may kill the player in 5 hits, a monster with low HP should be killed by the player in a single attack). These define ranges within which the stats of the final monster will be placed.

Items follow a similar model. For weapons and armor I started with a list of preexisting graphics (the artist made them on advance for a different game using his own creative criteria) then based on they appearance I assigned them relative values (high/mid/low) for damage and integrity (how likely they are to break), and then I grouped them on power tiers to define their final stats. They also get assigned a generation weight representing how likely they are to be added to the levels, this value is used in level generation along with the power tier to select the items to be added.

Player abilities are guided by the same principles of uniqueness. Ananias is strongly classed, and each class has unique passive skills that guide players into adapting different playstyles for each one. The process for player classes is similar as with the monster races, they are balanced based on their skills and relative values for their stats. (Except for the shepherd ;)).

On a final note, I’d like to say that while seeking to balance the different stats is worthwhile (to prevent your game from being utterly broken), it’s also to some point a futile exercise, since the variability of the game and the player’s choices create a lot of unpredictability, specially as journeys progress in games which provide long and open experiences. This is not necessarily a bad thing, and a little bit of unbalance is not always harmless since it allows the players to find strategies and challenges within the game.

 

Monster Trainer RL 1.3 released!

New version with small but important changes. Name changed to avoid people from mistakenly thinking the game is an official Pokemon game.

Changes:

  • Allow diagonal movement
  • Split XP between surviving monsters
  • Add a chance for monsters to select a random skill if not commanded to use one by their trainer.
  • Remove references to Pokemon and rename monsters.
  • Remove debug messages

 

Animated intro for HoBLotH IV

Last week I was contacted by Rustic Dragon, proprietor of The Hearth of Britannia and main host for the HoBLotH events; Castleton, Richard Garriott’s property in Austin where two of the previous iterations of the event have taken place, is up for sale now so it’s very likely that this is the last of this series of events to take place there. As a result, he’s planning to be even more fantastic than usual.

He had an idea for an animated intro similar to the Ultima IV opening so I went ahead and worked on it! I ended up putting a lot more on it than I thought I would, but it was just too fun to work in (except fiddling with scaling issues on Internet Explorer and strange WebGL issues on Safari…).

In order to be able to embed the intro onto the page portal, and also since it had to be a quick development, I picked phaser for the job. I used basic spriteworks plus the time and a bit of the tweens module (and the sound one, of course).

After the opening titles, a short demo is shown comprised of the following:

  1. Getting ready for the journey and stepping into the moongate.
  2. Exploring the countryside of Castleton.
  3. Feasting and rabbling at Castleton Town.
  4. Engaging in deadly combat at Capture the Keg (a staple event for HoBLotH)
  5. Dancing inviting the players to come to the event.

In addition to the work in phaser (including minor custom pixel art), I implemented the “retro tv” effects based on the ones I used for Cat Cafe (using glfx.js and some simple practical effects for the scanlines).

This was done specially to accommodate to Rustic’s idea to use an Apple II frame for the intro (by the way, the one he ended up using is a real pic of an ancient piece of Origin equipment ;)).

Some of the issues I had with cat cafe remain (specifically, the bulge filter doesn’t work too well in conjunction with scaling), but given the small window size and the scanlines, it didn’t look bad at all and ended up being used in the final version.

I also created a musical version using the Hearth of Britannia theme made by the Space Bards, you can check it out online here or below, via youtube.

Animations for this version are timed to play along with the theme, which I think looks pretty neat.

In any case, people have liked it so far so that makes me happy! also if you have the chance to be around Austin in November 2017, DON’T MISS THE CHANCE to be in the event, I was there last year and it was super fun! registrations open by April 30