Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics

Devlog: Business is Contagious

A topic by Internet Janitor created Feb 01, 2020 Views: 308 Replies: 8
Viewing posts 1 to 8
Submitted (1 edit) (+2)

I've decided to have a go at making a reinterpretation of the classic Drugwars. You'll play as a plague profiteer. Having snuck into a quarantined city grappling with an unknown infectious disease, you can buy, sell, and steal (among other things) medical supplies, clawing your way to massive profits, while taking care not to fall ill yourself or fail to escape before the plague overwhelms the city.

Since I'm writing my game in an assembly language I spent most of the morning working on foundations: higher-precision math, text and number rendering, and a flexible menu system modeled after the Nokia 3310 OS. Here's how it looks so far:

I have the rudimentary buy/sell/travel mechanics working. Tomorrow I'll need to add more mechanical flesh to these bones: dynamic markets, random events, loan sharks, informants, and more.


very cool 

Submitted (2 edits)

Day 2:

I've added a dynamic economy. The implementation is pretty simple: each commodity you can trade has a table with prices for five levels of demand: Very low, Low, Medium, High, and Very High. Every location has their own demand level for each commodity, and on each turn the demand for a few commodities in a few locations will be shifted. Thus, commodities have recognizable "good prices" and "bad prices" (once you get a feel for it), some are inherently higher-margin than others, and areas have demands which are predictable enough to plan around, but varied over time and between games.

To help plan your next turn, you can buy information from informants for a small fee:

There's no guarantee that a hint will be very useful to capitalize upon, though. There's also a chance that the informant in one location might (consistently) be a liar! If you get bad information, I hope you remember who told you!

After actually playing for a while, I slightly redesigned the "buy quantity" display- now it shows both the total price and the number of items you're purchasing in a batch. I now consistently use "x" as a prefix in menus (like "x32") to indicate a quantity, and "$" as a prefix to indicate price.

It's now possible to end the game (this will be more of a strategic choice when everything else is finished):

Perhaps you'll find the casino and have a few rounds of Blackjack:

...hopefully getting luckier than I did.

Overall, still bare-bones, but it now resembles a playable game. Next, I need to implement a system for overall story progression within the city, in the form of semi-randomized interstitial events between turns, and a few more special features for certain areas of the city.


Day 3:

Core gameplay is all working!

Today I added a dynamic event system. At the end of every turn, a random event may occur- perhaps you encounter a mysterious weapons dealer, or read a news story about the disaster unfolding in the city around you!

In order to ensure that pacing and difficulty stays controllable, I use multiple random pools. The events are pre-initialized in appropriate proportions in a large array. I then shuffle several segments within that array, and then draw from the array in sequence as days progress in-game. By shuffling segments instead of the entire array, I ensure that, for example, the events which progressively unlock buying and selling certain commodities will be spaced out over the course of a 45-day cycle, instead of bunched up together at the start or end of that timespan.

I'm closing in on the RAM limits of the CHIP-8 platform with this game. Using the "XO-Chip" extended instruction set my code has to fit in 3.5kb, with an additional 60kb of storage for static data- graphics, working storage, lookup tables, etc. Right now I'm down to about 190 bytes of free code space, and I've just barely squeezed in most of the mechanics I originally planned. A big part of making everything fit was the use of a small special-purpose script interpreter which allows me to store the logic which drives many text screens and dialogues in that more spacious data-RAM.

I also added loan sharks, combat, and several exciting ways to die! Don't take my word for it, though- a WIP build is now up on Itch:

The page includes a downloadable Octo Cartridge File which includes full source-code, if anyone is curious. I plan to spend tomorrow fleshing out a few minor nice-to-haves, tweaking balance, and adding polish. I'd greatly appreciate any feedback or suggestions you folks may have!


Apropos of nothing, I think this is my favorite part of the source code to my game (name elided):

(Perhaps you can guess its function based on its visual structure, and what else you know about the game!)


Day 4:

And that's a wrap! Did some additional playtesting and asked some friends for feedback. This morning I added a handful of minor new features, like a fancier view for the day titlecard which imitates the Nokia 3310 home screen:

I'm pretty satisfied with how this all came together. Best of luck to everyone else's submissions!

Host (1 edit) (+2)

This is great stuff Janitor thank you for sharing. Can't wait to try it out!


And here I am with my ~40MB build while this guy squeezes everything into a few kilobytes. Respect!


On the off-chance anyone is interested, I did a mildly more technical writeup about a few things I did to make this game work over on the Dev Log for Octo, my Chip-8 development tool:

Thanks for the kind words, and best of luck to everyone in the judging!