Expedition: January 20 Update

It’s been almost three months since the last update. And many things have happened!

We finished the CREA Digital project and managed to push the game forward greatly. Then we continued working looking forward to having a public release this year. Below is a gameplay video showing what we have so far.

Doing a full changelog would probably be huge. Instead, I’ll share some pics of the more visible changes, noting that there are also great advancements in the music and sound effects.

We continue pursuing the best way to display the “overworld”; we did some changes in the perspective and added back the followers to the player (we are planning to add more variety to these units so instead of the same battle units you’ll have carts, people carrying stuff, etc). They also behave more organically now, following the player in a less rigid way.

The overworld is also now more rich with models for the different sizes of European Settlements, Mining camps, gold veins, and temples to explore. Native cities also are now displayed using different unique models for each in the history mode.

overworld

We added a separate procedural terrain generator for highlands, canyons, and deserts. It uses pure Perlin noise instead of the random midpoint displacement used for the island generator. This generator was incorporated into the history campaigns too, increasing their replay value; in order to do that, we had to make a hybrid out of it, to add predesigned content (or rather locate it at general positions in the map). Another big chunk of work was for the grass terrain, painting patches of grass to make it look less homogeneous.

canyon

One of the most visible changes from the last update is the appearance of forests, still a work in progress but it seems at long last we’ve found a way to represent them adequately and performing well. I decided to use full detail models instead of low poly shapes and made some tweaks to make sure it performed decently. We still need to do some work to cover more ground while keeping the FPSs up. Besides the forests, we also did a lot of changes in the lighting of the scene, as well as the post-processing effects.

In addition to the changes in how they are rendered, there were also changes in how forests are generated, placing clumps of trees of the same type together, and selecting them based on the type of tree. We also added a first iteration of drawing roads between locations on the map and having simple “conversations” along the way. The paths are broken down into segments, and the terrain along these segments is set to dirt. Next iteration will feature meshes instead for them to be much more clearly defined, for now, they also include some huts along the way, for a little variety.

For the island generator, beside a LOT of internal changes, we also changed the way beachlines are rendered, to make them contrast more vs the grass. “Snowy” mountains were also removed, giving these maps a more tropical look.

island

After exposing our working alpha to player testing, we discovered we needed to do a lot of work in player onboarding; we added a helper character that guides you through the first mission, we still gotta have him help you during your first battle.

The entire conversation window was reworked, dialog options are now added dynamically based on the options that are selected, and are capable of launching the Barter interaction or, completing mission objectives. This was complemented by changes in the town popup, to group characters inside buildings and then allowing the player to choose who to talk with.

conversation

Speaking of Barter, we revamped the Trade screen and after many iterations, we implemented the foundations of a bartering mechanism where you can trade goods with people in villages that don’t have a currency.

barter

The minimap now displays the direction the expedition is heading, as well as the towns that have been discovered, the roads between locations, and the previously known places and areas at the beginning of each game. The sea is now also displayed more clearly, and the town markers are built based on the size of the location.

minimap

Of course, there was a lot of work involved in actually getting the “Children of Bachue” campaign ready in time for the CREA Digital deadline. This included finalizing the design and setting the generator for the first four missions, integrating the cutscenes art and voiceover for them, loading all conversations and characters data from design, and integrating the models for units in combat and overworld.

cutscene

For the history campaign mode, we added a “narrative mode” disabling discoveries, temples, gold veins, building, camping, etc. and providing more direct control over combat. All this so that the player could focus on unveiling the story and the world.

In order to support some of the missions designed for the campaign, the Discoveries facet was improved by adding items to the player’s inventory on discovery, and adding quests related to bringing these items to a given location.

Similarly, a simple “tracking” mechanic was added where the player can find traces or general directions to the places he needs to find as part of his mission.

Some other smaller changes in the UI include testing a new, more readable font, animations to the compass needle so it looks more organic, and a mission briefing window shown at the beginning of each mission.

Slashware’s 2019 Rewind

And so, 2019 is over.

Another year of awesome game-dev. Here is the story… stay tuned for the 2020 plans, coming soon!

