Ludum Dare 49 October 1–4, 2021

Dizzard Wizzard

Oy!

We upgraded our little wizzarding game!

Come and throw some spells in a basemnt! It's fun!

https://ldjam.com/events/ludum-dare/49/dizzard-wizzard

459bf.png

1.1.2 - Map fix

Changelog: - fixed map not showing correct gem placements

Play our game here: https://ldjam.com/events/ludum-dare/49/a-gift-in-good-faith

cover_itch.png

Ziggy Bungus: Pizza Delivery Simulator

play here >> https://ldjam.com/events/ludum-dare/49/ziggy-bungus-pizza-delivery-simulator scrn1.png

(Posting this because we need a few more ratings...)

Don't let the baby demon cry!

bb2.png

Give him affection now: https://ldjam.com/events/ludum-dare/49/devils-sitter

Post Mortem: 50 Crowns for 50 Kings

This is a post-mortem for my jam submission for LD49. Click here to check it out.

So this definitely isn't the best looking LD game I've ever made, it's quite unwieldy, and rough around the edges. However, I think it is one of my more interesting boondoggles. This post mortem is likewise a bit of a boondoggle - just fair warning, this is going to be a long read.

4.png

I've had the title "50 Crowns for 50 Kings" written down in my notes for a long time. A world where the united states failed to form and split into 50 independent nations could be interesting. How would that world shake out? Maybe that's the kernel of a novel, or maybe that's a video game.

The LD theme (unstable) seemed like a reasonable fit for this world. It's an unstable political situation.

As a video game, something like a grand strategy game would make some sense, but I'm not usually one for the obvious route. Some people might like the idea of conquering America as Delaware or Wyoming, but that doesn't really excite me. I already build a game a bit like that during LD 38. Perhaps instead you aren't playing as a one of 50 little kingdoms yourself, but are influencing their actions.

So that was the initial idea for this game. There are 50 warring state that act as simple automatons which fight each other. You would play as a European power in a turn based game that is not about conquering all the territory, but rather manipulating the states. You don't control troops, you control diplomats and spies, and are choosing where to invest. Perhaps you would have additional special actions that could have major impacts on what was going on.

If I had known how complicated this game would be, I probably wouldn't have tried to build it during Ludum Dare. I was aiming to complete it in the compo window, but only barely was able to barely finish it within 72 hours. In retrospect, this should have been impossible.

Friday Night

I had built an interactive region map system for LD38, but that had been a tedious process. I knew I would need even more regions on the US map, so I needed a new system. To create the US map, I started with satellite images, then divided it into regions and painted each region a different color than it's neighbors.

map regions.png Ugly, but the code doesn't care

The game then loads that image and scans it, creating regions on a grid based on neighboring pixels of the same color. Since I wanted some of the states to have multiple of these regions, I created a second map that grouped every region into real-world state boundaries. Running the same clustering algorithm on that image and cross referencing the two helped set up the initial board state.

I had planned to do something similar to create the visuals for the map. I would use a satellite image and extract each pixel to a tile in a tileset. That could allow for some detail like rivers and mountains. Once I had the current low res image in place, I never had the time to circle back to try that. I did eventually go back in and flatten the colors in the playable region. There is so much happening on the map already that the extra colors proved to be very distracting to play.

I expected delineating 50 different countries would be difficult. I settled on drawing the borders using one or two color patterns, and shading inside the borders of each territory. I started by making an image of the different lines, each one pixel wide. The top pixel of each line would be parsed and used for the inner shading. I started with a set of solid colors, then doubling that and painting in alternating colors that were mostly neutral, then adding a few combinations that looked good to differentiate further.

borders.png Each vertical line is a state border on the map (plus a few neutral lines for special cases)

Still, if two similar borders were next to each other, the results didn't look great, so I assigned each state a border, and then used a fixed random seed to shuffle the ordering. I tried a few random seeds until I found one that minimized adjacent borders of similar colors.

