jacques.io

Lost Aeon Development: Day 100

August 25, 2020

Please join the Discord or follow @lost.aeon on instagram for regular updates.

Since the last update at the end of May, the project has evolved significantly. Here is a look back based on my development log.

I spent significant time redoing all monster sprites in June and July. I separated the primary color from the highlight colors so that all of the original Aspereta monsters can be dyed. Modifying the art was fascinating because I could see how Jenn’s art style evolved from the early Aspereta days. If you look at the last screenshot on this page, the ram sprite, for example, has what Jenn described as a watercolor feel. It was more challenging to convert these into grayscale than later art. Here’s an example before and after (black and white layer with highlights layer).

Slime before and after

Creating maps for the world has also been a chance to revisit the evolution of Aspereta. From day one, Aspereta maps had a boxy grid-like feeling. Looking at screenshots of Illutia, I see that again Jenn’s art evolved significantly. To make the original Aspereta art more versatile, I’ve spent considerable time making modifications to the tilesets. I’ll start with the original tileset like this:

original grass

Then I’ll build the inversed corners such that they line up and can be combined to create any shape:

grass redone

This process has been interesting because I see the art I drew that stayed in the game well after I left the project. For example, my font, snakes, and slimes stayed with some updates by Jenn.

Slime

In the second half of July, I refactored the game client to use a more robust feature-rich server. The server is written in C# by Hayden, who is working on the project with me. His server is much more robust and has advanced features like scripting for items, spells, and entities. It also implements a zone system similar to the ones explained here.

Hayden and I did a lot of experimentation with lighting. We concluded that WebGL lighting wouldn’t be performant enough on Apple devices or older Android devices. This led to an implementation of artificial lighting, which takes a tinted texture and erases the lights from it to give the feeling of light.

Lighting

Accounts use Firebase to authenticate, and the server uses the dialog system for character selection and creation.

Login Screen

NPC buy and sell dialogs are complete with submenus too to support patterns like Buy > Weapons.

NPS Store

Exchange is complete so players can trade safely.

Exchange Screen

I built some core scripts for standard items and spells. One example is an “item with charges,” which can take the form of wine, for instance, with a set number of sips.

Wine

I built out the minimum town and maps for the first four zones.

Town

A new status message area was implemented and support for status effect icons is complete on the client.

The community response has been overwhelming. We’ve received help with additional features (Yuting implemented weather and helped with fog which was the base of the lighting system), graphics, maps, and countless ideas.

Torch by Lukin

One other fun thing about this project is it has helped reconnect with people from my high school and college days. I’ve even gotten a lot of hints to help me find things I’ve long forgotten. For example, I talked to Brian, who created the original Aspereta server in C and all of Illutia, and he found an old reference to Aarron Perkins. Arron Perkins used to run a site called baronsoft.com, which had a rudimentary client/server game called ORE 0.4. Without ORE and countless nights in the Japanese countryside, Aspereta wouldn’t have been born.