Home Artists Posts Import Register

Content

Hello everyone!

As of today, we have precisely 6 months of development left before our big launch. No pressure, right? 😬 It's becoming increasingly more scary to think about, but thankfully everything seems to be coming along well.

Two weeks ago, I shared a blog post where I mentioned that we weren't entirely satisfied with the progress over the past two weeks. This was mostly due to circumstances beyond our control that briefly slowed us down. However, for this blog post, that's not the case. We have a lot to show and talk about. Consider getting a nice cup of coffee or tea before beginning your read!


Another Health Update

Originally, I didn't want to write about this, but since I brought it up a few weeks ago, I figured it would only be fair to at least conclude this ADHD story!

Like I mentioned back then, ever since working from home in 2022, my ADHD issues have gotten more severe. It became increasingly difficult to concentrate, and distractions were everywhere. Even regular daily tasks were a nightmare because I’d quit halfway to do something else. I mentioned how I started taking meds to hopefully control it better.

Happy to report that that has indeed been the case. The medication has had a good effect on me, and I feel quite a lot more productive than I used to. Did come with a few side-effects though; I’ve had a few unusual mood swings where I felt unreasonably angry about things, and at times I was so focused on whatever I was doing that I refused to eat (so basically the opposite problem of what I had before!).

Thankfully, these things are very common for the first few weeks of taking the meds and should iron themselves out eventually. I’m 4 weeks in now, and I feel like the side effects are slowly fading away.

Lets hope it stays that way!

DMR - Animation Pass

We've finally given the DMR a proper animation pass! There are still a few rough edges I want to iron out, like the last few frames of the reload, and the scope animation could use some tweaking, but it’s turning out great! Expect a few of these animations to feel more tightened up when you get your hands on the game.

A cool detail you might have noticed is how the DMR’s magazine transitions from a first-person sprite to a voxel object when thrown. We do this for most of our weapons and, in most cases, this is very convincing, but there are a few angles where the throw doesn’t look as natural. Not much of an issue, but still something I’d love to improve later on when I find the time for it.

Demolition Charges

These are timed charges that detonate after a short amount of time. You can’t use them on-demand because they are made purely for scripted sequences where you have to blow something up in order to progress the game. You acquire a small handful of them in the third level of the game, and will frequently use them from that point onward. Why? Because destroying stuff is fun!

Here is an early prototype of the charges in action. They work, but I feel like they lack 'oomph' right now.

Grenade Bandolier

A rare upgrade found mostly in obscure secret places.

When picking up a Grenade Bandolier, you get one of every grenade type in the game. If it’s the first Grenade Bandolier you’ve picked up, your maximum Grenade Capacity will also increase by 1.

This means you get to carry around a maximum of 4 Frag Grenades, 4 Landmines, and 4 Ice grenades (and whatever else we add post-launch), instead of only 3. It’s quite similar to DOOM’s backpack pickup, except for throwables instead of ammo.

With how powerful our throwable items are, you may want to seek them out as they give you a good advantage. Especially later on.

Destructible cover

Hooray, more things to destroy. I haven't added all of them to the game yet, but that’s on my list for the week.

Probably also worth explaining how Brightmapping works, given the mysterious black boxes you see in the picture. I think it explained it before for sprites, but for the newcomers, allow me to explain how it works for our voxels.

The Black & White boxes are what we call ‘Brightmaps’. We overlay these as a full bright texture (always fully lit, unaffected by world lighting) on top of the crates. Using this will ensure that certain elements of the voxels are always lit up, which can make them a lot more convincing if they have portions that are meant to be lit up.

Here is what they look like without a brightmap:

Quite dull, right? The voxel clearly has a light on it that is meant to be lit, and yet it doesn't show.

Here they are again, but with a brightmap texture overlaid on top:

Much better!

Bag Junk

There are plenty of suitcases and duffle bags spread around Selaco. If you’ve played our demo, there is no doubt that you’ve walked past them from time to time. But once you began to shoot them, they just disappeared! Nothing happened. I hope you weren't a victim of such disappointment during your playthrough of the demo.

We started addressing this last weekend. The result? We’ve hand-painted 142 everyday items that people would generally store in their bags, excluding some of the items we are reusing like an ArachnoCola can or a teddy bear.

Think about pieces of clothing, bags of chips, perfume, deodorant, towels, medicine strips, you name it. Destroying a duffle bag is no longer lame and shows a decent bit of variety in what it spits out!

Will we add even more at some point? Who knows. I'm always oddly fascinated by having an unreasonable amount of variety in these type of things so I'd love to do more if the time comes.

