Bigosaur blog

Clutchtime: Basketball Deckbuilder

Back in December 2022. I played a lot of Slay the Spire and Monster Train and fell in love with roguelike deckbuilders. Roguelikes are one of my favorite genres to play and make, and Son of a Witch is my most successful and awarded game so far. I have beat Spelunky, The Binding of Isaac, Dead Cells, Downwell, Rampage Knights, etc.

However, playing action games requires a lot of energy and focus and I have to plan for time when I would play it. On the other hand, I can play a turn based game at any time, even when I'm just exhausted for anything else in the evenings. I also like to play turn based puzzle games at that time, like Baba is You, Fish Fillets 2, Blue Prince, but sometimes the puzzles require too much brain power.

Roguelike Deckbuilders are the perfect middle ground. You need to think and have good strategy, but it isn't as demanding as a hard puzzle game. You also have all run-based features like random drops and fun card/item/relic synergies.

Because I love playing these games and understand why it's fun, I wanted to make a game in the genre. I was thinking a lot about a possible theme and started to design the game around a concept where evertyhing's a card. So, you would have cards for attacks and defenses, but even the player character, minions and enemies would be cards. You could have various effects that affect cards, so you could duplicate minions or create copies of enemies to fight on your side, etc.

Cursed Blood - the vampire deckbuilder idea

Regarding the story and the art, I wanted to create a vampire themed game where you are a vampire awaken from a century long slumber by wandering humans accidentaly coming into your castle. I started to draw art and think of game mechanics...

Stacking mechanics

One of the things I hate in Slay the Spire is the variability of cards and the luck factor, especially in the early game. You might just draw all defense cards when the enemy isn't even attacking, and you might draw all attacks when the opponent is attacking as well and you need to shield. To solve this, I created a concept of stacking. When you played a defense, it wouldn't add to a shield that is lost at the end of turn, but the card itself would be placed down and the shielding it provides would be spent on enemy's next attack. This cannot get abused to build infinite block, because the card itself stays stacked and won't be back into the draw pile until the block is used up.

Lua scripting and modding support

One of the most demanded features by players of my previous games was the ability to mod the game. I had some basic modding, but the main limitation was that game code was C++ and it required compilation for any changes.

I wrote a new version of my game engine, with support for Lua scripting. As I used Lua more and more I started to like it a lot, and I even rewrote the menu system, controller support and other parts of the game engine in Lua. The main render loop and animation logic is still in C++ for performance, but everything else can be changed by players now. This gives us great flexibility. You can basically use the engine to write your own game using Lua scripting.

Basketball

Fast forward to December 2023. At this point, I had the new game engine up and the base deckbuilding game running: player and opponent deck, draw and discard pile handling, stacking, removing and destroying cards, and basic card movement animations. I started to consider various game mechanics and was so deep into it that I started to see deckbuilding everywhere in real life.

The NBA and Euroleague seasons where in full swing at the time and one of the ideas that crossed my mind was how Shots could be attacks and Blocks could be shields, and Rebounds and Steals can give you energy and Passes could make Shots cost less to play. It just clicked.

But, I wasn't sure there was enough depth in the game of basketball to make a roguelike with deep game mechanics. So, I started to write down everything I know about the game. I have been watching basketball my whole life. I even played it in a local league for about 6 months, and I even tried to be a referee for one season, but that's a story for another time.

By the end of the day, I had around 80 possible cards with main mechanics being: stamina, scoring, noise and clock management. Stamina is energy used to play cards. Each card has a cost and you can gain more than default value each turn. Scoring is regular basketball scoring with 3 and 2 point shots and one point free throws when fouled or someone gets a technical. Crowd noise is effect on some cards that makes the fans go wild and provide bonuses to the home team. The game simulated the real basketball game of 4 quarters of 10 or 12 minutes, depending on the region. I experimented a lot with this to get realistic match scores while still keeping the games quick. I ended up with 15 seconds per card played. Some cards like timeouts, substitutions and free throws don't spend any clock time.

I quickly made a prototype. Used the stacking logic for Blocks, Fouls and various power cards that have longer lasting effects. Wrote some basic decision logic for computer player and boom. It was instant fun!

I kept adding cards and expanding it. I poured in all the little details I know about basketball into this game. Each card is a basketball term and tries to resemble the action or situation from real life. You've got your layups and stepbacks, skip passes, blocks, slam dunks, offensive rebounds, steals, fast breaks, buzzer beaters, etc. There are over 100 cards in the game, you can find the full list with card art here.

Then I made a separate tournament mode, which plays like a classic roguelike with permadeath. I you lose a match in that mode, you have to start over. I also made a Season mode where you can lose some games and still qualify for the playoffs. You use the matches to build your deck for the finals.

One of the unique game mechanics is temporary card pickups. At the end of each quarter, you get to pick some cards to add to your deck. You can play all of those during that match, but you can only keep one of them at the end. This allows the players to experiment with various cards to see how well they fit with the rest of the deck, without having to commit to any card permanently.

I also added multiplayer mode. You can pick multiple human teams and then you can play PvP with your friends.

Clutchtime is coming out on Steam on July 24. Check it out.

Feedback & Share Bigosaur, 2025-07-01

Block Buster Billy - what makes a good puzzle game

I have been toying with an idea for a puzzle game for a while. I have released a bunch of puzzle games so far, with varied success. Rogue Bit has been the most polished product so far, but it's a game for a very niche audience of programmers and computer hardware enthusiasts. Seeders has been a hit and miss. It has awesome puzzles, but Box2D physics is somewhat inconsistent, so you often figure out a way to solve it and then spent of lot of time trying to execute. It removed and changed a lot of those in the Seeders Puzzle Reboot version, but it still isn't perfect. The Game is ON was a very fun game to make, but it doesn't seem so fun to play. The actual fun was coming up with a scene that fits the idiom, but trying to discover it while playing just doesn't feel that good.'