Saturday

The first major challenge was to design "simple automotons" for the states. It sounds simple on paper, and I think it's fairly intuitive, but it is probably the most complicated logic in the game.

I knew there would need to be some sort of system of military strength and combat, and some sort of system of resources to feed that military. I really had to fight the urge to add additional complexity and realism to the basic systems like that.

The player was going to see a lot of combat and needed to be able to parse combat results quickly. The solution was to just have a single number of troops per region, and no randomness to combat. There would be no differentiation for different types of armies/cavalry/artillery or anything like that. Simple modifiers could then be added on top of that, but as long as the number remain small, it's fairly easy to predict outcomes.

Similarly the economy would be made of just three simple things. Taxes, food, and guns. Cities would generate tax revenue, and larger cities would generate much more. Food is needed to sustain an army. 1 unit of food would feed 1 soldier each turn. 1 gun created by factories would add an additional soldier. Guns would be less common and more expensive than food, so there's a benefit to keeping troops alive.

That sounds simple enough, but then I had to make an AI to use that system in a way that feels reasonable.

Each turn, the AI collects resources and pays it's debts. It distributes all of the food it has to feed it's troops. If it doesn't have enough food, it trades money for food. If it has extra food, it instead sells that food for extra cash. If there still isn't enough food, troops randomly disband for each food they're short by.

econ.png This probably isn't enough to explain the system in game, but it's about all I had time for

Then the AI determines the threat of all neighboring territories. For each region it controls it checks that regions neighbors and marks the magnitude of the possible attack that each region faces. For all of the regions which are under threat, it tries to shore up those borders by purchasing troops. Each gun resource that it has can create a soldier, which is placed randomly, but weighted in favor of the regions under heaviest threats. If the state doesn't have enough gun resources, they buy them.

Now the AI starts to think about attacking. It searches all enemy neighboring regions, and scores them based on what resources they have and how many troops they have relative to possible attack launching points. They select one region as their potential juicy target for the turn, and one of their bordering regions to be the spearhead for a potential attack. If they have leftover money at this point, they buy additional soldiers and place them on the spearhead. They won't spend all their money recruiting troops to attack, however. If they are under threat, they will spend whatever it takes to shore up defenses, but for attacking they are a bit more conservative. Each king is assigned a target reserve randomly at the beginning of the game. They will only spend money above and beyond that threshold to pay for aggression. This helps insulate them against future threats, and randomizing gives each game a little more variability.

The AI kings do that at the start of the round. Then players take their turn. When you click next turn, each king will look at their juicy target, and decide if they will attack. They count the number of troops they can attack with from their spearhead (minus one to stay behind), and compare that with the troops in the enemy territory plus any fort bonuses. I opted to make the AI a little hesitant, so the more overwhelming the attack, the more likely they will be to attack. That way things aren't entirely predictable, but you can have a pretty good idea. Assuming the attacker won, they distribute all the troops between the two regions similar to how they would be recruited. The order the kings go in could matter here, so the kings take their turns sorted by the number of soldiers they have. Larger countries go first, which is useful as that means they can make an attack and another neighbor can swoop in and steal it out from under them. This makes the Kings seem more aggressive and dynamic.

The kings serve their purpose reasonably well, acting as mostly intuitive automatons, even if the player doesn't fully realize everything going on behind the scenes. They aren't always the smartest, but when there are 50 AIs interacting, it's pretty easy to overlook a quirk here or there. The one thing this system doesn't do is allow for the AI to fail an attack or do something like skirmish without committing all of their troops. I'm not sure that's really too important, though. Importantly, it allows for a reasonable number of places for one of the players to interact with these underlying systems.

That all probably sounded pretty straightforward now that I'm describing it, but it took a lot of brain crunching to come up with that system. Figuring that all out and getting it all working took basically a whole day on top of rendering the map. By Saturday night I was able to watch the AIs fight each other automatically. I was pleased to see that given enough time, someone would eventually take over. Without having any way for the player to interact with it, it was fairly neat to see the AI go at each other.

