r/freegames

▲ 3 r/freegames+3 crossposts

Months ago I downloaded the top liquid sort games and quit all of them within about 20 minutes.

Not because the puzzles were hard but because everything around them felt off. Constant ads, interruptions, weird difficulty spikes designed to force hint purchases, UI that hasn't changed much since 2018.

So I set out to build one the way I actually wanted it to feel.

Pigment Pour is an art-themed liquid sort where you restore real paintings as you solve puzzles. The main things I focused on:

  • No forced ads. Ever. Hints and skips are available through in-game currency or a single optional ad. No "watch 5 ads to continue" walls.
  • Every level is hand-built and tested. I wrote a solver that evaluates hundreds of thousands of board states per level, then tuned each one manually. 1000 levels, all curated.
  • Difficulty that ramps without cheap tricks. No fake unsolvable states to sell you power-ups.
  • Progression tied to restoring paintings like Starry Night, Girl with a Pearl Earring, The Great Wave, instead of just clearing levels.

On the visual side, I spent way too much time making the liquid feel physical instead of flat colors. Curved surfaces, separation between layers, highlights. Probably nobody notices but me, ha.

One unexpected part: I added some lightweight telemetry (no personal data, just tied to test devices only) to see how people actually play. It's been revealing.

  • My brother has hit 400+ dead-end states across 555 levels and refuses to use a single hint. At 3 AM.
  • My nephew has zero undos across 144+ levels. Every level 3-starred on the first try.
  • My daughter told me she's "around level 9." She's stuck on level 12, I know, Eve... lol

I'm curious what people here think makes these kinds of puzzle games feel fair vs. manipulative. That line seems surprisingly easy to cross, and I'm still finding it.

Android: https://play.google.com/store/apps/details?id=com.nobullgames.pigmentpour

u/NoBullGames — 4 days ago
▲ 46 r/freegames+3 crossposts

Free relaxing, platformer on Steam. Beautiful music, and great for relieving stress.

A few months ago, I watched a Top 10 video of free platformers on Steam, and this one caught my inters so I added it to my library and it was sitting there for a while. A few days ago, my other games weren’t loading, so I looked through my library, and realized I never played this one and it looked cool. I booted it up, and it was beautiful. For a pixel art game, it has simple, yet amazing controls, phenomenal music that calms, and de-stresses, and is very chill. I sat back today, put on my noise canceling headphones, grabbed my controller and played it some more. When I was playing, I caught myself shedding a tear, which never happens. This is a beautiful game. Would recommend it.

store.steampowered.com
u/ConquerorJoe — 4 days ago
▲ 10 r/freegames+4 crossposts

Dugouts & Dragons - A football deckbuilder with D20 dice rolls.

Hi r/WebGames! I'm a solo dev and I've been working on Dugouts & Dragons for over a year now. It's a "Fantasy Football" game in the literal sense - deckbuilding tactics meets D20 dice rolls with dragons and wizards playing football.

I've just pushed several updates recently which add add features like:

  • Assistant Manager: Toggle Auto-Sim to watch the AI play while you learn the mechanics.
  • Boss Teams: Face off against the "66 Lions" and Roman Gods in the new endgame.
  • Smart Sorting: The cards you need will be most accessible during a match.
  • Improved difficulty: I've ironed out some lulls in the leagues where it could get too easy, or spikes where it would get too difficult. It should be a fun challenge throughout.

It’s free, mobile-friendly, and I’m really looking for feedback on the new difficulty spikes in the Welsh and English leagues!

Play here: https://alienheadwars.itch.io/dugouts-and-dragons

alienheadwars.itch.io
u/AlienHeadwars — 6 days ago
▲ 38 r/freegames+8 crossposts

Bonjour r/francophonie,

Après avoir beaucoup trop poncé les jeux quotidiens type Wordle, Lodle ou Pokedle j’ai fini par développer le mien : un jeu de géographie quotidien un peu plus nerdy 😄

Le principe :
Chaque jour, il faut trouver le bon pays parmi 7 propositions à travers 4 modes de jeu :

  • MAXIMUM
  • MINIMUM
  • PROXIMITÉ
  • IMPOSTEUR

Les critères changent chaque jour :
population, superficie, densité, couverture forestière, espérance de vie, médecins par habitant, PIB/habitant, etc.

Le projet a énormément évolué depuis les premières versions. J’ai réécrit, supprimé, simplifié et rétropédalé sur à peu près toutes mes idées initiales à un moment ou un autre 😅

Entre les erreurs d’architecture, les fausses bonnes idées et les retours des proches, ça a été un très bon terrain d’apprentissage.

C’est de loin mon projet perso le plus abouti jusqu’ici, même s’il reste encore plein de choses à améliorer.

Si certains veulent tester le jeu du jour ou me faire des retours, ça me ferait super plaisir 👇

https://terraequest.com/

u/Reveur-petille — 8 days ago
▲ 10 r/freegames+6 crossposts

I built Cortex — a daily brain training

Hi everyone! I’m an independent developer, and I just released Cortex: Daily Brain Puzzles.

​I wanted to create something that wasn’t just a "casual" game but a genuine daily challenge for people who love logic, math, and deduction.

​What’s inside?

​6 Unique Daily Modes: Including a 6-digit code-breaking challenge (The Vault), Venn diagram logic (Venn), and mathematical strategy (Complex).

​Minimalist Design: A sleek, dark-mode interface built for zero-distraction focus.

​I'm really looking for feedback on the difficulty curve—some users find the "Vault" mode particularly tough!

​Play Store Link: https://play.google.com/store/apps/details?id=com.dots.brainage.cortex

​I'll be around to answer any questions about the dev process or the puzzle logic!

