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).
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:
Then I’ll build the inversed corners such that they line up and can be combined to create any shape:
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.
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.
Accounts use Firebase to authenticate, and the server uses the dialog system for character selection and creation.
NPC buy and sell dialogs are complete with submenus too to support patterns like Buy > Weapons.
Exchange is complete so players can trade safely.
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.
I built out the minimum town and maps for the first four zones.
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.
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.