Author Archives: Anthony Messina

Halloween 2016

2016-11-01-costumesSurprisingly (well, not really…) nobody knew what we were. She went as Martin Crane, from Frasier, and I went as his chair. The look on people’s faces when we told them made it all worth it.

Testing Has Never Been So Fun

2016-10-28-test-resultsAfter many hours of brainstorming and programming, this is the final result. It doesn’t look like much, but I’m ecstatic. This means I can tweak numbers and see how it affects the game at a glance. No more guesswork!

Shown here are the final results of 16 tests. Not pictured are the 16 individual detailed breakdowns. Every test is a complete game play-through. The AI chooses a random direction at the start of each day, and moves to the farthest discovered locale. Event options are chosen at random. The AI unlocks tech in a specific order. At the moment, only Food tech is researched. The game ends at 100 days, or when the Tribe count reaches zero.

I ran 256 tests once. It took just under a minute to complete, and produced an 11 MB log file. Not that I read through it, but it’s good to know I can produce a test of that size if the need arises.

I already have ideas on how to expand the testing, what kind of events are needed in the game, and even different AI behavior. So much work, so little time!

Exploration Refactoring

This ends my first week using Scrum (see earlier post). While I didn’t complete everything on my to-do list (testing and balancing are for suckers), the system really helped me plan ahead and finish tasks. It’s also super simple to write the update notes this week; I just copied everything from the Completed list.

This week I took a look at exploration. Having the player click on the map, then click on the Explore button felt awkward. I did some research playing A Dark Room and realized I didn’t have to let the player see and do everything right from the start. Letting the player discover and unlock things as they go can be interesting. That’s also why technologies remain invisible until the player can unlock it: it prevents information overload.

I also realized that goals should be viewable at all times. Locking the tech tree in the home cave prevents the player from figuring out what resources they need right now. I limited the Ponder button to the cave because 1) the tech tree looks like a cave wall and 2) I thought it would be interesting for players to plan out their days every morning. Turns out it wasn’t so interesting.

Thus, I removed the Explore button and added location exploration events for players to randomly find. To get the player started, the home Cave now includes the Gather button to get a little bit of all resources, but also to give the player a chance to come across random events, namely, unlock location events. This also opens up the possibilities for specific cave events in addition to random morning events. Yay!

Update notes:

  • Stamina: Added stamina to the game. Each day the player starts at 100 stamina. When stamina reaches zero, the day ends. Note: stamina balancing not yet implemented: it minimally depletes
  • Skills: Resource gathering skills are now visible on the HUD underneath their respective resource amounts. Unlock the Club technology to see Meat and Fish skill go up.
  • Story Events: Events can be stringed together. I’ve added events for an alien experimenter who observes you over time. He’ll randomly pop in up to three times for the chance to get some major rewards. Hint: Knowledge-based technologies please the alien.
  • Locations are now unlocked through random events.
  • Ponder (viewing the tech tree) is accessible everywhere
  • The Cave has a Gather button: gets a little bit of all resources
  • Increased location resource amounts
  • Removed Explore button from travel map
  • Debug: Added FPS counter
  • Bug fix: Clicking on current location from the travel map will close the map

Play it here!

Bullet Journaling vs Scrumm

I’ve been in a programming rut lately. Yesterday I almost abandoned Caveman Sim. To me the game is Not Fun, usually a death sentence for games I code. I would start up Unity, and just stare at the game, wondering what went wrong.

A quick talk with Vince made me rethink how feature-complete the game really is. Him nor I can’t tell what’s fun or not because the game isn’t even there.

After brainstorming a bit, I realized my To Do list wasn’t working. I’ve been trying out a bullet journal on Trello. While its useful in anticipating upcoming events, it transformed into a personal calendar rather than a workflow for the game. So I decided to throw the baby out with the bath water and tried out…

Scrum! While Silicon Valley poked fun at the method, I decided to check it out anyway. Once I got done cringe-reading through the wikipedia page, I created my very first Scrum board.

2016-10-07-scrumm

Putting my business degree to good use.

“Stories” are a list of things I want players to experience. I decided my “sprints” would be one week long, ending on Mondays (when I usually upload builds). Acknowledging that, I created a To Do list that I estimate I’ll be able to complete before the first deadline.

And there you go. My motivation has returned; I’ve already completed some of the missing features. So we’ll see soon enough if Caveman Sim answers the do-or-die question of game development: Is It Fun?

More Locations Update

Update notes:

Added the rest of the locations (with placeholder graphics). More events, including one event that won’t reappear if you choose the wrong option. Extinction is tough, yo. Also added snazzy floating numbers for event rewards. Neat!

Play it here!

Act of Balancing