I took all these lessons from the past experience when making Billy. I wanted a game that has tight controls, so I picked the turn-based approach. The puzzles range from very easy, to very hard. Similar to Baba Is You, you can play with the blocks until something 'clicks' and you figure it out.

The game is powered by the same engine I used for Rogue Bit, so it scales the graphics nicely to 4K monitors and beyond. The fact that the mechanics are based on numbers and basic math, makes it translatable to every language. The only thing that really needs translation are the level names, but they aren't really that important to the gameplay as they rarely give a hint. Most of the time, the player has all the tools and is left to discover the solution on their own. I made a first level set which teaches you the ropes, so you aren't lost in a tough puzzle immediately.

Making this game was also fun for me. I had a very interesting approach for this one: I would get some basic idea, try to build a level from that and then try to solve it. When it was too easy, I would add stuff that make it harder - to the point where I felt like it was unsolvable. Then I would try to solve the level for 30-60 minutes, to see if I can come up with some original way. If I manage to do it, that's a perfect level. Of course, sometimes it really is impossible and I have to loosen some of the restrictions.

While developing the levels, I would often notice alternate solutions that require completely different approach. In such cases, I would split the level into two levels - and then edit each one to make sure either of the two approaches only work in one of the levels. I love that feelling when a player comes into the level thinking 'Oh, I know this' and then get stumped when they see that a single block is missing or something has moved by one tile and it requires a completely different way of solving.

I'm done with puzzles involving equations, inequations, adding and subtractions. I plan to add multiplication, and possibly variables and have about 120-150 levels for the final game. I plan to release on Steam and Nintendo Switch. Maybe mobile platforms as well? Not sure about that yet.

Feedback & Share Bigosaur, 2022-06-20

CM:TS - Scenario objectives

As all the base game mechanics are implemented, I'm starting to add different stories for each scenario. In one of those, you need to research quantum computing and build a superior AI.

In another one, you have to build a solar plant and become carbon neutral while also helping your local community.

You can also launch your own crypto currency.

Or run your own crypto currency exchange market.

Feedback & Share Bigosaur, 2022-03-29

CM:TS - Set mining for the whole rack

I have started the beta testing with some players recently and the most common feature request was being able to set mining for the whole rack. I tried a couple of different iterations for this feature and settled on right-clicking any piece of hardware inside the rack, for example, a GPU - and then setting the mining target for all hardware of that type. For example, you can set all GPUs to mine Ehtereum, all CPUs to mine Monero, all FPGAs to mine Litecoin.

The same option works for overclocking as well.

Feedback & Share Bigosaur, 2022-02-24

CM:TS - Heat, Noise and Dust simulation

This is the hardest part of the game to make. Getting it right while also making it efficient is tricky and it took me a couple of tries to get it right.

The noise is pretty much straightforward once you learn how decibels work. Heat is another issue. It starts with electricity use and natural dissipation and then you have to simulate spreading and respect the fan directions. Additionally, I'm taking outside temperature into account because you can play the game in different regions. For example, the base temperature is higher in Africa. In the end, you also have cooling with air conditioners to spice it up a notch.

My initial plan was to also simulate day and night cycle, but as I played the game I noticed that I run it a full speed a lot. That's one day of game time in 3 seconds of real time. It makes the lights flicker so bad that I have turned it off and scrapped the idea.

Feedback & Share Bigosaur, 2022-02-11

CM:TS - Graphics perfected

I have completed a lot of graphics, including various pieces of hardware and the icons of item categories.

Feedback & Share Bigosaur, 2022-01-11

CM:TS - Phone

Phone will be used for various in game events. You will get messages from NPCs, pay monthly bills, read the news related to market and new hardware, get alerts from your employees, get a bank loan. The make it realistic, you can also play a game on your phone.

Each scenario will have a story that plays out as you interact with various NPC characters via phone messages. Their quests will include mining, trading, research and more.

Feedback & Share Bigosaur, 2022-01-10

CM:TS - Tiles

There will be about 10 different floor tiles with different prices and dust factor. Dust plays a huge role in the game, as having high dust makes your equipment wear out faster, mostly due to fans breaking resulting in silicon overheating. Keeping dust low will be expensive. You will have to buy and install more expensive floors and/or use enclosed racks and PC cases with filters.

Each facility you rent or buy will have different starting floors which affect the price. So, you will be able to buy a room with concrete and replace all the tiles.

Feedback & Share Bigosaur, 2022-01-06

CM:TS - Trade

You can trade crypto currency and watch the market trends. This feature was something I was fearful of, but it turned out pretty straightforward to make. As I learned more about he actual graphs used on the stock market, I figured that it could be simplified a lot as players don't really need all that information and would probably be confusing to many. So, you only have the current price and daily movement.

The game uses real market data, which includes prices, hash rates and mining block rewards. I was fearful of this, but it turns out that it posses a pretty good challenge as the real market had its ups and downs over the years.

For trading, I have decided to scrap the spread and simply allow to always transact for 100k coins. If you buy or sell a lot, the price will move. To prevent infinite money with instant pump and dump, I have added a 6% transaction fee. You will be able to lower this by running your own exchange in one of the scenarios.

Feedback & Share Bigosaur, 2021-12-02

Past blog entries


Son of a Witch | SoaW graphics, screenshots and .gifs
Bigosaur.com Website Home Page Bigosaur.com Website Home Page Blog main page YouTube channel Twitter account Google+ page Facebook page