Untitled RPG Project

Show off your games, demos and other (playable) creations.
User avatar
Hugues Ross
Citizen
Posts: 87
Joined: Fri Oct 22, 2021 9:18 pm
Location: Quebec
Contact:

Re: Untitled RPG Project

Post by Hugues Ross »

zingo wrote: Sun Jan 21, 2024 5:15 am I started making a "map editor" at one point in hopes of streamlining/automating the process as much as possible, but then realized that I could design areas/levels just as fast in an image editor using a few layers and a grid with marked coordinants, and then code all the actual data later.
Ah yes, this is a solid approach for simple maps too! I had an abandoned love project that was doing that a few years back: https://huguesross.net/2021/02/atlantis

Currently the map editor is still in progress, I got the first pass on tile and trigger volume editing done and started on entities before the first of the 'medically-induced breaks' I alluded to last month hit...for obvious reasons that'll be on hold for a few weeks, but in the meantime I'm doing a little more work on the script for chapter 1 via dictation.

Beyond that, there's still a little bit of work to do before the first draft version of the editor is production-ready but I don't think it'll take super long either.

As for the fun...I'm looking forward to making full-blown segments of the game without constantly diving into the code. It'll be nice seeing the plans come together into a real game :nyu:
zingo
Prole
Posts: 43
Joined: Mon Jan 16, 2023 7:34 am

Re: Untitled RPG Project

Post by zingo »

Well...with any luck you won't have anymore serious "medically-induced breaks".

Even a "small" RPG is a beast to tackle, because there are so many seperate parts that need to ultimately mesh together into a cohesive final product...and that's just the game mechanics, so I greatly admire your perseverance ;)

On a side note...as you suggested, I actually decided to use "sprite batches" for tiles, because those are much more efficient, and only require a single draw call. However, the table for each map now also needs to include the X and Y locations of all the tiles (as well as a reference to the image atlas,) so there's a bit more data to keep track of than just the quad number, although the payoff is worth it.

Anyway...everything should go a lot smoother once you get into the more interesting aspects, such as story, characters, art, music, etc. You already seem to have a solid idea for all of that, so I'm really looking forward to eventually seeing what this is all about :ultrahappy:

Onto another tangent...one of my personal favorite RPGs of all time is Final Fantasy 6 for either the SNES or PS1, because it was a sort of "steam-punk" departure from the traditional "medieval" setting, and for me, became the "standard" for what I expected for future titles in that series (and RPGs in general). Also, Kefka was one of the most entertaining villians I can recall from the 16-bit era, and I'll never forget the literal "world shattering" last portion.

Good luck. Stay healthy, and keep at it. :cool:
User avatar
Hugues Ross
Citizen
Posts: 87
Joined: Fri Oct 22, 2021 9:18 pm
Location: Quebec
Contact:

Re: Untitled RPG Project

Post by Hugues Ross »

Alright, it has been a few months so let’s get a little update post out. This is sadly gonna be another one of those slim updates, but hopefully we’ll be out of those soon enough. In the meantime, let’s talk level editor.

Doneish

At the end of last year, I had started on the level editor. And now, I can announce that it’s…erm…mostly done. Pretty much all of the basic tools, tile editing, object & trigger editing, undo/redo, etc. work as expected. But as is customary for most software, the devil’s in the details. There are lots of little things to fix and adjust, particularly since I had to update the game’s map format to make it all work.

Nevertheless, I could probably take a little video showing off what’s there. I’m trying to avoid using my hand while I rest (all of of the text I’ve written recently is dictated, not typed), but hopefully I can put out a mini-update in a couple weeks showing how it all works. For now, you’ll have to make do with a screenshot:
Image

About That Hand…
One of the perennial problems with this project has been my health, particularly various hand & wrist problems. I went in and got surgery on one of my wrists in January, which should ultimately be a boon but unfortunately also means post-op. I’ve previously alluded to some expected breaks this year, this is the cause of those. As a result of that, and a slightly rocky recovery where I tried going back to work too soon, there have been long periods were I couldn’t do much. Things will hopefully have cleared up (at least for the first wrist) on that front by the time I make my next update, but in the meantime it’s obviously delaying things a lot.

And of course, the editor itself doesn’t have a voice interface yet. That was planned for future dev, but sadly I could really use it now!

