🏠

Discovery. Outcast. Editor.

2024-09-01 / Mark Sowden


← 2024-08-18

Star Trek Discovery

So I've watched the first episode of Star Trek Discovery. Here are my initial thoughts, and I'll try to keep spoilers at a minimum.

Not good.

I'm not even going to talk about the Klingon redesign because it feels like that's been done to death. If you really want to know, there's a fairly good write-up about it here.

But for one thing it felt like I was watching the Abrams film from 2009 which rather infamously overused flare effects. Abrams even admitted he probably went pretty overboard with it in a later interview here.

So I don't quite understand why they decided to seemingly use random flares in excess here too. Particularly given the Star Trek film by Abrams came out in 2009, and this came out in 2017. Just because the movies did it doesn't mean you needed to do the same here. Have some originality. Looks at the Klingon redesigns again. Not like that!

And per tradition with modern sci-fi shows, and I'd honestly expected it, there are a lot of weird attempts to make everything have a lot more impact than necessary. I guess they want to cater to audiences with the attention span of a squirrel.

For instance, there was a sequence where the camera was moving in on two characters speaking, and they decided to roll the camera into the scene??

Will I watch more? Yeah, probably. Later. Much later. But I'm not looking forward to it.

Outcast A New Beginning

Finally finished it. Took me a while but feels good to have it out the way.

As mentioned per my post on Mastodon, it was pretty good. I really enjoyed seeing what a great job they did bringing the world of Adelpha to life. Honestly the detail really put even some high-budget AAA games to shame.

The gliding ability in combination with the jetpack was pretty nice too. Flying from one end of the map all the way to the other felt really great, especially when you get the boost upgrades.

The music was perfection. On par, if not better, than the original. They did a great job there.

Customisable weapons were an interesting touch. I probably agree with some of the criticism that once you find a combination that works there isn't really much to make you want to change what you've got. But at the end game I did start experimenting a little bit, and there were some fun combinations which could bring the framerate to its knees on PS5.

One thing that bothered me though. Originally the HUD was more 3D in appearance and generally looked a bit more detailed or, to be blunt, polished.

Pre-release screenshot of Outcast A New Beginning.

Source

Another revision of the HUD design was shown at Gamescom 2022. Top left is a little more simplistic but still retains the 3D look.

Pre-release screenshot of Outcast A New Beginning.

Source

And here's how it looks in the final game...

Screenshot of Outcast A New Beginning.

Source

When I first saw footage of the UI they ended up shipping with in previews, I thought it was just some sort of placeholder. I'm really curious what happened, or why they ended up going with the incredibly primitive design they shipped with.

You can also see some earlier versions of the map UI here. Which, again, has some elements that I much prefer over what they ended up going with (again, it's also less flat). The blue for the terrain is ugly as sin though, so I'm glad they got rid of that.

There are some other elements of the UI you can see in some other videos, but I think I've talked enough about it. It's like they had to throw the UI all out and redo it at some point, and didn't have time or something.

Audio

And now back to talking about work on my engine again. I've finally nudged myself to getting sound working (again).

Back in 2021 (yikes) there was working sound via usage of SDL Mixer, but a year after I'd replaced all that with an abstraction layer exposing support for XAudio2 on Windows and OpenAL for other platforms. But per my useless brain, never got round to finishing it entirely.

When I'd last worked on it the audio system had an early implementation of its own garbage collection for cached data. That's now all been updated to use the solution provided by the engine, in addition to using the global resource cache solution also provided.

This just essentially removes a load of code and reduces my maintenance overhead in future.

Both WAV and Vorbis audio are supported. There was a problem with my WAV loader that I was struggling to find the motivation to resolve, so rather than wasting time with it, I'm just using the loader provided by SDL2 now. No sense implementing another loader when I've already got one available right?

There's a pretty simple interface for adding support for other sound formats now, though in the long-term I'll probably introduce my own container format to unify things and move all that into the cook tool - but that's for future me to sort out.

Anyway tldr; the engine supports sound again now. Still some more work, but the basics are now there.

Console Variables & Commands

I'd been unable to make a formal decision on the naming scheme my console variables and commands to follow, and it's ended up as a bit of a mess overtime.

Screenshot of just some of the console variables.

This is a classic indecision problem on my part, though I'm learning to handle it by introducing rules for myself to follow (though even that can be tricky at times).

There are some basic rules in place now. So anything new will be following these.

### Variables

These should follow the same conventions we have for code (`thisIsName`), but should be prefixed with the name of their "container", i.e. source file.
For instance, any variables specific to audio should be `audio.volume` or `renderer.superSampling`.

If the variable already has "audio" in its name, use some common-sense and don't duplicate it.

### Commands

Commands should follow the same convention we use for functions (`this_is_name`), but again, should be prefixed with the name of their "container", i.e. source file.

For instance, `audio_play_sound`.

And I'll gradually work my way over the old variables and commands to make them all consistent.

Work Continues on Boring Things!

And finally, yes, work continues on the boring things I'd mentioned a while back... Writing your own 3D engine is a lot of work, who would've guessed.

I've been gradually making progress on a core feature that needs to be figured out before I can move onto things like collisions. I'd mentioned well over a month ago that these would need doing, but I've been trying to brainstorm how it's all going to work—though I've got somewhat of a decent idea going now.

I'm a big advocate for giving a chance to custom technology (if you're able) as I still think it can have a lot of influence on game design, and if I can pull this off, it'll let people do some really cool things that I don't think I've seen done before. I am fairly eager to see this through as a demonstration of what you can do if you go with your own tech.

This work required some additional changes to the editor. Specifically a way to select the active room, and creating or editing a room. I'll explain how this all works and why it's designed this way later when more is figured out, and when I've got a working demo of the technology.

I've provided an overview below of what everything in the editor does along the toolbar as I don't think I'd explained before (pardon my crude scribbles). The item after vertex editor is for transforms... I missed that somehow, and it's late, so I can't be bothered to add it in.

Overview of world editor toolbar.

I'm also finally back to working on the editor more generally too. I've opted to get rid of the scene tree view and console pane (just hidden by default now), just to simplify things a bit. The scene tree view will probably be useful later-on when dealing with more complex scenes, but I'll do it a bit differently.

Anyway the reason why I'm calling this all boring is because it's a roadblock towards doing more interesting things, or, you know, actually working on the game itself. I'm really hopeful this month I can make some real progress on it.

← 2024-08-18