Devlog 0 - Game Jam Chronicles


DIMINISHING RETURNS was my submission for the 1-BIT game jam (2023); it took a little more than a week to develop, give or take about thirty minutes of bug fixes post jam.

I joined the 1-BIT game jam for three reasons:

  1. I wanted to make a game, get it out there, and get feedback
  2. Working within limits (time, theme, 1-BIT) actually helps me to get more creative
  3. It seemed fun

Up until that point, I joined and submitted a game to one other game jam - uploading a small game called FALLING. It’s not a very good game, but I learned a lot from it - especially how to better prepare yourself for the jam. 

More on that later.

The 1-BIT game jam, in particular, also had a comfortable time limit; about eight days, and I thought working only in 1-BIT will help me make art assets faster. So, I signed up, waited for the jam to come around, and also took a day off work to have more time to work on the game.

The Idea:

The theme was up to vote through a link in the Discord; I remember voting for “one bullet” - I thought I could do something fun with PRESENTATION bullet points - but it ended up not being picked. The theme, which was revealed on November 10’s, actually was:

You Start With Everything And End With Nothing

Which is an interesting theme - interesting in the sense that it was challenging, and challenging because, at first glance, it does not lend itself to GAMES very well.

Almost all the games I played relied on the principle of addition:

More upgrades.

More points.

More stories.

ETC, ETC.

It seemed to me (and others on the discord) that most games have you becoming more adapt to their own environments - a game where you start with “everything” and end with “nothing” is a game that, seemingly, forces you to lose. 

(Evidently, that’s not true at all - many games are based on getting rid of item/currency/level etc, and also there is a lot of room in defining what everything and nothing is, and when, exactly, do you reach nothing - for example, THE NOTHING DOOR is about interacting with enemies to use all your items, and DIGITAL DISTRIB  is about shipping all your inventory. In both the everything-to-nothing is part of the repetitive game loop, not the overall arc.)

(ALSO, both are good games.)

(You should check ‘em  out.)

That theme is a bit of a downer, really, the kind of theme that ties into ideas of loss, grief and decay. However, I quickly came to a realization that it’s not INHERENTLY negative, there are things we are happy to lose: Bills, anxieties, mess.

(Two games that took a positive/funny spin on the theme are SHOOTY CASH and HELP ME CLEAN MY ROOM!and I recommend trying them both.)

My first idea was to have a game where you have to empty your head in order to relax or go to sleep - a lifetime of living with my own brain taught me about just how hard it is to take your head from ‘everything’ to ‘nothing’- but this sounded like a puzzle game, which I didn’t particularly wanted to make at the time; Moreover,  it felt as if I’m trying to make a game out of a story and not a story out of a game. I wanted to focus on gameplay first, and have the narrative grow out of it.

So, ok, what sort of games have the goal of getting from EVERYTHING to NOTHING?

(Everything is one pit fall of a word, is it? How can you even make a game about everything? And make it in a week or so?)

Puzzle games were the first thing that came to mind. Those match three types or “solve the traffic jam” and a whole lotta things I didn’t want to make because I wasn’t interested in puzzles. 

OK. What other games are built around the goal of having nothing in your hands?

Oh, card shedding games, where the goal is, quite literally, to have nothing in your hand. I also wanted to make a card game, inspired mainly by INSCRYPTION, and thought making a simple one for a game jam would be a fun and simple way to try out that genre.

With that in mind, I went online and tried to find out information about card shedding games, looking for inspiration to work with. Issue is, card games, by nature, are played with other people. Most card shedding games are to remove card from your hand by pushing them onto others - implementing that would require me to program in more players, either by learning how to program AI or, god have mercy, trying and make a MULTIPLAYER.

Absolutely not.

So I tried to look for an idea I can use as a baseline for my game jam. I found it in the form of SWITCH - the card game, not the console . Matching cards by either suit or number is a thing I could easily turn into a basis of a single-player game. It’s also a card shedding game, so you do go from EVERYTHING to NOTHING.

