Jack McCarron Jack McCarron

Caravan Experiment Newsletter #6

Hey everybody!

Six weeks down and 10 more to go! I’m feeling… a little stressed but resolute. Lots of uncertainty about coronavirus has got me worrying about my family.

Thanks for reading, and please continue to reply with comments and suggestions or just give me a call. I’d love to hear from all of you.

Call to Action: Help Me with Healthcare?

My final date to elect for COBRA (the federal law that requires my ex-employer to keep me on their insurance plan) coverage is March 31st. Since planning this experiment I’ve assumed I would do COBRA and stay on this plan, so the cost is budgeted for. But now that I’m nearing the date I’m wondering if I should change my insurance? Is there anybody out there who knows health insurance (you probably know more than I do) and wouldn’t mind having a chat to talk over my options with me?

Design Notes: Changing the Rules

Consider this “script” that I’ve written to play chess against a 5-year-old:

  • Choose one of your pieces at random and move it to a random viable location

Deep Blue it is not. But, hey, it might take a win every now and then… It follows the rules and doesn’t get cranky. Let’s see if we can make it better:

  • Are you in check?

    • Yes: Choose your King and move it to a random viable location

    • No: Choose one of your pieces at random and move it to a random viable location

This is a hell of a strategic improvement. How much better does this fare against our 5-year-old? 50% more wins? 90% more wins? Let’s keep going:

  • Are you in check?

    • Yes: Choose your King and move it to a random viable location

    • No: Can any of your pieces take an opponent’s piece?

      • Yes: Take one of your opponent’s pieces at random

      • No: Choose one of your pieces at random and move it to a random viable location

And there you have it: we’ve more or less reached my actual 29-year-old chess strategy. How much better does this fare against our 5-year-old? 10% more wins? 30% more wins? Can I eke out a few more percentage points? Hmm… If I thought for a while, I probably could, but that would be hard!

Sets of rules with a high skill ceiling (like the rules of chess) take big ol’ brains and years of practice to master. And that act of continually rewriting your chess script gets harder and harder and yields less and less results the more time you put into it.

We want to create a game that doesn’t suck as bad as chess. So, taking for granted that the “rewriting your script” part is actually fun, how do we provide the player with ample opportunities to rewrite their script without them ever reaching a point of painfully diminishing returns?

By keeping scripts simple and by constantly changing the rules. And, by my decree, the rules of chess have just changed:

taking an opponent’s Bishop now also let’s you take any other piece (besides their King) of your choosing

Chess grandmasters are rioting in the streets. It will take them years to recover. What will happen to the Sicilian Defense!? But you and I (provided you are not some kind of chess freak) are not worried. Our simple script takes only a few moments to modify:

  1. Are you in check?

    • Yes: Choose your King and move it to a random viable location

    • No: Can any of your pieces take an opponent’s Bishop?

      • Yes: Take your opponent’s Bishop and another piece at random

      • No: Can any of your pieces take an opponent’s non-Bishop piece?

        • Yes: Take one of your opponent’s pieces at random

        • No: Choose one of your pieces at random and move it to a random viable location

The ability to change the rules is most important tool for engineering fun in Caravan (and other games in the “roguelike” genre). The mechanism for doing this in Caravan is called a “mutation”, which is a commodity in the game which you can attach to a creature, changing its rules in some interesting way. For example, you could give a creature the mutation called “pacifism” which makes it so that all of the damage that creature deals is reduced to 0%, but all of the damage done by the rest of the party is increased by 50%. It’s a net positive for your party, but you can imagine that you would not want to be attacking with that creature anymore!

It’s a difficult thing to measure, but I’m striving for a rate of rule change of about once every 5 minutes in Caravan. You might imagine that that amount of rule changing could be overwhelming. Compensating for that is a huge part of designing it: a rule can’t exist that the player can’t take into account. That’s why, relevant to the “pacifism” example, I always show the damage a creature will deal before it attacks. Even if the player forgot that the creature was a pacifist, the effects of the rule-change will be shown to them so they can’t forget.

Read More
Jack McCarron Jack McCarron

Caravan Experiment Newsletter #5

Hey Everybody!

5 weeks down and 11 more to go! I’m feeling… steadfast.

Thanks for reading, and please continue to reply with comments and suggestions or just give me a call. I’d love to hear from all of you.

Notice: New Collaborative Email List and Chance to Opt-out

I got some feedback recently that the newsletter emails would be more collaborative and engaging if I emailed all recipients together rather than individually . That way, recipients could choose to reply-all and see each other’s responses.