Sunday

One thing I noticed from testing the system out was that it would take a long time for someone to conquer the states. Much longer than I want an LD game to run. Having the game stop after some number of turns and the winner based on score seemed like an explainable approach. I was really hoping to have something like a newspaper headline each turn to indicate some world event, eventually culminating in a world war, perhaps with a bit of randomness on when that came. Having world events would be a nice bit of flavor and world building. Unfortunately there just wasn't time. The telegram you get on the last turn came from this idea.

Early on I figured players would take turns placing diplomats and spies, and take actions based on where you placed them. I wasn't really sure what the diplomat and spy tokens would do, or how you would select those extra actions. I thought cards would probably be involved, but perhaps there would be a heavier focus on the tokens having basic abilities that could be selected. I opted to move the idea for basic actions to cards to simplify the turn structure and reduce repetition.

I wanted there to be something like a relationship system between the player and each of the kings. Something like the suzerain system of the Civ games. Placing diplomats would improve your relationship, and perhaps some of the extra actions would require a certain relationship level. I debated having the spy tokens act as a counter to the diplomats and reduce standing, but that didn't seem very fun. I also ended up having the diplomats generate additional funds for the kings where they were placed as I noticed most of the kings were generally always strapped for cash, and there should be some benefit if every player is courting them.

So I built a system of influence for the kings. Each king has a "swagger" which indicates how much influence the players have to generate to become an ally. This represents kings with larger kingdoms being more aloof and self-important, where some smaller nations are much more interested in what Europe has to offer. The first player to max out influence becomes the king's "key" ally. That doesn't quite have the impact I expected, but that status does double the score the king provides the player. You can see this system in action in the kingdom detail popup. Visualizing this system so that it could be self explanatory was important, so it had a bit of extra attention for something buried in an info bubble.

relationship.png

As I was coding the other systems, I had written down a decent number of ideas for actions. I've been trying not to make card-based games for a while if I can help it, but cards are a powerful tool and I have a lot of support code for them. They really did seem like the best option here. It's an intuitive metaphor, allows you to explain complex interactions, and makes every turn have different options available.

So with that, I had the basic turn structure for players. Players take turns putting out tokens, then play cards that affect areas where your tokens were placed. I don't think I got all of those basic systems in place until well after the original compo deadline.

The primary problem with all of these systems is that they are so predicated on having AI players to compete against. It wasn't enough to build the "automaton" AI for the kings, the other players needed to place their tokens on the board and play cards. If I had realized how much work I was signing myself up for, I would definitely have built this game differently. Luckily, the player AI was not quite as complicated as the kings.

Distributing the diplomats and spies is actually two separate problems, which just adds a little cherry on top. The players try to distribute their diplomats to different kings each turn. They look at all the possible regions and score them for much impact a single diplomat would have. (it might be buggy, but) they score regions where they could become the key ally highly, and regions where they already have an investment higher than regions where they don't. If the diplomat won't really do anything because they're capped out or almost capped out and can't take the key ally slot, that regions is rated lower. Spies also look at all the possible regions and similarly position based on a weighted score, scoring areas where there are multiple nearby diplomats highly, and kingdoms with a lot of total other-player influence higher.

Since I've built card games a few times, I had a decent idea of how to structure the AI for the card play, at least. Each card has a little async function running through the series of steps needed to resolve the card. The same function runs whether the player is human or AI, but each time the card requires a selection, the card provides a heuristic function to the selection which is used to calculate how to rate various selections. For humans, the player interactively makes a selection or cancels, but AI players use the heuristic to score all the possible regions and pick a positive score randomly based on the weight. That means each card actually has it's own little self-contained AI for how to make a good selection. Each turn, the AI basically just shuffles their hand and tries to play each card it can. This isn't particularly effective, but it can also crunch numbers better than a human and still appears to be somewhat competent. So the overall code flow wasn't tricky, but building out all of those little mini heuristic functions really ate up some time.