Pick-up Notifications

We’ve fully rewritten how our pick-up system works. It is now smoothly animated and a lot less headache inducing. Our previous system was a convoluted mess where 3 different scripting languages were used in order to display it properly. On top of that, it used the dreaded ACS scripting language to display HUD information which is never ideal, since it’s not very scalable and convoluted to maintain. Making one change to Ammo required me to painstakingly migrate multiple scripts to the updated system no matter how small the change was. This sucked, and it was done this way due to my lack of experience with GZDoom at the time. If a system is this integrated into the game, it becomes quite hard to get rid off without accidentally breaking other things. It's been on our backlog for months but we never got to it.

For Selaco, nowadays, we have made our very own UI framework called ‘CockUI’. It’s a major part of the reason why our UI feels so drastically different compared to other projects made in GZDoom since it doesn't use any of GZDoom's code. It allows for smooth/filtered UI elements, clean transitions, proper scaling, queuing systems and so much more. Our pickup notifications, however, were still using a system that I had made on my own roughly 6 years ago and was never properly migrated to CockUI. It has some major flaws that have been a thorn in our butt for quite some time.

Playing the game at a 4:3 resolution (which is quite awesome in this game, btw!) would awkwardly cut off the notification messages on the right side, scaling was a disaster, and picking up a large amount of items at the same time would break the system because it used hard coded ID’s for every line that would easily go out of sync. I don't think anyone managed to get this error in the demo because pickup variety was quite low, but is absolutely an issue in the full game where we often give loads of stuff at once.

On top of that, the way pickups were validated and given to the player was a very backward approach. When making a game, you want a flexible pickup system where you can easily alter values or add entirely new ammo pickups without too much work. This was not possible on the old system, because otherwise there was no way for me to retrieve that information and display it on the HUD using ACS.

Not so much the case now! With Zscript and CockUI being used, it only requires a few lines of code in order to make a new pickup work with our new system. This is how it should been from the start, but alas:

The new pick-up system looks a lot of better and makes it easier for us (and by that extend, modders) to add things to the game without having to untangle a big blob of spaghetti. And, most important of all, it also performs better!

Friendly NPC

The model has been completed! Can’t wait to give them a weapon and start animating them.

Announcing… Burger Flipper!

Cockatrice is currently working on a small Selaco related minigame that the player can launch on their Wrist Computer after unlocking. You will have to find it first though! Have some Patreon Exclusive insider information: You can find it in Level 3-2! Look for a Game Development studio in the city.

As much as I would love to show it off, we think it’s best that we let you figure this one out yourself. So for the time being, I’ll just drop this top-down burger asset that has no right to look this tasty.

Transit System

About a month ago I showed off a UI mock-up of our Transit System that I made using Photoshop. We now have a working version that’s in-game and actually allows traveling! Still not completely satisfactory in terms of how it looks, but we’re still iterating on that.

ReformedJoe also got to work on the train system itself, and boy, it was a hard puzzle to crack design-wise, but we eventually settled with a solution.

As many of you know, Selaco aims for a seamless experience. The camera is locked to the player's eyeballs at all times, and not once are we going to use a hard cut. This means that our train system must seamlessly bring the player from one level to the other without shattering the illusion. We cannot rely on a black screen that teleports you to the new level because that means we’re taking away control of the player and having a ‘time jump’. These are forbidden in Selaco.

If you have any experience with Doom modding, you may know that having a moving train that the player can walk on is practically impossible. Sectors are meant to travel up and down, and PolyObjects are too limiting, so how are we going to drag a train across a track?

There are a lot of solutions to this problem, like giving the illusion of movement by simply moving textures in the opposite direction that the train is supposed to move. This is typically how older games, like Blood, handle train sections. The train wasn’t moving; the texture offsets were! As much as that solution was tempting, it felt like an easy way out.

So what did we end up doing? We made a moving train (sort of!), and even showed the station getting closer.

The contents of this GIF are very much a work in progress and not very representative, but it’s already quite convincing.

How did we pull it off? I think that deserves its own blog post, so we’ll talk about that in a few weeks!

Conclusion

Thank god this week was a lot more interesting than the last one! My current focus is to finish level 06A and get it ready for testing, and improve the Train System so I can give a proper demonstration for our next blog post!

As usual, feel free to ask any questions in the comments below.

Thank you for sticking around, hope to see you again in the month of December!

Wesley de Waart

Comments

schattelux

It will be great!

Hislop09

Loving the transit system