Entries in game development (344)


035 - Wrestling Game Design Exercise

Decided to take a stab at designing the most critical part of a wrestling game and that's the "grapple system". I decided I didn't want to take on the "move a wrestler around a ring" type of game, but instead trying my hand at a mix of card game + motion comic.

The way I see it (for now): a wrestler has a list of moves to use. Each move has power and difficulty ratings. When a grapple is initiated, it goes into a motion comic view of a general lockup. As soon as the wrestlers lock/touch, each player hits the action button. The player who hits the action button closest to when the wrestlers lock/touch gains the advantage.

You can see in the example: P1 has hit their action button 0.5 seconds after the lock/touch happens and P2 has hit their action button 0.3 seconds after the lock/touch happens. That means P2 has the advantage. In this example, P2 has an advantage of 0.2 seconds.

What does that mean? I don't know. Does 0.2 seconds convert to points? How does that relate to the difficulty rating of a move? Just because you win the lockup doesn't mean you can initiate a finisher off the bat.

Perhaps the difficulty rating equates to the number of successful grapples a wrestler has already performed, thus unlocking more grapples available to use. So after two successful grapples, a wrestler is than able to execute from a list of difficulty 0, 1, and 2 grapples. Maybe the advantage gives you room to execute a lower level grapple with room for error. Let's say the 0.2 seconds converts to 2 points, then you can be 0.2 seconds slower than your opponent, but still win the advantage if you're trying to execute a difficulty 0 grapple. This does, however, assume a lower difficulty level grapple has a higher advantage, probably due to its speed to execute?

In terms of the beats and "acts" in a wrestling match, this system doesn't encourage the ups and downs we're used to seeing. It just promotes stronger and stronger moves, an escalation without any rubber banding (i.e. a large leads stays a large lead). That makes for no comebacks and that makes for uninteresting playing. Hmm.

032 - Kites in the Sky

I printed out and tested out my kite card game this evening. The game's state is one of perfect information as no player has cards hidden from view, though the next action a player takes can have a random element to it (if you draw from the deck, you don't know what you'll get).

I don't know if the game is balanced or not. The general strategy is load up on cards in your tableau until you get close (within 3) to the target Air Current value. That's when it's more strategic in deciding whether to press your luck (draw a card and putting it in your tableau), rotating one of the cards in your tableau, or placing a card from your tableau onto the current Air Current card to change the target/goal.

I'll have to bring this to work and force my coworkers to try it.

030 - Kite Card Game

I didn't take this photograph of the kite.

I have, however, been toying around with a kite card game idea. The premise is you are reeling in (or out) your kite in hopes of hitting the air current. If you do, you score a victory point.

The game starts with an "Air Current" card being played. Let's say it is 15. It is now your job to play cards from your hand into your tableau to match 15 exactly (in this example, anyway). Your hand is also always played face up. You'll see in a moment why that is.

On your turn you are able to do one of two things:
1. Draw a card and play it onto the air current.
2. Draw a card and play a card (could be the one you just drew or one from your hand) onto your tableau.

Every card also has an addition value and a subtract value (example: +1 / -4). You decide which side to use. Since you can always see your opponent's hand as well as tableau, you can try to alter the air current in your favor to pull it further away from your opponent's tableau total or bring it closer to your own.

Anyway. I need to code this up and try it out.

New Game - Bruiserweight Classic

Play Online or Download for Mac:

My newest card game!

Head-to-head card game where players take turns keeping the punches in the faces of their opponents! Bruiserweight Classic is an easy to play game where players are trying to discard all of the cards in their hand first. Whatever cards you have left over convert to damage taken to your guts! Players to hit zero hit points are kicked out of the game because, well, they're knocked TF out.

How to Play

1. Players are each dealt a hand of 9 cards.
2. On your turn you check the current Momentum (ascending or descending). If the Momentum is ascending, you must play a card equal to or higher than the current card in play. If the Momentum is descending, you must play a card equal to or lower than the current card in play.
3. You may also play a card exactly 5 different from the current card in play in any direction. Example: if there is a 7 in play, you may play a 2 or a 12 regardless of Momentum.
4. To flip the Momentum, draw a card or play a card that is the same as the card in play.

Number of players: 2 to 4

Play Online or Download for Mac:

Senshi Commons Cards

Placeholder for information regarding Senshi Commons cards.

Game Development - The Loot, No Warrant

The Loot, No Warrant is a trivia based game inspired by the infamous Where in the World is Carmen Sandiego Deluxe. Players are tasked to find the lost loot amongst the different video game nodes spread across the network. To find out where to travel to next, players have to decrypt clues left behind pointing them in the right direction.

Decrypting clues and traveling to nodes take battery, so make sure you take time to consider what the informants tell you and poke around on the internet to help. I mean the internet is the modern day almanac after all.

Demo Version only has 60 clues across 10 games to travel to.

Download for Mac: Mac Download on Itch.IO

Game Development - WITWICS

