The Making of Muyscamuy – Part 2

This is the second part of a summary of the development of Muyscamuy, our entry for the Cultural Heritage Game Jam 2021. You can play the game online here. Read Part 1 here if you haven’t!

November 14

Worked in the “Craft” system, which is really pretty simple (once you’ve built a forge you can select what item you are going to build, and it consumes resources daily towards its completion).

Using input from Manuel, further defined the “favor” system and the actual rituals to be performed at the temple, as well as further establishing the preparation for the “biohote” or ritual celebration, as the victory condition for the game)

Despite still being tangled by his final university exams, Esteban has started writing some events to happen inside the game, with different levels of rarity and choices, and defined as sequences. Gecko has also started his ideation process for the audio.

November 15

I started the day doing a livecoding session with the addition of being able to Make Offers in the temple, based on the design made the previous day.

After the stream, I implemented the effects of the rituals (increasing favor and increasing the yield of farms as they are growing if blessed). Also worked in the weather system (or rather, the “Storm” events) and its relationship with Favor and the ritual to stop them.

Added simplified Trading in the town center, where you could exchange resources for the gold you need to build the Tunjos.

Other important additions were a victory and a game-over condition, thus completing a playable game that could be tested. Some initial tests led to balancing some stats including the initial food value, harvesting rate, and forest resources. I released this version for the team to give it a look, receiving some feedback mainly on User Experience, but also some ideas to include “fishing” as an additional source of food (that one didn’t make it either)

I continued improving the UI and added some more placeholder graphics to the scene (forests and buildings) to continue building on the feeling of the game.

One element we were not sure how to integrate was the “Climate Change” part. I researched a little bit and found this article about how global warming is affecting the “páramo” ecosystem (Andes high-mountain tundra). These places also happen to be sacred for the Muisca, so that was a possible angle: I thought we could add an activity where the player could visit these paramos to get important gameplay bonuses, but these would not be available in the “Climate Change Challenge” hardcode mode (which would also feature more harsh storms and climate). Unfortunately, we didn’t end up implementing any of that in the jam version due to lack of time.

This day we also had a feedback meeting arranged by the jam organizers, where the teams could display their progress and get valuable input from experts. There were lots of interesting entries, and for our entry, the experts recommended we thought on 3 possible takeaways people would have after playing the game, what makes the Muisca different from other cultures and why was Maize so important for them; these didn’t have to be big lessons, just small things people would know after playing the game.

The qualities of the other games in the jam are very varied; some of them look pretty basic while others seem to have mid to high production levels. Made me wonder why the jam was not more clear about the assets you could use. I opted for us to only use assets created during the jam timeframe, but it’s clear some other teams made extensive use of acquired assets, which doesn’t seem too fair but was still legal under the rules of the jam.

Esteban and Manuel continued interacting so that the narrative elements we created were spot on with Manuel’s knowledge about the Muisca culture.

Gecko sent his first revision of the ambient / music track, which I believe ended up being used in the game almost with no modifications. It is awesome but what else can you expect from The Gecko.

I implemented a basic “rain on the camera” effect, inspired by a game I saw sometime in the past (I think it was Frostpunk). Also started working in the support for the in-game events that Esteban was writing.

November 16

Added support for events, and loaded as game data all the ones that Esteban had created so far (knowing in advance they were bound to change, but needed to make sure we were supporting all that was required).

As Esteban and the team continued working on adding new types of events, I kept updating the engine to support what was needed.

Manuel was finally able to review Gecko’s track and he loved it.

November 17

In-between dead “adulting” times, I’ve been reading Jordan Mechner’s fabulous “The Making of Prince of Persia”. Maybe someday this devlog will be similarly interesting. I still haven’t made it to the point where PoP hits success. It’s fun to see his back and forth between glorious 80’s indie gamedev (was he an employee of Broderbund? I gotta check that) and movie making.

Another live development session, this time focusing on the design and implementation of the “onboarding”. I cannot stress how important this is even (and more so) for jam games. I explored and designed it out of the dark, and did a quick implementation.

Set up a Trello board (long time no use Trello!) to coordinate work mostly with Esteban, since both Gecko and David seemed to be knocked out of action by other stuff.