In the meantime, I’ve been keeping myself busy/entertained with voice-art. It’s mostly off-topic, but I did scrape together a few icons for assets that I can add to the editor later:
02-26-big.png
02-26-big.png (3.09 KiB) Viewed 2277 times
Each icon represents an asset type but exists in the game right now, though some of them are a little convoluted. If you're bored of waiting for me to make progress, why not try to guess what they are?

In other news, I also figured out a title for this game! The RPG technically isn’t untitled anymore! But I’m a terrible drama goblin, so I’ll hold off on actually revealing the new name until I’ve finished this long ongoing process of restructuring the project. You’ll just have to sit tight until then :D
User avatar
Hugues Ross
Citizen
Posts: 87
Joined: Fri Oct 22, 2021 9:18 pm
Location: Quebec
Contact:

Re: Untitled RPG Project

Post by Hugues Ross »

For those wondering "why did he post now instead of waiting to recover fully?" it's stupid.
I thought the date this thread started was the end of Feb/start of March. It was, in fact, the end of March. :?
User avatar
Hugues Ross
Citizen
Posts: 87
Joined: Fri Oct 22, 2021 9:18 pm
Location: Quebec
Contact:

Re: Untitled RPG Project

Post by Hugues Ross »

Despite my continued inability to keep to a schedule, I’m still here and still working on this RPG. Or, uh… a tilemap editor for this RPG. But that’s done now, honest! Done-ish! Kinda!

Didn’t You Say Doneish Last Time

^^

More seriously, “done” is a difficult target to identify when it comes to games and software. Every time you look at a supposedly finished project, you find another spot that needs work. Sometimes, addressing that spot reveals larger problems that went unaccounted for–and that’s what happened here.

When I set out to make this thing back in November (ye gods, has it been 6 months?!), I made a checklist of all the things that needed to be present in order to support my one ‘finished’ map, on paper. I successfully did most of those things before my last update, with a few caveats:

Caveat 1: The tiles in the screenshot weren’t ‘real’

That’s not to say I faked the screenshot! I had the editor properly loading the old map, making it possible to view and edit stuff in it. But it wasn’t being converted to the new terrain system that would generate new tiles, instead using a hack to preserve the original tiles from Tiled through the map conversion process. That’s good for compatibility, but it also meant that I had not validated how well the map could be recreated using only new system.

Finishing the terrain rules for my test tileset was one of the remaining items on the list. And unfortunately, that included these things you may have heard of called stairs. We’ll get back to them later!

Caveat 2: The objects were also not quite ‘real’

Tiled has a nifty feature that lets you define and add arbitrary properties to objects. It’s not a good approach for making complex games, but I was using it for the sake of simplicity early on. Initially I was going to add this feature to the new editor, but I changed my mind. It would take a lot of time and effort to recreate this kinda bad way of working, so I changed my plans to include reworking actors with a more composition-based approach.

This will make it easier to build levels later, but also means that I can’t set up new actors the way that I used to in this new map editor. And a rework like this is a large undertaking, too large to embark on while still working in my map editor branch. In the meantime, I hard-coded a bunch of temporary object types in the editor so that I could load and edit the existing objects in my demo level. This is another fine temporary measure for viewing & editing existing data, but it’s one that can’t sustain itself forever.


To wrap it up–I had most of the to-do list handled, and took measures to continue supporting my old maps, but some blind spots remained. So why is the rest taking so long?

Big Problem 1: Autotiles
I have a confession to make. The tiles of my first map have seams at some of the corners. In fact, they have always had seams at some corners. This is because I’m lazy and can’t be bothered to make a million variations unless I have to.
Image

When I sat down to actually finish these terrain-based autotiles, I knew I had to finally tackle this problem. However, my wrists were still very screwed up and recovering…I’ve only really been back to something resembling ‘full form’ (and even that’s a bit of a stretch) for a couple weeks at the time of writing. I knew I didn’t have it in me to click a million times making repetitive permutations of tiles.

But Just Then, Ol’ Hugo Had A Terrible Idea
What if I thought…smaller? What if, instead of making zillions of tiles by rearranging bits and pieces of my existing ones, I had the computer do it? What if every tile in my map was several smaller tiles in a trench coat? What could possibly go wrong?

Literally nothing. It worked out great, that’s what we’re doing now, it kicks ass.