The problem: how do I know how much stuff to give the player? And by stuff, I mean inventory, specifically food, wood, stone, etc. So far I’ve been using a 0-100 scale, where 10 is a little, and 100 is a ton. But this doesn’t scale. If we want the player to be challenged in year 10 just as they were in year 1, how much do we give them?!

Luckily, I have Balancing Equipment for Math-hating Game Designers bookmarked. The author has an awesome spreadsheet to download, letting you plug your own numbers in and getting the data you want.

First thing I did was decide what the final year’s tribe count should be. I chose 1,000  members. That seems like a lot of people to govern, especially for a primitive caveman. Using a exponential curve (exponential because the more people there are, the more babies they’re gonna have), I fiddled with the spreadsheet until I had an equation that started from ~5 and went to ~1000 in ten steps. Perfect!

2016-09-28-tribe-count

y = x^2.8809

Next, I needed to figure out how many days the game would take. I want Winter to be a separate phase. If one phase is, let’s say, 30 days, and Winter is one quarter of the year, the full year would be 120 days. Note: 90 days of playtime seems like a slog to go through, especially when you times it by ten years, but we’ll stick with it for now.

If we assume each tribe member consumes 10 food a day, 7 tribe members consume 8,400 (7 * 10 * 120) food a year. We can use this equation throughout the game, since food scales with population; the more people there are, the more food they’re gonna eat. So in year 10, the tribe will consume 1,200,000 (1,000 * 10 * 120) food for the year. That’s a lot of food!

Unlike food, I didn’t want wood to scale directly with tribe count. There should be some sort of economies of scale. Using the spreadsheet’s logistic function, I capped wood consumption to 50,000 wood per year..

2016-09-28-wood-count

Mmmmm…curvy

All of this amounts to what the tribe needs for survival. What about when purchasing technologies? They should cost something, right? I figured if it takes 3,000 wood to survive the year, the player should try to save half that for tech, or 1,500. That means the total yearly wood goal is 4,500. I used the same costs for stone, but doubled the food requirements since there are two locales in which to get food (meat and fish).

Assuming the year is 120 days, with 90 days of playable time (reserving 30 for winter), in the first year the player needs to find on average 128 food per day, 52 wood per day, and 17 stone per day.

2016-09-28-balancing-resources

Final figures

Assuming the player visits all four locales evenly (meaning each locale should give the player four times the average amount), so 256 meat, 256 fish, 208 wood, and 68 stone per visit. Now assume 12 hours of harvesting, and we get, on average, 21 meat, 21 fish, 17 wood, and 6 stone per hour. In year 10, it would be 2,313 meat, 2,313 fish, 275 wood, and 92 stone per hour. That’s a ton. Hope the caveman is up to the task!

Now that we have target resources per hour, we can start writing in sensible resource rewards! We did it!

‘Nother Week ‘Nother Build

This weeks build brings you: Sun! Watch the sun move across the sky as you work through the day. Behold the changes in color as it rises and sets each day. Witness its…actually, I think that’s it.

sky_sunriseandset

This build also includes a Main Menu at the beginning, more tech and event sounds, inventory totals, a toggle-able debug mode, and a heckuva lot more events.

Play it here!

Game Update: Tech Tree and Sounds

In this update, we’ve added sounds when finding new locations via the Explore button, and the tech tree now looks and behaves like the real thing!

2016-09-19-unlocked-tech-tree

Fully unlocked tech tree. Most icons are placeholder grass skirts. That’s a LOT OF SKIRTS.

There’s a bunch of new events to find. Or rather, ideas for events. Instead of writing out fully fleshed-out stories and choices, which would take forever, we added a lot of one-sentence story prompts. All those Creative Writing classes finally being put to good use. All locations except the cave and quarry should have them.

Just realized you can’t see your inventory when the debugger is off. I’m gonna have to add a placeholder inventory screen in the next update. In fact, there’s a few things I left in because of debugging (such as techs no longer having to require multiple hours). I have to get better when making builds.

I’ve started to make a list of assets we need (sounds, music, and graphics). Louis and Vince are getting antsy, eager to make some more content. I’ve had them on the back-burner for awhile now while I got a solid code base working. We’ve been talking about adding animations… Exciting times!

Check out the newest build here!

Event: Unknown Cave

Writing events is way harder than I initially thought. I figured it would be a breeze. I mean, who doesn’t want to write for video games?

Here’s a sample event I’ve tried to flesh out. Options with parentheses are only available if you have the technology unlocked. This idea came about when thinking about the Fire technology, and how it could be used in different events. It obviously can burn things, and scare beasts and people alike. But it can also be used for exploration. Enter, the cave.

 

Event Name: Unknown Cave

Description: You see an overhang of rock in the far distance. It reminds you of your home. The differences are so slight you aren’t exactly sure it isn’t your cave. As you approach the darkness, a whistling noise grows louder and louder, making you shiver despite the warm day.

 

