top of page

Devlog #1 — Laying the Foundation: Game Concept, Design & Early Challenges

  • Writer: Saif Khan
    Saif Khan
  • Mar 12, 2025
  • 2 min read

Updated: Aug 8, 2025

Working Title: Fractured Reflections (not confirmed yet)

Hey everyone! 👋

Welcome to the very first devlog of my upcoming puzzle game project, currently going by the working title Fractured Reflections (still open for name ideas!). I’m excited to share the journey with you as I build this from scratch — tackling design ideas, technical hurdles, and everything in between. As a generalist game developer, I wear many hats: coder, designer, artist (to some extent), and sometimes even project manager. This means I get to experience every part of the game’s creation firsthand — which is both challenging and incredibly rewarding.

🎮 The Game Idea & Design Philosophy

At its core, this game is a roguelike puzzle adventure. You’ll navigate through shifting worlds filled with unique tile types and mechanics that challenge your problem-solving skills. A twist? The game features a persistent “boss” that travels between these worlds, actively working against your progress — taunting you and reacting to your moves. This adds a layer of tension and urgency to each puzzle run.

I want players to feel a balance between strategy, exploration, and adaptability. Each world introduces new puzzle tiles with different behaviors — like elevated tiles, teleporters, and breakable platforms — pushing players to constantly rethink their approach.

⚙️ Core Mechanics Under the Hood

Right now, I’m working on the Puzzle Grid system — the heart of the gameplay. It’s a grid-based layout where different tile types spawn dynamically, with their own unique properties. One early challenge I encountered was designing a flexible grid system that can handle multiple tile types, dynamic spawning, and interactions, all while maintaining performance and clean code architecture.

I opted for a modular design using ScriptableObjects to define tile properties and a robust PuzzleGrid utility to manage tile neighbors and grid positions. This makes it easier to expand with new tile types down the line without massive rewrites.

🚧 Challenges & Lessons Learned

One of the biggest hurdles so far has been mapping tile spawn positions consistently between world space and grid coordinates — especially when generating tiles randomly but ensuring no overlaps or invalid placements. Managing the difference between Vector3 world positions and Vector2Int grid indices took a bit of trial and error.

Also, balancing code flexibility with simplicity is an ongoing process. As a solo dev, I have to write code that is easy to maintain and extend, while not getting bogged down in overengineering.

🔮 What’s Next?

The immediate next steps involve polishing the spawning system, integrating tile interactions like swapping and dissolving, and building out the UI for player input and feedback.

Eventually, I want to layer in the roguelike progression elements — like world changes, boss behaviors, and player choices between runs.

Thanks for reading this first devlog! I’m looking forward to sharing more about the game’s evolving mechanics, art, and design in future posts. If you have any questions or suggestions, feel free to drop them below.

Until next time, keep puzzling! 🧩

— Saif



Comments


bottom of page