Still, it represented a major increase in scope. And more importantly, it became impossible to preserve the old map like I was doing before since tiles had…fundamentally stopped existing in their prior form. The new approach, which I’ll show in more detail later, requires a disconnect between the visuals of a tile and the gameplay properties. It makes sense if you think of it, if you’re drawing several miniature tiles in every ‘tile’ of your map then there’s no way to know which one represents the larger tile’s properties. I could’ve simply scaled the grid down, but leaving tiles at the same size greatly simplifies the gameplay code. And the terrain data in the new map format can easily dictate what a tile is for gameplay purposes so it was only an issue in my older maps


Then I found a second reason to ditch the old map:
Problem 2: Return To Stairs Hell

Here’s a funny story: Every tilemap I’ve made since the start of this project contains at least one critical problem with its physical structure, bar none.

I guess that wasn’t actually very funny, but it illustrates how hard it is to make these 3D-ish tilemaps in a program like Tiled.

Of note here are the stairs, specifically any vertical ones like these:
Image

That’s not stairs, that’s a wall. It looks a lot like stairs, but when you really sit down and diagram it out, it makes no sense. This doesn’t matter in a game with 2D physics, but it’s a huge deal in a game doing 3D stuff.

I spent a very long time mapping out how exactly these stairs would need to be structured as terrain in order to be physically viable. And maybe, just maybe, I lost my mind a few times:
Image



I was immediately forced to rewrite all of the staircase physics in the game. And I continued to lose my mind for a while:
Image

…but eventually the deed was done, and stairs work and they’re fine and I’m fine and I still haven’t written all of their tile connection edge-cases into the terrain rules because that’s just visuals and there’s like a million of them but for now I don’t care!

Where was I before I went into a staircase-induced fugue state? Right! I couldn’t keep using my old map, because it was structurally unsound to begin with. And so was every other test map I’d made to date. Cool! I’ll have to remake them. But am I forgetting something?

What Are Doors, Anyway? We Just Don’t Know
Before I could get to work remaking the levels, I still had a couple things in the tilemap that I couldn’t make. Doors (or more accurately, doorways) were the most obvious thing that needed work. But how?

Doorways have some funny properties. They connect to walls, but you can walk through them. They also generally appear in fixed sizes–You don’t usually streeeeetch a doorway into a different shape, it’s a fixed structure rather than a dynamic one. And yet, my only way to make maps (the terrain system) was dynamic in nature. I knew I’d need ways to make static structures eventually, but I had assumed during initial planning that it could be put off. Now that I could no longer preserve my old maps, it had to happen immediately.

Enter Stamps
This one also wasn’t that bad. I probably spent a week or so rotating ideas in my head until I had a design that seemed sound, then I sat down and made it happen. Stamps are a pretty simple concept in the new editor: They’re a pre-made arrangement of tiles (visuals and/or gameplay data) that you define in the tileset itself. Then, you can slap them down anywhere in the world and they merge with the tile data they cover but not the terrain information. This should make them ideal for a variety of things such as rocks, trees, doors, windows…really any scene element that’s static in nature and doesn’t fully define the terrain it’s attached to.

At this point, I realized that I could also ditch saving any real tile data in the maps I saved. Today, they just contain stamp & terrain data–when the map is loaded, that data lets it generate all the final tiles on the fly.

Problem 3: Ok, Now Change The Wallpaper
To my horror, working on stamps made me realize something else: How the hell am I gonna make trees work?

I’ve gone and ditched a lot of traditional tilemap concepts in this 6-month map editor project. Most notably, I replaced layers with a proper Z-axis: That’s how I do 3D tile connections with my terrain.

Now let’s talk about the elusive tree, never before seen in any of my maps. Trees have a base, a trunk, and a canopy. These need to draw in front of / behind the player and terrain. For the trunk and canopy, this is child’s play: Thanks to the Z-axis, tiles draw over objects when those tiles are closer to the camera. It’s simple!

But what about that base?
You see, I’ve been informed that trees have these funny lil squiggly guys called ‘roots’. They go into, and sometimes out of, the ground. In this new paradigm of tilemaps, these roots occupy the same space as the ground. They’ll still connect properly if I use a stamp for the tree, which I probably will. But that still implies integrating the ground tiles into the base of every tree, because there are no layers and those tiles overlap in 3D space. That’s…I mean, it’s not gonna work in the long-term. Having to carefully avoid using certain types of ground tiles near trees, or worse having to make multiple variations that connect to different types of ground, would extremely suck!