heist code.png Each card looks something like this

Monday

Once all these systems were together and there were enough cards to make it interesting, it was an absolute mad dash to the finish line for the 72 hour jam. I lifted the dialog system from a previous game and slapped it in place as a tutorial. I also used that to create a quick and dirty final score screen. I built out a series of lenses to visualize the various types of data on the map. I put together the intro text and menu selector. I built the message console so you wouldn't miss the important details that happened.

I did tack on a couple very quick features that I thought were cool. I made every European power slightly asymmetrical. Once the game was over, I set up a "one more turn" option. I added in a hard mode, which gives the AI additional money and cards each turn. I also added in an observer mode, mostly because I enjoyed watching the AI just duke it out on it's own. If I had time to actually balance the game, that probably would have been useful.

That was exhausting. I barely got everything in place in time, and what I did get there was fairly rough.

What went well?

Having a real world connection to the places in the game is very effective, and it's easy to add your own real-world knowledge of the states. It really helps generate stories, even without player intervention. Before I added any real player interaction and the states could just attack each other, I let the game run for a bit with just the states. I thought Manhattan would be well positioned to take over New England and sweep into the midwest, but instead Pennsylvania, New York, and Manhattan Island all smashed into each other, and then New Jersey swept in and cleaned up the pieces. From there the New Jersey Empire snowballed through New England and started into Ohio. Meanwhile in the west, San Francisco slowly conquered the rest of California and was slowly taking over the west coast. Ultimately San Francisco floundered without enough food to sustain a western advance. By the time New Jersey arrived, San Francisco could barely maintain it's troops around the Rockies. Using states in a game like this is almost a cheat code for storytelling to an American audience.

Beyond that, the pitch for the game is fairly strong. I probably need to refine it, but this is the sort of pitch that a wide audience could latch onto.

What went poorly?

The game was definitely over-scoped. I didn't really account for the complexity of the AI systems. Everything else in this section can be traced back to that.

The art style of the game is a mess. It isn't really an art style as much as a lack of an art style. I would have liked to see boardgame visuals like I created for LD38. It really would have taken a lot more time than I actually had, so it's probably for the best, but it isn't great.

Beyond the art style, the graphic design has some problems. It is quite difficult to parse through the information in the various lenses. Often the lenses don't have all the information you need to make a decision, so you have to swap back and forth. For example if you want to use the card that lets you form an alliance, you have to cross reference the relationship between kings, as well as see your player relationships to the various kings and check where your diplomats are.

The game system isn't intuitive enough, and also isn't explained well enough. I think the player relationships might be okay because there's a nice graphical display that responds to your actions, but several players understandably couldn't figure out the economy. A really good table or visualization or two might help to explain it for the curious, but could also be very tricky to implement.

There are a few smaller systems that don't quite come together. I ended up implementing as many of the card ideas as I could, but some don't really work. Forging an alliance is a bit tricky, and a sneak attack is quite difficult to actually pull off. There is a system of treaties which ends up permeating a lot of things, but the impact to the LD version of the game is quite minimal.

In combination with those previous issues, the turn structure is not smooth. I think I expected that you would play out your diplomats/spies for the turn without too much regard for the cards in your hand, but really the cards in your hand dictate where you should place your tokens. Trying to figure out where to place a token optimally involves multiple rounds of cross referencing and planning. It's complicated, but there are a lot of combinations and unknowns in planning, and not a huge payoff if you get it right.

What's next?

This game seems to have enough legs to continue development on. I'm not sure how far I will take it, but there is enough here to warrant some additional exploration.

I wanted to make the European nations more unique, and would probably give each at least a unique card, or possibly some more asymmetry.

I'd definitely redo all the art and make it look more like a board game.