I like this idea. So starting with next week’s newsletter (3/13) I will maintain two newsletter email lists: a ‘private list’ that continues to get the newsletter directly (nobody else will see your email) and a ‘collaborative list’ (anyone in the list can see your email).

There are currently 21 recipients, all of which I know personally. I’m not too worried about any email funny business, so next week I will move everyone over to the collaborative mailing list UNLESS you email me this week and request to opt-out and stay on the private list. Any new email subscriptions I get will be put in the private list by default and only moved to the collaborative list at my discretion (if I know and trust that person).

Call to Action: Arts and Crafts People, I Need T-Shirt Help

For the demo dates I’d like to have some swag available and I have an ambitious idea for a T-shirt design:

crazytshirtidea.png

What if every T-shirt was made custom with the team of creatures that you played the game with? I am thinking I could order iron-on decals of every creature in the game and then hand them out along with the T-shirt (or even iron them on at the event).

And because that is not enough complexity, I am also dreaming of a T-shirt with a seamlessly wrapped graphic of the deadly gas clouds from the game. Has anyone out there tried something like that before? I imagine that printing a seamless graphic would be pricey, but I don’t know what the tools out there for t-shirt printing are like. Maybe it’s easier than I realize. If printing the clouds is not an option, could we maybe dye the bottom of the shirt in layers to create this effect?

What is the best fabric? What are the best iron-on decals? How could we hand dye the clouds? What companies do the best printing? Would this be too expensive? Does my T-shirt design suck and you could make a better one? If anyone out there is a shirt-master, please get in touch!

New Feature: Potions

These past two weeks I have been focused on adding a bunch of resource management functionality to the exploration screen. Most of it is pretty boring, but one neat side effect of wiring up a bunch of drag + drop stuff is that I was able to easily implement “potions”: single-use items that can be dragged onto a creature for some effect. Here’s a .gif of me using a “slap potion” to deal damage to one of my own creatures:

Animation 27.gif

Notice that my PLANT creature has a special ability called “death blossom”. When it dies, it fully heals nearby allies. Slap!

Read More
Jack McCarron Jack McCarron

Caravan Experiment Newsletter #4

Hey Everybody!

One month down and 3 more to go! I’m feeling… strong as an Altoid.

Thanks for reading, and please continue to reply with comments and suggestions or just give me a call. I’d love to hear from all of you.

Follow-up: Help Me Create Some Music and Ambience

