April Fools!
I’m not building my own game editor, like Unity or Godot. I can’t believe you fell for it.
Of course my focus is 100% on finishing my game, and going off on a tangent to build an editor is definitely not something I should be doing.
I wish I could say that was the case, but sadly it was not…
I did make some nice progress on an editor, and it may still have a case somewhere down the line, but right now it’s just a big distraction. Unfortunately I enjoy that side of development too much, probably due to it being similar to my day job (which, strangely, I don’t tend to enjoy).
I thought I might explore the possibility of throwing out the game engine along with the editor, but after playing with Godot for a bit and looking at Unity, I decided it wouldn’t be worth it. I’ve already built so much, and (I think) it works well.
So it’s back onto the game/game engine proper, and maybe we’ll see some real gameplay soon. Maybe.
Edit: I’m going to give Unity a try for a week and then make a decision. The sad (and good, I guess) thing is that it’ll probably only take a few days to get to the same point it’s taken me months to get to so far with my own engine. It’s all been worthwhile, but it’s time to shift priorities to finishing the game.
How did I get here?
Somehow I’ve found myself building an editor for my game/engine. Last time I checked I had set out to make a game.
There are a lot of comments online about people who wanted to make a game, started building their own engine and then never actually made a game (or an engine in most cases).
I’m nothing like those people…
Anyway, I’m using .NET MAUI (with Blazor), so it can be a cross-platform editor. It will probably only ever be used by one person on one platform, but do I care? Nope, because I love building stuff. I’ve only spent one afternoon/evening on it, and only really got as far as a basic layout and selecting and moving objects around.
Ah, I remember how I got here now… As I was making ECS related changes I thought it would be best to abstract all of the components out to a class library, so I could share them with a separate editor project. Up until now the level editor has been inside the game, and really hacky.
Overengineering
Perhaps I was too busy thinking about if I could and not if I should.
Looking at DKC2 there’s never more than tens of collidable objects on screen (often less than 10). If that’s my inspiration then it’s a bit ridiculous to be optimising for hundreds of collidable objects.
There’s also the topic of collision in general. I like my current point-based collision system. It’s accurate and feels good, but does the game really need it? Probably not.
I’ll try out a couple of different ideas, e.g. capsules and a silhouette based system, and go with what works best.
On the plus side, I’m absolutely loving ECS.
Duh
So after yesterday’s genius level discovery that rendering a large number of large textures can decrease the FPS (who knew!?), I thought there must be some other rare and hidden wisdom out there to optimise things like collision.
Lo and behold I came across quadtrees and added them to my collision system. I did previously have a basic method to check if objects were close enough to each other before checking them for collision, but nothing as Mondrian as quad trees.
I’m also a big fan and user of LINQ in my day job, but I’m going to remove it from some of my systems and see what sort of improvements I can get.
ECS
Currently refactoring my engine to align with the principles of Entity Component System architecture, as I was running into design and performance issues and thought there must be a better way.
I did have something similar, but after doing some reading and research I think I’ve got something much better now. There’s still a fair bit of work to do, but it’ll be worth it in the long run. It’s a good time to do it - I finished an MVP and polished up the core gameplay feel, and now I’m making sure the engine can support an entire game.
I’ve also finally set up my workspace to start building out characters and sets (with clay), which is going to be a fun challenge.
The main character models are around 20cm tall, which means the scenery models are going to have to be pretty big. It’s going to take a lot of work, and clay!
So much to do, so little time.
Edit: So after stripping it back and running some tests I was still hitting FPS issues with large numbers of textures on the screen. I played around with the benchmark on the Raylib site and couldn’t see how mine could be so much less efficient. Then I noticed that the image being used for the benchmark was 5000x smaller (filesize) than the one I was using… That’ll do it!
A Lull
Life has been busy yet again, so there hasn’t been enough real work done on the game. However, concept art is still coming through.
I was thinking earlier today about how I often scour the internet looking for games similar to what I’m making, with a fear of finding something. So much of the indie game scene looks the same, which is a bit boring, but good for people making something different.
No one is making the type of game that I want to play, so I’m making it myself. What better motivation is there? This is what makes me confident that my game will succeed - as long as I finish it.
Or maybe I’m just 25 years too late and nostalgia is clouding my vision and no one wants to make, let alone play, a wacky claymation classic platformer.
Na :)