
Overview
Falling Block Jam 2025
See all the entries for that jam
. Hopefully, I'll know if this is the engine for me afterwards. And I do know, now. It's definitely not for me and is getting frame 1 uninstalled.
See all the entries for that jam
- Straight-forward coding syntaxThe language becomes something easy to guess. Stuff like "Draw_text" to create some text on the screen, or "draw_set_color" to set the color of text.
- Good documentation
- Good official beginner tutorials
- In-engine sprite maker
- Bundled VFX for prototypingYou can create simple effects with a single line of code. Great for prototyping different states/stats without mcuh work.
- Basic events all set upEvents like "Create", "Destroyed", "Clean Up", and "Draw GUI" make for a good starting point in organizing events on an object.
- Persistence and collisions are simple
- Messy and crowded interface
- Frustrating laptop navigationThere's a button to turn off Laptop navigation, but it's still not enough. You'll find yourself scrolling and not moving cause you're in a code box. The mix of a free workspace with node-like interfaces and the coding space itself is frustrating.
- Art & animation tools are primitiveThese tools are probably good for most cases, and definitely for beginners. But, as someone who thrives in art and animation software, they are too incompetent and don't meet expectations.
- Requires Opera account to export
- Can't create custom events
- Layer order gets confusingVFX would sometimes draw above or below sprites, ignoring the _above or _below commands I gave it. It took a while to figure out how Draw and Draw GUI differed. Overall, the layer order felt difficult to manage or debug.
- QOL features just not greatFor example, creating children of objects requires manually selecting the parent, rather than right click -> Create Child.
Lessons for the newbies
- "Scripts" are GameMaker's "functions" - use these often
- Select your target platform before doing anything
- CMD+K auto-comments code. ///@descriptionlets you add names to alarmsGame Maker Manual: JSDoc Script Comments
- You cannot export for free on Mac, but you can send the file to a PC to do it there
- Put in audio loud - you can mix down, but can't mix it up
- Take advantage of the spritemaker and built-in VFX for prototyping
Day by Day...
Day 1 (Sep 5): Asteroids
official beginner tutorial
From the GameMaker Youtube channel
. The bundled template project and side-by-side of GML Visual and Code makes for an impressive starting point to a first project. Although, the tutorials often told you what to do and not any coding philosophy behind why. I had many questions, but concluded that it's done this way because Game Maker has a lot of guardrails set up for simple games. Why do we only get 11 Alarms? Why can't I trigger them on the same frame it's called (it always needs 1 frame)? Why check for buttons on Step instead of on Key Press?
From the GameMaker Youtube channel

Despite what it may seem, this was absolutely my intention.
Day 2–4: Improvising Tetris
ds_grids
which I assumed would be perfect. I ran into a wall quick, when my lack of Game Maker knowledge caught up. I was able to spawn, drop, and destroy a block and spit out the coordinates on the grid, but I couldn't figure out how to generate the tetromino shapes, let alone have them rotate correctly without going down a rabbit hole.Official GameMaker documentation on ds_grids

Day 5: Tetris
written guide on making Tetris with GML Visual
A very detailed step-by-step from Yellow After Life
, but in GML Code. I took some liberties with the logic and set up variables knowing I'd need to build on them later. Although I didn't like this hard-coded method of making Tetris (not adhering to a grid but manually displacing 32 pixels), it was working and I had less than two weeks to hit the deadline.
A very detailed step-by-step from Yellow After Life

Day 6–8: My Tetris

Day 11: Better Tetris & Game Loop
in-game clock
) would send you into another room at the end of the day. It would also queue a game manager to cache your score for persistence - which - was surprisingly easy to set up with a click of a button. This room-by-room travel with a persistence boole told me Game Maker was really built for 2D RPGs and platformers. Code straight from the forums. Modulo is great.
dialogue
From official GameMaker channel
via tutorial which taught me about Scripts. I wish I knew this earlier because it's exactly what I've wanted out of Alarms. I altered the tutorial to allow for creating an instance Object at the end of a dialogue tree, allowing me to daisy chain dialogue and events together (dialogue → score report → dialogue → start next day).
sequences
From GameMakerStation - Mathroo
. I love setting keyframes and tweaking curves, but Game Maker's sequencer tool doesn't make it easy (you must "convert" between keyframes or curves, and it deletes your curves in that conversion). The sequencer is best if relying on pre-set curves, and authoring simple movement. It's limited in its offers (no alpha control) and QOL (can't split X and Y apart in transform/scale). Its Moments system looked powerful, although I didn't use it. A too primitive sequencer tool is what turned me off of this engine, since scripted animations and motion graphics were in my wheelhouse. I struggled with triggering animations on existing objects (i.e. play an animation on THIS thing on the screen). So, if I wanted The Boss to exit the scene, it would first be destroyed and replaced with a sequence of his sprite exiting.
Day 12: Art Pass


Day 13–14: Polish & Sound
screenshake FX layer
Simple tutorial on setting this up and enabling it via Code
and a script that set it to visible for x amount of frames. This let me call ScreenShake() anywhere. There were definitely more complex approaches, but this was good enough. It would also set off some prop animations: the held tetromino and bell would hop, and the sign would swing. These were done via 
Simple tutorial on setting this up and enabling it via Code
lerp (linear interpolation) logic
"What is Lerp" tutorial from GameMakerStation - Matharoo
in code.
background tint script (layer_background_blend)
that let me color the scene when the store opened, closed, or when the game was over.Link to the Game Maker Manual on setting background blends. I copied the code straight from this page.
Day 15: Music & Tutorials