David was finally able to send some more art! I increased the base resolution of the viewport to 960×640 (bigger, but still good for web embed)

I also worked on something I was trying to about so far: being able to define a “mask” for clicking on UI elements in Unity; this is not supported by default and had to wrangle a bit with it (You need to use Image’s alphaHitTestMinimumThreshold, and the texture you use needs to be imported following some parameters). This was needed so you could place isometric areas side by side and for the player to be able to click on one of them even if the enclosing rectangle overlapped another area.

After the streaming, I completed the onboarding, and worked in the Events module to filter out options and events out of reach because you didn’t have the required resources.

Esteban continued working on the narrative as we wondered how abstract it should be, or if we should incorporate a more structured plot. There was a lot of back and forth mainly between him and Manuel, as the events were further polished.

November 18

Continued improving the UI, fixing reported bugs, and implementing support for the new effects as they were designed. Also implemented a stunning title screen.

Esteban is working on the intro and ending; we are still deciding if we want it to be addressed to the player (like “This is a game about the Muisca, you are going to learn about them, your mission is to do this…”) or be more of an “in-universe” thing. We chose to favor the second idea.

For the first time, I sent the playable build to a close circle of known testers, to get their feedback and bugs.

November 19

Today, Half-Life (1998) is now as old as the first home version of Pong (1975) was when Half-Life came out. As pointed out by idspi.

I didn’t get to work in the game today, but Gecko committed his first changes to the repo, adding basic audio support and some sounds, while Esteban reported the intro and ending were written as well as another revision for the onboarding; he also finished writing a nee sequence of “Negative” effects, based on the interaction with the Spanish and other tribes.

Seeing that we were running out of time and the UI visuals were still lacking, I tried to incorporate an additional artist into the team but the notice was just too short and we failed to onboard any of three different options I had in mind:

  • Paul Pereda, who did a lot of art for the Expedition project, had a lot of work and couldn’t help.
  • Mapedorr, fellow gamejammer who was already working in 3 gamejams at the time I contacted him
  • Edwin Saenz, a graphics designer with whom I worked years ago in the Flash version of ArcherFire, initially was going to participate, but in the end found out he couldn’t make it either.

So I had to take that role myself, which means we ended up with a minimal UI in the end.

Another important development made today regarding the theme and based on discussions with Manuel was how we were going to portray the game on the angle of cultural heritage conservation, since so far what we were doing was displaying some elements of the Muisca culture but not really putting them under the lense of being at risk of disappearing. We decided to highlight the role of the XVI Century catholic church in the persecution of the indigenous practices as one of the factors that contributed to them being almost completely gone. The game then serves as a tool to help that cultural heritage remain in time.

That’s it for now, subscribe to the blog and follow me on Twitter so you don’t miss Part #3, the grand finale of our journey!

The Making of “Muyscamuy” – Part 1

This is a summary of the development of Muyscamuy, our entry for the Cultural Heritage Game Jam 2021. You can play the game online here.

Here’s a sneak peek of the final results, but read on to learn about our adventure!

October 19, 2021

I received an email from the Global Game Jam newsletter announcing the “Cultural Heritage Game Jam”. I don’t have any time for jams, of course. Still, I label the email with a Star and move on with my life.

November 5

As I check the “starred” emails, I wonder if maybe it’s worth participating in this jam. I share info about it with the SlashwareKnights ring (cool people that have done projects with Slashware), to see if there’s any interest. David Florez, the lead artist of NovaMundi, gets excited and thinks this is a chance we cannot miss. Some initial ideas included minigames ala WarioWare, as well as something around Muisca crafts like goldsmith, mantle making.

It seems we are going to jump in, so I come up with a name for the team: “Nyiaoque” (grabbed it from NovaMundi’s dialogs created by Manuel, it means “Figure of Gold”).

The jam has officially started, but we are far from jumping full into it.

November 6

Juan Carlos “QuietGecko” seems to be interested as well. I met with Manuel to discuss some pending tasks for NovaMundi, but I also pitch him the idea and he was very interested, a potential ideal would be making a game around the tradition of the “chicha”, a traditional fermented corn beverage whose preparation could be traced back to the Muisca. It seems we have a team.

