The making of “Broken Connections” – IndieCade Hidden Heroes Jam

Broken Connections is a short old-school RPG adventure inspired by some of the life events of Glenn Wichman, one of the authors of the original rogue and hence one of the fathers of the roguelike genre. It was made for IndieCade’s Hidden Heroes Jam. You can play online at https://slash.itch.io/broken-connections

March 1980.

Glenn Wichman and Michael Toy, students at the University of California, share an apartment in Santa Cruz, California.

The development of the first versions of rogue, a game that decades later would spawn an entire genre, and whose design would influence video games in general, is taking place here. Using a video terminal and a 300 baud modem, the two young friends connect to a computer located in a basement at the university, long nights of coding and design before the rise of the videogames industry.

And then, the unthinkable happened. The connection to the computer is broken, and the work done during the weekend is at risk of being lost. There is only one way to fix it: Glenn should venture into the depths of the communications center, and restore the connection before it’s too late.

But on his way to the computer: humans. And within the interaction with them the opportunity of being a kind, honest person, or just brush them away. What will you do?

The first time I met Glenn was when he participated in the 7DRL challenge in 2007 and I interviewed him for Temple of the Roguelike. Years later, he would give a spin to my professional life as he trusted me with ever-growing challenges that finally allowed me to become a professional full-time game developer.

Beyond the historical significance of the work he did in rogue, he is a great inspiration to me as he continues his journey in videogames even as of 2023, maybe not as a celebrity but definitively as a hidden hero bringing joy to thousands of people all around the world with his work.

But even putting that aside, through the years I’ve found in Glenn a person that is kind, no matter what life throws at him, and he is always there when you need him to share his wisdom and help in any way he can. At the same time, you can also count on his words to be honest even if that means there will be a disagreement.

It’s tricky to make a game about being kind, and that’s why in this game it will be your choice. You might find that most of the time, being kind has no immediate retribution, but what do you feel in your heart when you are kind? I hope this game evokes that feeling if even a little bit.

Prelude

Following JSRL migration to typescript, I thought it would be a good idea to create a tutorial for it so that it could be used by some developers for the upcoming 7DRL Challenge, but I struggled with the theme for it. At the same time, I found out about this jam organized by IndieCade via email newsletter, I thought maybe it would serve as guidance for that missing JSRL tutorial.

The tutorial never happened because I already struggled to complete a worthy entry for the jam, and at the same time I found the template is still lacking in functionality and documentation, however, I left this game in an open-source repo, in hopes it may be useful for someone willing to go through it as an example.

I don’t really remember why I took the final decision to participate in the jam; maybe the theme was just compelling or challenging, or I just wanted to warm up mightily before the 7DRL Challenge, but when I less thought about it I was already deep on thinking how to best approach it.

The jam ran from February 24 to March 5, and thus had a two-day overlap with the 7DRL challenge timeframe. No problem though, I planned to release my entry on March 4, rest for one day, and then start the 7DRL full-steam on Monday, March 6.

This jam’s theme was tricky; you were to choose someone, alive, who had left a mark on your life. Of course, you could pick a family member, but then it became too personal for me to share intimate affairs that were the only ones worth telling. So the other option would be picking a friend, but I found it hard to do this in a non-awkward way, portraying the person as human but still having a story that could make a good narrative for a game.

Another complex aspect was how to make a game about wisdom without falling into oversimplifying it into good/bad choices. Of course, there’s always Ultima IV as a reference, but a straight too-similar approach to it might not cut it in 2023 (and doing it well would require more time than a gamejam like this allows).

After considering one or two persons, I decided to go for Glenn, because he is cool and also because I saw on this a chance to share a little bit about the history of rogue (following that tip about “fascinating stories that you would like to share”)

My idea was to make a roguelike themed on the times when Glenn and Michael were creating Rogue. The main quest would be to go into the university labs to plug back the computer because someone shut it down when they were developing the game at home (connected to it),

Michael, Glenn, and two friends, at their apartment in Santa Cruz

February 28

Codename for the project is “Rogue without a cause”.

I went back in time and researched conversations I had with Glenn from 2020 and 2021, to get some ideas about the temporal and spatial context of the game (i.e. what it was like when Michael and Glenn created the game in 1980)

It was still not very clear what the game was going to be about, so I decided to give up a bit of the surprise and asked Glenn:

What was your biggest fear in 1980?

Good Question. Probably that I would never find true love. By ‘84 it was unemployment.

That was interesting, but not enough, so I also sent him the questions that were suggested by Indiecade to explore the game.

I also contacted Michael Toy, whom I know but I’m not as close as I’m with Glenn. It was a blind shoot hoping I could get some useful info since I know he’s a busy person.

March 1

I got some answers from Glenn!

If your life were to be a short film or game, what would it be like?

If it was a movie, it would be a road trip movie. One of those comedies where lots of funny stuff happens but there is a poignant lesson to be learned.

If it was a game, it would be a cooperative game where no one has to lose, and where exploration is rewarded.

If you could pass on some of your wisdom to future generations in a time capsule, what would it be?

In the end, only kindness matters.

What would you say is the most important lesson you ever learned?

Whenever I say anything, my goal should be to communicate information. It should not be to elicit a particular response.

If I am choosing my words carefully, it should be with the goal of being understood, not with the goal of either causing or avoiding an outcome.

If I am trying to cause a particular response, then I am being manipulative; If I am trying to avoid a particular response, then I am allowing myself to be manipulated.

How others react to what I say is not my responsibility.

and how did you come to learn it?

Well… the short answer is “the hard way” 🙂

I would say that, without malice or cunning, I fell into a habit of doing the opposite of what I state
above, without being conscious that that is what I was doing.

This ended up causing significant heartache for myself and for some others that I cared about, and once
I realized what I was doing I set about trying to live my life as described above. It requires
constant mindfulness, it does not yet come naturally to me even after many years

Lots of food for thought!

I also got an initial response from Michael Toy, to whom I had let know just the idea of the game and nothing more.

I want to exaggerate the UCSC basement where the computer is into being a dungeon… Not sure what to populate it with, maybe rats? 😃

Definitely Banana Slugs somewhere in the dungeon, UCSC mascot animal.

Maybe they’ve become hyper-intelligent and are trying to take over the world?

 In 1986, students voted via referendum to declare the banana slug the official mascot of UCSC. — Source Wikipedia Photo By Jim Whitehead from Santa Cruz, CA, USA – Banana Slug, CC BY 2.0, https://commons.wikimedia.org/w/index.php?curid=3600958