OpenArthurianX6 saw its second and third milestones completed although not nearly enough dev time was invested into it as planned, Expedition was worked hard through all year, both a first phase following the original design (inspired by Seven Cities of Gold but without a clear focus) and a second phase, Children of Bachue, a campaign (or stand-alone game?) using the theme of the Muisca people (Colombian native tribes).

I participated in 2 game jams (7DRL and js13k 2019), gave a talk at JSConf Colombia, was interviewed for a podcast, went to 2 events away from home (GDC 2019 at San Francisco, and Bucaramanga GameQuest). Learned a lot of Unity, C# and TypeScript.

Slashware Interactive continued operations, supporting the development of Expedition but also doing work for 4 different clients.

Also, since I’m now working full-time in Slashware, doing these posts gets a bit more complicated… I don’t know what level of detail to use! Some months this year I had a lot of people working in Expedition, for instance, and it gets hard to summarize the things that were done.

See also rewinds for 201420152016, 2017, and 2018.

January

I started 2019 working with Camilo Ramirez in a small fun project, a recreation of Black Mirror’s Bandersnatch game. It went nowhere, but it was fun.

Screen Shot 2019-01-02 at 8.44.31 AM

Afterward, 2019’s development of Expedition started (also with Camilo Ramirez), we added support to navigate the full world map into the game (a huge, boring, plain world), including the system to load batches of terrain on runtime. We also worked in the weather system, different approaches for storms, and the cutscenes for the James Cook campaign, hoping to have a playable thing instead of just an engine.

screen shot 2019-01-14 at 6.41.43 pmscreen shot 2019-01-14 at 6.44.52 pm

February

Work continued in Expedition, doing some experiment with clouds, as well as triggers inside the campaigns, further pushing the James Cook campaign, which ended up not being very exciting to play so we went back to think how to provide a fun experience there. We developed the hunger and morale systems a bit, as well as a simple interaction to supply the Expedition, looking forward to add some interesting elements to the mix.

w15-clouds

w15-rio

March

As usual every year, I participated in the 7DRL Challenge. In my entry, Heroes of Noresskia, I tried to generate “overworld” adventures with parties of adventurers following the track of a villain from town to town. It was not a very traditional roguelike, but I was rather trying to go after the intent of creating an automated dungeon master as the original motivation of the developers of Rogue. It’s also not very fun.

noreskia2

I went to GDC 2019 in San Francisco, talked with many people about Expedition and got very valuable feedback. Also, I organized the roguelike developers’ meeting, went to the parties (including POWx9) and explored a little bit of the bay area.

All along GDC and Afterwards, work in Expedition continued of course. We sought to improve the visual quality of the game, one of the main pieces of feedback we got. This also included doing additional experiments on forest rendering. I also briefly worked the idea of adding procedural storylines to the game.

exp-4

April

Some work was done in Age of Golf (an evolution of my Ludum Dare entry, Golf Over Africa), mostly in the visual department as well as adapting it to mobile controls. I planned to add some animations, however, that never happened and the project got stuck.

D4DwLcDWAAEREEp

Work in Open Arthurian briefly resumed, adding the initial support to define Doors and Keys opening these doors.

And of course, we continued working in Expedition, doing tweaks on scene lighting, camera position, camping, and fatigue systems, as well as doing some general changes in UI to increase its resolution. More info here and here.

ExpeditionZ 4_27_2019 4_36_04 PM

May

Visited Bucaramanga, Colombia, for the BGA GameQuest. It was fun and useful. Posted a complete report about it here.

D5mJdd2W0AcGxtF

Some smaller developments included Tweet of the day, a small module for my projects’ page to select a project randomly every day and present it in a tweet format, and fixing the web renderer for the Stygian Abyss level generator, to display tiles correctly.

Morgaelin, the Ultima 8 – like Java engine powered by libgdx, was also open-sourced. No developments happened on it throughout the year.

screen-shot-2013-08-23-at-7-26-30-am

For Expedition, work continued on improving visuals and UX, with more experiments for the display of forest as well as adding more detailed combat commands similar to a RTS.

Expedition0518-4

However, most of the efforts were centered on building an alpha for our submission to the CREA Digital government program, in the shape of the “Children of Bachué” campaign, themed in the Muisca culture and legends.

muisca1