When my first son was born in 2013, we had to spend the maximum number of days in the hospital for my wife to recover. During the quiet times, I found myself designing a game based on a game from my childhood: “Where in the World is Carmen Sandiego? Deluxe” I wanted to create one where you had to travel from video game to video game to catch the culprit before you ran out of energy.

Ultimately the progress fizzled out.

Three years later I’ve decided to try again. I decided to boil down the mechanics somewhat to the core essence of WITWICS: trivia. As long as you were able to decipher where the culprit had gone to with as few clues as possible, you were going to catch them. You also had to test you luck with the 3 clues given to try to get a warrant issued (clues about the thief vs clues about their next location). I didn’t like that part: the luck.

In my game there are 5 nodes the thief has traveled through. You have to navigate from one node to the next to catch them before your battery is gone. To find out which node they traveled to, you have to reveal some clues about the next location. Clues always cost the same amount of energy (5% in this case) and traveling also always costs the same amount of energy (10% in this case).

Every time you travel to a new node, a list of 3-6 are presented to you for the next location to travel to. Every location also has a list of 10 clues, 4 of which are presented to you each time you travel to a new node. I’m hoping with this model of how the content is stored, populating the data and changing it up (i.e. maybe I want there to be 15 clues for some of the locations), I can create a very comprehensive database of locations to test one’s game trivia skills.

In the example posted above, the revealed clue is “catch hearts”. Out of all of the travel options, only one of those has you “catching hearts”.

Game Development - Spar Redux v5.0

I've finally reached a point in the game's development and testing where I feel like the game is in a good state. I've coded the computer to play 1 of 3 different AI options. I've certainly played over 100 hands already and I'm pinning down the handful of sticking points I'm trying to address.

The best strategy is simply to play pairs if you can and play as close to the current card in play as possible. This means if there's a 5 in play, you should try to play a 5 as well. It ensures the lower cards are removed from your hand sooner than later.

So right now there is no incentive to not play in an ascending sort. Why would I play a 9 if there is a 1 in play? I have all those cards in-between in my hand I still need to get rid of.

