Skip to main content
GameDev.net gamedev.net
🔒 Locked

Advice on level design workflow for isometric RPG (C++ & Raylib)

Started by troffeelituf Aug 18, 2025 at 1:09 PM 3 replies 1.5k views
Original Post
troffeelituf
troffeelituf

Hello everyone,

I’m making an isometric RPG game using C++ and Raylib.
I’ve been working on it for about 4 months now, and most of that time has gone into writing my own little engine/framework around Raylib.

Since I’m new to game development (but not programming), I’m a bit unsure about some technical decisions I need to make. Right now, I’m trying to figure out a good level design workflow.

Here’s what I have in mind: for each level, I design the map and entity textures in Blender, export them as PNGs, then design the level itself somewhere, and finally load it into the code. I’ve thought about several ways to do this. I’m leaning toward one, but I’d like your opinions:

  • Use Blender as the level editor.
    Blender’s editor is essentially like a game engine editor, and since I’m designing my maps and models there anyway, I could theoretically assemble the level directly in Blender, then export a config file using the Python API. The problem is, I’m not sure if this is practical (I’m new to Blender), and since my game is 2D, designing levels in 3D means I wouldn’t see the exact end result while working, which could lead to inaccuracies.
  • Create a minimal level editor using my game code.
    This way, the process would be more accurate and tailored to the game itself. The editor could export JSON or binary files, which I’d then load in the game.
  • Build a custom editor with Lua as the “source of truth.”
    This is the option I’m leaning toward. The idea is to have a Lua file for each level, with bidirectional synchronization between the editor and the Lua file(s). Lua would act kind of like Unity’s property editor: easy to read, write, and tweak directly in code (which I generally prefer over GUIs). For the release version of the game, I’m considering generating a C++ file from the Lua data, since I don’t want the final build to read levels directly from Lua, because performance is very important to me.

My concern is that this last option excites me (because I enjoy building tools like this), but that also makes me worry I might be biased. I’m not sure if it’s the best choice in terms of time investment and technical soundness.

Sorry this turned out a bit long. I’d really appreciate your comments and advice!

frob
frob

troffeelituf said:
I’m not sure if it’s the best choice in terms of time investment and technical soundness.

It isn't.

Time-wise you are re-inventing the wheel. You wrote that you are 4 months into something that major engines can do. It takes adjust some settings from their defaults but orthographic views are supported by Unreal and Unity both, just follow a few tutorials, or plugins like Paper2D. Others like Godot, GameMaker Studio, RPG Maker, or Construct do what you describe out of the box.

The data formats like PNG are great for storage size and intermediate work but inefficient for the final game because they must be decoded and processed before getting uploaded to the graphics card, whereas ASTC, DDS/DXTn/S3DC, and similar formats are supported directly by the graphics cards.

troffeelituf said:
Sorry this turned out a bit long.

These are discussion forums, not the Twitterverse. Write as much as you need to convey your ideas.

troffeelituf said:
My concern is that this last option excites me (because I enjoy building tools like this)

That's one of the two good reasons to do what you're doing.

The first is learning. What you're doing ends up teaching you how systems work. They're much simpler than what modern large systems do, but they cover the essentials.

The second is the joy of doing it. Lots of people build their own projects of all types knowing full well it will never be cutting edge, will never push the limits, and may only work with the most superficial workloads. They can be inefficient, buggy, and error-prone, but the person continues because they enjoy doing it.

troffeelituf
troffeelituf

@undefined Yes, the learning aspect is important to me. I initially started my journey with Unreal Engine; I watched some tutorials and learned the basics of making a game with it, but then I got frustrated that I didn’t really understand how it works under the hood, since I plan to become a professional in this field eventually. That’s when I decided to go a bit lower level.

Thank you for your comment; I really appreciate it.

epiccc
epiccc

My suggestion: don't lock yourself too early. Try making one tiny level with each workflow (Blender, custom editor, Lua files) and see which one is least painful. The “fun” option isn't always the “fast” one, but sometimes it is, because you'll actually use it.

developing something to make life fun… tag game

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.