Umaiit

Ludum Dare 59

Notgate - A Sokoban-like Puzzle Game Made in C!

Hi everyone! This is my first time participating in Ludum Dare, and I'm excited to share my game with you!

About the Game: Notgate

Notgate is a puzzle game built on the classic "Sokoban" (push-the-box) mechanic. The core idea is simple: activate signal sources to power portals and step through them to reach the next level. But there's a twist! Beyond basic sources and portals, I've added: + Repeaters:​ Activated by a signal to pass it along. + The "NOT Gate" Source:​ This is the most interesting part! It behaves opposite to normal logic—it can activate objects when it's OFF, but stops working when it's ON. The interaction between the NOT gate and other objects created some emergent puzzles that even surprised me during development! commands.gif

Tech Stack (The Nerd Stuff)

I wanted to challenge myself, so the entire game is written in pure C. Here are the tools I used: + Graphics & Framework:​ raylib + ECS:​ My own custom ECS template + Art:​ aseprite + SFX:​ bxfr + Music:​ LMMS & Audacity

Features & Quality of Life

Since this is a puzzle game, I added some features to help players (and myself during debugging!): Hold 'Z' to Undo:​ Quickly reverse your moves if you make a mistake. In-game Console Commands: \xx(e.g., ) to jump to a specific level. \solveto check if the current puzzle state is solvable. Custom Levels:​ The game reads from assets/maps/mapxx.txt. You can add your own maps or modify existing ones! commands.gif

Play Now!

👉 Game Link:​ [https://ldjam.com/events/ludum-dare/59/notgate]

👉 Source Code:​ [https://github.com/TakunMaii/Notgate]

Note on Versions:​ The web version works, but the compiled downloadable version has shaders enabled for better visual effects. If you want the best experience (or want to mod the levels), I recommend downloading the build!

This was a brutal but incredibly fun 48-hour solo journey. I hope you enjoy playing Notgate as much as I enjoyed making it. Let me know what you think in the comments! Cheers!