After refreshing his memory with a picture from Glenn’s archive, he revealed even more useful info

That’s an 8080-based microcomputer on the left (that I built myself from a kit), and a UCSD Pascal P-System in the middle, and then the ADM-3A which is how you’d access the UCSC computers. I don’t remember why or how I had the P-system.

Michael Toy

So, with all this info and still confusion in my head, I went ahead and cloned the JSRL template, it was time to start coding.

March 2

I got development rolling at last, creating some static maps of Glenn and Michael’s apartment in Santa Cruz, California, the Streets of Santa Cruz, and the UCSC Campus. This included creating the first tiles for the game, based on Kenney’s 1bit tileset.

Glenn is curious about what I’m going to do with the answers he gave me, but it’s not yet time for the reveal.

March 3

Since I figured I would be adding some non-trivial static maps, I decided to invest time in tooling and create a workflow to plot the maps in tiled and then load them into the game (candidate for inclusion in JSRL).

This allowed me to improve the existing maps greatly. I also included an additional level for the “dungeon” (actually the basement of the communications building in the university) and made some changes to lighting and line of sight range, so it felt a bit more “nightly”

Michael also let me know the computer they used for rogue “was originally an 11/70. There was a VAX but it wasn’t in general use.

The biggest challenge, however, was still to devise how to make a game about being kind. I reached out to Slashware Castle’s discord, where I got some useful info from friends on the topic, as well as some references to games that have threaded this path already one way or another.

I would take inspiration from ultima 4 for kindness. If the objective is to show the impact kindness has and comunicate that, the player MUST have the ability to NOT be kind

The player MUST be tested, to see if they can be kind.

Dialogue can guide the player to be kind, and talk about its benefits, but the player must be tested.

Choose not to attack aggressive enemies, choose to take debuffs and permanent negative effects in favor of an NPC (like in knight of the nine for Oblivion) are good examples.

I remember this quest a lot. I struggled as a person: ruin my perfect character permanently for an NPC?
The quest was eaaaaasy. making the choice? not so much

Stoltverd, on Slashware’s discord

One problematic thing about kindness mechanics is that kindness is not really kindness if it’s not intrinsic. If you’re only being kind for mechanical benefit, it’s not really being kind – it’s being selfish. Not sure what to do about that in a game but I guess I would say that the pleasantness of the game should follow naturally from your own kindness, rather than being artificial, but how exactly to achieve that, I don’t know.

Maybe it would be sufficient to simply provide opportunities to be kind, with content behind them when you go that route. So many games only provide violent and selfish options that it might be refreshing just to find a robust plot line behind being good to people.

LoneSpelunker, on Slashware’s discord

March 4

I decided to add events to the game where you could pick between different options, but none of these would really have an impact on the player’s in-game performance (some of them would actually make you waste time, which was the only resource you were managing to reconnect the computer on time).

The rationale behind this is I wanted the players to have virtual opportunities to be kind, to sacrifice small bits of time for other people to have a slightly better day, hoping that some of their actions in the game would make them feel good in the real world. Some of these events will also make you question whether you should be honest with the person even if you are not being nice, and how being always nice and being kind are not the same thing. Some times being nice actually has negative effects.

At least, it’s an attempt at that which I found interesting.

Some of these were pretty basic and served to introduce the player to the system (like, helping or not an old lady across the street, or reacting to a girl that splashes you with mango juice), others were based on how I thought Glenn’s life would be in the university in that moment of time when rogue was being discovered and played by many people there (like some local celebrities).

I was also contacted by VGMushroom, an audio artist, who responded to my request for audio support in the discord of the jam. He did an outstanding job in a very short time! I had to respond to his agility and proceeded to integrate the music and sound effects into the game so we could see how they felt.

There was some iteration with some of the tracks and he mentioned he was not 100% happy with the results (we wanted some that sounded MORE 80ish), but there was just not enough time 🙂

End of the day I decided it was time to let Glenn know about the project as his input would be crucial to make the final touches, that was useful since I got to add some details to NPCs.

March 5

The initial plan failed, of course, and I ended up doing some Sunday work to put the final touches on it and submit, so that I could start 7DRL the next day.

It was a family Sunday, so my time was super limited. Early in the morning, I decided to prepare the submission page including deciding on the cover image; early on I had the idea of adding something “80s California”, like some beach or neon stuff. But later I thought it’d be great to have some kind of “vinyl album cover”.

After looking a bit for inspiration, I decided to use an old self-portrait Glenn had made; sadly I only had a very low-resolution copy from the interview I did with him back in 2008 (!), but I figured it would add to the theme of lo-fi.

Late in the night when I was able to get back to the computer, I added a couple more events, contextual instructions so that it was more playable, and details such as the description of Glenn’s car from back then.

I was driving it to the shop with my last $50 to get the brakes fixed when it started to rain, and a car stopped right in front of me. Brakes failed and I rear-ended it, crunching hood and fenders. I had no money to fix it.

I had one friend who knew someone with an old yellow “Baja Bug” with fibreglass fenders. I had another friend who traded for the hood from a red ‘62 bug (mine was a 68, different style hood but I managed to make it work)

That’s why it has 3 colors. The car was called Bizmark

Glenn Wichman

I also revamped the basement filling the empty spaces with fun stuff following info sent by Michael (“there was also a Control Data mainframe in the computer room, punch cards and line printers and the whole deal” ), and trapped banana slugs that were causing havoc there.

CDC 6600. (2022, September 20). In Wikipedia. https://he.wikipedia.org/wiki/CDC_6600

And that’s the story so far! I hope you enjoy the game, learn a bit about videogame history, and experiment a little bit with being kind.

Emerald Woods – Lightening up [0.2.12]

You can download Emerald Woods for free from the page at itch.io.

This version contains some small but important tweaks:

  • Add the missing commands to Drop items to the Action Menu
  • Allow toggling tips instead of disabling them completely
  • Improve onboarding sequence: use [Ctrl] instead of enter, put additional info about building fences, raise the order of the Actions menu, and put the “hide tips” shortcut at the end
  • Allow dropping floating things in the water (so you can now push a raft into the lake and paddle)
  • Add a message when extracting seeds from a plantable
  • Prevent the sudden disappearance of animals when you don’t see them

JSRL, now with TypeScript support

I backported TypeScript support from Emerald Woods into JSRL, so you can now use it to create roguelikes with TypeScript out of the box.

Unlike Emerald Woods, which has had a gradual transition to TypeScript (because it’s so big), for JSRL I decided to migrate it completely in a single machete blow, with an additional pass to use proper typed classes instead of functions.

