Experiment Month: Week 1


So, as promised, I’ve been working on some weird mini-ideas for the last week. I wish I could say I’ve been more productive than usual, but that wouldn’t be true. Still, I got two things done.

Unlucky Dice

I think a lot about game balance and whether it makes sense to use random chance a lot. Should a good roll of the dice decide whether you win or lose? I would rather see skill win the day. So I thought of ways that a good roll could become a trade-off, and thus this experiment was born.

Imagine a game where you roll dice to get points–each round, the player adds up the numbers on their dice to get their total for the turn. However, any dice that roll more than one have to be taken out of play for a while. These reserve dice get reduced by one each turn, and when they’re down to a value of one, they return to a play. In other words, the more points you get from a die, the longer it will be out of commission.

So, I created a “game” to simulate just that, passing the turn and moving the dice every time the mouse is clicked. What I found was that this was extremely balanced–whether it’s been 5, 10, or 15 points, the score totals didn’t usually vary by more than 6 points (and I used 6 dice, so that makes sense). Then I tried a slight rule change: dice only have to get down to a value of 2 to come back, making sure they got rolled more often. The point spread was a little higher, but not as much as you think.

In conclusion, this wouldn’t be a very fun game to play, but if something similar was used for, say, damage in an RPG (probably in a much lighter way), then it would work out fine.

Map Combiner

In Miracle Springs, each map is a little bigger than the screen can fit, so I added in a camera scrolling function. Since CaveBlade is actually very similar, I realized it would be possible to do the same (even if it would be a bad idea, which I’ll explain later).

CaveBlade consists of sixteen individual rooms, and my map system stores each one as a long series of numbers. The numbers correspond to spaces going from left to right, and at a certain defined point, the game logic jumps down to the next row. So, for one large room to work, I have to get the first row from the first room, then keep getting the first row from all the other rooms in that row… then move on to the second row of each, and so on. And that only covers four rooms!

If you’re in programming, you know that this calls for a bunch of for loops. It was just tricky to think about which one to put inside where, but I broke the process down into a list of steps and worked backwards from there. As a result, I’ve managed to make a program that does indeed take all of the maps and make one huge list of numbers. However, I have no idea if it’s actually correct or not. The only way to do that would be to actually add in a camera function to CaveBlade so the player can actually roam around this bigger map.

“But wait,” you may be saying. “Didn’t you promise you were done working on CaveBlade?” Well, it would be one thing if I was actually planning to put up a new version of the game with this camera thing as a feature. However, I designed all the rooms to work with the original setup. Certain enemies are confined to the area of a room, and if you mess up some puzzles, you can always leave the room and come back to find it reset. There’s even an optional puzzle that you can only solve by doing that!

The point, really, is just to see if it was possible. Unfortunately, I don’t know that yet, because adding in the camera logic is going to take more time. It’s the first thing I plan to do this week, though. Until next time!


Please leave a comment!

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s