(technically)

So! Basic game loop: Your goal is to get rid of all the cards in your hand. You get rid of cards by matching them either by suit or number with one of two cards dealt by the dealer (aka the game). In each turn, your option is either to match one of the cards in your hands, or take an extra card from a deck. You win when you have NOTHING in your hand.

At that point (about an hour or so after the start of the jam) I had to make sure I could actually make a card game, as I’ve never made one before. This CARD GAME TUTORIAL  by Adventures by Godot on youtube gave me a head start on understanding on how to make cards and interact with them, and I could use it to get my bearings around making card games in GODOT, my engine of choice.

My “match and discard” game was on theme and definitely a GAME, and I might have stopped here for a one day or a weekend jam. However, I had a whole week and a day ahead of me, so I thought, ok, what can we add to this core mechanic.

First thing that bothered me was that while the game had a WIN state, it did not have a LOSE state. Ok, how do you lose? You lose if you don’t win within a number of turns - before the LOOP ends.

(I blame LOOP HERO, which is a game about starting with nothing and ending with everything, on the way that particular idea got in my head). 

Ok, a LOOP, meaning that after every loss, the game would restart, 

BUT.

But… what? 

BUT,

Since the theme is about starting with everything and ending with nothing, what if every time the player fails a loop, a part of the universe dies, and after a number of loops, the player is left with nothing? 

(my attempt to make a non-somber game for this jam lasted a whole hour and a half)

Ok, that’s a good story idea, and it helped shaped the general narrative of the game - having a card game against DEATH for the fate of the universe. However, what does “a part of the universe dying” means, gameplay wise?

Well, the universe of the game is, welp, the game itself. So, every time a part of the universe dies, a part of the game dies - until you are left with nothing.

Here is where I did this little trick - part of the game dying meant one of the rules of the game dying, which meant there were more ways for the players to match cards. I kind of snuck in getting extra “upgrade” or “mechanics” dressed up as subtracting from the game, not adding.

Also, that meant that no matter how the game ends,  win or lose, you start with everything and end with nothing, which was and idea I really like. 

Thus, I had the basis of the game. 

Now, all that’s left is making the damn thing.

Making The Damn Thing:

Early on, I made a list of what this game needs in order to be considered “finished” and submitted to the jam. There was absolute essentials, like:

  1. Card art
  2. A way to interact with cards - moving them from and out of the player’s hand
  3. Card matching method
  4. A way to define the start and end of a turn
  5. A way to define the start and end of a loop
  6. Rules, and ways that can be broken
  7. Basic UI to get in and around the game
  8. Basic UI to convey the rules of the game

There were also the nice-to-haves, like:

  1. PRETTY card art
  2. “Special” cards
  3. Extra art assets, shaders, particles
  4. Animations
  5. Music, SFX
  6. A unique logo

Etc. 

One of the lessons I learnt from my first Jam is to allocate resources properly - mainly time, which was the most precious one. It was mostly about getting the base done and ready - though I did allow myself some “treats”. For example, getting the cards to look as pretty as I wanted them to look- if one part of the game was pretty, it should hae been the playing cards. 

I also got a few resources - like the color Palette, NOIRE TRUTH by Cheeseismysoul  and the font I used throughout the game, Alagard by Hewet Tsoi.

First few days were all about getting a card systeem and a matching system working, while keeping in mind my list of RULES and how I want to break them. I used the tutorial mentioned above to at least get the basis rolling, and added game management scripts, matching scripts, and basic art as needed. I worked for the first time with dictionaries, which made everything much easier, and I learnt a LOT about UI in the process. 

While building the game , I stuck to map I drawn early on in the process. It is supremely crunchy and looks like this:

Here you can see the basis of what will later be the layout of the game itself, including a very goofy sketch of what death actually ended up looking like.

When it came to art, I tried to limit myself in the time I gave every asset, as well giving up on making specific assets from the get go - the game’s “logo” is actually just the name in a scaled up letters using the Alagard font. 

The cards and card system were up first. The card themselves are actually a packed node-tree of textures : card base, border, and “element”. All textures were chosen according to a card trait of a name and a reference to a (somehow) organised asset folders.

The hardest part was the player’s hand - getting the cards to spread correctly, getting them re-organized when there are new cards, etc, and limiting the spread so the cards wouldn’t “spill” out of the viewport. I’m telling you, this stupid spread had me by the throat for half a day. It’s all simple math but it STILL tripped me up. 

By that point, the game also had a name: DIMINISHING RETURNS. Ominous, on theme, and looks good in size 56 Alagard font.

Later, I got the rules in, as well as VERY BASIC UI, and set up the visual representation of the loop: 

It’s made of a simple looking tile I duplicated and put in a loop-ish formation, with a player marker and a finish line. The game is 640 X 360 pixels, so I really didn’t have a lot to work with, but it turned out well and helped me not to turn it into too complicated of an idea. The green path you see is godot’s path2D to help me visualise the movement of the player marker. I have a script to help me extract the points making that path into a list - a code I actually figured out working on an enemy in a platformer. Then, while playing, I go over that list and move the marker to the next point using tweens. 

I used a LOT of tweens in this project. Unlike a platformer or a combat based game, most of the movement in this game have a set start and end point, which made them PERFECT for tweens. In fact, the animations you see in game were all done using Tweens. I spent quite some time tweaking with parameters like tween time and ease and transition type (what IS the difference between cubic and sin transition?) but it was much, much faster and easier than coding the level of math and frame-to-frame movement by myself. 

Tweeking, editing, and cutting was one of the most important parts of making this game Here are a few of the most interesting design decisions:

  1. Using a made up deck instead of the standard French one
    1. I wanted more suits (ELEMENTS) to help balance the odds
    2. I needed a 1-7 cards for a gameplay element, not 1-10
    3. It helped a lot with giving the game it’s own personality
  2. I added a VOID mechanic, which every loop cards from the deck will lose either their number or element , therefore shrinking your matching possibilities
    1. Also, goes with the everything -> nothing theme and the overall feeling of the world falling apart
  3. Originally there were 8 loops, but I took it down to 3 loops.
    1. 8 because it resembles the symbol of infinity, aka everything
    2. I decided to cut the numbers of loops down to create a more fast paced game and an overall tighter experience
    3. Also, I ended up having only 5 rules to break - not enough for 8 loops, but more than enough for 3.
  4. There ar more rules than loops
    1. So what rules are broken each playthrough are slightly different.
    2. I think it made the game seem bigger than it actually was
  5. You pull about three cards every time you interact with the deck, not one
  6. Certain rules can only be broken in the first two loops, certain rules can only be broken on the last one.
    1. A balancing decision. Some game changes help the player more than others
  7. Originally, you could either match a card NUMBER, a card ELEMENT, or a card BACKGROUND. I gave up on the background.
    1. Too much work for a gameplay element that screwed up with my balancing. Also, it will obscure all the pretty art I made and make the cards harder to read

Among the things I spent a little too much time working on was adding DEATH itself. I mad a quick sketch to get the general idea across:

(check out that pickle-water stain, urgh)

Then I turned it into a pixel art, like so:

Then I added a nice background - a quick n’ dirty work of about twenty minutes, bringing the game’s main gameplay screen to the final look you see in the screenshot on the game’s page