The reason why there are still many variables typed as any is that some modules were modeled as raw objects instead of classes, and typifying them will require some additional work.

NovaMundi – Envoy of trade [0.38]

NovaMundi is still available on Steam Early Access! GET IT NOW (or wishlist it) if you like what you see!

It’s been six months since the last Early Access version release. There are still lots of things to Polish but I figured a release was in order for players to know we are still alive. We will continue working to complete the game and improve the players’ experience.

During these months, I have been discussing the possibility of partnering with a company to help complete the game and market its full release; there were some good developments but ultimately nothing has been decided.

Following are some highlights of the changes of the newly available version: 0.38.2

Audio – Wwise and Environmental sounds

We are pretty advanced in the process of migrating the audio implementation to Wwise; QuietGecko had been campaigning for this for months, and I gotta trust him it’s going to be worth it for the project.

After an initial setup and some smoke tests to make sure it wouldn’t cause issues with the game (version 0.38.1 was distributed internally for testing). Gecko then set forth to migrate all the sound effects, ambiance, and music.

This included the environmental bird songs, and the town spot ambiance (including adding variations depending on the size of the town), as some first points where Wwise would provide value. And also, the first real new development with the addition of environmental sound for each “biome” being explored by the player.

Exploring the high mountains (páramos) now feels a bit windier

Some UI elements, like the volume sliders in the settings, were also hooked into the new system.

The migration is still not 100% complete, so you may find some sounds off around (especially for the dynamic music). We are working on fixing that.

Caverns

After the release of 0.37.0, I set myself to add a first iteration of zoomed locations, “dungeons”, dangerous caverns you could explore optionally if you wanted to risk for some good loot. Initially populated with giant animals, the idea is to eventually fill them with mythic creatures from the Muisca culture.

A lot of work went into this so that caverns with random loot could be generated procedurally, with enemies and rewards placed on them. Beyond an initial, simple procedural generator, changes were needed in the commands system to make this “zoomed exploration” mode work well besides the normal Combat mode (with which it shares many components).

Tweaks were made in the Enemy AI to work inside sprawling close spaces like cavern networks, which work pretty differently compared to open spaces like the overworld combat areas.

Some issues with pathfinding, usability, and required additional content caused me to halt development on it and switch to other stuff; it proved to be too challenging and depleted my energy to work on the project for some weeks. I marked and internal version, 0.38.0, with my progress, but still didn’t make these caves readily accessible to the players, exception for a single cavern you need to visit to complete the main game quest, visit it at your own risk!

I am still deciding if this is going to be a priority for the next release, or if we should ditch the work and focus back on the overworld.

Miniquests and Dialogs

It had been almost one year since Stoltverd designed a bunch of side quests to spice up the player experience within the game, so I decided it was about time to implement them. Initially, we implemented four side quests in which you will help tradesmen around, making contacts or neutralizing menaces threatening their business.

Besides all the dialogs related to the mini-quest-related characters, implementing them demanded improvements in the quests and conversation systems, like being able to mark dialog options as hidden based on flags, create groups of mutually exclusive dialog options, or hide quests that are just sub-stages of a quest (or just should not be visible to the player initially).

One of the side quests required reviving infrastructure for “Eliminate Enemy” type of quests, which introduced a pretty hard-to-track bug since these used to work in the pre-Early Access times (when we didn’t have Save/Load game working).

Additionally, the dialog system was improved with the ability to have hidden “unlocks”, so that options can appear without being explicitly mentioned in the parent dialog fragment, and the layout was changed to support dynamic dialog options (it had been hardcoded to 6 due to a previous redesign); this also required rethinking the layout of the conversation overlay, so I took the chance to make portraits bigger.

New traders were also added to some towns which had too few inhabitants, instead of having the procedural wayfarer do everything

Procedural Terrain and Exploration

There are not a lot of new developments on this aspect, however, I addressed three issues that had been in the backlog for long enough, haunting me,

The first one was fixing the “meteor holes” that were happening randomly in the high mountains; I finally found this to be caused by accidents when an additional Perlin noise applied to the existing geography pushed too deep. The solution was simply reducing greatly the strength of that additional noise so that it still added variety to the terrain but didn’t alter it that much.

Another fix was preventing mountains from blocking rivers, which didn’t look very good.

And finally, something that was haunting the game since a long time ago and for which we already had a solution in place at some point in time but deactivated for design reasons: the map borders.

The way I have solved them is by increasing the margin at which the party will hit the invisible wall of exploration, so you will not be able to get that close to the edge of the terrain to see the underlying artifacts. I had hoped we could come across a better solution like adding a procedurally generated mesh that would follow the slopes of the terrain and be painted either in full black or with a cross-section. But due to time constraints with so many other things on the table, I doubt that will ever happen.

How I imagined the borders of the map

In any case, I don’t completely dislike the current solution since it still gives the impression the map continues instead of being cut short. It’s just you cannot go there because of plot reasons.

User Experience Tweaks

Finally, a couple of tweaks originating from Stolverd’s playtesting sessions: Allow deselecting units and items by clicking on them in the inventory, and allow adding and removing items freely from barter offer regardless of carry capacity, with a check at the moment of the deal.

Emerald Woods – Expand your horizons [0.2.11]

We have packed a lot of work in this version, hope you enjoy it! You can download it for free from the page at itch.io.

As we continue pouring work into this, we get closer to a point of providing a paid “Earlier Access” version via itch.io. That will probably happen for version 0.3.0 which is not extremely far away. For now, this version remains completely free. A demo will likely remain free with limited in-game time (10 days).

We have been streaming weekly on Wednesday and Friday, 11AM PST / 7PM GMT. Subscribe to our twitch so you don’t miss it! But if you do, these are always backed as VoD into our YouTube channel, so subscribe to it as well!

The overall goal for v0.3.0 in the roadmap is improving Farming, so that has been the criteria guiding the development of these new versions. Here is a summarized log of the changes and the work behind them.

Visuals

Following suggestions by friends, we have expanded the field of view to cover the entire viewport instead of a circle in the middle of the screen.

While this will have some implications over the perceived size of the world, as well as the future possible auto-mapping features, I believe it works pretty fine for immersion purposes and addresses the problem we were having with the underused areas of the UI.

Additionally, there are now atmospheric colors based on the time of the day with smooth transitions between them, removing the sudden change to nighttime and adding a bit more immersion to the exploration experience. I thought I was being smart by using HSL interpolation instead of RGB but the hues went crazy, so I ended up using chroma.js which was a breeze to create nice-looking gradients.