Along with the dev work, there was a lot of documentation to do, mostly boring but useful including a simplified version of the Game Design Document. David Florez and Juan García joined the team as visual and sound artists respectively, in order to publish something convincingly good (it worked great). More info about the work in Expedition can be found here, here and here.

June

While waiting for the response from CREA Digital, we continued worked in Expedition. I did my first big actual code contributions with some work in procedural terrain. We also implemented battle music, worked a lot in combat and mouse movement. More info here and here.

expJun17-2

Another batch of work in OpenArthurian was made to get out of the way a big block of stuff, by adding support for saving and loading games.

July

Work in Expedition continued with more elaborate procedural generation, added support for discoveries, and moving combat to a separate scene. We also added the first version of the automap.  Posted some info about it here.

Dramatic MountainsIslandsDiscovery Journal

August

Finally, a BIG batch of work for OpenArthurianX6, adding many things including Line of Sight, packing as a native App, support for reading books, using inventory items, levers, multiple floors, solo mode, pathfinding, and a lot of foundational AI work. Milestones 2 and 3 were completed!

oaxm3

For Expedition, we worked in defining the scale for the overworld, as well as an implementation of field of view using camera vignette, and a first approach of adding rivers to the map.

screen1

Expedition0727c

Additional work was done in the procedural generation module to distort the scale of mountains to provide a more dramatic appearance.

proc1b