u/Big-Laugh-404 — 6 days ago
▲ 66 r/freegames+1 crossposts

I built a performant Isometric Game Engine using 100% Pure Kotlin and Compose

About 5 months ago, I shared a technical experiment here. I was building an isometric RPG called Adventurers Guild using Pure Kotlin and Jetpack Compose instead of a traditional game engine. Back then, I was testing a custom coroutine loop and viewport culling to hold 60fps with 3000 entities on a Canvas.

Since that post, the game has crossed 4000 downloads. This custom Kotlin engine was recently shortlisted for the JetBrains Golden Kodee Community Award for Creativity. While I did not make it to the final round, getting that recognition from the Kotlin community as a solo developer was a significant milestone.

Writing a game engine natively in Kotlin means you have to fiercely protect the frame budget and minimize Garbage Collection pauses. I wanted to share the technical solutions I used to keep the Kotlin game loop smooth while scaling the simulation to handle a massive item database and complex AI.

1. The Coroutine Game Loop and Task Amortization The engine is single threaded and driven by a Coroutine loop using withFrameMillis to calculate delta time. The engine currently ticks over 28 distinct systems, handling everything from A Star Pathfinding to the Combat Pipeline.

Running 28 systems over thousands of entities every single frame is a recipe for GC churn and frame drops. To fix this, I implemented a tiered System Manager. Logic is categorized by its necessity for visual fluidity:

  • Fast Systems (60 FPS): Essential movement and frame by frame Canvas rendering.
  • Medium Systems (30 FPS): Combat calculations, damage application, and status effect updates.
  • Slow Systems (10 FPS): Heavy background tasks like A Star pathfinding and target selection AI.

Slicing these tasks over different frames prevents the Kotlin logic calculations from blocking the Compose composition phase.

2. Idiomatic ECS and State Mapping Managing game state in Compose requires bridging raw ECS data to stable UI states. Entities are simple IDs, and Components are raw Kotlin data classes. The systems iterate over these components to mutate state. Connecting this high frequency ECS to the Compose UI relies on a Mapper pattern. Every frame, the engine maps the relevant raw Components into a stable UiModel. Relying on MutableMap for O(1) time complexity lookups has been critical to prevent the main thread from choking when updating multiple entities at once.

3. The Optimization Triangle: CPU vs RAM vs GPU The biggest lesson over the last 5 months was managing the trade offs between hardware resources:

  • Trading RAM for GPU Processing: I added 40 new monster variants. To avoid loading 40 unique sprite sheets, I used Compose ColorFilter techniques. For monsters with high detail, I load a single base asset and mathematically rotate the hue using a ColorMatrix at runtime. Because these operations are hardware accelerated, the math is offloaded to the GPU. This cut RAM usage by 50 percent while keeping the CPU free.
  • Trading CPU for RAM (Caching): Dynamic shadows change angle and length based on the in game time. Instead of calculating this geometry every frame, the engine pre calculates the shadow states for the day and caches them. I spend a small amount of RAM to buy back crucial CPU frame time.

4. Micro Optimizations in the Hot Path When writing systems that execute thousands of times a second in Kotlin, you have to respect CPU clock cycles. I learned that operations like addition and multiplication are significantly faster for a CPU to process than division or calculating square roots. To optimize the hot path, I removed division where possible, opting to multiply by fractions instead. I also rely strictly on squared distance comparisons to avoid expensive square root calculations in the pathfinding logic.

5. Expanding the RPG Logic The simulation has scaled heavily since the initial experiment:

  • Hero Classes: Heroes have specific classes that alter their base stats, scaling performance based on equipped gear.
  • Personality AI: Heroes carry flags that alter their ECS logic. Careful heroes query the health of teammates and prioritize support over loot, while Reckless heroes ignore teammate health and stay in a combat state until the mob is cleared.

Building this engine and expanding the game from scratch has been a massive learning experience. Seeing the performance hold up on older devices makes the effort worth it.

I am happy to answer any questions about writing game loops with Coroutines, managing ECS state in Compose, or the DrawScope art workflow.

If you are curious to see how this custom Kotlin engine handles these 28 systems in production, you can check it out on the Play Store: Adventurers Guild

I am a solo dev from Kerala. Hope this technical breakdown was helpful.

play.google.com
u/iOSHades — 9 days ago
▲ 14 r/freegames+2 crossposts

Senet - Play the Ancient Egyptian Board Game Online

I've been working on this for the past few days and I think its almost ready for a proper release... I would love any bug reports, feedback or suggestions, but hopefully it works nicely for everyone. :)

I'm thinking I will put it on itch.io and maybe a few other places.

senet.redmarmosetstudios.com
u/Spirited_Tie_3473 — 12 days ago

Chaos Arena - tacticle Beyblade like Action Arcade

Game Title: Chaos Arena

Playable Link:
Choas Arena on CrazyGames

Platform:
PC Browser / Web Game, Mobile Web game and on CrazyGames Mobile app

Description:

Pull. Launch. CHAOS.

Fling your spinner into the arena with one simple swipe and watch the mayhem unfold! Smash into enemies, bounce off walls, and knock out every opponent to claim victory.

Easy to pick up, impossible to put down. Jump in, start flinging, and let the chaos begin.

Features:

- 30 - 45 seconds matches
- 100+ campaign stages
- 6 unique arenas
- Powerups during battle
- Upgrade system
- 45+ skins

Free to Play Status:
[x] Free to play

Involvement:
I am the solo developer and creator of Chaos Arena. I welcome any feedback, especially what build you prefer and which stage you have reached in my Arena Battler. I heard stage 10 is too hard for some people.

crazygames.com
u/CreativeProblem7803 — 14 days ago