I also did a first incremental pass to the title screen art; originally a downscaled AI-generated art, so there was a lot of work done removing noise, and flattening colors in preparation for adding proper shading.

Animals

Although we will be focusing on the developments around animals in a future milestone, a tweak was needed to prevent out-of-control exponential breeding; now you will have to feed them daily in order for them to progress through their breeding cycle. There is a new command for this (Shift+F, Feed), and it can also be accessed from the actions menu when you are in front of an animal.

The changes designed for the future stipulate things such as different types of diets per animal race, and more nuances and complexities for the player to consider while breeding, however for now all animals eat the same kind of food (nuts that can be found in the forests.)

Crafting

Fixes were made to enable crafting liquid items into containers besides cooking (such as paints); containers that are already partially filled can also be reused now to craft more of the same liquid.

Note however that the Paint action is still disabled, and paints can only be used to craft other items such as the clay tiles.

Gameplay tweaks

Small but important changes were made based on feedback from playtesting sessions, including the following:

  • Reduce costs for actions drastically (both time and fatigue)
  • Reduce the weight of stones
  • Reduce hunger recovery for knock nuts
  • Make rafts carry-able
  • Allow walking over sprouts before they become shrubs

Additionally, we are also now displaying the real reason why you cannot carry an item now when your inventory is full.

The making of “Farewell San Vicente”

In “Farewell San Vicente”, our entry for Global Game Jam 2023, a family flees their home in the countryside displaced by “La Violencia”, the political-motivated civil war in 1950’s Colombia.

You can play it online, or download it for Windows, for free, from its itch.io page.


At long last, after many years, I managed to “participate” in a Global Game Jam

…or did I? I went with the virtual, days-stretched version of it, with a mostly known team, which I know is a pretty different experience than staying two days on-site with a bunch of unknowns trying to make something…

But, as far as the official rules of 2023 go… I participated! 🙂 I just needed to check that off the list of mandatory game jams to do before you die.

Of course, I was hesitant to. It’s always the worst possible timing, but you gotta push through if you want to be a gamejam legend someday.

January 27

The theme for GGJ was ROOTS, which instantly landed on me much better than the one from the last time I attempted (TRANSMISSION, from 2018). The first thing that sprung to mind was creating something of an “intergenerational” adventure, spanning several lives from the early 1900s to the 2000s. I’ve always wanted to do something like this (maybe because of faint memories of “La Saga“, a Colombian telenovela from 2004) but that’s just an overall idea without any development. Maybe something like Rogue Legacy, but simpler? I dunno.

January 28

In any case, it was stupid to consider participating in the GGJ right now, and I would be away from the city during that weekend so I had the perfect excuse to skip it again this year. 🙂

January 30

After reading the rules I decided to join the virtual site organized by “Tan Grande y Jugando“, home of the nutrias and a great gamedev community mainly from Bogotá but with members all around Colombia. I planned to participate from Tuesday to Friday. In theory, I had 48 hours to spread thru these 4 days (12 per day). I still had no clear idea but I started looking for an artist to make a team.

January 31

I got an idea: to make a game similar to “The Oregon Trail“, but themed around the forced displacement that many families had to go through in the times of La Violencia in Colombia, around 1950 (The Violence). This is a story that lies at the roots of many families, and for some reason, a topic I’m very sensitive about.

Arguably, this is pictured in Encanto (the Disney movie) with Familia Madrigal fleeing from a town because of it being torched down, although I’ve read it’s more likely for it to be a portrayal of the Thousand Days’ War which predated La Violencia by about 50 years.

In any case, I made a prototype in order to validate the idea, and to pitch it to an artist, which seemingly worked as Oscar Creart (new dev-friend) decided to join the team.

I also did the foundations of a design doc and shared it with Stoltvred, narrative designer for Slashware and previous co-jammer for Muyscamuy, who also joined as a researcher and writer.

And so, we had our first team meeting, and the project was a reality.

February 1st

The plan for the day was to add support for random events to the engine, while Stoltverd researched the historical period and create a first batch of events, and Oscar conceptualized the visual style and created an initial set of assets.

I also reached out to my maternal family’s WhatsApp group, asking the aunts and uncles if they remembered anything their parents or grandparents used to talk about regarding this time period, especially since my grandfather migrated from Uramita/Dabeiba to Cañasgordas and then the entire family moved to Medellín. There was a lot of interesting discussion about the time period, and although it seems there were many reasons for the migration, there were at least some political-related.

They also pointed me to a book my grandmother used to have: “Lo que el cielo no perdona“, (an analysis, in Spanish, here) a “historical novel” relating the experiences of a priest and some of his friends, while living in western of Antioquia during the period. According to my family and some other sources, the book was “forbidden” from being printed and circulated in Colombia, so any surviving copies are highly treasured (I haven’t been able to find any detailed information about it, although it seems book piracy helped preserve it). However, its author changed names in order to avoid persecution from the conservative party (unsuccessfully). My mother went as far as to scan it completely (320 pages!), just for this little project (she decided it was better not to handle it to me as I might misplace it and cause the anger of the uncles).

Uno de los tantos cadáveres rescatados por el cura Jimenez, qué no pudo ser reconocido a causa de los numerosos machetazos en el rostro

They also suggested a similar book, “El Cristo de Espaldas”, which is seemingly a similar intent from a different political perspective. It seems there was an amount of literature of this kind back in those times.

