Journals

savvaisnotagirl10 months ago2024-01-24 20:11:04 UTC 1 comment
It's been a while!

I wanna write down what I've been up to for the past 6 years, since I was always active, just in different communities, but a separate journal would be necessary as it's a long story. Right now, I want to share what I learned during my development of my first Half Life 2 Deathmatch map, including creating custom VBSPs, color correction, and general discoveries I encountered.

When I first got the idea to make an HL2dm map, I was probably watching old nostalgic 3kliksphillip video and stumbled upon his tutorial on moving water through func_water_analog. I immediately brainstormed ideas and wandered if the functionality even worked in Half life 2 Deathmatch. So far, I played around 100 hours of HL2dm, which isn't a lot compared to my TF2 playtime which is like a 1660% increase, but enough that I realised there's not many maps in HL2dm that utilize func_water_analog, at least one's that aren't killboxes or Undertow from HLDM. So I quickly created a map in hammer just to test this proof of concept, and it works like a charm!
User posted image
The entity isn't the most stable as it is with other source games, but it serves its purpose and the lag compensation helped make it bearable enough for even 100 ping tests. I only hope that the next Mapbase update for Source SDK 2013 MP will fix and give additional parameters for func_water_analog and other entities for HL2dm. Now, it was time for me to conceptualise the gimmick and how to make it fun.
User posted image
After trying to test out and create water textures that would work with func_water_analog, I quickly realised that swimming in HL2dm wasn't fun at all and it was too difficult to create good looking water for the entity due to its limitations. Instead, I went for the toxic slime approach as it gave me a few desirable gameplay approaches:
  • It becomes a hazard that players will have to go around or use physics props to get across, creating an interesting dynamic that allows players to do quick manoeuvring to gain an advantage against their foes.
  • It creates a risk reward style of gameplay with boats located in the canal, where some items and weapons are laid for players to try and snatch.
  • It creates a more balanced secret path that requires the toxic slime to be drained in order to access and retrieve the RPG, making players more intrigued and vigilant in their task for the most powerful weapon.
It was through this thought process that I knew I wanted to continue working on this map. I always wanted to make a form of HL2 or HL2dm map but never had any concrete ideas, at least to continue and finish the work. But now, I wanted to make a map based on this idea, and I went and looked for references on canals. The Panama Canal was an obvious choice that I chose its namesake.
User posted image
Now that I got a reference in mind, I went ahead and quickly developed a layout. I went through my HL2 buildings prefabs and picked out some that I believed would be appropriate for the theme. It had to make sense taking place in a jungle like area with developed enough infrastructure to support one of the largest trading networks in the world. That said, the 7 Hour War also destroyed much of the world, so a little dereliction with HL2 assets would be good. Throughout plopping down these buildings, I eventually got the idea to also add Team Deathmatch support to this map and have it work as a Rebel Vs Combine map. And so, the early layout started looking like this:
The CanalzoneThe Canalzone
Combine BaseCombine Base
Rebel BaseRebel Base
Derelict HouseDerelict House
SewerSewer
Whether this was my subconscious guiding or a stroke of luck, you'll notice that the Rebel side has more warm orange shades, while the Combine side has much more cold blue shades. I noticed this early on in development and decided to play to its advantage, helping players realize what side of the map they're on. I also wanted to take full advantage of Counter Strike Source and TopHaTTWaffle's texture pack for the source engine, as both had warm colorful textures and useful models that helped sell the theming of a Central American vibe. With these assets, I had a clear path on recreating the buildings from the reference image as well as from my own ideas.

Early on during my texture work, I chose a bright blue skybox texture from TopHaTTWaffle's pack, which looked great on its own, however in-game it looked weirdly dull and flat. I tried saturating and editing the texture manually to get the colors to pop, but I realised that the dullness was likely due to how other textures around affected the look of the skybox. I found a better solution, I experimented with color_correction and found that it not only made the skybox better, but it helped with the Panama vibe by making all the colors vibrant and fitting the tropical environment.
User posted image
For anyone who want to experiment with color correction in their map, keep in mind that there is a bug in the source engine that sometimes doubles the intensity of color correction in the map. The best way to fix this is to get a neutral .raw file and apply that to your existing file at half opacity in photoshop. Full tutorial on the fix and other color correction tips in Source Engine can be found here.

Continued in Part 2...
savvaisnotagirl10 months ago2024-01-24 20:09:31 UTC 1 comment
...Continued from Part 1

