Home Artists Posts Import Register

Content


We’re at the end of the month, which means it’s time to have a chat about the game and the route ahead! I’ve been looking forward to this one in particular, because we managed to pull something off we didn’t think was possible and have an exciting announcement to make on top of that (which I spoiled in the title, probably).  

These last few weeks have been really weird for me. Scary, rather. Today, we have exactly 4 months left on the clock and I wish I could describe just how strange everything feels right now. There’s a healthy dose of excitement whenever I think about people finally experiencing this huge undertaking of ours, but looming in the background is a sense of anxiety I haven’t been able to escape just yet. I think I speak for the whole team when I say that we are quite confident in the game as a whole, purely because we still enjoy playing it every single day, but you never quite know how something will land with a larger audience and that's horrifying. Once it's out of our hands, all we can do is wait and hope that Selaco is making people happy. 

Selaco’s launch is immensely close right now, and it’s time for us to begin the next phase of development. And, oh boy, it’s a scary one! Let’s not waste any time and get straight to that.


QA Tests

Yep, it’s that time! We’re going to start doing QA tests with a number of people outside of the development team, using a build that contains the entire game (or rather, the current development state of the game). While we've done extensive internal testing over the years, a bunch of developers can only find so much; a fresh pair of eyes can discover so much more.

At this point in time, we are still figuring out the specifics of how to best approach this. However, since Selaco is entirely funded by the community through Patreon, it only makes sense to involve backers in the testing process. It has always been clear to us how passionate our backers are about the game. We share that passion too. We all want Selaco to be the best game it can possibly be, and with your help, we can achieve that.

Sometime next week, I’ll be uploading a form to our Patreon Page regarding testing. If you are interested in helping us out, whether you are a recent backer or a veteran, you are more than welcome to submit an application!

As much as we want to, unfortunately, we cannot let everybody in, but we’ll try to get as many on board as possible without spreading ourselves too thin.

Please stand by for more information about this next week! If you have burning questions, comment below.


Steam Achievements

Due to popular demand, we have revisited the subject of Steam Achievements and are happy to announce that Selaco will be able to support them after all!

In the past, we have mentioned how achievements are not an easy thing to implement in an engine that’s GPL-compliant. In simple terms, this means that the engine is open-source (all code publicly available for other people to use) and can only use other open-source APIs. Steam’s Achievement system is closed-source, so it cannot come into contact with the engine directly. However, there are common ways of getting around this while still wholly respecting the license.

Since we already have a plugin that can download Workshop mods by running before launching Selaco (discussed in a previous blog post), we have extended it to also provide achievement services.

As long as the plugin is running at the same time as Selaco, achievements will be available. The plugin will run by default when you launch Selaco via Steam. Technically, any mod or achievement service could be facilitated this way by providing different optional plugins. The plugin is immensely lightweight, and you won’t even know that it’s there.

Despite the existence of Steam Achievements, the game will still be DRM-Free. You can run the game without Steam if you still choose to do so, but Achievements will not work this way, and the plugin will not run.

We have tried to make the system work as seamlessly as possible. When starting up the game, you will be notified that achievements are enabled. There is also a warning if the achievement service stops or is not active when the game is launched with achievement support. We wouldn't want you to miss out on the epic toilet flushing achievements just because you accidentally closed the achievement plugin.

Achievements will be unavailable when running the game with mods or when using cheats.

Here are some of the Steam Achievement icons with no further context:

Take a guess!


Object Pushing

GZDoom’s pushing system is… Primitive, to say the least.

One of the more common complaints we have received ever since launching the demo was in regard to the amount of clutter that can block your path. Even something as simple as an office chair has a tendency to block you, even though it’s an object that’s actually easy to push. It has wheels for a reason, after all!

We decided to address this and ensure that players keep their momentum when bumping into objects that are easily pushable. If something looks light, you can push it with ease. If something looks heavy, it will slow you down, but smoothly and less jarringly.

In the current demo, pushing an object goes like this:

Notice how stuttery the pushing is? And how with every touch it slows the player’s momentum down? Not only is it not very appealing to look at, but it also has a negative effect on gameplay. Imagine trying to evade enemy fire, but you keep strafing into small pieces of decoration that unexpectedly slow you down because they are outside of your field of vision. 

This is a problem and a potential cause for frustration. Judging from some comments we’ve read on the internet (yes, we dig around a lot, some places are really mean!), many people felt that this kind of sucked, and they were right.

The new system was quite a headache to implement due to how the engine handles these things, but we managed to come up with something that’s quite good. 

Pushing an office chair now goes like this:

Pushing is now smooth, and objects stick against the player model. If you end up pushing an object against a solid surface (like a wall), it will simply get out of the way for you. Humans have a tendency to do such things without any thought, so it only made sense for Dawn to shove objects away that block her


Scripted Sequences

I currently have two pages full of ideas for scripted sequences and have started to implement them bit by bit.

Something I always liked about the demo level was how much was happening around you while venturing through the level. Things would explode, elevators would crash, ceilings would crumble, and soldiers would be seen shooting at people. While not always as action-oriented, that’s something we want to keep doing throughout the entire campaign because it helps make the world feel more alive and gives the illusion that things are actually happening around you, with or without your presence. There's a war going on, and we need it to be convincing.

