Entries in game development (350)


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.

Game Development - Single Pack

I was working on a really short interactive game experience that mimicked the thrill of purchasing a pack of cards in hopes of pulling an insert. After doing some art and coding some of the “showDialogue” interactions, I realized all I was doing we redoing a worse version of Renpy.

Anyway. It was nice to work on something at least!

Play my Games:

Game Development: Totally Miscellaneous Update

I was laying in bed yesterday and I thought to myself, "I really need to code something." I haven't done any game development of any kind for weeks. I decided to clean up the game template that I use with all of the new things that I've updated and started to use or not use.
I was also able to work on the vector illustration of the arcade cabinet I'll be using for my next game. Even before the cabinet art I think it looks pretty okay. The plan is to usher me back into casual game development by creating games that harken back to the old, old arcade days.

Feels good to get something done creatively.

Slime Catcher Intro Comic

Here are the comics that make up the introduction sequence for my newest game Slime Catcher. Elite and Ritz are a fun pair to write stories about.

Game Release - Slime Catcher v1.0.0

Elite and Ritz the Robot have found out that dealing in spice is not the best way to make a living. Upon running into a sign of new fortune, they have learned the big bucks lie in slime catching. Without any proper equipment, Elite decides throwing a robot head is as good a slime catcher as anything.

- Daily challenges: every day offers a different layout, battery storage, and slime spawn rate.
- Handdrawn animations
- Keyboard and Mouse control scheme
- No ads! Completely offline!

Future updates will include new slime types, larger arenas, and powerups!

Download for Mac: