Gamedev JS 2026: WORD GAMES and COGS


April-May 2026



TL;DR:


- Play WORD GAMES on Itch.
- Read the source code on Github.
- Ranking: 455th / 495 (but it's alright, the game is not in the theme at all)

- Play COGS on Itch.
- Read the source code on Github.
- Ranking: 127th / 495 (but 15th in the "theme" category and 100th in the "Gameplay" category)




Making-of: WORD GAMES

This is a "mini bonus entry" not related to the theme of GamedevJS 2026, I just wanted to make it! :3

I have a group of friends who enjoy word games. Two of them even created their own, in french (Motigma and french-connections).

Last year, I created WORDS, an attempt to propose the most useful way to get french and english dictionnaries (Scrabble dictionnaries, but not only), with a ton of useful options.

A few years ago, I code-golfed MiniWordle in 214 bytes, but always wished to go further.

So when GamedevJS 26 was approaching, I picked 5 different word games:

- Wordle (no need to present it)
- Spelling Bee (where we need to make words from a small set of letters)
- Boggle (the famous board game, often imitated on websites and mobile apps)
- Maxiword (seen in a french word games magazine)
- Substring (I invented this one)

...and gave myself the challenge to implement all of them in 24 hours, in HTML + JS, in french and english, and with new games and solutions procedurally generated each day. That would help put myself in shape for the rest of the jam.

I completed that challenge in april 2025, just before working on my real entry. Coming up with elegant and performant algorithms (especially for Boggle solutions) was quite fun actually!

During the jam, my friends beta-tested my word games, and helped me find a few bugs that are fixed now!

A few extrahours were spent during the rest of the jam to enhance the visuals (games rules, solutions, background colors, display, mobile rendering...) and add localStorage and score sharing features.

A few interesting stats:

- EN.html and FR.html (the games) are both 27kb and 847 lines long.
- EN.js (english Scrabble dictionnary, uppercase, accent-less, JSON) is 2.24Mb and contains 196,601 words.
- FR.js (french Scrabble dictionnary, uppercase, accent-less, JSON) is 5.22Mb and contains 416,297 words !
(that's probably why most Scrabble competitions take place in french).
- Nothing is pre-generated! As soon as you pick a language from the main menu, the "grids of the day" are generated based on the current date, and all their solutions are computed in a few tenths of a second while you choose your first game.

My favourite code snippets:

- Animated color background fading to white in pure CSS

@keyframes hue {
  0% { filter: hue-rotate(0deg); }
  100% { filter: hue-rotate(360deg); }
}
body:before {
  content: "";
  /* (...) */
  background: linear-gradient(#def, #fff);
  animation: hue 120s infinite;
}

- Recursive boggle solution checker ("links" is an array telling which letters are around each dice on the board, replaced by "?" when it's already used in the current word)
checkboggle = (word) => {
  if(word.length < 3) return false;
  for(var i = 0; i < 16; i++){
    if(boggletodayletters[i] == word[0]){
      tmp = boggletodayletters.slice(); // copy grid
      tmp[i] = "?"; // remove current letter
      if(subcheckboggle(word.slice(1), i, tmp)){
        return true
      }
    }
  }
  return false;
}

subcheckboggle = (word, index, grid) => {
  if(word.length == 0) return true;
  var link = bogglelinks[index];
  for(var i = 0; i < link.length; i++){
    if(link[i][1] == word[0] && grid[link[i][0]] != "?"){
      tmp = grid.slice(); // copy grid
      tmp[link[i][0]] = "?"; // remove current letter
      if(subcheckboggle(word.slice(1), link[i][0], tmp)){
        return true
      }
    }
  }
  return false;
}

Anyway: I can now say that I have my own word games that can be played everyday by anyone for free, yayyy!!!

PS: I also released the Boggle grid generator and solver into a standalone web app: BOGGLE (new grid every 20 seconds).



Making-of: COGS

Day 0

GamedevJS 2026's theme was announced on April 13 and it was: MACHINES. An amazing theme if you ask me.

GamedevJS only lasts 13 days. Too short, if you ask me.

While I was finalizing my "bonus entry" Word Games, I spent the first day (let's call it "day 0" to be coherent with my tweets), brainstorming.

My reasoning is the following:

- I don't have the time to have an original idea AND implement it properly in 13 days, especially with just 2 to 5 free hours per day. That's why in the previous years I made either mini "gimmicky" games (It's too raw!, The power of two), vibe-coded games (Hold your noodles... and your meatballs), or remakes of existing games (like Chrono Robot made with the engine of my 2015 js13k entry SCPM, or Shift 2K20, remake of Shift, made for another micro-gamejam).

- Many beloved games of my childhood (or early adulthood) actually featured machines, and are either abandonware or lost media in 2026, so why wouldn't I make an entry in hommage to one of these old games? Or even a faithful remake?

- My two favourite oldies are probably The Incredible Machine (MS-DOS, 1993) and Geared (iOS, 2009).

- The former, "TIM" is officially an abandonware, but would be incredibly tricky to reimplement in 13 days, even though I developed a new 2D physics engine last year that could be partly used to make it. Plus, the author of the original game made Contraption Maker (Steam, 2016), which is a great way to replay these old levels, as well as new ones, in the modern era.

- The latter, "Geared" is much more of a lost media: some images and videos can be found, of course, but it's not downloadable nor playable on mobile or tablets since around 2011. The Steam "remake" (2015) has completely different mechanics and just doesn't convey the experience of the original. Its sequel, Geared 2 (iOS, 2010) had a lot of interesting ideas but is also unavailable today.

- Making a game inspired by Geared 1 seems to be the most viable option in 13 days (even though it will require a lot of work), so let's try to do that! Actually, let's make something close to a full remake, but with my "Xem touch".

Day 1

The first day was for prototyping. Before anyhing else, I had to make sure I could draw convincing gears (cogs) of 5 different sizes on a JS canvas.

After a very long search in the depths of russian pirate Internet, I managed to find an APK of Geared 1.0 (an early and pretty buggy Android port of the game). I wouldn't install that on my phone, of course, but thankfully, an emulator called Bluestacks was able to open it.

I took some screenshots of the first levels, measured all the cogs I could find, counted their teeth, and wrote a JS function that could draw all of them in different sizes, colors and positions.

Here's my gorgeous study, made on MS paint, in case someone wants to frame it for posterity:

I created a 320x490px canvas, put the top-left part of that (wonderful) image in the background, and drew my cogs on top of them.

Then I removed the background and TADAA! (good enough!)

By the way, my trick to draw seamless cogs teeth was to combine a colored circle, a black border, little black rectangles around it, then smaller colored rectangles inside the black ones (overlapping the circle's border).

I could also have drawn the cogs in the form of a single colored polygon, but... meh.

Day 2

I started playing Geared on emulator... completing a few dozens levels each day, screenshotting every level, noting every "trick" used to introduce each new mechanic to the player, and recording every solution in video. A very thorough investigation.

I have to rediscover everything level by level because they're not all unlocked from the beginning. When I reached the "red no drop zone" and the "purple movable no-drop zone" levels, I started to work, not on my game, but on my level editor, featuring a grey cogs inventory, placeable yellow and blue cogs, red and purple no-drop zones, along with four buttons (test, reset, share and exit). Reset clears everything, Share exports the level in JSON, Exit goes back to an empty title screen, and Test is the only one not working yet.

I also made the yellow cog rotating infinitely.

Day 3

I spent 5 hours organizing all my code and data to finally have an "in-game" screen, appearing when we click on the "test" button. In this screen, grey cogs can be placed in the white area, and become red (unplaceable) if they collide with another cog or if their center is on a no-drop zone. Gravity will be added later.

I also made a rudimentary title screen, with 3 cogs rotating in opposite directions.

This made me realize that all the cogs couldn't rotate at the same speed. A cog's rotation speed must be inversely proportional to its size, to have all the teeth move at the same speed (and have a chance to stay intertwined). By chance, the radii of the cogs make the speeds ratios "simple" to compute (I still needed an explanation from ChatGPT though):

SizeSpeed
11
21/2
31/3
41/4
51/5
n1/n

(wow, a HTML table, I haven't written one of these for a while!)

Day 4

3 more hours of code just to make the (simplified) physics engine from scratch:
- Grey cogs can fall until they collide with the ground or another cog placed underneath.
- When a cog collides with a rotating cog, it rotates in the opposite direction
- When a cog collides with two rotating cogs of opposite direction, that's a "jam" (the machine stops because the cogs block each other).
- The more I write "cog" and "block" in this making-of, the more I am afraid to accidentally write "cock" and "blog" 🥵.
-SPEAKING OF WHICH! ... While I was implementing the jam detection algorithm, I thought "COG-BLOCKED" was a funny and subversive pun, so I decided to display it on screen when a jam occurs:

Day 5

Since I love puns, I spent the fifth day working on "success" screens (and navigation buttons, which are actually HTML and not drawn on the canvas), but also thinking about the definitive name for the game.

I asked my french friends some ideas and feedbacks about names containing the word "COG", and it derailed a little.

Finally, I kept it simple: COGS.

For the success screens, though, I liked the idea of "COG-RATULATIONS!" and I will try to find other messages like this one.

Red and purple zones also work fine now.

Day 6

A couple of extra hours to polish the editor, game engine and navigation...

In the background of the video below, you can hear some LoFi music I've been listening to while coding. I've been told it went well with the game...

Day 7

With my emulator in one hand and my own level editor in the other, I can finally start creating my game's levels, and *NOT* show them online to avoid spoilers.

I went with the (controversial) choice of remaking all 150 levels from the original Geared game, because I lacked the time to create my own levels from scratch or to decide which ones should be removed and which ones deserved to stay. Not super creative, I know, but at least it will be a remake as faithful as possible... with many differences though! (a lot of coordinates/size adjustments were necessary to make specific traps or solutions from the original game work in my own engine).

I'm glad I created the editor first though, because it helps me iterate super quickly!

(Sorry, I messed up the days numbers in my X posts! Please consider that from this point, 6 = 7, 7 = 8, etc.)

Day 8

My first playtesters (my fellow Word Games enthusiasts, but also cykelkatalogen and John Edvard on Slack) gave me super interesting feedbacks to improve the user experience:
- An UNDO button (to avoid resetting the level at every mistake... this took me too many hours to implement properly)
- Not having to pick the same cog from the inventory (the next one is automatically selected, and attached to the mouse cursor... at least on PC)

Day 9
When I finally added the level selection screen (it's always a boring thing to implement, but useful for the players), I received a suggestion to get rid of the locked levels to ease progression and discovery of new mechanisms.

I didn't do that exactly, instead I unlocked all the levels introducing a new mechanic, shown here in blue... (to make it simple, I just marked blue the levels that contained custom text in the background).

The 5 levels that follow the last one cleared are also available "for free", to let the players the possibility to skip hard levels.

My X post (see below) showed an obscure bug - cogs disconnected from the yellow engine, but continuing to enable each other's rotation - which I finally managed to fix by adding an extra loop of checks in the physics engine.

Day 10

I'm focused on completing the original game on my emulator (which is all buggy, remember), and screenshotting and implementing every level.

The thing is, the more I progress, the more I keep discovering new mechanics, which I need to spend a lot of extra hours implementing, debugging... The last new mechanic appears on level 100!

And of course, I also have to update my level editor to handle all the new features. Here's how the final editor looks, and all the things it is able to produce.

All the original Geared levels can be remade using all these little buttons, except the ones that contained a tiny yellow cog. For these levels, and these levels only, I modified them so that they could work with a big yellow cog (allowing both big and small yellow cogs would have been too complicated and I didn't have enough time, so I made the choice to ignore them).

Here's an example of level (#86) which contained a mini yellow cog at the center, and how I modified it: bigger yellow cog at the bottom, blue cog at the center. The idea and the puzzle solution stay the same!

However, some levels clearly had a problem (solvable with less cogs than expected and/or containing useless no-drop zones), in that case I allowed myself to redesign them a little. For example, in level #40:

Thanks Séverine for helping me find this issue!

Day 11

Less than 3 days left, so I spent 5 hours on day 11 and 8 hours on day 12 to put my game in a satisfying state.

On day 11, I only added 10 levels, and spent the rest of the time "implementing" a mobile mode.

What I actually did was copy-pasting 482 lines of code from mouse.js (the mouse controls) into a new file (touch.js), and:
- Do all the "click in inventory" actions on touch start.
- Do all the "mouse move" actions on touch move.
- Do all the "click to place cog" actions on touch end.
... effectively making a drag & drop experience on mobile, very close to the original game (while on PC it's just clicks and mouse moves).

Day 12

Biggest day of the jam with the last 30 levels created (but not tested), but also proper implementation of the cogs rotations and jam detection, all performed by those few lines of code executed at each frame (physics.js):

// reset collisions and rotations
for(i in cogs){
  cogs[i].neighbours = [];
  if(cogs[i].color == "grey"){
    cogs[i].grounded = 0;
  }
  if(cogs[i].color == "orange"){
    cogs[i].grounded = 0;
  }
  if(cogs[i].color != "yellow"){
    cogs[i].rotation = 0;
  }
  cogs[i].blocked = 0;
}

// do n iterations (n = number of cogs)
for(k in cogs){
  
  // for all cogs (yeah this is O(n²)... but it's ok)
  for(i in cogs){
    
    // except yellow
    if(i > 0){
      
      // define a global angle
      var globalneighbourangle = 0;
      
      // check neighbours rotations
      for(j of cogs[i].neighbours){
        
        // if neighbour rotation is not 0 and global rotation is 0 or eqal to it
        if(cogs[j].rotation != 0 && (globalneighbourangle == 0 || globalneighbourangle == cogs[j].rotation)){
            
          // set global rotation equal to neighbour rotation
          globalneighbourangle = cogs[j].rotation;
        }
        
        // if neighbour is already jammed (99) or if its rotation is 0 and different from global rotation and global rotation is not 0
        if(cogs[j].rotation == 99 || (cogs[j].rotation != 0 && globalneighbourangle != 0 && globalneighbourangle != cogs[j].rotation)){
          
          // JAM (set to 99)
          globalneighbourangle = 99;
        }     
      }
      
      // If jam touches yellow cog: blocked
      if(Math.abs(globalneighbourangle) == 99 && cogs[i].neighbours.includes(0)){
        cogs[0].rotation = 0;
        blocked = 1;
      }
      else {
        cogs[0].rotation = 1;
        blocked = 0;
      }
      
      // make cog rotate at the opposite of the neighbours angle
      if(Math.abs(globalneighbourangle) < 99){
        cogs[i].rotation = -globalneighbourangle;
      }
      else {
        cogs[i].rotation = 99;
      }
    }
  }
}

for(i of cogs[0].neighbours){
  if(cogs[i].rotation == 99){
    cogs[0].rotation = 0;
    blocked = 1;
  }
}

In the rendering code (render.js), I also added the "cog-blocked" shaking animation for all the cogs involved in the jam.

That's where my playtesters made me realize that the game was unplayable on Safari Mobile. So instead of polishing the last levels, I decided to spend my last free hours BLINDLY debugging Safari Mobile, as I don't have an iPhone or iPad myself. (I made some edits, then asked my friends "and now??? 🥺"... repeatedly). You know what? Since I stopped my Web Dev job in 2022, I had forgot how much I hate supporting Safari. This jam reminded me that it truly is the new IE6.

The main issue was quite simple to understand, but still quite long to fix properly: on Safari Mobile, the ontouchstart, ontouchmove and ontouchend events must originate from the canvas, they can't be global like in every other browser. Goddammit.

There's also the usual mobile optimizations, not specific to Safari: disable tap highlight (in CSS), disable long click (in JS), and make the page unzoomable and pinnable to your main screen (in HTML meta tags).

What I didn't do is attempt to make the level editor work on mobile. Instead, when you tap on "editor", this appears:

Final touches:

- I made the level sharing feature work through an URL instead of just showing a JSON chunk.

- No time to include sound effects or create a music myself, so I just added a nice public domain LoFi music mp3, playing in loop (I've been told it goes super well with the game).

- I added basic WaveDash and ETH features on the evening (the Gamedevjs challenges, used for adding achievements and unlocking levels 121-150), and included a final "otherlevels.js" pointing directly to my Github repo.

<audio src=music.mp3 id=music volume="0.2" autoplay loop hidden></audio>
<script src=globals.js></script>
<script src=helpers.js></script>
<script src=render.js></script>
<script src=click.js></script>
<script src=mouse.js></script>
<script src=editor.js></script>
<script src=physics.js></script>
<script src=levels.js></script>
<script src=touch.js></script>
<script src=//xem.github.io/gamedevjs26/otherlevels.js></script>

HEHEHE! 😈 This file will allow me to push hotfixes to my levels after the end of the jam, bypassing the itch.io upload embargo taking place during the votes.

I finally uploaded and submitted my entry late on day 12, because itch.io was very unstable (and I didn't want to lose the chance to upload it on day 13 if itch was down.

...but if I had any fixes to do in the meantime, I could still include them in my otherlevels.js. HEHEHE 😈...)

Day 13

On day 13, I announced my two entries to the world, and peacefully worked on adjusting/fixing/completing my levels through otherlevels.js (HEHEHE 😈).

Having this hotfix channel was super useful: after the release, my playtesters found some levels that were too hard, and other levels that could be completed with less cogs than intended, so I was able to adjust them one way or another.



Features present in the original game that I never attempted to implement because I didn't have the time, but I have no regrets doing so:

- Being able to move grey cogs that are already placed in the scene (instead, I made them go back to the inventory when they are clicked or tapped).

- Make the cogs intertwining perfectly (I had actually no time and no idea how to implement that, so I just gave up without even trying). Sometime they will intertwine, sometimes they will overlap, that's just random (except in the title screen, where I could adjust the 3 moving cogs offsets manually).

My Geared screenshots:

(Click to enlarge)



The Xem touch:

I talked about the "Xem touch" earlier, how did I include it in my entry? With the little jokes of course!

- There's "COG-BLOCKED" appearing in case of jam (except after level 94 where jams are actually part of the game)

- But there's also a list of 40 success messages starting with "COG" that I invented after looking for synonyms of "WIN" "EUREKA" or "CONGRATS". Surprisingly, players loved them, some of them even told me that they kept playing to see what the next cog-pun would be!

The 40 messages are:

SPOILERS
- COG-RATULATIONS!
- COG-TASTIC!
- COG-BELIEVABLE!
- COG-SMICAL!
- COG-PLIMENTS!
- COG-CELLENT!
- COG-PRESSIVE!
- COG-STANDING!
- COG-MAZING!
- COG-WESOME!
- COG-BULOUS!
- COG-STONISHING!
- COG-STACULAR!
- COG-TRAORDINARY!
- COG-BLOWING!
- COG-DERFUL!
- COG-REKA!
- COG-RIFIC!
- COG-CEPTIONAL!
- COG-ENDARY!
- COG-PIC WIN!
- COG-TORY!
- COG-FECTION!
- COG-DROPPING!
- COG-MARKABLE!
- COG-NIFICENT!
- COG-LORIOUS!
- COG-LOSSAL!
- COG-RAZY!
- COG-SMIC!
- COG-WILDERING!
- COG-PREME!
- COG-CREDIBLE!
- COG-DING OVATION!
- COG-MINATION!
- COG-IGANTIC!
- COG-RAVO!
- COG-PLENDID!
- COG-OTCHA!
- COG-NUMENTAL!

But I also include in my "Xem touch" the redesigns and all the little fixes I added in my version (menus, assets, levels, music...).

Even if it's a remake and hommage to "Geared", now it's a bit mine too!

Post-jam improvements:

I reworked many levels and fixed a few minor bugs after day 13, but I also changed an important mechanic of the game: clicking / touching a grey cog no longer sends it to the inventory! We can move it around freely, and we can store it by clicking the inventory.

The level 6 has been modified to explain that.

The level 4 was confusing for some players so I added some text to explain that grey gogs only fall is another cog or the ground is under it.

And the level number is also visible at all times on the top left of the screen.

Finally, a new "level 151" acts as a credits screen (and it's actually pretty easy to solve. I just wanted to have a level mostly empty, solvable with one of each cog).





Walkthrough video of my entry:





My favourite other entries


- Lights play
- Mechalove play
- Waveform play
- m13kro machines play
- Meshworks play
- Ye olde machines play
- Math Machine play
- Devil's Machine play
- The Machine play
- Codepath() play
- Gear Machines play
- Cogs up! play
- Kobots play
- 100% pure CSS slot machine play
- Blackbox factory play
- A little loco play
- Machine disco play
- We are not machines play
- Platformachine play
- Bauhaus Builder play
- im just a silly little insect but luckily my body reacts to the drum machine so I can move play



Boomer AI rant

I remarked that, for the first time this year, many other devs proudly admitted to have let AIs design and code their entry, almost entirely.

It's not forbidden, of course, but it makes me wonder... where's the fun in entering a game jam if it's just to write a couple prompts and watch ChatGPT and Claude do the rest ?

And dare I say that 99% of AI entries kinda look and feel pretty much the same? In the gameplay, but also and before all in the games thumbnails. Ew. I will always rate a game much better if I don't see an AI-looking thumbnail or gameplay when I play it, even if it looks less polished... with a few exceptions though! (I hate when a game only features little colored circles and squares moving over a black background. For me that's level 0 of game design and I give them the minimum possible score in innovation, gameplay and graphics).

I do find AIs super useful though! I even prefer them to Google and StackOverflow to document a JS feature, or help me debug a function. But I still want to make my games by hand... and enjoy doing so, even if I couldn't make a 3D MMORPG / Battle Royale / Minecraft / whatever in 13 days by myself, at least I can make something that I'm proud of, using my hands and my brain.

Oh and for the frameworks (Unity, Godot, Gdevelop...) used in most entries, I'm totally okay with that... (as long as they remain too big for js13k :P)



Feedbacks

WORD GAMES

Airapport: Hi! Streaming your game now: https://www.youtube.com/watch?v=8gIvzEV3Wv0

Coreylr197: it's basically a less user-friendly version of some of the NYT games...not super creative, but cool you could make it! good job!

Valion Lockhart: It's cool to have those 5 different games with a new game each day. Grats on doing it in just 24h.

FishoJr: I am sorry but I don´t see the connection with the theme, also the game are already existing games and no sfx/feedbackis painful.Compliments on making this with no AI in just 24h though!

remarkablegames: Pretty neat to see words games in multiple languages! One thing that would be nice is if I didn't have to retype a letter if it's solved.

Atsh: For wordle - it could be cool if you shown the state of each letter with the keyboard layound similar to mobile - it's very useful. Otherwise, nice implementation of known word game

Kur0Nek0: I don't see any connection to the theme but, i can see you put a lot word games here. Good Work! Keep it up!

Roldan: Uh... okay? I guess. I'm not sure what you were trying to achieve. But there's not much to see here, really. Good try, though.

smdrr11037: I am not a native English speaker, and this game helps me learn English very effectively. I also noticed that it is well-optimized for mobile screens, which is great.

khushalsolanki001: nice

Stiggstogg: Nice compilation of word games, especially if you only had 24 hours to work on it. I do not see the connection to the MACHINES theme. While playing WORDLE I experienced a bug, that after two tries I could not submit a new word. Additionally after I checked the solution I could also not start a new game. Maybe it is intended like that, as you write that new words come every 24 hours. Congratulations to this word game collection.

Chaotic Envoy - Cyberpunk 1644 Studios: A neat word game bundle I guess.

Borna: This is a nice collection of classic word games. Not really related to the theme but I like it 👍

EarmLogic: The puzzles were entertaining, good for passing the time and killing time. I've bookmarked your game in my browser for quick access xD. I'll definitely give it a 5/5 rating.

TRIPOLY STUDIOS: The puzzles are great but only a wordle a day :( not sure how this is matching for the jam but the variety of puzzles available hooked me! great game!

tatta: Making multiple minigames is a great idea. I liked the variety! (ツ)ノ

Sharang Pai: not sure how this fits the theme but interesting collation of puzzle games

J-CARD Productions: Didn't really feel made for this jam, since i can't see the theme 'machines' implemented into it. But i mean it is fun for people who like puzzle games!

Josep Valls: Kinda difficult to believe it was made for this jam and in the time described given that doesn’t follow the theme at all.

snoryy: Not really on theme with machines but is fun to play either way. Could do really well with people who play lots of daily puzzle games so they can have it all in one place. Nice work but just chuck some machines in next time ;)

TaleHammer: where are the machines

COGS

Fighter19: OMG, I love it! It's actually pretty close to our game, with the difference, that this one focuses on cogs. I love the simplicity! Also in terms of code size! Good job!

EarmLogic: I love your game; the design is flawless and clean. That's why I dedicated myself to completing all the levels. Your game isn't tedious; it's very easy to control and not overwhelming. I don't know if you calculated everything to make it psychologically appealing, but I loved it and had a great time. So far, it's the first game that has brightened my night! I hope to find another game like it. xD

d-beezee: Lovely cozy game! Very simple loop yet satisfying. Appreciated the level editor!

Coreylr197: seems like this would make a pretty mindless mobile game. not a particularly hard game, so didn't feel the need to go through all the levels, but controls felt good and the game looks clean, so good job!

Reit Games: A lot of levels, and with increasingly higher difficulty. The lo-fi music creates a relaxing vibe while solving puzzles. I’m happy we’re able to skip some levels to see how difficult it can get. I wasn’t able to complete level 100.

Borna: Very interesting and fun cog-based puzzle game! Somewhat similar to mine. Great work, I enjoyed the variety of levels 🙂

W4hhaab: Very good game, I like that it is physic based. And the level design makes you think, it’s cool

Kur0Nek0: This is the game i played the longest amongst the submission! 5/5 game for sure. Love everything about this game!

unique chars: Cool game! I like the ease, clarity and interest of this game, it's addictive :). I think it would be even more fun to have a time of passing each level, as well as the time of passing other players, competing is always fun :). It was fun, congratulations!

RodrigoRRg: This was so addicting. I played 60 levels of this, and I think I'd keep going if I had it on my phone. Levels were challenging but intuitive, the music was chill, and it was just overall a good time. Loved it!

amox ofisal: I loved the idea of adding physics to the gears; I think it would be a good mobile game, especially with the beautifully calming music. Excellent work!

Stiggstogg: Very cool game. It is simple (in a positive way) but very chill. The music also perfectly adds to the vibe. I would have no idea on how to build something like that :D. Also very impressive that you were able to add an editor and that many levels. Everything in 13kB. Maybe a functionality to make the game scale would be cool, as on my large desktop computer screen it was a bit small. Congratulations to this very cool game!

smdrr11037: I played through 32 levels in one sitting—it’s the kind of game that just keeps you hooked. The gameplay fits the game's mechanical theme perfectly. With the smaller gears, the challenge lies in ensuring they connect with the target gear; for the larger ones, you have to make sure they actually fit within the confines of the screen. All in all, it’s a highly enjoyable little puzzle game—and surprisingly, there is a massive number of levels to play through!

const346: I completed 36 levels! I found the game's difficulty to be too low at the beginning and it increased very slowly, but overall it was very addictive and relaxing. Thanks a lot!

Unhinged Gekko Studios: Super fun game. Ive been playing on my phone for almost 45 mins and realised I should leave a rating.

jefukuri: Cog-wsome game! I like the drop mechanic - it is a unique idea in a cog game. Keep working on level design - I bet you could come up with some pretty cool puzzles with this system.

tatta: I saw this on X and was really curious about it! It’s simple, but it’s full of potential. I had a lot of fun! (ツ)ノ

Sharang Pai: simple but addictive puzzler. would love a few lesser levels but more variety of scaling at the beginning but thats probably just because i play and build alot of these 2D puzzlers. had fun!

Valion Lockhart: COGS keeps things simple and focused. The visuals aren't flashy, but they clearly communicate everything you need. The lo-fi soundtrack is perfectly chill — exactly what you want for a puzzle game you might spend a while on. The level design is strong throughout, and let's be real: creating 150 levels for a game jam is an impressive feat on its own. My only quality-of-life wishes are hotkeys for selecting different cog sizes and an undo button for when you place something wrong. Small additions, but they'd make the experience feel much smoother. Overall, a very well executed puzzle game.

DerBenniBanni: Ah, finally another js13k entry in the jam! (I wish there would be more. Maybe End3r should just add it as challenge without prices "for fame only". 😸) I love the simplicity and was hooked for 32 levels. I think I'll come back to this game. The music ist also great. Great job

Dashing Strike: I came for the cogs, stayed for the cog-puns. I felt difficulty ramped up a little too slowly, I almost stopped playing pretty early, as the first 20 puzzles were basically just 1 of 2 things (either - just place a straight line, or just pack tightly) with no strategy required. Levels definitely got interesting beyond there. I appreciate the level selector and marking where new mechanics are unlocked, that's great for getting a better feel for the game! I wished I had an easier way to undo (a hotkey, perhaps), as I often found myself wanting to try re-placing a single cog a number of times to see if it'll line up... Music was nice and didn't get in the way. Well done!

kerolis games: Beautiful game

JADU: Very interesting game! fun to play

aksommerville: Simple and pleasant. I can’t believe you packed that nice music, 150 (!) levels, and all the rest in just 12 kb, super impressive!

Petrixx1: Very interesting game! It's really good to relax.

Faizan al reeh: Love the concept :D

KorHosik: A very nice game. It seems too easy at first but its true potential is revealed when new mechanics are unlocked. I would love to see original levels of your own instead of "just" a true remake of an existing game, but very nice work to make it complete in less than 13 days!

Ken_Coeus: A straight forward and rewarding game! I loved the levels where you need to handle the limited space you have while only having large cumbersome cogs, finally finding the right location makes for a satisfying solve.

StiggStogg on X:





Results

Not great. 127th for COGS, 455th for Word Games. No challenge prizes. It happens. And it's getting harder to compete against the quality and quantity of AI games in the jam, I guess.



Conclusion

Nice jam! No regrets.

13 days is a bit short, and the lack of 13kb challenge is a bummer, but I heard it will be reinstated newt year.

I'm happy about the editor (that didn't exist in the original) and the 150 levels (that I managed to remake and sometimes enhance).

If I had thought about it and/or had enough time, I would have made the canvas bigger (320x450 is small and blurry on modern screens), added sound effects, created more original levels, and added more "wow effect" (with particle effects and things that pop out of the screen. I'll try that newt time)

Cheers!

Xem