Now extrapolate that problem to every decoration in the game. Furniture? Windows? Banners? Animal pelt rugs? Fountains? Random piles of boxes? Those doorways from earlier? Every single thing that wasn’t closely tied to a particular type of terrain would require workarounds. Or I’d have to do the old NES thing where they all have black rectangles behind them to save on color-count.

You get the idea. So I had to go back and re-structure how the visual part of tiles worked in order to support overlapping ‘layers’ of those mini tiles inside of the big tiles. Here’s how it all comes together:
2024-05-17-untitled-rpg-devlog-11-5.png
2024-05-17-untitled-rpg-devlog-11-5.png (3.41 KiB) Viewed 34 times
The reality is a little more complex than that, but I could write a whole ‘nother post just about how tilemaps work. The important thing is that we’re finally done! Right?

But What About That Map Editor?
With that (and countless smaller issues) out of the way, we come to the moment of truth. I finally felt ready to sit down and remake those maps, so I popped open my editor and…it sucks to use.

I’m not surprised. It’s an early in-development tool, there’s obviously not going to be any quality of life features or polish, the design will need adjustments, etc. But I think the current state of the editor makes it very difficult to build anything large or complex, even when I have the blueprint in front of me:
  • It can be very difficult to tell where exactly you’re pointing at in 3D space. I tried to provide some helper features for this, like ‘vertical grid lines’ that appear above & below the cursor and highlighting the Z-level being edited by fading out the others, but it’s not enough.
  • It’s especially difficult to work when walls are obscuring parts of the area working on. There’s not really any way to hide them right now, which makes it very tempting not to put them in at all until the very end.
  • Speaking of walls, the terrain tools are really built around the idea that you’re going to fill in all of the ‘solid’ space with wall terrain. But that’s a lot of work, even with the ability to draw on multiple Z-levels at once, and it makes it hard to remove them later if you want to extend the floor. This is another area where not knowing where you are in 3D can work against you: You can visually line up two walls that don’t physically connect. It’s easy, I’ve made this mistake multiple times…
  • There are also no buttons to be had anywhere in the editor. This was fine at first, but we’ve hit a point where there are too many actions and not enough obvious keys for them. This means I wind up forgetting which key an action was bound to, slowing things down even more.
These are all problems that can be solved, but as it stands I feel like I’m not in a place where I can just jump into level design. If I can’t remake my existing maps without trouble, what chance do I have when it comes to fresh content?

This puts me in a strange position–between the unforeseen scope creep and major medical delays, I’m half a year into this editor project now. And while it basically checks all the boxes, it doesn’t feel like it’s meaningfully done. And yet, it’s blocking some major–and necessary–work such as revamping how actors are set up. The backlog is growing, even while I’ve taken a step backwards when it comes to game content and haven’t managed to…re-step it.

Sometimes, You’ve Got To Keep Moving
Despite the above, I think it’s time to wave the flag of victory, click the big ol’ Merge button in my git forge, and move on. I think solving everything is going to take a long time, and if I dedicate all of my energy to inching this through the last 5% or 10% we could be stuck in this position for months to come. Instead, I’m going to accept that the editor is still a bit of a mess, that I don’t have my maps remade (yet), and hack away at the remains on the side over a longer period of time.

This sort of scope monster is basically the reason I didn’t want to make a level editor, and only sat down to do it when it felt like I was out of options. Give me a few years and I’ll make you a fantastic level editor. But there won’t be a game attached if that happens! And when I say monster, let me be clear–this change weighs in at 5,600+ lines of code added and 650+ removed. It touches so much of the codebase at this point that trying to juggle it with other development tasks is a really bad idea. If I push the change and build over top of it, I can at least benefit from what’s there and make little improvements as I go…it’s not an approach that I could ever use at the office, but in solo-dev town it’s just fine. And as alluded to above, I do use source control. I can grab old versions of maps whenever I want, they’re not gone forever.

Let’s pivot to the future: What do I do after this? I have two plans for the rest of the year:

Plan 1
This one’s easy, and you may have guessed it already: I really want to get that actor stuff sorted. This change is tangential to the level editor, since creating and editing actors all happens in there. Thus, it gives me a very good excuse to start polishing the UI bits related to these tasks, which in turn should help alleviate one or two of the problems with the editor today. I have some other exciting surprises planned for that as well, stuff I started working on in the backend of the game as part of my current task but didn’t get a chance to properly finish.