We have music! The incredible Cesar Salgado (https://soundcloud.com/iamvolk_music) has made some beautiful compositions for the demo build. We don’t have the tracks hosted on a public forum yet, but I’m really excited for you all to hear them in the game. Thank you Cesar! And thank you Michael and Lorena for making the connection.

Follow-up: Create a Creature

This newest denizen of Caravan comes courtesy of Natasha Vinik:

fecollect.png

We call it Fecollect! It’s a dung beetle inspired creation that makes do with your poo. It’s ROT type and has a special non-combat ability called “waste collector”: When camping, this creature can turn excess food into “mutation power”. How useful is that? Very.

Call to Action: Nothing!

I can’t think of anything this week! So just take it easy.

Design Notes: Storytelling in Caravan

Let’s get a little pretentious and talk about storytelling in video games. Firstly, if you’re not a video game player, it’s important to know that people do try to “tell stories” with video games now. We’ve come a long way from Pacman in a short amount of time and you wouldn’t believe how seriously people are taking this crap now. Game developers all over the world are reaching beyond reflex tests and brain teasers. They want to “elicit emotional responses”, and you better believe they have the high-minded words to talk about it at conferences: “Violence in BioShock Infinite, Ludonarrative Dissonance, and Historicism” — a real thing in our world.

Ridiculous.

Well... I suppose the medium of video games does have a few tantalizing properties:

  • the player can act out the story

  • the player can influence the story

It’s easy to imagine the potential of the first: video games get us closer than ever before to walking a mile in someone else’s shoes. Usually it’s shooting a million people with someone else’s gun, but some games do manage to deliver some real empathic weight. Would that message resonate more if it was delivered in a traditional medium like a movie or a book? I don’t know.

The second property seems powerful: a storyteller can tailor an experience for the player based on their unique influence. Unfortunately I think it’s difficult to bring that to bear in reality. Games that afford a lot of player influence struggle to deliver concise viewpoints if the player chooses not to play ball. Games that restrict player influence feel uncontrollable and might as well be a film. But it’s not surprising to me that collaborative storytelling is difficult: humans don’t really do it. With niche exceptions (role-playing, improvisation) human stories are predetermined things.

Luckily, Caravan doesn’t have a story. Or, rather, it hasn’t been written yet.

Woaaahhh what?

The storyteller of Caravan is the player. I don’t have a story, just a set of rules that acts as a scaffolding. I strongly believe that video game players play games to win. They have resources, a goal, and a set of tests they must pass to reach the goal. The problem of the game, at any point in time, is how best to manipulate your resources to pass those test. When considering what action to take, I do not believe that players ever make subpar strategic decisions in favor of fulfilling some emotional goal. From my point of view players never make capital-C Choices. Choices are calculations.

But this is actually very good, because it allows me pull off a sneaky magic trick. All I have to do is put an emotional coat of paint on the choices the player is making, and the player (because they are human) will subconsciously create stories. Humans are extremely good at pattern recognition. The emotional resonance of my game relies on the enjoyment and automaticity of pulling signal from noise.

Here’s the example:

In your caravan you have two creatures: Jane and Jack. Jane has 50 health points. Jack has 10. You have no food left. You see a path on the tower that leads to more food. You move towards it and you are presented with a choice: either both of your creatures suffer 10 damage, or one creature suffers 30 damage. You could keep both creatures alive by having Jane suffer the damage, but you notice the path you are on has a fork. You elect for Jack to suffer the damage. Jack dies and you butcher his corpse, rewarding you with 20 food. You then change direction and go down a path leading to treasure.

In this scenario, the player has made an obvious logical choice: it is better to have one strong unit, food, and treasure, than to have two critically damaged units and food, but because the resource manipulations the player made are colored in a stark way, a story of betrayal and cannibalism might take seed in the players mind. Did Jane push Jack into harm’s way? How can she be so ruthless? Will she need to feed again?

Every time the game is played there are myriad choices required to win. In a different circumstance the choice between 10 damage and 30 damage could be relatively inconsequential. The beauty of the random nature of the game is that the player choose what story to tell based on the choices that they think are interesting. I don’t have to design anything at all.

Read More
Jack McCarron Jack McCarron

Caravan Experiment Newsletter #3

Hey Everybody!

Three weeks down and 13 more to go. I’m feeling… feverishly optimistic.

Thanks for reading, and please continue to reply with comments and suggestions or just give me a call. I’d love to hear from all of you.

Follow-up: Help Me Create Some Music and Ambience

Last week I asked you to put out feelers for potential video game musicians. Turns out my brother Michael knows a musician who’s interested in getting into the game industry. No better way to do that than create some tracks for what’s sure to be the next great indie darling, Caravan. Looking forward to talking with him and getting some music in the game.

Call to Action: Create a Creature

Caravan is all about its roster of strange creatures:

6wdL5ZZ.png

Each species of creature in Caravan has:

  • a species name

  • a sprite (what they look like)

  • a set of base stat values (Health, Attack, Defense, and Utility)

  • an elemental type affiliation (either ROT, EARTH, PLANT, WATER, or FIRE)

  • a starting “mutation” (i.e. passive effect) that is unique to that species

Here’s an example:

vampirion.png
  • Species: Throtten

  • Stats

    • Health - 40

    • Attack - 6

    • Defense - 2

    • Utility - 3

  • Element: ROT

  • Mutation: Skitter — When this creature deals a killing blow to an enemy, it immediately takes another turn.

This guy is a glass cannon. Its Health and Defense are quite low, but it has high Attack. If you can protect it long enough to get a killing blow and trigger its Skitter mutation, it has the potential to go on a killing spree and wipe out the enemy in one fell swoop.

There are five elemental types in the game. Each type has a set of soft rules that I follow when designing creatures of that type and what skills and mutations are available to them. I intentionally split up game mechanics and color palettes across the different types to give each a different personality:

  • ROT

    • black color palette

    • gets stronger as the battle goes on

    • primary access to enemy debuff skills

    • high attack and utility

  • EARTH

    • brown color palette

    • soaks damage

    • primary access to taunt skills (forces enemies to attack them instead of allies)

    • high defense

  • PLANT

    • green color palette

    • enhances allies

    • primary access to area of effect ally buff skills

    • high health and utility

  • WATER

    • blue color palette

    • protects allies and manipulates enemies

    • primary access to shielding skills

    • primary access to area of effect skills

    • high utility

  • FIRE

    • red color palette

    • starts strong and gets weaker as the battle goes on

    • primary access to single target attacks

    • high attack

types_and_creatures.png

If you have an idea for a creature please email me and I’ll create a sprite for it and add it to the game! You can do as much or as little imagining as you like. Feel free to just send suggestions of words or reference images and I’ll take it from there. Looking forward to the inspiration.

New Feature: Nothing!

This week was shorter than usual because I was in Los Angeles visiting my sister on Monday and today I am leaving early to go skiing. I started on the next big feature this week (a new caravan-wide inventory system and shop dialog) but it is still ongoing. I also spent quite a bit of time upgrading my Unity version so I could use some the cool new drag-and-drop UI system. Unfortunately the upgrade came with a cascade of failures to fix. I had to change my serialization method (how the game state is written to a save file) because the old way I was doing it did not work with the new .NET version. The new system is much better though so it was work worth doing.

Read More
Jack McCarron Jack McCarron

Caravan Experiment Newsletter #2

Hey Everybody!

Two weeks down and 14 more to go. I’m feeling… a grand inspiration.

Thanks for reading, and please continue to reply with comments and suggestion or just give me a call. I’d love to hear from all of you.

Follow-up: Help Me Look for a New Title

Last week I asked you all to help me brainstorm potential new titles. In no particular order, here are the responses!

  • Ascendless Journey

  • Bizzarduous Journey

  • Endless Ascent

  • Jack McCaravan (very good)

  • Convoyage

  • Everastray

  • Catastronauts (this one exists already! damn!)

  • Catastrofiends

  • Catastrofriends

  • Eterniteam

  • Eternitower

  • Steeple People

No clear winner in my mind, but I feel we’ve damn good job plumbing the depths here. What do you all think, steeple people?

Call to Action: Help Me Create Some Music and Ambience

Music is currently a big blind spot for the demo. The game is silent except for a few UI widget clicks and clacks.

So if anyone out there is seriously into putting video-gamey music tracks together for the game or knows somebody who would be, please get in touch!

But even if you’re not a musician, there is another way you can help: throughout the game the Caravan passes through many different biomes. These biomes are randomly distributed throughout the game’s map each time it’s generated for a new journey. Different biomes serve the purpose of breaking up the game’s content as each is affiliated with a different elemental “type” (think Pokemon):

  • Mountains - Earth

  • Swamp - Rot

  • Forest - Plant

  • Desert - Fire

  • Ocean - Water

When the Caravan is stopped in one of these biomes I’d like to play a soundscape that matches.

I found a really cool website that allows you to create soundscapes for free: ambient-mixer. Even if you don’t have time to make one, it’s worth checking out if you were ever curious what it sounds like in the Gryffindor Common Room or A Library, 1732.

So if you feel like taking a crack at making a soundscape for one of the biomes, give it a shot. I’ll put it in the game!

New Feature: Reworking the Map

Since the beginning, I always intended to adapt a solution to the problem of map generation from the game FTL. Their map affords the player a variable number of nodes to travel to during each leg of the overall journey. Prior to this week that was how my map was generated too. It plays well in FTL, but because of the variable number of nodes that game has need of a fuel resource to compensate for the increased value of visiting more map nodes.

Caravan used to have a fuel resource too, but in the years since making the original map generation algorithm a new game has captured my attention: Slay the Spire. It has a map with a static number of nodes per leg and I find it to be just as effective and less daunting for game balance.

So this week I went about reworking the map generation in Caravan to have a static number of nodes.

The algorithm goes like this:

  • divide a rectangle into N equal horizontal slices where N is the number of nodes you want

  • randomly partition each horizontal slice into a number of rectangles

  • randomly place a node somewhere into each partition

  • connect each node with any nodes above it whose partitions overlap

Animation 21.gif

This produces a map which has a fixed path length while still looking fairly naturalistic. There is one wrinkle: it may produce maps which are too connected. The algorithm as described will always make an edge where one is possible. But since we only strictly need 1 edge to and from every node, we might want to tone down the degree of connectivity.

To do that, I added a random condition to create edges between overlapping partitions based on the amount to which they overlap. The percentage of time that an edge is created between two partitions is the ratio of the overlap to the smaller partition + 50%. That means that if any partition is 50% or more overlapped with another they will always form an edge. Here’s a graphic to show how the percentages change based on overlap:

Animation 20.gif

Using this algorithm I’ve got a new map that I’m pretty happy with. I think for the purposes of the demo it will be more than sufficient and offers lots of room for tweaking. The distribution of biomes and types of encounters is still on the TODO list.

Animation 22.gif

The aesthetics still leave much to be desired, but we’ll get to that later! Gotta get rid of those waffles…

Read More