November 8

The team meets. Initially, I had the idea of leaning more into the educational and narrative aspects, but David thinks we should shoot for a game with deeper mechanics and gameplay. We decide to go for a strategy/simulation/tycoon game where you lead a Muisca community toward a still unclear objective. All we know for starters is it’s going to have some farming, building, and crafting elements, that we want to teach about the Muisca culture and language, and that we will stick to a single screen map with mouse interaction, for desktop.

November 9

Deciding what technology to use for the game. Based on the constraints we set, the short time of the jam, and the technologies I’m more familiar with, I considered JS + phaser2 (very familiar with it) or phaser3 (gotta do a project using p3 someday), or Unity (which I had used to create the board game prototype for Expedition, a lot of past 2D client work, and NovaMundi of course).

Another thing to consider was accessibility; since this is a jam I believe it’s always important to put as few barriers as possible for both the jurors and the players, so browser-playable was a must. My experience with Unity’s WebGL player was limited, but I figured if I kept the game simple, it should work fine (I recall I’ve seen people try to use it for huge games over 200MB).

November 11

I decided to go for Unity, and it was only 4 minutes into dev that I had to do my first StackOverflow lookup. Hit a wall with the rendering order of things in Unity2D, since it is decided by default by camera distance instead of the order of the components in the hierarchy, which was quite a shocker at first but then made total sense.

I ended up using a complete Canvas/UI-based approach, which worked perfectly well being similar to the scene hierarchies in phaser or DOM; since we were not using cameras or any kind of movement, this was a good fit.

On this first day of development, I added areas where you could put people, and the foundations of the day-based simulation system with the effects in farming, lumbering, food consumption, as well as a simple construction system consuming wood. Most of what the core of the game was going to be in the end, was set from the first day.

I also talked about the jam with Esteban Martinez, a narrative designer who will be joining Slashware next year, he said he was interested to join but was unsure how much time he could invest due to his final university exams.

Captain Toonhead, a VR game created by Colombian company Teravision games, was out today.

November 12

Another team meeting! Esteban joined for the first time and we continued polishing the ideas for the interactions to be had in the game and the way we were going to handle the narrative aspects. We also reviewed some references for graphics and gameplay.

Following Manuel’s suggestions, Esteban read a transcription made by Clara Inés Casilimas and Eduardo Londoño, of a procedural document (see what I did there) done for a Spanish trial against the Muisca chieftain of Ubaque. “[…] a key item which shows the Muiscas adopting another culture, religious repression, and the forming of a new identity in what is today the centre of Colombia“.

From there, he extracted some ideas for the setting, the types of events that could happen through the development of the game, some possible ways the “religion” system could work, and the final goal of the game being the preparation of a great celebration.

November 13

We briefly discussed the idea of having continuous instead of day-based simulation, but that would have been a costly experiment and may set more expectations from the players of seeing animations and more “real-time life” in the portrayal of the world.

David sent the first assets for the phases of the maize farms, which were promptly integrated. I also changed the test background to something closer to the perspective and appearance I visualized for the final game, so that communication with David could be easier and the team could get a better idea of where we were heading.

I also added the “area inspector” bar, uncluttering the map so that the info of a given area was displayed on the bar instead of all around the HUD, and did a lot of UI tweaking.

Continue to read Part #2 of our journey!

EID 2021.2

Fixes some critical bugs found in 2021.1 with the transition to SERF0.29, and further improve user experience:

  • Prevent exploit to recover HP using Run command
  • Replace Luck with HP for clarity
  • Improve delay logic for better gunfight SFX
  • Replace fancy useless Miss messages with more practical numeric damage caused
  • Use bigger font by default for modern monitors.
  • Arm civilians so they can retaliate if you mistakenly hit them
  • Prevent civilians from going hostile when hit by enemies

Also includes

Download at https://github.com/slashman/elite-international-detective/releases/tag/v2021.2

Elite International Detective v2021.1 – After 10 years!

It’s been over 10 years after I last updated this game! recent playthroughs made me want to fix some stuff so here we are!