Continuing on improving the layout, my previous maps had me first start from the middle and keep adding on the sides until the layout felt big enough. I never knew how big the cliffside should be beyond the derelict house, but it helped knowing how many people will likely be in the area, and base the size on that figure. For me, I always found 1 player every 256 units is a good reference on the scalability of any area, even in other games like Counter Strike and Team Fortress 2. Areas that were 128 units wide were usually designated as "cramped" areas, and 512 unit areas were open large areas. It's important to diversify these areas to make any map interesting and encourage map knowledge as a skill.
User posted image
One gameplay theory I had nostalgia for (despite the rage it always caused) was sniper spots. Basically places where players had beneficial sightlines and an effective long range weapon, giving the one player an easy time to gain frags while the rest noticed and focused on taking them down. It created a common enemy for the server, like a temporary mini-boss, and made taking him down a satisfying reward, even though he was no different from any other player. I knew that these spots were very finicky and that it was easy to abuse these spots if not balanced well, reducing the overall fun factor for every player. I believed that there were three main factors that balanced sniper spots:
  • The size of the sightline and line of sight (how far and how much the sniper player can see)
  • The ease of getting to the sniper spot (how quick can players enter the spot and utilize it)
  • The counterattack (can players counterattack? If so, how easy?)
As long as these three factors are reasonably attended in the map, this sniper spot would benefit the gameplay space in deathmatch. And with this in mind, I made the tower that would hold the sniper.
User posted image
User posted image
This Spanish style architectural tower situated outside of the normal gameplay space includes pillars, an L shaped layout, and a one-way teleporter that comes from the rebel base. There are no weapons in the tower and the teleporter is only active 30 seconds after use (during which its deadly to touch). If you want to utilize this tower to your fullest extent, you would've need to find either a crossbow and/or a revolver, and be lucky that you don't have to wait for the teleporter. Not to mention both the pillars and the buildings are an obstacle for snipers, giving players on the ground more leeway and have enough power from the weapons they find to shoot down the sniper in the tower, especially with grenades or an RPG that has a large area of effect to easily take down anyone in the tower. These mechanics, I believe, create a balanced sniper spot that takes effort to be in a powerful position that has enough counterplay that makes fighting the sniper a fun experience.

I also wanted to give the Combine side an interesting mechanic, since it feels like the rebels have a pretty significant advantage with their sniper tower. I didn't get anything concrete in my mind until I remembered about these combine dispensers in Half Life 2, particularly the one in the beginning of City 17 and in the Canals with the checkpoint station that had manhacks fly out. I don't think I was able to have friendly manhacks for the combine team (maybe with vscripting?), but I did figure that it might be possible to have a dispenser of items including health kits and ammo that would be an interesting lottery system.
User posted image
I tried many different methods, many of which kept breaking in spectacular ways. The trigger_teleport method didn't work as it didn't recognise the items to teleport, and when I tried to spawn them individually in each dispenser, it caused a memory leak and I felt like it would require an unnecessarily complex I/O system that would contribute to memory leaks for low-bandwith servers. I almost gave up on this until I was curious how the actual dispensers in the HL2 Trainstation worked, as I initially assumed that it was only animations and would be too limited for me to work with. I was wrong, as it turns out, there's a very useful system in HL2 called Attachments that essentially attach any object to a certain part of a prop. In this instance, it's how the ration package is dispensed for citizens to take, and I am able to attach point_templates to it, essentially spawning anything I want.
User posted image
User posted image
And so in the above image, I made it so that when you pressed the button, you would get a random chance of an item to spawn and deliver to you. The dispenser itself doesn't have many collisions, so a func_door pushing out and rolling the items was added. I was limited to items that were small enough to fit the dispenser and for balance reasons, so no weapons (except grenades), mainly ammo and energy packs. There's also a delay that runs between half a minute to a minute and a half, mainly to make sure it doesn't get abused by those who want to spawn in intervals and not let other players play the item lottery. And so, both the Rebels and Combine have interesting gimmicks that give players some interesting opportunities.

At this point, I was almost complete with the map, I got a good feel for the gameplay, the layout was complete, I was artpassing everything, including creating custom models for the railings to make them look smoother and shinier! The only other thing left to do was the 3D skybox; I got the mountains and the rest of the lake added seamlessly, but I had an issue in making it feel like a believable distant scenery. In particular, I needed to place trees around, but there weren't many suitable props and I felt like these were going to be way too expensive compared to the prop skycards that TF2 uses for their maps. I was going to make my own custom skycard, until I realized there could be a potentially better solution.

VBSPs are used to create prop_details for blend textures on displacements, to create the illusion of grass using sprites randomly placed along the ground. I immediately thought, why can't I just use the same method for planting trees and foliage in a 3D skybox? And that's exactly what I set out for. I was a little intimidated by the process initially, but with some help, it was just as easy as editing a vmt file. I picked out a bunch of trees that I imagine would be in the Panama jungle, while also being individual so that there's no cut off and repetition. I cropped them, placed them in a vtf, wrote the necessary scripts in the vbsp file, and voila! It works like a charm.
User posted image
The best part is that I had full range of options that I can easily configure in the script, including the density of the sprites, their size, the option to face the player, etc. I also used the opportunity to add grass sprites to blend textures that didn't have any prop_detail associated.