I ended up putting SFX in, from Kenny’s asset library . I used the casino one (obviously) and the sci fi one (the ominous sound while clicking the buttons is actually “forceField_004”, the sound of the cards getting shuffled every loop is a pitched down  “computerNoise_03”

One of the best moments of the jam was contacting TurtleBox who made two banging tracks to serve as the game’s ost - a menu theme and a more complexed version of that for the gameplay theme. I think those tracks add a lot to the game and elevate the whole experience, and I couldn’t be more glad for TurtleBox’s work.

After that, it was a matter of putting the game together and getting it ready for submission. I couldn’t get the application icon to change from the godot default icon, which pissed me off, but after dedicating a few hours to the issue I just decided it wasn’t worth the hassle.

I exported the game, made a very good looking (imo) game page and let the thing go live.

Post Submission

Bugs, bugs galore! Mostly game breaking ones. The last day of the jam was about getting feedback on all the ways my game was broken and figuring out how to fix it. I had a fully working version up by the time the jam was over, thankfully.

The feedback I got was mostly positive - people loved the atmosphere and idea, but the cards felt very janky to interact with.

Urgh, my old arch nemesis, that catastrophe of a math problem, the card spread. It’s back again, the WRETCH.

Luckily, under the jam rules, you could make bug fixes post-Jam. So, I spent about a half an hour to figure out how to smooth the card selection process, getting it to be more forgiving and have each cards you hover over show up first in the texturing indexing - putting it above everything else. I also fixed a small issue of cards covering one another, and basically gave the player’s hand a nice day at the scripting spa. The results showed tremendous improvement, even if there was more work to be done.

Currently, the voting is still ongoing. I actually don’t mind the competition itself, I was happy people gave the game a try and left a comment with their opinion.

I learnt a lot during this jam. About gamedev. About card games. About elliptical shapes and the math that defines them. I had a blast sharing my progress on Discord, as well as seeing everyone else’s. The turnout for this jam was fantastic, not only in manner of quantity but quality as well. I’m glad to be a part of a jam that had so many quality work come out of it - and that’s only what I’ve seen, a lot of the work I am yet to try. 

Looking back, I could have done better by being more organised about my game dev progress, as well as laving more room for testing. Next time, I’ll probably try to track down my work, making sure nothing gets lost or ignored.

Though, considering how much effort this jam took, and how exhausted I was by the end of it, perhaps a break is in order. 

Overall, however, I had a blast, I’m very proud of the finished result, and I will definitely join a jam again. 

What Now?

I’m proud of DIMINISHING RETURNS. I enjoyed working on it. I like it the way it is now, and consider it to be a complete game and a decent one at that.

However, I discovered I really like the concept, narrative and scripting behind DIMINISHING RETURNS and I want to continue working on it post jam, expanding and polishing it. 

Needless to say, the game is never going to be an epic 30 hrs adventure with branching narrative and character customization. It was never meant to be that, and I don’t want to ruin a good thing by trying to make it a big thing. However, working on a simple game and brining it to compilation seems totally doable, and I’m excited to see where it will take me. 

Here are a few additions and changes I would like to make:

  1. Polish the card selection and card spread system
  2. Add animations, shaders, and fun graphic stuff
  3. Add the ability to switch color palettes
  4. Add rules and changes to the game once they are broken
  5. Add a proper logo and an application icon
  6. Work on conveyance
  7. Add screen transitions
  8. Rework the background system
  9. And MORE!

Currently, I’m on that aforementioned break - though I started working on the more fun and frivolous things in that list, like the logo - and I won’t be able to upload the updates till the voting period is over, anyway.  

WITH THAT BEING SAID, I will be very thankful if you could go and play DIMINISHING RETURNS and leave feedback - any feedback, but especially additions and changes you might want to see in the FULL version. 

I won’t hold you for much longer, now. Go play the game. Next time we’ll meet, I’ll make it even better.

Files

Diminishing_Returns_1.01.zip 42 MB
Nov 19, 2023

Get Diminishing Returns

Comments

Log in with itch.io to leave a comment.

This was one of my favourites, if not my favourite game in the jam. Really insightful blog entry. Thanks for letting us into your workflow. I'm honestly even more impressed by the game after reading how you tackled the obstacles that were put in your way.

Well done!

Thank you so much!!!! It was a challenging game and a wonderful expirience