Here are the biggest changes:

  • Much smaller map size, less boring exploration
  • Fix display of map when the mission starts so it actually makes sense
  • Show weapon stats in the HUD
  • Fix issue blocking the game when the crime happened in HQ city.
  • Increase the height of city description textboxes
  • Remove unused Lethality mechanic

Bundled are also updates to serf-engine bumping it to 0.29, allowing us to have:

  • Improved Urban map generation
  • Improved targetting (remember the last enemy)

Have fun!

Links

OpenArthurianX6 – Milestone 9 completed – World split into chunks

The single goal for this version was not a simple one: to transition from a model where the player warped from one “Level” to the other, into a World model based in Chunks, allowing the creation of very big open-world maps with seamless transitions between them (ala Ultima VI).

This involved breaking the “Level” class, splitting its responsibilities into two classes: World and Chunk, and reworking how pathfinding worked so that mobs could still find their way between chunks. All around changes were made so that mobs, items, objects, and doors continued working fine, as well as NPC schedules.

So, there are not a lot of new functionalities to talk about here, but all this invisible work will hopefully pay off when making use of the engine to create big worlds.

The Demos page has been updated so you can play online or even download the win64 package.

Onwards to Milestone 10!

Tales of NovaMundi – Week 136

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

There was not a lot of work these two weeks due to personal issues and work in Roguenet and OpenArthurianX6, however, we continue improving the visuals and variety of the units.

Variations on hair styles and clothing were added for the Muisca units, and a first version of the updated European units was also integrated into the game, they continue evolving both visually, and in their role in the story. More to be revealed soon.

On the audio front, we added effects for the animals including solitary eagles, king vultures, pumas, deers, bears, and parrots. We also incorporated some fixes in the volume sliders to use a logarithmic scale and added a Master volume slider.

OpenArthurian: M8 Completed, Source Code Released

There was a short dev push after Milestone 7, only for a prolonged freeze period to happen afterwards. This week I decided to push forward so now the milestone 8 has been completed!

The Demos page has been updated so you can play online or even download the win64 package.

Along with small fixes, this new version (0.10) includes the following:

  • Allow ending Combat using C while in combat mode (and no dangerous enemies nearby)
  • NPC Schedules! they will hop from location to location (including opening doors when needed), and sleep during the night somewhere.
  • Added two test NPCs to Iolo’s hut (Corvus and Calista) and a test schedule for them.
  • Line of sight reduced based on time of the day.
  • Atmospheric color based on time of the day
  • Sleeping mobs won’t talk, and will wake up when attacked.
  • Neutral mobs will now flee when attacked.

Furthermore, I decided to release the source code of the game at this point! it was initially planned to be done on v1.0, but I figured it has been long enough to put it out there for people to start toying around with it. You are welcome to take a look at the github repo!

Onwards to Milestone 9!

Tales of NovaMundi – Week 134

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

We have been working hard on adding the definitive content. A new version, v0.34.0, was published.

Fauna

King vultures (Gallinazo Rey) now fly on the lowland forests and wetlands. Large and predominantly white, the king vulture has gray to black ruff, flight, and tail feathers. The head and neck are bald, with the skin color varying, including yellow, orange, blue, purple, and red. The king vulture has a very noticeable orange fleshy caruncle on its beak. This vulture is a scavenger and it often makes the initial cut into a fresh carcass.

Characters and Quests

We added a complete set of 16 new characters including their dialogs for both Spanish and English. These include the leaders of 6 Muisca territories, and several characters sharing the trades and traditions of the Muisca.

This also included the implementation of a more defined set of quests to unite the Muisca territories, designed based on our research on potential sources of conflict between the Muisca territories, as well as their beliefs and needs. The Quest controller used internally had to be updated to support the new conditions to complete the tasks, as well as to improve its support for chained quests.

New trade and quest items were added, and the caverns system was also reenabled so that these quests could be completed. The Dialog Controller was also improved to support dialog fragment variations based on flags so that the conversations can be a little bit more dynamic and contextual.

Visuals

We took the first step to display the Muisca population center including more huts and a palisade since these are essential elements for their architecture. We still need to work on the definitive unique elements for each town.

Streaming

