🏠

Mirror, mirror on the wall...

2024-12-22 / Mark Sowden


← 2024-12-082025-01-19 →

Things generally have been a bit slower as we get closer and closer to Christmas. Not to mention life things slowing progress down a little.

My first milestone for the project is up at the start of next year. I'd aimed to have the editor good enough to start building environments with, which is done, and then fleshing out more design work, which is currently in-progress.

The next milestone after is in March. It requires getting entity spawning and placement available in the editor, a basic collision system (which I'll likely just recycle the work I did some years ago), and finally room connectivity (which is already partially done). The primary goal I've set as "spawn into and move within environments."

And then, hopefully by May, things will start to get a bit more interesting as that will be the first gameplay pass.

I've laid out further milestones through until July, though rough aim is to have a playable prototype done by the end of next year which should be on track. So essentially by July, I'll review the progress and assess that again.

Portals and Mirrors

Recently I've started heavily restructuring the rendering to support portals and mirrors in a way that isn't a hack. After all, one of the big drives for me has been to try and create an engine that works how I figure 3D Realms' Prey engine worked in 1998 to an extent.

As mentioned in my previous post, you create rooms as parts of your level which portals then connect. Of course, you can opt to make the entire level as a single room too if you so desire, and the plan is to have a static portal type that simply splits your room into sub-rooms.

This has involved finally maturing out the PVS system and pre-emptively determining what faces are visible, which are portals, where those go, what rooms they connect to, what faces in those are portals, etc. So basically working down the chain and building up an outline of what the renderer will need to deal with.

Unfortunately, there was a nice batching system for the world geometry I'd implemented which doesn't work so well with the output of the PVS. This is probably a good reminder why it's not necessarily a good idea to optimise early!

Anyway, this is why I've not really posted much of late, as I'm still figuring out how a lot of this is going to work as things currently stand. But you can see some progress I've made since the last post below.

Recursion is still pending. It just works, as far as the rendering internally handles it, but otherwise currently looks like a mess.

This does work with lighting too, though there's quite a lot more work to go there. Overlays for the portal/mirrors are also working, but I didn't bother getting a screenshot of that yet.

Portal in the lit mode.

One of the next things on my list is to finish up support for tagging surfaces, which will let us support dynamic portals. And then from there I'd like to get transforms in for brushes so we can do some really cool stuff.

Wireframe at last!

So the engine already had a wireframe mode, but not one that represented polygons/faces in a way that makes sense for the editor. Anyway, this is a thing now.

Wireframe view in the editor.

For now, it's operating off "visible" faces, so hidden faces are, uh, hidden. I'm not currently sure if you'd want that or not.

I'd decided to finally introduce this when reworking the code to support portals and mirrors in the non-hack way mentioned. That said, it's a little weird right now as the wireframe mode operates off the new PVS implementation, while the other view modes operate off the old one. Sigh...

More Model Progress

I've slowly been making more progress on the goblin model. Though, I'm still not fantastically happy with it.

My goblin model in-engine since the last update for testing purposes.

Below, you can see a slightly newer version of the model. The proportions have been tweaked a lot, but I'm still not fantastically happy with the body.

I've also made some adjustments to the backpack, but I'm not happy with that either. It needs to be a bit more bulky.

So still quite a fair amount of work left on this. Fortunately, there's still a fair amount of time until I'm expecting to start using these. Not to mention that I've been more focused on other things, hence why work is a little slower on this for now.

Uh oh, another one!

I've felt like I needed a little side project to let loose a bit, so I've started on a project called Sol.

It's being built off KMQuake2, which seems like an okay Quake 2 fork. Though, like anything built off early id Tech, it's a bit of a mess, so I've been trying to clean it up a bit to fit my needs.

The idea here is to develop a game in the open. All the content will be available under a permissive licence, and anyone can contribute to the project. So, something of a juxtapose to the engine I'm working on.

I know, all a bit moot when I've not even said what the game actually is, but all in due time. I've only just started working on it. It's a single-player first-person shooter, however, and intended more as a simulation rather than a game with a start and end.

If you want to check it out, you can find it here, but again, I've only just started on it so don't expect much.

← 2024-12-082025-01-19 →