And from here it was time to polish up my map with optimizations and clipping. I initially wanted to forego the clipping as many hl2dm maps didn't have clipping, but I don't think authenticity here triumphs over jankiness. I added areaportals, hints, clipping to stairs and out of bound areas. I also added some easter eggs and hidden tricks that you can find if you check paths that nobody would take (including one that you would assume is out of bounds ;). I added cubemaps, packed the map, repacked it for smaller size, and uploaded it. This felt like a huge accomplishment to me, as I was in a moment of my life that was truly lost and had no idea what to do, so finishing this project and giving it out to the public made me feel better.
User posted image
dm_panama

The last thing I discovered after uploading my map and playing it with the community is how close knit it was, despite the lack of official content after almost 20 years. This is really a tight-knit community and many appreciated that I made an HL2dm map in 2023. I played in some full servers, got some good feedback that I should implement the next time I update the map, and many really liked it. I hope this encourages people here to also make hl2dm maps because it was worth it for me, even if I'm not the biggest fan of the game itself.

And that's my dm_panama experience! I'll want to write another journal later about my experiences in the sourcemod community, but for now I hope you all enjoyed this reading and learned something from it.

🦭
savvaisnotagirl7 years ago2017-10-20 10:27:00 UTC 0 comments
I finished my de_afghan map! Its called de_breach now and I think you might like it. Here's the link to the vault if you want to check it out.

http://twhl.info/vault.php?map=6241

I made a trailer and posted a lot of quality pictures with it.

Also Gamebananna site if you needed: https://gamebanana.com/maps/197448
savvaisnotagirl7 years ago2017-09-10 12:51:18 UTC 3 comments
Alright, first Journal, lets do this.

I never really had much communication with a mapping community, my first one was in GameBananna but nobody really reviewed my maps (all of them suck don't bother) so I stagnated whenever I made maps. I always wanted to make a successful map, be it on Half Life or Counter Strike, I wanted to make a map that is fun to play in, a very hard job to do.

Fast forward to today, I decided to start on a new, simple project. I tried making a counter strike before but I managed to screw it up through vertex manipulation. So I made a new one, and in one or two hours, I made a layout I was comfortable with.
User posted image
Already this looked better than most of my other work. The next image shows the layout of the whole map, where ts and cts are, etc.
User posted image
Of course I shouldn't just make a map for the sake of making it, I need to make it original and stand out from other maps. First: Where is it? I've already included Dust textures and felt this map worked well with it, so it has to do somewhere in the desert. I first thought of making it somewhere in Africa, but I recently watched a documentary about the Soviet-Afghan War, and decided that's what I am planning on. The terrorists are the Mujahideen forces and the counter-terrorists are the Soviets (With M4 rifles lol).
User posted image
So I got the theme but that's not enough, how does the map perform gameplay wise? Every CS map has sightlines, a center, and 2 bombsites. Following the theme of this map, I decided to add a gameplay theory that could be more 'radical' from other CS maps: Conventional vs Guerilla Warfare.

I'm using these terms very broadly but here is what I mean: The CTs have control over all the sightlines in the map in one location that is very easy to get to: the fort.
User posted image
Which has control over Bombsite A...
User posted image
And a sightline towards the path to Bombsite B...
User posted image
This obviously gives the CTs a huge upper hand, in a competitive setting, they can just put one CT there and 4 others to protect the bombsites, Very Overpowered.

However, this doesn't mean the Ts can't fight back, as the Ts will always have control over the center of the map, which the CTs will always have to fight for and can easily lose due to how quick the Ts can establish dominance over.
User posted image
User posted image
User posted image
The idea is that the CTs can have a good static defense while the Ts have a wide array of flanks that can overwhelm the CTs. This theory will be covered on later, particularly in video form.

Another gameplay mechanic I want to briefly cover on is the terrain. One of the biggest disappointments I have with many maps is how flat everything is when moving. There are obviously some height differences in some areas of every map, but the lack of slopes that the player can take advantage of is what I want to fix. This map will be very dusty, more dusty than Dust and Dust2, and allow players not only attack while moving on the X/Y axis but also on Z axis, allowing full 3D movement (I might be over-exaggerating but I will try to make the most of this).

So these are my ideas that I want to bring out in this map I will call for now de_afghan (I will change it since someone else has used that name but don't have a good name for it yet).

Here is the list summary of what I'm making:

1. A map based on the Soviet-Afghan War

2. Use Conventional vs Guerilla warfare theory

3. Create a terrain that allows quick movement over Z axis.

I will continue making reports on the progress over the map, at maximum weekly. Hopefully I won't lose confidence in the future.

Here are more pictures of some parts of the map current map.
User posted image
User posted image
User posted image
User posted image
User posted image
User posted image
User posted image
User posted image
User posted image
User posted image
User posted image