On October 12, most of the devteam assembled to chat (in Spanish) about the state of the project and our approach to the topic of the European Invasion of these territories which started in October 12, 1492, including how the topic has evolved in the game to its current shape where we focus on the player combating the divisions between the Muisca first and foremost, portraying a scenario where it would be harder for small bands of explorers to gain political advantage in the territory.

We also talked about our plans to transition out of Early Access, and some things we wish we could have time and resources to add into the game. Click here to see the VOD.

I also participated in IndieCade’s IndieXchange 2021, in their panel “Finding Business & Funding Success Around the World” sharing a bit of the story of NovaMundi’s funding and some ideas for fellow game developers.

Tales of NovaMundi – Week 132

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

It has been five weeks since the last update. A new version, v0.33.0, was published.

Audio

Gecko continues working on improving the audio of the game; the UI effects are almost completely covered, and we began experimenting with spot ambiences with the towns.

New Unit models

We decided to take the leap and remake the appearance of all the units; we are looking forward to abandon the previous “bulky” anatomies replacing them with more anatomically correct bodies with more details and higher texture quality.

We still need to add more variety to them, and we are still working in the Spanish units as well as the integration of these new units into the game (as well as improving the workflow to integrate new fragments and variations more easily)

The DevTeam at DevCom 2021

We participated in DevCom 2021 (pitching a separate game we are planning for 2022). However, we also did a devteam stream, talking about the (updated) history of NovaMundi.

Some of the topics we discussed included:

  • The many shifts on theme for the project and their effect on the ongoing development.
  • The current work in many facets of the game, as we approach the end of Early Access.
  • The feedback we have received from the Early Access phase from streamers such as Nookrium and their communities, and how we have integrated it into the game. (including the work we have done to make the game feel more alive)
  • Classifying NovaMundi as part of a genre. RTS? Survival? Strategy RPG? Roguelike?
  • WarTales – we noticed it.
  • Playing the current version of the game, some tips from the experts!
  • New roles for upcoming non-combat units.
  • Recent changes in exploration and navigation such as time compression.

Distant Friends – js13k 2021

Js13kGames is a JavaScript coding competition for JavaScript Game Developers. The fun part of the compo is the file size limit set to 13 kilobytes. The competition started on 13th August and ended on 13th September 2021. The theme for 2021 was SPACE.

I managed to participate in the competition for the fifth time in a row, this year I teamed up with fellow game jammers and friends: mapedorr and QuietGecko, as agar3s went lone-wolf with his entry for the decentralized category.

We ended up creating a cute space exploration arcade game. You can play online here. Source code is here. There’s a gameplay video here.

My main inspiration, in the end, was “Tokyo 2020 Google Doodle Champion Island Games”, a fun little game made by a company called “Google” for this year’s Olympics. I wanted to recreate its feeling of relaxed quest-completing gameplay with challenging minigames.

The Story

I wanted to do something simple this year, but I also wanted to start as quick as possible so that there was something we could polish along the way instead of rushing it thru the end.

When the theme was announced I immediately thought of the idea of a space exploration sim; however I also thought it would be a common approach, given how easy it might be to exploit procedural generation to create infinitely expanding, boring universes with thousands of planets. I decided instead to have a more focused world, with unique planets, characters and quests, using procgen only for non-critical content (such as the stars in the background, and the random asteroid fields). Everything else was to be made manually, quest types would be sparsely reused, and tied to a hand-written story line.

The theme of cute visuals and audio was also something I thought from the start, maybe I just wanted to make a cute game for my daughter, or I thought the visuals could be easily adapted to vector illustrations without yielding quality, and the nature of the sound tools we could use for the jam worked very well for the type of audio that would support these visuals.

What Went Right

We ended up with a solid, finished entry with nice visuals and audio, and hopefully a fun and challenging experience with some interesting story moments.

What Went Wrong

While I still haven’t received feedback from the community, I don’t think anything went particularly wrong.

One thing I really wish I have had the time (and the bytes) to implement, was the additional game mode focused in building your home in a lonely planed, spaced away from civilization. The idea was for it to be the game mode you would unlock for the web monetization category. Maybe I should have implemented the roots of it along with the core gameplay, so that it wasn’t left out in the end (but then maybe that would have prevented me from filling the core content first, since we did run out of SPACE in the end).