They can be simple things, like the GIF below where Air Drones fly past you and demolish a vehicle occupied by friendly soldiers.

Or more involved things, like Selaco’s Sky Simulation going completely offline in Level 3-2, shrouding the entire city in complete darkness as the primary source of light is momentarily disabled. It’s a great way to remind the player that Selaco is merely simulating Earth-like behavior and that the war is causing simulations to glitch out more and more as time goes on.

(Blackout is extremely WIP and merely a concept. It currently allows us to darken the entire city instantly at will.)

Adding such events is honestly one of my favorite things to be working on. From a development point of view, they are fun puzzle pieces to figure out because such sequences have to happen in real-time without ever compromising any gameplay systems. We don't want to do what Crysis 2 did, for example, where it would deliberately slow the player down and force them to look at something. In that sense, I tend to look at Half-Life more; finding a way to draw attention to something that may catch the player's eye, then leave it to them to decide if they want to engage with it or keep going.

And from a player's point of view, it makes the world seem reactionary and keeps players on their toes. We try to add such events in every area of the game, albeit most of them will be small and simplistic, of course.


Let's talk about grass!

Finally, Selaco has the technology to feature dense patches of grass at a very low performance cost.

Before, every single grass sprite was a separate actor, so we had to be very careful with the amount of grass we placed within scenes as they would quickly drain performance. For larger cityscapes, that quickly becomes a problem. Having only a small handful of grass sprites in a grassy area looks rather dull and not very convincing.

We finally optimized the darn thing by storing big clusters of grass in a single 3D actor consisting of flat planes that are completely ignored by GZDoom’s tick system (making them less CPU hungry).

Behold, optimized clusters of grass that keep performance high!

Now, with this game being Selaco, I owe it to myself to make grass feel more physical. We are all about details, after all. So, when running or sliding over grass, some of the grass will get kicked up from the surface. If it rains, a small splash will also emerge. The same rules apply to enemy footsteps.

It didn’t stop there, though. I dedicate Sundays to adding small bits of detail that aren't important to the game as a whole but give the game a bit of extra character (like the grass demonstrated above). Another such thing is that shooting a tree will now cause some leaves to appear from the top, and a brand new particle effect was added to convince the player that the tree is taking damage (called 'Sawdust').

One crucial ingredient is missing here, though. And that’s how the tree is currently indestructible and doesn't snap in half. I’ve been wrapping my head around it for a while now, and I think I may have an idea on how to pull off convincing destructible trees. 

These will, obviously, not be as detailed as Far Cry 2 or Crysis, where individual branches could be removed, but you bet I’ll make sure they’re satisfying to break! It just feels wrong to have something in Selaco that is very commonly placed in levels yet cannot be destroyed by any means.

I mean, Tree Stumps already exist! There is no reason for the game not to have destructible trees.

Also, Park Bench destruction. They’ve always been destructible, but the effects were quite lackluster so I gave them a do-over. Lots of bits and pieces are breaking off now.

(Windows Mouse Cursor of Shame not included in the Early Access release)

Or, if you really dislike the existence of a Park Bench and prefer to take them down through more personal means, you can kick them, too! I’ll leave it up to the players to come up with a headcanon that explains why Park Benches are the only piece of decoration with a Kick prompt (excluding damaged doors). Perhaps Dawn had a terrible experience with park benches in the past and takes great pleasure in giving them them the boot, or, more plausible, she blames the park benches for the Alien invasion.

Stand by for the next Developer Blog where I will show you a destructible tree! You have my word.


AUTO-9 Shotgun Shells

All upgrades are practically finalized by this point, but it always felt like we needed something a bit more playful that doesn’t require any thought from a design standpoint and solely exists for the sake of ‘why not.’

I’ve added an upgrade that beefs up the amount of gore that occurs when you shoot someone with a shotgun. It’s already a very punchy weapon and players told us they really liked shooting enemies with the Shotgun, so why not allow them to go a little more over the top if they choose to spend resources on it?

Thank 'Robocop: Rogue City' for this idea.

Okay, I made the GIF, then realized how demonstrating purple gore in a very purple room is perhaps not the brightest idea. Sound off in the comments to tell me how stupid this is so I can make a new one in an environment where the blood doesn’t blend with the background.


Conclusion

Once again, very satisfied with the progress we've made. The addition of Steam Achievements has been on our radar ever since the beginning, and it was requested about a thousand times over ever since we’ve announced this game. It feels good to finally have a solution that actually works to our liking, even if the implementation isn't as clean compared to other games.

Next week I’ll post the QA testing form. Very excited for that, hopefully you are too!

I hope you have a fantastic month ahead of you and that we'll see you again in February.

Wesley de Waart

Comments

Saraaahhhh

Finally we can touch grass in Selaco

icezolation

My mouse wheel had some work to do with this update post. What a blast. It's great that you guys continue to not just throw stuff into the game for the sake of putting stuff in, but making sure that there's a good reason for it as well as making sure to keep track of what other factors have to be considered. I'm getting ready to touch grass and hug trees!