The only ideas I have are:
1. Remove the ability for a 1 to defeat the 10 (or whatever's the highest card).
2. If you choose to pass, you draw the difference of the values instead of a single card. Example: if there is a 4 in play and the opponent plays a 7, if you pass you have to draw 3 cards.

There has to be something that gives people a reason to play out of order and there needs to be a little bit more risk-versus-reward here. Maybe another special card? I'd hate to do too much to the core rule set lest this game turns into Deuces.

Also, I plan on doing some actual artwork now. That should be a fun distraction.

Game Development - Spar Redux Part 2

Things I Learned from Version 3.0
There certainly feels like there is more thinking involved. When you start getting closer to the Chi Level and have multiple options to play, you'll start trying to play the lowest card possible without going over since it will force the other player to waste one of their high cards (if they have one) or take the hit (you get a point).

An issue I'm facing is that it's still the best strategy to play the highest cards available as long as the Chi Level is low enough.

Version 4.0 (v105)
I was considering changing the amount of Chi Level, but I don't think that'd effectively fix the issue since you'd still have opportunities to use the "high card strategy" until you get to (Chi Level - Highest Value Card + 1).

I'm thinking of changing Chi Level's purpose a little bit. Players can basically play ANY card that they want. However, if you play a card that's less than the current card in play, then you take the difference and subtract it from the Chi Level. So if the current card in play is a 5 and you play a 3, then you take 2 from the Chi Level. Whoever makes the Chi Level reach 0 or below will take a hit.

They still have to play pairs if Double Fist has been enabled.

This doesn't completely solve the "always play high cards" strategy, but it certainly provides more opportunities for a player to counter if they don't have a high card to play. The definition of a "bad hand" is less unbalanced.

Another thing I may try is that instead of a global Chi Level, each player has one. Whenever you have to play a card that's less than the current value, the difference is applied to your Chi Level. If your Chi Level hits 0, then you take the hit and the opponent scores the point and everything resets. I'd probably need to keep that Chi Level low though. Like a 7.

Things I Learned from V4.0
I couldn't figure out why someone would decide to lower the Chi Level vs discarding cards. In the case where a player didn't take a hit for lowering the Chi Level, why wouldn't a player just always do that when the opponent played a high card? In the case of taking a hit by either lowering the Chi Level or discarding cards, why would a player ever discard cards? It almost felt like a positive since they likely only got to that situation because they didn't have high cards to begin with.

Version 5.0 (v106)
I'm thinking of removing the Discard ability altogether. Players always play a card or pairs. Anytime a player plays a card that's lower than the current card in play, they take the hit, they discard card(s), and the Chi Level is lowered. For thematic purposes, I'm going to rename "Chi Level" to something like "World Integrity". You know how in Dragonball Z or the Superman reboot where they basically destroy the world because their fighting is so powerful? That's what that is supposed to be. Keep fighting until the world explodes. When the world explodes you tally up your points.

I'm also putting back in the 1 card being the only card higher than the 7.

Does this curb the playing the highest card strategy? Maybe the points score from a hit is equal to the difference. So if the player plays a 7 and the opponent plays a 5, the player scores 2 points and the Level Integrity suffers 2 points of damage.

Version 5.0b (v106)
Scratch that. The game is tacking on "innovative rules" to tackle the issues I'm seeing with the game.

- There is no real risk playing high cards as your strategy because not only is there a higher chance of it being successful, you still get to draw another card after you play it. While that card may not be the same, you still have a chance to replenish your high card with another.
- A player who has to pass has now communicated that they can't beat the card that was just played. The opponent now knows they can keep playing cards of that value to score points and the player has no real opportunity to fix that. Having the player draw new cards when they get hit (i.e. pass) can help this somewhat, but the opponent is also drawing cards every time they play one. Again, this isn't a 1:1 relation, but risk is mitigated for the opponent once the weakness of the player is exposed. The same applies the other way around.
- I still think having the cards keep their value (i.e. a 7 really is better than a 5) is important. I just want it to have some kind of averse affect so you can't bulldoze another player with a high card strategy.

Then it makes me ask the question:
- How do you encourage a player to even want to play low cards? They're just trash cards that take up space in your hand.

That's when I thought about games I enjoy like Uno and Deuces. The point of those games is to get rid of all of your cards to win. Perhaps this would fix some of the issues I see.

Old rules I'm keeping:
- Players are given 5 cards for their hand.
- Players can only play a card if it's equal to or higher than the current card in play.
- A 1 is the only card that can beat a 7 (or whatever the highest card is).
- Double Fist rules still apply.

New rules:
- A player does not draw a new card after they play a valid one.
- A player only draws a card if they pass and cannot play a valid card. That's their turn.
- A player scores a point if they discard all of their cards.

Now to code this up!

Game Development - Spar Redux

The development of Spar has been really good for me in different aspects. It's allowed me to practice coding something with a rudimentary AI and it's ultimately allowed me to test my game over and over again to find flaws in the design.

Spar is a head-to-head card game inspired by the fast countering-your-counter fighting sequences in martial arts films. I wanted a game that would take less than five minutes to play.

Version 1.0
The most basic break down of the game is players play cards from their hands that are equal to or greater than the current card in play. There's a little bit of nuance in that the lowest valued card (1) is the only card that can defeat the highest valued card (5).

Players are also allowed to play pairs only if it is the same value as the current card in play. Then players would be forced to play pairs equal to or greater than the current pair in play.

If you couldn't play a valid card, you'd take damage equal to the card in play. Damage was randomly discarding cards from your hand. The opponent would then score a point. If there were no longer any cards to draw from the deck, the game would be over. The player with the highest number of points wins.

Things I Learned
After 100 games or so, many of which were played while doing bug hunting and implementing features, I learned a few things about the design of the game. Some were good. Some were not so good.

- The game really was under five minutes. That was good.
- The game ended a little too quickly. With a hand size of 5 and only 5 of each card, the draw deck sat at 15 cards. You'd burn through that very quickly.
- There was no better strategy than just playing the highest card all the time or pairs when you could. This bothered me.

Version 2.0
Because of I have the code in place, I'm able to make tweaks to the game rules and test them almost immediately. This is such a wonderful feeling. It doesn't validate the "fun" of my game, but it certainly allows me fast ways to iterate on the design to try new things to make it more fun.

Some things I'm trying in new versions of the game:

- Adding a higher limit to the cards in the deck (seven instead of five)
- Players only discard a single card when a valid card can't be played (or two if against a pair)
- Edit the distribution of cards (4 of everything, 5 of everything, fewer of the high cards, etc.) I'm still running into the issue where simply playing the highest valued card is the best strategy. I need to consider a way to address this where the value of the cards themselves don't hold the power, but rather the context from which you play the cards (like in En Garde -- a 5 isn't necessarily better than a 3, it depends where the players are on the board).

What I Learned from Version 2.0
It plays better having more cards in value range, but it still suffers from "let me just play the highest card all the time". With an equal distribution of 4 cards each, the 7 only has 6 and 7 cards that can beat it out of the 28 in the deck. You're really just better off playing those all the time.

Variety issue felt fixed somewhat, but the high card issue not.

Version 3.0
Taking a cue from En Garde, I thought it would be good to add another environmental element that doesn't necessarily remove the "value" of a card like in En Garde, but plays against another constraint that needs to be considered. I wanted to curb the strategy of always playing the highest card.

The "Chi Limit" is the amount of energy that be played in sum before the players are naturally repelled from each other and the hand is reset. So if the Chi Limit is 21, then every card played goes toward this limit. Once it reaches 21 or over, the hand is reset. So simply playing high cards all the time will have you reach the limit sooner and reset the opportunity to actually score a point.

But also playing smart, such as playing a 6 to reach 20, will force the player to either take the hit or force them to burn through a 7 for no reason.