On the coding/art side, some good progress was made, with a well-defined art direction (still no colors for the assets), but I decided to integrate them ASAP to detect what was missing and make corrections as needed (for instance, we changed the style of the militia found along the way so that it was less modern (no automatic rifles, more rural)

February 2

I managed to convince old pal QuietGecko to join the team as master of audio affairs. He told me he also wanted to bring a buddy, a guitar musician, to create fitting music for the game.

I gave Stoltverd the scanned version of the book, and we found it to be interesting, but extremely dense for the short time allowed for a jam game; it was still very useful to get an idea about the savage aspects of the war (the book is pretty graphical). We would definitively go back to it if we were to revisit and extend this project. He still devoted some time this day to writing and polishing the events.

This time period was so cruel that we had to ask Stoltverd to tone down the descriptions of the events he was coming up with, which were crossing to the stuff of nightmares. This would have been definitively accurate and direct but also probably a bit inadequate for a Global Game Jam entry (or at least so thought the majority of the team)

The development on this day is focused on integrating all the art that Oscar is producing, to create a visually rich experience. Sadly that leaves the content/events part a little bit abandoned, but I can only do a bit with very limited after-work time.

February 3

The final stretch – I had less than half a day to work in the game since I had to do adulting stuff preparing for a family trip, and the game still lacked content and substance. The idea was to push hard to complete a simple game loop and then adorn it with some of the cool random events that Stoltverd had designed.

It was SUPER hectic, but I managed to make something playable and even submitted an initial version to the platforms. The game was mostly about managing your food and surviving, although the lack of random events made the runs very lacking in variety. But it was playable and managed to transmit the message. I was sad that most of the content we designed just couldn’t be added (including the event of the militia encounter)

Of course, there was madness, as I tried to export the Windows build, it just failed. It worked perfectly in the Editor, but it didn’t populate the world in the executable. Panic ensued as time was running out, so I decided to try my luck with the WebGL build. Luckily, it worked.

By the way, did I mention that the food we included in the game is Yuca (also known as Casava, not to be confused with Yucca), a plant that is extensively cultivated in tropical and subtropical regions for its edible starchy tuberous root? It is specially related to life in the countryside of Colombia (especially in the Altiplano Cundiboyacense), so it seemed fit to give it a starring role.

In theory, the game could see further development thru the weekend by the remaining team members, but since I wouldn’t have control over that, I thought it’d be best to have a backup plan.

Oscar sent some fixes for the graphics, and additional in-game locations, which we hoped could be integrated during the weekend.

February 4

In spite of not being at 100% capacity, Gecko managed to integrate the guitar track sent by Camilo and also to add a LOT of life to the game with environmental sounds, animations, and sound effects for the family members, as well as some sound effects for the UI.

February 5

It’s the final day of the jam, and we have a proper title screen sent by Oscar and some work in the events done by Stoltverd; sadly this is not integrated in time for the deadline and I cannot help much as I’m totally AFK.

So we decided to stick with Friday’s (February 3) version as our official GGJ submission… which is still a great result! but I decided all the additional work cannot go to waste, so I should put up some more additional work (of course!)

February 6

I came back from my family trip exhausted and late, but I managed to integrate the work that was done during the weekend by the team and implement some gameplay variety.

I did some UX improvements as well with a better start-of-game flow, as well as events giving some context to fetching the stuff from your home estate, and arriving to the towns to trade. The pivotal encounter with the paramilitary group was also improved.

February 7

I decided this would be the final push for the post-jam version, and the focus would be content and gameplay. So I improved the EventsManager to be able to more easily create complex branching events, and select the random events from a weighted list. This allowed me to create four new types of events and improve the paramilitary encounter to select a random political faction.

I also took some time to integrate the updated assets sent by Oscar for the backgrounds and the characters and changed the buttons a little bit so they didn’t look like Unity’s defaults.

Some rounds of gameplay testing led to tweaks in the balancing, but more importantly, I felt something was missing so that the players could generate a stronger connection with the characters and have more involvement with the gameplay; so I decided to do a last-minute gameplay addition: having the player “feed” the family members manually, selecting which one to feed, instead of it being an automatic daily resource consumption. This way they can now prioritize who should eat from the meager resources. The addition also created some UI challenges in order to be presented adequately to the player, so I used the in-game events system and some visual tricks to make it easier for the player to understand what they should do.

And that’s the story so far! there may be some additional updates, especially since Gecko has some immediate improvements planned for the sound systems. I should also mention that we, of course, didn’t manage to make a full in-depth research process for such a very complex time period of Colombian history, but my hope was at least to be able to make it known to more people (especially abroad), and, as always, create curiosity for them to dive deeper. A Spanish version should also be produced, as long as there’s interest for it.

Emerald Woods – Small quickfix [0.2.10]

We had some players dive into the latest version and they quickly found some small but noisy bugs, so here’s a bugfix version! You can get it for free at itch.io

Here’s the changelog

  • Fix bed recipe: Set to place in the world instead of carrying
  • Fix raft recipes: Set to build on water instead of carrying.
  • Improvement: Try to place items in front when crafting and the resulting item is too heavy (instead of failing crafting)
  • Fix: Use materials around the player to build heavy stuff, which is required when crafting items that require more materials than the player can carry.
  • Fix: Row using a paddle (new craftable) while standing on a floating vehicle (new world object type).
  • Fix: Prevent axing or breaking items that have a stacked item
  • Fix: The “Building” achievable is displayed even after completing it.
  • Fix: Transformed cells like doors and gates are re-opened after loading the game.
  • Fix: Correct sickness hours based on gravity and vitality (had a wrong scale in minutes instead of hours)
  • Fix: Change capture animals’ achievement to only include small ones that can currently be captured.
  • Fix: Flooring examine description doesn’t include name of the tile
  • Fix: Item examine description displays undefined.

Emerald Woods – Survival mode activated (0.2.9)

It’s been one month since the last public release. We have packed a lot of work in this version, hope you enjoy it! You can download it for free from the page at itch.io.

As we continue pouring work into this, we get closer to a point of providing an “Earlier Access” version via itch.io. That will probably happen for version 0.3.0 which is not extremely far away. For now, this version remains completely free.

We have been streaming weekly on Wednesday and Friday, 11AM PST / 7PM GMT. Subscribe to our twitch so you don’t miss it! But if you do, these are always backed as VoD into our YouTube channel, so subscribe to it as well!

The overall goal for v0.3.0 in the roadmap is improving Farming, so that has been the criteria guiding the development of these new versions. Here is a summarized log of the changes and the work behind them.

Exploration

Some of the most noticeable changes in gameplay are related to the exploration facet. The game has been rebalanced so it’s not that chill anymore: in the absence of monsters to combat, the biggest danger is your fatigue and hunger bars.

For starters, this version brings back the possibility of Fainting if you continue working (or even walking) when your fatigue bar is full; there are options to recover from the fatigue, like taking a nap (as long as it’s not too late already), eating or drinking a fatigue recovering item (coffee, for instance), or just relaxing for a bit up to a cap of fatigue recovery per day of sleep. Ultimately you will want to have a good night of rest, in a proper bed or bedroll and by a warm campfire, and with your stomach full, if you want to avoid the risk.

Fainting or mediocre sleeping will hit your health hard, and you will die quickly (and permanently) if you don’t keep an eye on it. We are open to your feedback on these aspects since we want to make the game enjoyable for a broad number of players but we see merits in being able to enjoy the procedural generation aspects more and requiring the players to take meaningful choices.

Another important addition, semi-related to these balancing changes, is the carry capacity limits; items now have weight so you will have to decide what to carry with you if you want to be able to bring back things, adding a layer of planning to your journeys.

Forageable items (like mushrooms and nuts) are now added to the journal, displayed in a separate section from the growable crops (along with the berries).

World Interactivity

As a big improvement to the User Interface, there is now a new “contextual” menu with which you can now access all the possible actions based on your current tool and whatever is in front of you just by pressing Space. This eliminates the need of learning a lot of keyboard commands (or the clutter on screen that we had on previous versions). Additionally, this takes us one step ahead to a possible mobile version.

Some other additions included:

  • A new tool, the shovel, which you can use to dig Clay out of the ground (which is used for some new crafting recipes).
  • Actions also now take different amounts of time, this includes lumbering and mining taking some relevant time so you have to plan your work.
  • You can now drop a single item from a stack of items, and it will merge into existing stacks of items.
  • Tables (and other objects) you can place items on top of.

Cooking

As mentioned before, farming and cooking is the guiding force of the 0.3.0 milestone, so there was a substantial amount of work on this which in turn pushed some other areas of the game.

For starters, we changed the cooking panel to display a grid of recipes instead of a list, along with the ingredients and required containers; this grid always includes the “inspirational” recipes, but we also added the option to cook any kind of meat you are carrying (in which case the recipe only displays for the raw meats in your inventory). This menu also now stays open in case you want to cook more than one recipe.

The recipes requiring a container will now require you to place it on top of the cooking place, and that recipient is where the contents of the recipe will be stored, replacing whatever was on it (as long as its previous contents were useable for the recipe itself). This triggered lots of changes for the liquid containers, which are described in the section below.

Some recipes now require plates as containers, so you don’t eat them like a savage.

We also added a bunch of recipes that use carrots, as well as other ingredients that are required for them, scattered as treasures in the cabins all along the land. This made sense since carrots are the first crop you’ll normally harvest so what better use for it than a good recipe. Along with that, a new overarching goal was added to bake a Carrot cake, which will require you to explore around to find the ingredients.

Liquid Containers

Containers can now be filled with liquids from other containers (not just water or results from cooking), this means you can prepare a given beverage in a big container, and then fill smaller containers with some of it for conveniently carrying it around. This is pretty useless for now.

The appearance of the containers is now updated based on their contents, as well as the description displayed when they are examined.

A new command, Pour, can now be used to empty containers as opposed to just placing them on the floor.

Crafting

Added three variations of tiled floor you can craft, these require clay and paint so the paint items are back (however for now you cannot apply them to the world or other items, since that will require some changes in the rendering since we are no longer in the 1bit mode.)

Visuals

A small but extremely visible change was making the grass lighter to improve the contrast with the outlines of the objects in the world.

The sprites for the berries, coffee grains, and bushes, were remade. The trees in the plains areas (outside the woods) also have a unique appearance.

A small nuance that was fixed was making fences no longer “stick” to trees and rocks, an artifact of how the smart rendering rules work.

A placeholder title screen was added based on an AI-generated image sent by a friend.

Procedural Generation

While the procgen is not the focus of the current overarching milestone, that doesn’t mean some small improvements cannot be done.

I added some patches of Ouvlurin forests to give some variety to the woods; in the future, there will be more of these kinds of features the player will feel very happy to find around.

More importantly, Genco cabins will no longer be placed inside mountains or lakes, preventing runs where you could explore the entire woods without finding a single cabin. This already required quite a refactor in the codebase but will be worth it for future iterations hopefully.

TypeScript Migration

This of course is not visible to the players, but I decided to take the big step and start migrating the vanilla Javascript code into TypeScript. This will drastically reduce the chances of runtime errors due to undefined attributes, as well as ease the long-term maintenance of the project and improve the speed at which new features are developed by a solid 43%.

Emerald Woods – Graphics Overhaul! (0.2.6)

It’s been one month since the last public release. We have packed a lot of work in this version, hope you enjoy it! You can download it for free from the page at itch.io.

As we continue pouring work into this, we get closer to a point of proving and Earlier Access version via itch.io. That will probably happen for version 0.3.0 which is not extremely far away. For now, this version remains completely free.

The overall goal for v0.3.0 in the roadmap is improving Farming, so that has been the criteria guiding the development of these new versions. Besides dev work we continue organizing the project and keeping track of the tasks and plans, you can see the current roadmap here.

Visuals

There’s a lot to talk about the work we put into the visuals, but images are worth more than words.

At first, I worked on improving how trees were rendered so that they took up a little bit more space and didn’t look just like flat icons on the map; in order for this to work I had to break away from the grid, and activate the transparent rendering mode. This then led to adding some exceptions to how the tinted 1bit tileset worked, so that the trunks of the trees could have a different color.

Now that we had transparency it longer made sense to have the plants and animals rendered with an opaque background, which led to pixel work to add outlines or remake tiles so that they looked fine against the ground background.

All this continued accumulating until I decided to go ahead and remove the ultra-low colors mode, replacing it with a full-blown 64 colors tileset with no restrictions per sprite based on the original pixel art concepts designed by Mateo Robayo. There were several iterations looking for something that would remain close to the roguelike aesthetic but was still readable and looked good.

A lot of pixel art had to be done in order to cover all of the game objects, terrain, animals, new recipes, and ingredients. This is what had mainly prevented me from doing the jump, and it accounted for a lot of work, but I figured out this was something we had to do in order to reach more people.

But the work didn’t stop there, now that we had more colors, I needed to push things a bit further to add perspective. This included adding vertical offsets to the sprites to give a better illusion of depth with creatures and trees appearing as standing “billboards” instead of seeming to be laying flat in the ground, coupled with allowing any sprite to be bigger than the grid (not just trees) so that there can be big animals and items. Walls are also now rendered as chunky “blocks”, to give them some depth.

Another important change was adding support for rendering “rules”, effectively creating a layer of abstraction between the world model and the tiled sprites representation. The following rules have been implemented:

  • Boundary: Renders a different texture if a tile in the world has another type of tile above. This is used to draw the borders of lakes and the “cut-off” version of walls so you can see what is behind them.
  • Perlin: Pick the texture to render from a list, using Perlin noise having the coordinates of the object as input. This simple but effective rule allows for adding a lot of variety to the representation of the world.
  • Anchor: Select the texture to render based on the immediate solid tiles to the sides. Used for things like doors and gates to display vertical and horizontal variations.
  • Grid15: Simple heuristics to select the texture to draw based on the neighbor solid tiles, from a set of 15 tiles covering cases not only for vertical and horizontal representations but also for corners and tips. Currently used for the fences.

Finally, I added variations to the player sprite so you can see when it is resting, sleeping, working, or when it’s struggling to do work because of fatigue.

On a side note, as a result of the big overhaul, this version sadly does not support the characters-based display (i.e. ASCII/Unicode mode). That UI will need some work to get on pair with the graphics one, and we also need to (re)define a whole bunch of appearances and colors to use, for the updated content.

Farming

Added persistent plants that give fruits periodically, including berry bushes, coffee shrubs, and avocado trees. These shrubs are now “solid” so you must plant them strategically.

Guided by the addition of the new recipes, and to some extent the developments of the plot, we have new crops including carrots, avocado, sugarcane, garlic, red rice, giant wheat, and onion.

There is also a new command, “P”lant, useful for some seed items you can either consume or plant (including sugarcane).

Cooking

Add a new batch of recipes (note that some of them still can’t be done due to missing ingredients), some items are also now liquid containers, and can be filled with water or results of the recipes (like black coffee, or some soups).

The list of recipes is now filtered so that it only displays the things you have ingredients for unless it is an “inspirational” recipe (as in, things we want the player to seek to cook). This means you can also do simpler recipes, for example, all kinds of meat can be grilled for added nutritional value.

For the inspirational recipes, a message with the ingredients missing was added in case you attempt it.

Procedural content generation and vegetation

This release is not heavy on procgen improvements, however, there were some tweaks in the population of the vegetation, including adding scattered nuts, a new type of mushroom, and the addition of “tall grass”, which you need to cut in order to be able to farm (a new tool, the Machete, was added for that in addition to some other uses for resource gathering). There are also stones scattered around so that you have to clean up the area you want to farm on, or gather and use them as resources.

Also, as mentioned before, the berries were replaced by shrubs, which required tweaking the values a bit to prevent exploits.

Achievable Goals

As an open-world experience, you can pretty much put your own goals in Emerald Woods. However, we are adding some “achievable goals” you will be able to select to guide your journey (or at least they will serve to show the player examples of what they can do within the game).

For now, there are four, fixed achievable goals:

  • Capture one of each animal species.
  • Grow one of each available crop.
  • Discover the Genco offices.
  • Build a big house.

These achievable goals are displayed in the HUD along with the progression on them.

More goals have been designed but have yet to be integrated.

Gameplay

Some balancing was done, adding more starting seeds and food for survival, and increasing the nutritional values of gathered food.

There is now a heavy health penalty when sleeping in an unsafe location (no campfire).

A new command was added to “rest in place” for some minutes, just in case you need a slight recovery without taking a nap.

Crafting and building things now has stamina and time cost, so you have to do some resource management if you want to make big buildings!

Rocks are now solid, and you can break them with the pickaxe.

Paint recipes (and painting in general) have been disabled for now, until accommodations are made for the new visuals.

Modding

Most of the data is now being loaded from external JSON files instead of being hardcoded into the game, this includes the visual appearances, items data, recipes, animal races, plants, and even the tileset configuration. This will make it easier in the future to support mods (both official and player-made)

We are considering creating the first of such mods for this year’s 7DRL challenge, we’ll see how that goes.

Genco Plot

There has been a lot of narrative work in the subplot of the game involving Genco corporation. Some of it has been added already as documents scattered in the cabins in the woods but this is just the beginning. The intro has also been updated with hints of this narrative.

User Experience

A chain of tips was added to onboard players into the game, explaining the basics of farming and interaction. There is also a blocking alert shown for long actions (like Saving Game) or when important things happen (for instance the warning when you don’t sleep well)

Design

Here’s a briefing of stuff we have good progress on the design front but no implementation yet

  • Seasons system
  • Animals behavior
  • Genco narrative (more content)
  • More crops and forageable plants
  • Crafting furniture and a lot of items.
  • Pets system

Slashie’s 2022 Rewind

And so, 2022 is over. Another year of awesome game-dev. Here is the story.

NovaMundi is still in Early Access; even with some important progress on it, we still haven’t managed to execute the plans to add content and polish the experience to make the transition to full release. OpenArthurianX6 saw no development at all, seemingly failing to make the last mile, and roguenet was taken down and not used at all. Rainy Day saw no development but instead, Emerald Woods was revived with a lot of promising development.

FormulaProc was the big bet of the first half of the year, however, it failed to make a splash. Muyscamuy got a push for further development but was halted and will likely be revived for 2023.

I participated in 3 game jams (7DRL, trijam and js13k), gave a talk at the roguelike celebration virtual event, flew to Germany for GamesCom 2022, to Colombia 4.0 in Bogota, and to the FICCI festival in Cartagena, Colombia. I switched back to JS for my personal projects besides FormulaProc.

Slashware Interactive continued operations, focusing on our main client (Zynga) as well as co-producing a game with our friends from Bombillo Amarillo; we also put some work on TWO secret projects for clients, which we should be able to talk about next year.

See also rewinds for 201420152016201720182019, 2020, and 2021.

January

The year started with work in FormulaProc, with three Grand Prix events executed (Spanish, Monaco, and Azerbaijan) improving the engine to be less abstract with a top-down display, better UI, and even a lot of work in a discord bot for players to be able to interact with the simulation indirectly. We even did an intro video for the races and created a lot of background content for the drivers, teams, and articles covering the races.

There was also some work done for NovaMundi after a long break (a usual pattern now) prompted by an interview done for the official channel of the Congress of Colombia (!). Continuing with the migration to the new visual style for the units, and improving the UI.

February

More work in FormulaProc with the Italy, Texas, France, UK and Belgium “2021” GPs (!). As the simulation continued to improve, we continued pouring narrative content and visual improvements into it. Realistic characters were changed for Anime representations, and the abstract map was replaced by a satellite view. Some work was done to set up the simulation so it was more ‘cinematic’, highlighting the interaction between the characters.

Pixal, my old persistent-browser-based game from 2008-2010 saw a very short-lived revival; sadly it’s just too hard to open another work front. But at least I jump-started it and remembered how it works, even fixing some ages-old bugs in the process. So it remains unavailable to the public for now.

March

It was time for my 19th 7DRL, I made SpelunkyRL. It was good, I had been wanting to do it for years.

Also, as part of the quest I set myself to upload more of my games into itch.io for preservation (and sometimes include some minor improvements) I released a new version of my 2021 js13k entry, Distant Friends.

April

I couldn’t help myself from investing a bit more time into SpelunkyRL, producing an improved post-challenge version since some people really enjoyed it. It was focused on UX with a better tutorial and bug fixes.

The itch.io quest continued with ZeldaRL having an update after 15 years, making it much more enjoyable (although there was some controversy around the removal of Permadeath, but it really wasn’t working there), and the Ultima Castle Generator being posted there as well, with some UX improvements.

I came back to FormulaProc to finish the “2021 season”, with Mexico, Brazil, and Abu Dhabi Grand Prixes, some failed efforts at trying to make people more aware of it, and progress on trying to make races more exciting with “emotions”‘ for the drivers.

We started work in “Flashlight Defense”, a tie-in for a series being produced by our friends from Bombillo Amarillo.

May

I kicked off season 2022 of FormulaProc with the Miami Grand Prix featuring renewed visuals for the portraits of the characters and their emotions, as well as the cars on the track and some promotional models. I also ran the Spanish and Monaco Grand Prixes, with the latter featuring narration and some efforts at editing it for other platforms (such as TikTok)

I visited the Colombia 4.0 event in Bogotá, Colombia, where we showcased Slashware’s games.

The itch.io quest continued with “Ancient Shadows“, my old incomplete point-and-click adventure, being assembled back and put online. Noone has yet reported having completed it.

I also participated for the first time in the Trijam, the challenge to create a full game in 3 hours. I teamed up with QuietGecko to create No Survivors, a game similar to Vampire Survivors but the other way around with you controlling indirectly the hordes of monsters.

Work continued in Flashlight Defense.

June

At last, a new version of NovaMundi was pushed out, and it was quite an important package of improvements for gameplay and content, including the addition of visual hints in the minimap itself for the approximate location of things (instead of having to rely on vague cardinal directions).

I did some post-jam work for No Survivors since I believed the idea had some potential but of course, cannot be put in a decent shape in 3 hours if it’s meant to be experienced by more players (that is if it’s to be more than just a hardcore game dev exercise).

We also were selected as winners of an Endless+GGJ microgrant to further develop Muyscamuy’s visual aspects so we start working on that.

Work continued in Flashlight Defense.

July

Some work was done in Muyscamuy’s visual improvements, however, I didn’t manage to get it to a point where it could be shown due to missing art, as the artist that worked on the project was transitioning to other projects, so had to put that on hold.

We finished work in Flashlight Defense! at least covering the initial plan. The game is still not playable because the animated series hasn’t been released to the public, but will be soon! It’s something completely different to what I normally do but it was a nice change of focus and we learned a lot about Unity2D.

Thinking of some future similar project that could be tackled by other members of Slashware, I began conversations with the owners of a popular Colombian IP to create a top-down narrative-heavy, cute jRPG. This may see some developments in 2023.

August

Another interview powered another release of NovaMundi; it was light in features but bundled some important bugfixes fixes. Then an even bigger version was shipped with the foundation of the perks system that we had been developing to introduce some variety to the gameplay. I then went on to improve the procedural caverns but ran out of NovaMundi energy before I could release that.

js13k started so I jumped into making yet another entry, this time a simple arcade game inspired by tamagotchi.

The improvements for the Trijam version that I worked on June were finally released to little fanfare. Just something that improved the idea but still would require investing dev heavily to make it worthy.

HBO’s House of the Dragon series was premiering so I created a couple of cinematic intros similar to the ones I had made for Game of Thrones some years ago. Interestingly what I thought would be the start of Season 1 ended up being the end of it, as they took the entire season to build up the setting for the Dance of the Dragons (good idea!).

I ran the FormulaProc Monza Grand Prix which was basically a FormulaProx Grand Prix.

Finally, I flew to Germany for gamescom; there I had good prospects for NovaMundi and our upcoming project “Serenade of Chaos” (still hoping to see both things progress for 2023), and also met the dev team of Blasphemous and got to drive around Germany with Thomas Biskup. So it was all around great even accounting for having lost some cash and my passport at Frankfurt. (Michael Schumacher’s museum visit with Eivar Rojas was another highlight)

Frankfurt was also a milestone for the machinations leading to the planning of yet another exciting secret project that I hope to be able to announce in 2023.

September

Finished my js13k entry and did a small update to ZeldaRL.

Besides that, I decided to address something that had been haunting me for a bit now; due to crumbling architecture, the mobile versions of Ananias for Android and iOS hadn’t been working for a long time now; I was able to patch the Android version and did a maintenance release for the platform after 5 years (long overdue!)

October

I ran the Japanese FormulaProc GP, the last one of the year. I decided to experiment with different visuals for the track, going back to abstract instead of satellite, and zooming in to the cars for more action. It was surprisingly super demanding for my dev box, handling that huge image file for the map (not very optimized)

It was not simple (even more difficult because I lack a new MacBook where I can freely test the iOS build process, but I managed to send the update for Ananias on iOS fixing the crash on startup.

We drafted some of our plans for the full release of NovaMundi.

And finally, I did a talk for the virtual roguelike celebration 2022 about Moria and its impact on the world of game development.

We also put a lot of work into a COOL SECRET PROJECT to be disclosed in 2023!

November

Tendergotchi was added to itch.io

And then I fell into the black hole of Emerald Woods. First with an innocent usual necro-release (it had been 3 years already!), but then felt tempted to add a little bit to it (in the shape of a feature no one had asked for: painting the world). A popular feature that was requested for it was that a downloadable version was available so I decided to revive a long-dormant development submitted for JSRL by Erik Yuzwa to add Electron support; as that was polished and merged into JSRL, I integrated the changes into Emerald Woods, producing the first downloadable version.

This shook the infrastructure of the project and required to push an unpublished npm update to circular-functions.

And then, another long-requested feature: Adding graphics to the game. I decided to follow a similar pattern of first adding support for that to JSRL so that more people can make use of it. I used Pixi.

End of November I also went to the Colombian Game Dev Summit, which happened to be made in my hometown. I met some friends I hadn’t seen in a while and saw some good talks.

December

Once support for graphics was added to JSRL, I ported it into Emerald Woods an, after a sizeable amount of work, the first graphical version was released. I decided to initially use a 1-bit tileset serving as a transition between the character-based display and a graphical version. I went from Kenney’s tileset (which I decided to include as the sample for JSRL) to use a good old Denzi tileset.

However, we were already experimenting with more detailed pixelart; I spent the month adding support to it to the game but also doing the required pixel art to cover all the things we are representing on it, along with improving the farming aspects. I didn’t manage to release it but it should come out early January 2023.