"A real man... oughta be a little stupid."
- Ryuji Goda.

RSS My Blogs

eepy


Hello everyone! It's SellFace and I've come back with another blogpost for this month.

2023 was quite rough for me in some parts, and yet, I've also learned a whole lot. I successfully finished and released my third modification, which is Lost and Damned and it turned out to be quite a success compared to my previous mods, like Fremen's Foes, for development of which I had the most passion, or the infamous Modding Bleeds.


And now, SourceWorld(which hopefully will remain as mod title) is my primary passion project and thus an attempt at pushing my sourcemodding limits.

So let's see what I've been doing at the end of 2023.

Huge MapGen improvements. PropSpawning V2. Better Room Shaping.


As usual, let's start with my progress at procedural map generation. And I'll begin with prop spawning.

Previously, the prop spawning in rooms used the old algorithm, which is flawed in many ways, technical and visual ways. Here's few pictures of what the results of it looked like:

test0122test0074


What's noticeable is that props just chaotically spawn everywhere, including the center of the room. That's not really good as walking through all these props is pretty troublesome for the player, let alone NPCs. Another flaw is that in tight spaces, like little hallways that some rooms can get, props may spawn in a way which make them nearly or completely block any passage. Generator just randomly placed props either alongside walls or some random spot.

Another technical issue was that prop generation used actual physical collision checks(TraceHullComplex's) which took plenty of time and almost always caused a considerably long microfreeze when room was generated during gameplay.

I decided to remake the whole prop spawning from scratch, and this time I didn't use any physical checks, but rather just stored info about prop bounding boxes and did my own "collision" checks for if the potential prop's bounding box overlaps with any existing ones, and it's much much faster.

Not only that, but I also overhauled generator's rules of prop spawning. It works by calculating the whole 2d top down area every prop occupies in a tile. Depending on what kind space the prop is gonna spawn in, generator applies different limitations to how much area of a tile can be occupied.

If we take the previously mentioned hallway tiles, the way prop spawning works on those is by calculating the occupied space in single line, depending on direction of props. So only a half of hallway can be occupied before the generator denies any further prop spawning. This condition guarantees that such hallways won't have props that block the way for player or NPC. Example below:

test0157


Props never spawn in the middle of such tiles. Not only that, but the props at walls are made sure to not exceed the center of a tile if you imagine moving them all to one side.

In addition, I added bunch of props to the generator. Besides props, I also added more models for walls and floors, metal and wood materials to be exact.

All in all, you can see the changes I described in the video below:


Another great gameplay addition I've made is the minimap!

As you can see, not only it allows player to navigate around the generated level, it also only shows areas player has been to before. Personally, it makes life much easier and now you can't really get lost so easily.

Another nice change is the new algorithm for shaping rooms. Initially, all rooms start as rectangles of varying sizes. But I want the generator to remove some tiles off these rectangles and replace them with walls to make rooms have varying shapes and not just same rectangles.

(This is a very unperfected old version of the algorithm, all rooms have same chaotic shape, and you can even see the generator left some are inaccessible)

hatDiscord 2xVUWC3BzA


I thought out an algorithm for a level matrix pass that takes every tile and makes a check for whether a tile can be removed without slicing the room(thus making a part of it inaccessible, which is really bad.). My algorithm takes 8 tiles around a tested tile, and passes them all in circular sequence, counting how many "wall arcs" this circle has. If it's 2 and more, then placing a wall in the middle would result in 3x3 tile combination divided in several parts, cutting some area from the rest of room.

fly inverse

Then I added some randomness to it and you can see the resulting room variety below:


Half of the rooms still keep their rectangle shape, while the second half gets various shapes. This makes rooms look less similar to each other and layouts themselves less chaotic.

METAL PIPE! Overhauled Melee Combat. Better Zombie AI.

Now for the fun part. I added a melee system that works similar to what L4D2 has. When player attacks, they fire rays in sequence which resembles the movement of the weapon, allowing for splash damage and just better feel than what vanilla crowbar had.

Besides that. I added stamina(AUX Power) consumption for attacks, and added parrying along with critical hits.

Parrying is triggered by hitting an enemy when they're about to hit you. This will cancel the damage from both sides and slightly push you away from each other. I believe it's great because it gives more control to the player in terms of avoiding damage.

Melee damage is inconsistent and depends on velocity of both the victim and attacker. So running at the enemy and hitting them with a pipe does more damage than doing the same while standing still.

Critical hits usually happen when you time your attacks so well that both your and enemy's speed is great enough for damage to be really big. This results in huge damage that often oneshots zombies, so I added some nice(and memey) effects to that.

I also GREATLY improved the AI for the zombies. Previously they were the absolutely most boring enemy in the game, because they were incredibly slow and easy to kill.

Firstly, zombies can accelerate their walking speed when they chase their target long enough. Secondly, zombies start their attack animation from bigger distance AND they push themselves towards the player and even try predicting player's movement to deny his maneuvers. You can't run circles around them anymore, as they will keep nearly jumping in your way. It's also much easier to get cornered by them, because it's almost impossible to escape them when they surround you. And when that happens while player is out of breath for pipe swings, they're pretty much doomed unless they pull out some powerful enough gun.

To demonstrate this stuff, I have recorded a bit of pipe gameplay:


Dialogue System

lazy


Making voiced dialogues in mods was always a big pain in ass. To have voicelines properly work in game, you have to write soundscripts, open faceposer and generate lipsync data for each soundfile, write closed captions. And doing all choreography in faceposer that keeps crashing as it feels like it's even more ancient than source hammer editor.

So not only I decided to not use voiced dialogues and have textboxes only, I wanted to have a system which would easily allow me to add new dialogues. So I scripted this!


Besides the main script, this dialogue is handled by a simple textfile that is easy to edit.

notepad LB0yb1VXJO

glasses


And I didn't use any .vcd files or choreography. I can easily add new dialogues and call them with a single map input. Besides, I added some formatting to support events like gestures, emitting sounds or extra pauses.

Hub Concepts

Between the travel in randomly generated levels, player will always go back to protagonist's home area, aka Hub, where they're gonna talk to NPCs, take quests, get equipment and other activities.

Currently we planned the plot to take place in a district of a City that once used to be ruled by the Combine, but after humanity defeated it, they started adapting some of their leftover technology.

The_Guardian™ currently works on this hub, making blockouts. Together we work on mod's lore and plot and forming the overall picture of it.


Hopefully, I didn't forget to mention anything else in this blogpost. I will continue the work and come with another blogpost in future, as always.

Thanks for reading, and stay tuned!

book

Start a group Groups
Bronco Development

Bronco Development

2 members Developer & Publisher

Bronco Development is a small group of Modding for the Source Engine category, in our attempts to push past the boundaries and reach new ends within the...

2021 Mod of the Year Awards

2021 Mod of the Year Awards

36 members Event

Back for the 20th time, welcome to the 2021 Mod of the Year Awards. The biggest celebration of modding for developers and players, with the year's finest...

Post comment Comments
madeinhaven
madeinhaven - - 7 comments

лучший.

Reply Good karma Bad karma+2 votes
Guest
Guest - - 689,674 comments

I want to ask a question regarding Modding Bleeds, how did you make the talking cutscenes?

Reply Good karma Bad karma+1 vote
SellFace Creator
SellFace - - 102 comments

Lots of map logic trickery, that’s all I can say

Reply Good karma+2 votes
Guest
Guest - - 689,674 comments

This comment is currently awaiting admin approval, join now to view.

berrу
berrу - - 113 comments

пасеба

Reply Good karma Bad karma+1 vote
berrу
berrу - - 113 comments

чел, скинь свой профиль в Steam. Ну или discord пж, я хочу скинуть тебе топ игрухи за творчество

Reply Good karma Bad karma+1 vote
SellFace Creator
SellFace - - 102 comments

держи

Steamcommunity.com

Reply Good karma+1 vote
Post a comment

Your comment will be anonymous unless you join the community. Or sign in with your social account:

X