We also added a first version of the “hometown” screen (used to stock the expedition) and the “voyage mode” (representing the long transatlantic voyage, added pathfinding for combat, and did a lot of UI tweaks.

screen3

We also got the news that we were selected as winners for CREA Digital. So we started organizing work with the team and planning the three months-long project. Posted some more details about all this here.

September

Most of the Children of Bachue team started working this month; we did a lot of concept artwork, trying out some ideas for a new representation for the overworld, as well as the mood to project in the UI and its art style. There was a lot of debate and examining different references for both things.

Escena2

ESCENA2.10

We went beyond the concepts and created the first 3D art for the overworld. This didn’t work well at first due to performance issues with the number of trees we were trying to render, so we hard to circle around it and consider other ideas.

expeditionSS

We also conceptualized the Spanish characters.

spanishDudes

Likewise, we documented the references for audio and music, started working on them and did some initial casting for the voice-overs for the cutscenes.  We created the infrastructure for the voiceovers (which we changed afterward) and integrated the inventory model with the “units” model.

I also participated for the 3rd year in a row in the js13k jam, creating a simple monster hunter game called “Backpack monsters“. I almost didn’t participate due to lack of time, but I’m glad I was able to scrap some hours to work on it. It was great fun.

October

I gave a talk about Procedural Content Generation at JSConf Colombia. I also posted a summary about it here.

8

Continued work in Expedition / Children of Bachue: Given the performance issues that we hit with the forests, and also keeping in mind our production budget, we decided to aim for a more “comic” look for Expedition, similar to Northgard. As a result, we came up with a different way to represent forests.

Screen Shot 2019-11-07 at 10.21.39 PM

This also impacted the unit design, we also felt this way it could work better for gameplay purposes (given the issues that games like AoE 3 had, with all units looking the same and being hard to distinguish in combat)

models

There was also a lot of work in UI integration, with a more finalized minimap design, and the windows of the game using the newly designed appearance.

mapConcept

We also worked in the landing flow, the first time user experience, the definitive appearance for the cutscenes, the style for the character portraits, and all along a lot of work in the music tracks and SFX. Some of the work we did was detailed here.

November

Was interviewed for Spazcosoft Podcast, talked about gamedev in general, roguelikes and Expedition.

This was the last month for the CREA Digital “boost” for Expedition, so we did the best we could, creating models for the different types of European towns, integrating the unit models and their animations into the game, illustrating as many cutscenes as we could.

image (11).png

I decided to make the maps in the history campaigns procedural as well, and created a procedural generator for highlands, and polished it to use different types of terrain textures.

image (10).png

I’m probably missing a lot of other things we did, but it was hectic!

December

While most of the team assembled for the CREA Digital project was disbanded here, work in Expedition continued beyond the initial deadline. I took a chance to integrate everything we had done, run tests with players, perform content fixes and additions.

image (12)

I also took some last-minute decisions, like discarding the low poly forests and replacing them with the trees we had made originally, but with a much more closed-up camera angle so having fewer trees to render at the same time.  Also did lots of tweaks in the procedural generator, and integrated the conversations for all the characters we had designed. This all happened before the CREA Digital deadline.

Afterward, with a more relaxed pace, I improved the minimap rendering the roads between towns.

I also posted about candle based procedural terrain generation, just for fun.

20191208_1938083878354620972754871.jpg

Candle-based Procedural Terrain Generation

20191208_1938083878354620972754871.jpg

There’s a local tradition in Colombia where, in December, people burn colored candles. While its background is the Catholic Feast of Immaculate Conception, with believers asking for favors to Virgin Mary, for most people it’s a day that marks the beginning of the Christmas festivities.

Here is a simple procedural generator for terrain, using colored candles:

  • The melted wax is used for terrain, with the general shape being the coastline and accumulations of wax representing mountains.
  • Wicks are used to placing cities (ignited) and ruins (burned out).
  • I used the colors of the candles to represent terrain types (forests in this case for green and blue candles), however, I think they could also work well for political boundaries since they stem from the wicks.

map-1map-6

Here’s a GIF of the overall process

animated

Credits for the stamps I used:

Interview in The Spazcosoft Podcast

I was interviewed by Kirk Spaziani for his new podcast, following fellow roguelike developers Jim Shepard (Dungeonmans) and Brian Bucklew (Caves of Qud) being featured there.

Some of the topics discussed in the interview:

  • How I got into game development and the bad habits I acquired and almost didn’t get rid of.
  • Usenet groups for roguelike development and ultima dragons.
  • The history of Roguebasin.
  • How (I believe!) roguelikes became semi-mainstream (a history of Kornel and Derek Yu)
  • My relationship with Ultima and the Ultima Dragons, and  Ultima games on the NES (Except Warriors of Destiny because it doesn’t exist.).
  • The 7DRLs I made based on existing universes, and the 7DRLs I made trying to make roguelikes more accessible.
  • The profound history behind the name of Ananias Roguelike, and how to pronounce it.
  • The importance of building a community around the game.
  • Advantages I perceive of using JavaScript vs Java for game development.
  • The history of Expedition, from its 7DRL origins to a failed first project as full-time indie, to the current unity based version and the team behind it and our efforts to get funds for its development.

Check the interview here.

Snapshot of spazcosoft podcast

MEDMI 2019

MEDMI 2019 – A conference on technology and digital marketing, November 16, 2019, at Medellín, Colombia.

Sergio Roldán kicked off the event discussing the growth of Medellín from a spot in the valley to a mostly unplanned big city, and the strategies it has taken to transform into a growing technology hub, investing in the citizens, including improving education facilities in the most troubled zones.

med2

Natalia Silva and Daniel Arbelaez talked about Service Design, the importance of understanding the elements that are really relevant to the persons in a process, including the people participating behind the scenes, not just the final clients.

med3

Diego Noriega thinks “How” to make a company grow is not as important as “Why”, and with “Who”. Having a lot of money brings the need to spend it and may accelerate failure. Moments of failure, however, can be the biggest moments of learning.

med4

Andres Ramírez, a director from Asobancaria, shared a history of innovation in the financing and banking sector in Colombia, and the latest advancements in fintech and ePayments.

med5

Maria Camila Muñoz, Pablo Santos and Juan Esteban Saldarriaga, discussed the interaction between fintech companies and banks; instead of competing, fintech providers provide access to resources via improved user experiences and lower barriers.

med6

Ivan Obando shared the process of producing his movie “Me llevarás en ti”, including ideation, planning and financing, and some of the elements that have aided its success (local historical hero, romance, involving local celebs).

He also voiced his concerns for national productions to have proper exposition, and how he’s working with government agencies on this topic, proposing incentives for cinemas for keeping national pictures on the billboards for longer times.

med7

A representative from GRIN Colombia said the company hopes to transform cities by improving mobility, increasing employment, making people value public property and creating safe spaces.

med8

In the Innovation panel, Monica Zuluaga and Andres Ramirez discussed how, from their corresponding perspectives in media and banking, large traditional companies are adapting to the consumption habits of born-digital consumers, by distributing content through different channels and by creating alternative means to access services for people for which things such as going to a physical bank are extraneous concepts.

Companies need to move quicker in modern times since even small companies or startups can now compete directly with bigger ones via a greater understanding of their users or audiences.

med9

Eduardo Guizar shared how he wound up working in the Curiosity project in the NASA, following his childhood dream of making robots, after watching a Star Wars movie. He never abandoned his far-fetched dream, secretly developing robotic engines at his home in Mexico.

med1

Expedition – November 7 / 2019 Update

It’s been almost three months since the last update. And many things have happened!

We are progressing thru the CREA Digital project (ending this month). We’ve been working for the last 10 weeks.

Doing a full changelog would probably be huge. Instead, I’ll share some pics of the more visible changes, noting that there are also great advancements in the music and sound effects.

Screen Shot 2019-11-07 at 10.14.10 PM

As part of the work in the new UI, we have rearranged the transfer items dialog and implemented some visual enhancements on it and the other dialogs of the game.

Screen Shot 2019-11-07 at 10.18.55 PM

One of the most visible changes from the last update is the appearance of forests, still a work in progress but it seems at long last we’ve found a way to represent them adequately and performing well. It’s no longer a flat texture and it still conveys the sense of scale that I’ve wanted to portray in this overworld view.

Screen Shot 2019-11-07 at 10.21.39 PM

This is far from the definitive look we want. We are still working on the lighting of the scene, the colors, contrast, and other graphical tweaks. As well as creating more models for the overworld locations.

Landing and boarding, as well as linking the party units model and the inventory model, so that the units you have in combat actually match the ones in your inventory.

Screen Shot 2019-11-07 at 11.19.09 PM

Another aspect that was worked on heavily was the UI, including the HUD elements, the appearance of dialogs, and the size of texts and elements. We also added new indicators for the day and night cycle, the weather, and made the minimap show the immediate surroundings (instead of a scaled version of the entire map)

The idea to use a vignette to simulate LOS has been discarded for now. Zoom levels are now fixed too, so we are not emulating LOS at all. I believe this was an unneeded level of complexity.

Screen Shot 2019-11-07 at 10.23.14 PM

Speaking about the map, a lot of work was put into redesigning its look. Not all of it has been implemented inside the game already (only minor parts of it).

map_concept.png

Below we can also see the helper character, our initial effort to enhance the onboarding for new players with a “soft” tutorial. We have also been working at updating the portraits system with a new style and new sets for the native people.

Screen Shot 2019-11-07 at 10.16.22 PM

There has also been some progress in the illustrations for the campaign cutscenes, although we are reworking it with a different style.

Screen Shot 2019-11-07 at 10.17.58 PM

Combat has mostly stayed the same. However, we are doing a lot of work in redesigning the units, modeling them and creating new animations. We are in the process of integrating them into the game so hopefully, this huge chunk of work will be more visible next update.

Screen Shot 2019-11-07 at 10.56.13 PM

models

Now, for some work that is less visible:

  • We have designed the entire layout for the Children of Bachué campaign, including defining 6 missions with different feelings and objectives, creating locations and populating them with over 50 NPCs with their dialogs and appearance. A lot of research and design work has gone into this.
  • As noted above, creating music, sound effects, and integrating them into the game, has been quite a bit of work. I’ll post a gameplay video soon so this can be heard.
  • Planning and casting for the voice over for the cutscenes
  • Refactors in the engine to support multiple food consumers
  • Support for the cutscenes with fading images and text, with automatic playback.
  • Creating mining camps
  • Returning to Spain sequence
  • Discovering towns.
  • Use procedural terrain for Children of Bachue missions.

JSConf 2019

JSConf Colombia 2019, October 18 and 19 at Medellín, Colombia. I was a speaker there for the first time. Here is a brief summary from the talks I was able to check out, based on my live-tweeting. The full talks will soon be available at JSConf youtube channel.

Day 1

First off, the opening live coding show by algo0ritmos, led by Celeste Betancur. An electronic music and video visualization show where 3 coders connected to a server to manipulate different aspects of the audio and video in realtime.

1

Constanza Yáñez, from Argentina, opened the talks sharing and live testing her implementation of an automatic cat feeder using JavaScript and a Raspberry Pi, and how it made one of her childhood dreams become a reality.

2

Sergio Quintero, a local, discussed skimming data hacking via malicious scripts injected into legitimate websites to steal information, and how it can be prevented by intercepting XHR calls using a client-side firewall.

3

Luis Alejandro Vega, from New York, shared his experience building a career at Bloomberg, as well as how adding “pet characters” to the in-house projects helped increase the ownership of the team over them as well as the visibility for other departments of the company.

4

Mayra Rodriguez, from Bogotá, discussed the reactive app architecture and shared some tips to achieve good performance in your web app using RXJS stores.

5

Irina Shestak, from Germany, shared her experiences with Rust and WASM, with lots of tips to make coding, debugging and deploying easier, which she learned thru her quest of learning on the go.

6

Melina Mejía, a local, spoke about web accessibility being critical to reaching all audiences, and how to implement an accessible interface using ARIA.

7

Santiago Zapata, a local, did an amazing talk about procedural generation, including an introduction to it, where it can be useful, and a break down of his procedural castle generator.

8

Missed talk by Anton McConville, from Canada. “Personality hacking: using Node, WebAudio and Houdini to visualize psychology of song lyrics“:(

Vanessa Marely, a local,  talked about the power of storytelling as a way to better communicate ideas, and gave some tips for good, effective storytelling.

9

Lucas Aragno, from Argentina, shared some of his knowledge on Neural Networks and using JavaScript libraries like Tensorflow.JS and SynapticJS to implement them.

10

Jennifer Wong, from California, discussed the weirdness of time handling in JavaScript, how the Date object and MomentJS came to be and when to use one or the other.

11

Day 2

Missed talk from Kate Beard, from England, “Learn How to Play the Theremin* Today, Guaranteed!” 😦

Missed talk from Alejandro Oviedo, from Argentina, “A codex for the web” 😦

12

Maris Botero, a local, gave a very colorful explanation of machine learning, neural networks and her project, The Time Machine, and how Javascript, tensorflow and the ml5 library made it possible. Awesome transformation of old pics into colorful child drawings

13

Adrian Bolonio, from Austria, dug deeper into the issue of web accessibility, focusing on the tools to test it over different aspects of a webapp (code, DOM and final appearance in the browser), including simulating visual impairments of different degrees with NoCoffee.

14

Jerome Hardaway, from Tennesee, talked about how to make it easier for people to jump into existing software projects. Remove ego from your code, code for the others. Design the onboarding process seriously around building the confidence of new team members. Document and refactor.

15

Daniel Rico, a local, briefed on how container-baser deployment enables horizontal auto-scaling, and shared the results of his experiments to find degradation points in NodeJS vs Tomcat, which can help finding out the number of nodejs instances required for your app.

16

The experts’ panel had Alejandro Oviedo, Santiago Zapata, Celeste Betancur, and Vanessa Amarely discussed different aspects of the present and future of JavaScript, their frustrations with development, and what features of the language have affected their individual fields the most (Backend, Game Development, Live Coding and Frontend Development, respectively). It was moderated by Juliana Gomez, co-organizer of the event, (Picture by co_constanza)

17

Colin Ihrig, from Pennsylvania, gave a very useful walkthru of some diagnostics and debugging tools included in nodejs out of the box, when and how to use them.

18

Jessica Lord, from New York, shared the history of Electron: going beyond Atom, avoiding a scaffolding approach ala rails, the importance of clear and maintainable docs and building a community around the new tech. Developer Experience is critical for a successful tech tool!

19

Missed talk by Luis Villalobos, a local, “Desarrollo de interfaces modernas de usuario usando un “viejo” modelo matemático computacional” 😦

Bryan Hughes, from California, believes programming can create art just as any other technology (such as watercolor or oil paint) can. It’s all in the intent of whoever is using the tech: is it to convey emotions or facts? Finding your style is a mix of chance and determination

20

Finally, Eva Ferreira, from Argentina, went into a trip 10 years back to the past on web development, how things have changed for good and the history behind these improvements. But also how some things have gone amiss… abuse of push notifications, privacy breaches, popup madness, websites heavier than needed, lack of accessibility, fatigue for new frameworks… where are we heading to, can we do things better?

21