I'm tempted to add multiplayer, primarily as a learning opportunity for future projects. I think the game is structured in a way that would make multiplayer "easy", but I could definitely be wrong.

I expect a lot of time will need to go into improving the player experience. I'm still not sure the best way to visualize all the different things the player needs to know, and maybe there are improvements that could be made to the core game loop.

Rescue team have arrived... almost! Спасательная бригада прибыла...

RescueTeam_thumb.jpg

Three days left before results of Ludum Dare 49! Today I'll play danger zone games and your games! If your game lacks ratings, you definitely should post link to it in comments! I'll stream it here: https://www.twitch.tv/runuchok at 18:00 (GMT +3)

Осталось три дня до результатов Лудум Дэра 49! Сегодня буду спасать игры из зоны опасности, а заодно все игры, которые вы мне накидаете в комменты. (В приоритете если вашей игре не достает рейтинга) Все это дело как обычно застримлю тут: https://www.twitch.tv/runuchok в 18:00 по Москве!

Hurry up lil' candle !

CandlelightGif.gif

Come to try CandleLight here : https://ldjam.com/events/ludum-dare/49/candle-light

Share your Potion Brewing games here!

Let's get something brewing!

451d6.gif

Play and rate Perilous Potions here!

I noticed quite a few people went in the same direction I did in making a game about brewing dangerous potions. I think we have an opportunity to help offer advice on each others games based on mistakes/choices we've made on our own!

If you made a potion brewing game, or have one to recommend, drop them here and we can rate each others!

MUSIC for the game!

CoverCDemDepress/emHEN_Mini.jpg

Soon we will publish the game as nft in H = N https://www.hicetnunc.xyz/swimmablebee912

We are now working on a leaderboard.

Play and rate our game on https://ldjam.com/events/ludum-dare/49/depresspnker

Rescue team wll arrive! ETA 30 min!

RescueTeam_thumb.jpg

I will start playing danger zone games in about 30 min! https://www.twitch.tv/runuchok at 18:15 (GMT+3) Come, drop your game link in chat!

Начину играть в игры из зоны опасности примерно через 30 минут. https://www.twitch.tv/runuchok в 18:15 (Москва) Приходите, скидывайте свои ссылки в чате!

Pinging people that messaged me in previous post (Playing your games if you will be on stream! Except danger zone games. They will be played regardless!) Thanks for links! @odrez @john-llyod-apolo @aaln @geckoo1337 @coolestdoggie @maxkyckling @barrier

Alteration: Development timelapse (programmer POV)

ldjam-banner.png

I try to record as much as possible during the game jams and this time is no exception (no stream though). This is my way to share what really gamedev looks like ;)

Here is a timelapse video of the 3 days we spent creating Alteration! https://youtube.com/watch?v=nmDaXxfF3aw

Edit: looks like links are broken on the site right now, so : youtube.com/watch?v=nmDaXxfF3aw

Just a few days left!

Check out our game, Angry Girl Wants Buns, if you haven't already.
Any feedback would be really appreciated, I always love seeing what people like and what people find confusing.

screen15 smitten gif.gif

Save my game and I will rate yours in return

ldjamtradeoffer.jpg

I really missed out on rating games this month, and I am regretting it now. Come help me out with getting 20 rates and if you drop a comment under my game, I will rate your game in return.

Robobul hunter needs a few votes (I already rated over 30 games)

Hey Jammers! Unfortunately, I didn't have much time to rate in the first week. And it appears it's much harder to get ratings when you start later. I have already played and rated 30 games but I still have only 17 ratings and there are only 3 days left.

So if you'd like to play a simple game with procedurally generated terrain that can be played in browser, I'll be glad if you give it a try! Thank you!

* Play Here *

4430f.png

Do you know how unbalanced Politics Life is ?

Come and play PolitiGod a game where your in charge of an unstable city. As the local ruler and god you are also in charge answering prayers of your citizens.

Play in Browser here

screen0-small.png