The mobile controls could also be improved with more iteration on it, so that the players could shut down the engine more easily while turning the ship at the same time.

The DevLog

Day 1

The theme for this year was SPACE. I had an initial idea on my head of making a simple educational simulator, with a cute children theme, showing a journey from Earth to Moon of a multistage rocket.

I decided to use my entry from 2018 as a starting point, and started fiddling around with some “lander” physics and a simple camera that could go back and forth (Duet of Aces was forward only).

Day 2

I changed my mind about trying to make it physics based. Went in a more “arcade” route by removing gravity and also implemented open movement in all directions. Did some work in the rockets so they exploded after some time instead of only upon impact, as I thought the player would have to make his way thru asteroid fields and aliens in the open space by timing the rocket explosions.

Day 3

The idea now was for the player to travel to the planets to find the fragments of the song, (a multi-track song in the background would only play the tracks for the instruments you had found already).

To make this possible for the player, I added the navigation pointer at the bottom, and allowed switching waypoints.

As QuietGecko jumped on board, I also set up ZZSFXR, since there was music and sounds to be added.

The plan was to populate the empty space with aliens and asteroid fields. But aliens should behave more like animals than enemies, you had to push them away.

I also increased the resolution of the game to cover all the window (but this was eventually kind of rolled back.)

Day 4

I managed to integrate some test music and sound effects, including troubleshooting an issue with the ZZFXM web tracker exporter.

Day 5

I improved vector objects rendering, replacing my own path rendering functions from 2018 into using Path2D directly, which was a great step to allow more complex quadratic / bezier paths, as well as save a big chunk of code. I also did some foundations for the conversation system and drew some “test” objects (spoiler: some of them stood until the very end).

I used MiniSVGcreator by xem, it was great to produce optimized SVG paths (although by this point its usefulness was limited by its inability to save/load)

Day 6

Decided that the game would be about finding your missing friends instead of completing a song, and made a basic structure for this questline (hoping from planet to planet looking for them)

Also added asteroid fields serving as obstacle for your planet-hoping journey.

For the visuals, I added a parallax effect with cute stars and reused the pseudo 3d effect when turning from Duet of Aces. QuietGecko continued working in the audio.

Day 7

Sent a small patch to xem’s MiniSVGCreator to allow loading SVG data (to improve the art workflow), also added new music tracks from the gecko, and worked on the plotline to have an idea of how much text I’d be able to fit.

Day 8

I had to travel to fetch some hardware, but managed to do some airplane coding implementing conversations with multiple fragments, word wrap for text, and a lot of writing for the dialogs and plot (measuring how much is viable to add inside the limits, because text taxes you HEAVILY in js13k!).

Day 9

Added rocket particle effects, hints to friend locations, and city labels. Also integrated more test conversations.

So far I had a huge JS file with all on it, so I decided to split it into modules and modify the gulpfiles to merge them at build time.

Day 10

Asteroid mining with minirockets. Character portraits composition with test cat, dog, and fox.

Day 11

Integrated new SFX by the gecko and added mobile controls and scaling.

Day 12

Worked on quests (for mining and space racing) and speed booster powerups. The idea was that you would have to complete some quests to get hints to your friends’ locations.

Day 13

Implemented the “time trial” quest, including improving the obstacles track, and adding boosters to it.

Also worked further in the mobile controls, and added scoring to the game, based on how long it took you to complete it.

Day 14

Focused on a better user experience, by improving space navigation tying it to the current known location of friends instead of all the planets in the universe, as well as adding some onboarding and hints

Mapedorr jumped into the game designing some nice portraits, I did an initial test integration for them.

Day 15 and 16

Implemented space fishing and Galaxian fishing quest.

Days 17 and 18

As the end drew near, I called for friends to help test and did a lot of small fixes and tweaks in the mining and fishing, and also improved responsiveness for mobile.

We were already over the 13KB limit, so had to call for help on the js13k slack. I was pointed to ECT which was a last-minute life-saver.

SFX and Music were also revamped by the gecko.