When I was younger - about 12-13 years old I started to get interested in game developing. My favourite game was Half-Life. I don’t remember excatly why and how I started to creating custom maps, but when I tried it I wanted to create more. I never have been a creative person. It was so interesting for me.
Some time later I found mod for Half-Life which was called Sven-Coop. Now it is a standalone game. This mod just added a possibility of cooperation in playing Half Life storyline.
This game was so simple and fun. All PC’s was able to run this. The requirements was very low. There was no needed a high-end PC to play this. All you really needed was a group of friends and some free time.
If you finished Half-Life campaing, you will able to download more custom maps made by a community. Sven Coop Map Database still exists to this day. You can choose something for yourself and your friends from among 1550 maps. There is so much different map categories to play. Puzzles, mazes, climbing, survival, scary and many more.
That was it. When I found this mod (as I mentioned above, now it is a standalone game), I found this website with custom maps - I thought that I wanted to give people more custom content with my own ideas, but I was never a good mapper.
Mapper - the person who creates custom maps for games. That’s an ancient word. Now someone like that is called LEVEL DESIGNER
As you can see I started to make my own custom maps for Sven-Coop. They was ugly as fuck and with time of gameplay for about 5 minutes. But I wanted to create more.
I also tried to create maps for Counter-Strike 1.6 (it was also a mod for Half Life). I had to get knowledge from somewhere so I found a polish forum called “hlmaps.noskill” or something like that. I created account and as young guy which want to create “big things” started to asking on forum instead of reading tutorials.
I found my the only one finished and published map on some russian site - cs_rivercliffs
Because I get to this mapping forum I met my first “internet friends”. They were different from the people I had contact with at school. We had the same approach to life, the same view of the world and the most important - same hobby. I knew that these were the people I wanted to talk to, they were interested in the same thing as me - they were interested in level design, whether for Half Life or Counter-Strike.
Two of them are for this day into game development - one guy is making his own games on Unity, second one is author of one of competetive pool maps in CS:GO (now CS2)
We quickly became familiar with each other. We always wanted to create something togheter. We tried to create own mods for Half-Life. Yeah, one was called “2012” as you can see on the screenshot above. I don’t remember what was the storyline
We’re posting our progress on YouTube. My friend modeled this ugly AA12 and I coded it. Yes, I instead of making maps, I was into coding in C++ in Half-Life.
We also made one map for an Easter Mapping Competition which won.
Secret City series - main inspiration
On mapping forums I also met another guy. It was the same year - 2008. I found on Sven Coop Map Database map series called Secret City.
These maps made me realize what I really wanted to do. We loved them. But why?
What was so distinctive about these maps, why were they so special?
Because they had a lot of secrets. You just spawned in a random building, without any objective, any hints. You have to mess around with this map. I remember when I was free-roaming at this map when I run it for the first time - I accidentaly pressed some hidden button in the wall and something opened. I messaged my friend quickly asking him to join the server to discover the rest of map.
Secret City - Secret example
Secret City - Secret Door Example
These maps were filled with mysterious, disturbing, creepy strange looking places. Just clean surrealizm. This made them so special, unique and memorable. When I looked at them, I often wondered what the author had in mind, what he had in mind to create such a thing, what the story was behind it… Why does it look like this?
If I remember correctly there was no any tutorial, walkthrough, solution how to finish these maps on YouTube, We wanted to discover all and then make a walkthrough how to complete them
That was the point - no hints, just hunting for a secrets.
Now in 2024 Secret City saga has remastered version which I didn’t play yet. According to description it will not look like these first ones maps. They added into them some “hints for noobs”. I must play to give a feedback.
We wanted to play more of this type maps but there is no more on database available maps like these ones.
Fun fact:
There is a still active discord server for Sven-Coop developers. In 2024 people are still making maps for this game
GoldSrc (an engine of Half Life/Sven Coop) had it’s own vibe but it was very limited.
Source Engine - Half-Life 2, Garry’s Mod
Some time later I played a Half Life 2. It is such a good game. Then I discovered Garry’s Mod. The history of GMod was the same as Sven-Coop. Firstly it was just a modification to Half-Life 2 and then it was published as standalone game developed by Facepunch Studios.
It was a definition of Sandbox game. You was able just to have fun with Havok physics engine. Limitation was an imagination. GMod was highly moddable. You can make your own models, maps, tools, gamemodes and many more. The game was designed with modders in mind, providing them the LUA scripting language. That was a “tool” which allowed you to create own gamemodes, weapons, entities and more. People started quickly to port content from other games, so we was able to play maps from Counter-Strike, Portal, Call of Duty and many more. You can also download player models like Lara Croft. There are tons of mods for it. It is the biggest workshop on Steam.
One thing didn’t exist on the Garry’s Mod Workshop - maps like Secret City. There was also no co-op gamemode which will allow you to play with friends Half-Life 2 storyline.
First map - DX_CIRATS
Base on that I wanted to create something similar but to Garry’s Mod. I was 100% sure players gonna love it, and that’s how I created my first published map to Garry’s Mod. I very liked rat-styled maps so I created new one based on my room where I lived.
Originally it was uploaded and published onto ToyBox which was replaced later by official Steam Workshop. I’ve lost map source files and if I wanted to reupload it to workshop I have been forced to upload it in the same condition as I had the package with the map - mainly missing materials and models. Map is also heavliy un-optimized so it causes big FPS drops on high-end PCs
To today’s day it has 885 subscribers, 21 added to favs. I do not remember if this map has ending. Maybe some day I will play it with some friends and check what it looks like.
Making those type maps had one big problem - Garry’s Mod in sandbox gamemode allowed players to cheat very easliy. They can turn on noclip (flying) with one key press or godmode. So I had to take this into account in my second production
Dumbass Museum
Meanwhile I started to make a map with my school friend. We wanted to publish it for Sven-Coop so we are back to GoldSrc engine. It was heavliy inspired by Secret City 3. We called it “Dumbass Museum”. I do not have any document with storyline for it, I remember only the goal was to find an exit door key. Why Museum? I think it had to be a some “old memes” museum.
It was the biggest and I think the prettiest map I have made for GoldSrc. It is unfinished but I recovered the source file from old HDD so maybe one day I will finish it… Why we didn’t finish it - I do not remember.
This room is almost 1:1 looking as one of our school class room
Can’t find any better photos
If I remember correctly Dumbass Museum was supposed to refer quite strongly to our school and its people. We hated this school and the people.
DX_CIRATS2_V2
After some time I started making second version of DX_CIRATS. I was living in another room so - it’s time for another map! Lol.
The name - “CIRATS” was just a shortened “Ciasna” street name + rats styled map.
This map was very first finished one and clear of any bugs. I do not remember how much time I was making it. If I remember correctly this is the first map which had own gamemode called DX PUZZLES. I coded it because of “cheating” I mentioned before. Its job was just to prevent no-cliping, enabling god-mode and other stuff like this. I knew it was easy to bypass but it made it somehow less possible.
This map has one main objective - collect all “wall painting” pieces. If you want to finish map for 100% you must do the rest like find secret buttons, find all weapons etc. It has a very little amount of hints for players. Things like hidden doors in walls or breakable walls without any hints are making this map very hard to finish. Especially the jumping part.
This map was a HUGE success for me. It was for the first weeks of upload on the main(featured/recommended) Steam Workshop page!
To todays day it has:
- 6339 unique visitors
- 4296 subscribers
- 106 added to favourites
- 33 comments
It has been published 10 YEARS AGO. The feedback of players was very positive. I was very positively surprised.
There was a video of someguy which completes the map but it is private now :(
That was the kick for me to move on with the next map and…
DX_CIRATS3 - never finished map
Why?
I began working on this map in January 2019, which was 5 years later. This was because in December 2018, I had an accident where a car hit me, breaking my leg. As a result, I was bedridden for a long time. Since I hate wasting time, I decided to return to making maps, and thus I started working on DX_CIRATS3. It was supposed to be another room I lived in, but it was different because I had moved to Krakow.
Thea idea for the storyline was simple: Find the key to the second room - to do this, player would have to complete all the tasks that were prepared.
Work progressed very quickly - I even posted on Reddit asking for opinions how it compares to reality. There was one comment where someone realized it was a game when they looked at which subreddit he was. That was a sign - I had to continue working. I wanted to create something much better, cooler than the previous map.
I decided to upgrade my gamemode DX PUZZLES to something better - I created new weapons, new UI (User Interface), display information about enemies. I wanted to do all these things and - I did them. Once I finished those, more ideas popped into my head, like adding my own functionalities such as a door keypad, the ability to input passowrds, reading notes, and one of the most important - “Singleplayer Helper” which would cchange things on the mamp that require cooperation with another person, for example: pressing two buttons at once, so one person could do it.
An UI changed example
I don't why I did it but I like hitting NPC with bottle of polish beer :D
byu/Dexter1272 ingmod
Yes. I even made a bottle of Polish beer “Tatra” as a melee weapon - I was so bored sometimes. Of course, everything was dictated by learning programming, 3D modeling etc.
The note system I mentioned earlier. The notes were just an HTML file opened in a browser window. The background was an image simulating a piece of paper, and the text was just plain text with a custom font. Magic.
"The Polish pathology in games" - I made such a scene when I was learning to model in Blender and Google Sketchup
Main Menu - here the modifications were very limited, the only thing I could change was the background.
- Addon checker - you must have any addons disabled to play the gamemode/map
- Gamemode checker - as above but it checks if you have correct gamemode active
- Shield Regeneration
- New healthkit system
- Picking up items when pressed “E” (default is when you touch them)
- New UI
- Objective System
- Notes System
- New weapons
- MP5
- P99
- RPG
- Grenade Launcher EX41
- M16
- AK47
- Desert Eagle
- Glock 18
- M1 Garand
- Railgun
- L96 Sniper Rifle
- AR10 Automatic Sniper Rifle
- Remington 870
- Shovel Melee Weapon
- Frypan Melee Weapon
- Beer Bottle “Tatra” Melee Weapon
- AA12? - it is bugged IIRC
- Singleplayer helper
- Singleplayer enhancer - you can toggle this on/off, it randomizes new weapons fro enemies for example in HL2 Campaing
- Gamerules entity - set of map rules (ex. should health regenerate, starting health, should flashlight can be turned on etc.
- dx_message entity - display enhanced messages to players
- dx_timetrigger entity - can be used to trigger something on the map when time in real world will hit desired hours & minutes value
- Custom NPCs
- Custom projectiles
- Weapons are deploying magazines while reloading
- Dynamic player camera while reloading
- Display enemy/ally NPC info
- Display player info
- Scoring system
- Puzzles solved scoring system
- Improved NPC aiming, shooting
- Stamina system
- New falldamage, fall camera effects
- New weapon switching system
- Server-side ragdolls
- Hitmarkers
What is the current status of the DX_CIRATS3 map?
The beginning of the gameplay is done without any introduction. The main section - “System Recovery” - we have to go through a test/quiz by hetting rid of computer viruses and answering questions related to the IT field. When we manage to complete this procedure, we must find a RAM to install in the computer due to an error. That’s about it, there’s nothing more. The entire “IT QUIZ” section is designed in such a way that there must be all 10 correct answers, if even one is wrong, we have to repeat the whole thing - I know it shouldn’t be like that, but that’s one of the aspects of these maps.
Work has stalled due to burnout and lack of ideas.
In one of the screenshots, you can see a laptop lying on the bed - that was my workstation at the time, and that’s what it looked like when I was creating this map. You can see the bank account balance on the screen - that was my account. I had a ton of debts at that time, so when I returned to work around 2019/2020, I started paying them off, and so on until around 2021/2022.
I made a memorial referring to my accident where I had broken leg.
One of the limitation - I wanted to create a 3D Skybox with a view what was behind the window. But with this size of map, making even bigger 3D Skybox was impossible. Game was crashing.
2021/2022
I wanted to get back to this project once again, but I started to be interested in the Unity engine. I read a book on game development on that engine. I began to wonder if creating my own game called DX PUZZLES from scratch instead of an extension to Garry’s Mod wouldn’t be a better solution. Then I would have full control over everything and all limiatations would disappear. One of the basic limitations in Garry’s Mod was for example - lightning - the lack of real-time global illumination. Unity on HDRP already offered this. With that technology everything could look much nicer.
DX PUZZLES 2021 - Unity
Why Unity?
I Know there was something like S&Box. on the Source 2 engine which already had real-time lightning (and don’t know excatly but I saw something like this). It had many more possibilities. The programming language was supposed to be C#, which is essentially what Unity uses. I quickly learned it. It was just easy, readable. Unforunately S&Box is still in closed beta, so you needed a license key, which I managed to obtain this yer, but more on that later. If I had access to that game at the time I definitely wouldn’t have started Unity. I didn’t know if switching to Unity was the right move, and to this day I don’t know if I shouldn’t have just continued what I was doing in GMod. We’ll get to that later.
In Unity, to achieve the same as in Gmod I had to do everything from scratch - including movement. At the very beginning, there was a problem but I found some code on GitHub that someone had written and the movement was very similar to that in Half - Life. So, based on that I wrote my player movement. Unfortunately the biggest problem was handling sloped surfaces, so the player would slide when standing on them. At those moments I told my self “I’ll come back to this later and fix it”
I created movement, HUD, climbing ladders, swimming, crouching, jumping, shooting weapons, equipment and many many more. Everything was going well.
I event managed to write footsteps system so that there would be different sounds depending on the texture. Yes - depending on the texture. All the Unity tutorials showed how to do this by assigning a “tag” to each object in the game. So, each one had to be individually labaled as metal, sand etc. I wanted all this to happen automatically, and I managed to do it.
Just started with #unity3d some time ago. I'm not good programmer. It is my hobby as whole IT. I'm not good at maths too but I'm trying to recreate some features from goldsrc/source engines like movement etc. Here is what I have got so far and decided todo #100DaysOfCode #gamedev pic.twitter.com/0OXSNoNJn9
— Dexterowski (@Dexterowskii) July 7, 2021
Something was missing, and I realized that the concept of DX PUZZLES involved cooperation, so multiplayer was needed. So, I decided that I either learn to make multiplayer or give up and go back to Garry’s Mod. I opted for the latter and started learning the basics of how everything works.
11 / #100DaysOfCode
— Dexterowski (@Dexterowskii) July 17, 2021
Got moving and rotating platforms working in multiplayer, fixed a lot of stuff. Need to fix HUD but it's task for tomorrow. I am very happy with results :D #DEVCommunity #solodev #gamedev #indiedev #gamedevelopment @unity3d pic.twitter.com/o8Ztm2fUgG
But I managed how to do it. I even managed to make moving platforms in multiplayer, which wasn’t an easy task.
21 / #100DaysOfCode, #100DaysOfGameDev
— Dexterowski (@Dexterowskii) July 28, 2021
Made some prototype menu and new network manager which handles creating/joining to game. Also made flashlights for player but I must tweak them a bit .#indiedevhour #DEVCommunity #solodev #madewithunity #gamedev #IndieGameDev #CodeNewbie pic.twitter.com/j3WuqnBTzv
Then I made a menu according to my own vision - something I couldn’t do in Garry’s Mod.
22 / #100DaysOfCode #100DaysOfGameDev
— Dexterowski (@Dexterowskii) July 29, 2021
Looks familiar? :D Trying to recreate #HalfLife 2 object grabbing and this "bug" also come with it :D it is unfinished and needs a lot of work but I hope finishing it. #DEVCommunity #solodev #gamedev #gamedevelopment #CodeNewbie #indiedev pic.twitter.com/Tqgs5kTe13
Object grabbing in the style of Half-Life 2. Everything was going very well. The Source Engine also had a very cool system for creating logic for maps. I also wanted to create the same thing.
23 / #100DaysOfCode #100DaysOfGameDev
— Dexterowski (@Dexterowskii) August 1, 2021
Buttons, doors. Working on Input/Output system as you can see on the video. It is also networked so everything is synchronized. #solodev #DEVcommunity #halflife #madewithunity #unity3d #indiedev #screenshotsunday #gamedev #CodeNewbie pic.twitter.com/0LbWm1U3S9
When I noticed problems with game synchronization I realized that I propably couldn’t do i t all by myself from scratch. At that time I didn’t know yet that the P2P network model was one of the bigger obstacles for me, and this game should be made on a Server-Auth model.
So, I returned to programming in Garry’s Mod and finishing that project. Only gamemode, map isn’t finished to todays day. I fixed bunch of bugs and wanted to bring it to a playable state but for now I think it will need a lot of tweaking.
DX PUZZLES 2024 - Unreal Engine
This year (2024) I decided to revisit this project. I watched videos on Unreal Engine and decided to give it a try. Why? Because this engine has many ready-made features that I would have to build from scratch in Unity. Among them:
- Server-Authoritative networking
- Network Prediction Movement
- Audio Engine (DSP effects, and more)
The difference between Unity and Unreal Engine is that the latter truly focuses on providing developers tools to make an actual game. Unity was focused on making money, they obtained the way to develop their engine onto mobile games mainly than PC. I mentioned real-time lightning (Global Illumination) - the difference between Unity and UE 5 is that in UE5 we can use it without having a graphics card that supports ray tracing. In the Epic Games engine, we also have access to Nanite technology, which relieves the creator when creating 3D models. We don’t have to worry about LOD (Level of Detail)
All of this convinced me to try moving this project to Unreal Engine 5. The only very discouraging thing was the programming language: C++. There is also the possibility of visual programming called Blueprints, but the truth is that at a certain stage of game development, we will also have to use C++. A good example is creating our own player movement mode like sprinting. We can do this in Blueprints, but we won’t code the prediction of movement. So if the second player has a weak internet connection, this movement won’t be smooth for both sides - in a very simplified explanation.
I managed to move the simplest things to Unreal Engine 5.3 - such as Main Menu, UI, movement, and a few other things. I also bought the “HammUEr” plugin, which allows importing maps from the Source engine into the Unreal Engine editor.
The biggest difference between Source and all other engine is that none of them support creating maps based on CSG. This means that in the engine, we actually only import ready-made models as a map and assemble the map from parts. In the case of Source/GoldSrc, we built maps based on geometric shapes such as cubes, cylindres, cones etc.
DX_CIRATS2_V2 but it is Unreal Engine 5
In this video, we can see some progress I made, but I would rather demonstrate how global illumination works in real-time using Lumen technology.
I also started working on climbing ladders to achieve the same movement as in GoldSrc - interestingly, in Source it was completely different but this engine had backward compatibility for old func_ladder entities.
The list of things done in UE5:
- Half-Life style movement
- Water system, swimming
- Menu
- Basic UI, HUD
- Game rules that decide things like whether we can sprint, use a flashlight, how much health we have on spawn etc.
- Death/Respawn system
- Player spectating system
- Map restart system if respawn is disabled and all players are dead - Depends on gamerules setting so each map can have this enabled/disabled
- Killfeed
- Stamina(Possibility to turn on/off by gamerules)
- Steam Sessions (Just steam networking support like invite a friend to the game)
DX PUZZLES 2024 Swimming System
DX PUZZLES 2024 Water Splash
DX PUZZLES 2024 Snow footsteps, sprint, stamina
So, in fact, I’m starting the project from scratch in version 5.4 Maybe not entirely from scratch because I already have some things coded. All I have to do now is to do them better.
To this day, I don’t know if I’m doing the right thing by creating this from scratch in Unreal Engine. It has its pros and cos.
Pros:
- I have access to the latest technologies, Lumen, Nanite, Motion Matching etc.
- I have access to many photorealistic assets that I can use for free
- I have full control over what I create - nothing limits me
Cons:
- Unreal Engine does not support BSP/CSG map creation. I have to create them in the Source, Source 2 Hammer Editor, then import them into the UE5
- Many basics systems such as map logic programming(opening doors etc.) I have to code from scratch, taking into account network synchronization between players.
Continuing what I started on the Source engine, everything is ready – I would just have to finish, for example, the map DX_CIRATS3 and create new ones. The biggest cons there is the outdated engine without real-time lightning.
It’s a pity that Facepunch in S&Box got rid of the old entity system and replaced it with the new scene system. They’re turning it into another Unity or Roblox. So I’m forced to create this on Unreal Engine if I want DX PUZZLES to use a modern engine and lighting. I think it will be very difficult to geve people the ability to create their own content like maps, as it was with Sven Coop.
So that’s end of the story, and you’ve learned that I’ve been standing still for a few years now and don’t know what to do next with this project.
Summary - how I want DX PUZZLES to look like?
I do not want to create another Roblox or S&Box or Garry’s Mod. I would have a a base game which will be constantly updated. Without any main campaing, any storyline. I want to community to build the levels, maps with storyline or without. I want to be something like a database of maps which you can browse and play with your friends that one which looks fun.
In novadays something like “modding” do not exists. People who want create something own they are switching to Unity, Godot or any other game engine. I would want to give the players a something what is playable and has all game features needed.
Features that would allow players to launch an editor and start creating their own maps, storylines, or perhaps just a level focused on climbing and performing technical jumps? Something like a 3D platformer, or maybe… recreate levels from old PlayStation 1 games like Tomb Raider and give players the opportunity to experience Lara Croft’s story but with friends? Wouldn’t it be fun?
Ekhm, by the way we’re talking about old Tomb Raider. Did I mention that I tried to do Tomb Raider 2: Reloaded on Source Engine? I am not sure but this was the first one idea about re-making the old Tomb Raider, isn’t it? Mine was in 2010 and second one started in 2016 but on Unreal Engine and it looks like abandoned because the latest post is from 2017.