<Cave is about to collapse>

Option 1: Enter the cave.
You hesitantly enter the cave. The rocks above your head stir ever so slightly…it’s going to collapse! You make it out right as the entrance cascades behind you.
Lose one hour of daylight.
Option 2: (Fire) Light a torch and explore the cave.
You create a fire before entering the cave, and confidently head in. As the outside light fades away, the entrance to the cave collapses! You frantically claw and dig your way back to freedom. You head back, scratched up and out of breath.
Lose five hours of daylight. Lose 50 stamina. Gain 10 stone.
Option 3: (Common Sense) Leave immediately.
Nothing good can come of this. You turn around and put your back to the darkness. Whatever was in that cave is not worth the risk.
Option 4: (Trap-making) Examine the rock overhang.
Taking a closer look at the overhang leads you to believe that this cave is about to collapse any minute. You leave without a second thought. Nothing in that cave is worth the risk of injury, or even death.
Option 5: (Stealth) Sneak into the cave.
You stealthily examine the entrance to the cave, as far as the daylight reaches. Seeing nothing of use, you leave as quietly as you came.
Lose three hours of daylight.

<Cave is home to another caveman>

Option 1: Enter the cave.
You hesitantly enter the cave. You can’t see anything beyond the light of the outside, but you are able to see another caveman’s possessions littered throughout. You struggle to see as you rifle through the stranger’s things. Suddenly, fur stirs. You flee in terror, dropping most of what you looted.
Gain 10 food. Lose two hours of daylight.
Option 2: (Fire) Light a torch and explore the cave.
You create a fire before entering the cave, and confidently head in. This cave clearly belongs to another caveman! Grabbing the juiciest food first, a fur in the back begins to move. Another person! You hightail it out of there, loot in hand.
Gain 30 food. Lose one hour of daylight.
Option 3: (Common Sense) Leave immediately.
Nothing good can come of this. You turn around and put your back to the darkness. Whatever was in that cave is not worth the risk.
Option 4: (Trap-making) Examine the rock overhang.
Taking a closer look at the overhang reveals nothing. As you are stumbling about outside the entrance, you hear…something stir from inside the cave. Not wanting a fight, you run as fast as your feet can take you.
Lose one hour.
Option 5: (Stealth) Sneak into the cave.
You stealthily examine the entrance to the cave, as far as the daylight reaches. This is clearly someones home! You take your time, looting what you please, and eventually leave, the owner’s occupants none the wiser.
Gain 60 food. Lose three hours of daylight.

 

I wanted to showcase the non-obviousness of choosing what path to take. Sometimes the cave is going to collapse no matter what, sometimes it contains food for the taking. No choice is clearly the best.

I’m not sure if this is fun though. In FTL, there’s an event where you can choose to fight the mantis. If you fight, you either gain a little loot, or you lose a crew member, which is devastating most of the time. Most people choose to flee. Would people enter the cave at the risk of collapse? Choosing the Stealth option loses three hours either way, but there’s a chance for a lot of food. Is the fire option worth the risk of losing five hours and 50 stamina? Will players just choose Common Sense every time? I guess only playtesting will tell.

Also, this took a significant amount of time to write, and there’s not even any jokes in it! I may limit future events to one default choice, one cheap tech choice, and one expensive tech choice. We’ll see.

WIP: Tech Tree v 2

I’ve been trying out a few tech trees, and currently leaning towards the one pictured below. With some tinkering, I think it could be a really fun feature. Techs are logically separated, and most of the branches lead towards something interesting.2016-09-14-wip-tech-treeWhat I like about this tree is the inter-connectivity. Technologies split and recombine to form new techs. Areas that need improving are the Cause & Effect and, to a lesser extent, Weapon Training branches. While Regrowth (the ability to kickstart a location’s resources back from zero), Wolf, and Stealth are powerful in their own right, the branches themselves lack player choice.

Population Control is awkward as well, since it’s on it’s own level higher than any other tech. And I can’t find a good place to fit sling. Part of me doesn’t even want it: I can’t think of any events that would incorporate it that won’t involved combat, which Spear already does. So although Sling is a uniquely historical tech choice on its own, it doesn’t add anything new.

Throughout the iteration process, I found certain techs naturally grouping together. Spear/Weapon/Athleticism/Stealth all evoke the image of a proficient hunter. Name Power/Wolf/Sic is a logical process for training a wild animal. I also like how Crafts splits into Weaving and Woodworking, each with very distinct techs of their own.

My favorite tech so far is “Cool Hat”. I’m gonna try my hardest to see it in the final tree, whatever that may look like. Because logically, who won’t to listen to the caveman with a hat? That guy just has to be important!