Plan 2
What is this game going to look like? That’s a question I still can’t answer, despite taking a crack at some concepts last year. I’d really like to nail down a visual direction for the game this summer, now that my wrist is doing a little better. And while we’re at it, I have another editor-adjacent goal in store (how very convenient, it’s almost as if I’ve been planning this).

One aspect of exploring the game’s aesthetic has to be seeing what assets and finished scenes might actually look like. With that in mind, I want to produce a handful of “visual benchmark” maps using the new editor, both to see what the game’s maps might look like and to validate how easily the current map structure lets me make a variety of different environments. I’ve been working with this very basic and clean level design tileset, which means that the new approaches to building & rendering a map haven’t been tested with anything that looks like a real game asset. I’m expecting further issues and oversights to be highlighted by doing this, the same way I realized how much of an issue trees were going to become.


In the end, both of these threads of development ‘play nice’–they’re touching very different subjects from very different angles, so it should be possible to work on them sort-of concurrently. More importantly, they also meet at a single point: the level editor. This gives me an opportunity to continue iterating on this tool without halting the rest of the game’s development, as well as testing it in ways that haven’t been possible with my limited set of assets. I would be lying if I said I wasn’t nervous about knowingly pushing code that breaks some existing data, but in this case I think it’s the right call.
User avatar
Hugues Ross
Citizen
Posts: 87
Joined: Fri Oct 22, 2021 9:18 pm
Location: Quebec
Contact:

Re: Untitled RPG Project

Post by Hugues Ross »

One thing that bothers me about the past year of this thread is how it feels more and more like Blog 2 rather than a forums thread. I think a lot of that is my fault, falling into the trap of long-ass meandering posts that read more like a narrative to read than something to actually be talked about or responded to. But I really do appreciate anyone following my bumbling exploits, so today I am giving this thread a little more raison d'etre:

That's right, I am punishing you all for following the thread by making you read just a little more of my terrible writing! It's a bonus double-post!


Some stuff I didn't fit into the post above:
  • One of y'all has been gamedev penpal'ing with me via email for a while now. I'm leaving the name out for privacy, but you know who you are--I wanted to drop a thank-you in public so you know I really mean it.
  • On that note, I recently drew up a more detailed diagram of The Stairs Madness that led to the almost Dali-esque screenshot above for said penpal the other day, it didn't fit into the post but I figure it's worth sharing. If you're a freak like me who wants a 3D physical structure in your 2D top-down game: "It's dangerous to go alone. Take this."
    stairs_pls.png
    stairs_pls.png (3.8 KiB) Viewed 28 times
  • More specifically on the health-side of things--I still have somewhat screwy wrists, but I'm no longer actively recovering from an operation and the one I got done is showing some positive improvements. It will take time to see how much things improve and drawing is still quite rough (not to mention how rusty I am now), but I'm only using 1 wrist brace instead of 2 now!
  • I wasn't joking about that map systems deep-dive. I will genuinely sit down and bang that out sometime if someone wants to know more, I'm also willing to answer questions if y'all have any. I suspect it'll be hard to shut myself up once I get going tho so I tried not to overdo it for this last post
  • Oh right also the lack of video. Yeah, that. Mostly just because the old maps don't load so some parts of the editor are hard to showcase rn. I'll do a proper one later this year, hopefully
zingo
Prole
Posts: 43
Joined: Mon Jan 16, 2023 7:34 am

Re: Untitled RPG Project

Post by zingo »

Whew...what a beast of a post...and that's a good thing, because I was very curious about what's been going on with your project. It's great knowing that you're still hanging in there. Creating any kind of game solo is difficult, but an RPG is an endurance trial for sure.

In my opinion, RPGs (or even "Action Adventure" games like Zelda) are often the most complex and layered genres to code...there's just so many different parts that have to properly fit together, and each of those parts, on their own, are often rather complicated. In essence, an RPG isn't a single game, but a lot of smaller games, all mashed into a sort of chimera.

I ran into the "stairs" issue fairly early on myself...in fact I would say that the most frustrating aspect of my own project, thus far, has been trying to ensure that everything is drawn properly, according to the projection. This has taken up a considerable chunk of my time, and to keep from pulling out what little hair I have left, I've set it aside for now to work on other things.

Hopefully your hands and wrists will continue to improve, and maybe even be fully recovered eventually. It's fantastic seeing some screenshots, and I'm looking forward to the day you've got a working demo (even if it's just a single area).

Take care, and keep at it :ultrahappy:
Post Reply

Who is online

Users browsing this forum: togFox, zingo and 1 guest