This has been a rather hectic time for me recently. Since I posted the update about Zombie Colony finally getting 100 followers, I've put in traps, had tons of ideas, and flew out to Pennsylvania to look for a few potential job opportunities! (hence, why the mod wasn't updated for a week)
To begin with, I promised more defenses in the last news update, specifically Ravenholm-esque traps. As it turns out, it's simpler to recreate these entities via code than it is in Hammer! I just needed to include the proper physics headers, delve into a bit of code to figure out how to spawn them, and vioa-la, a working propeller trap. Repair it with your crowbar, add fuel by throwing fuel at it, and toggle it by 'using' it.
And as I suspected, the fire trap was rather easy. The hardest part was figuring out how to spawn them. As it turns out, the fire code has a few handy features (AddHeatInRadius, CreateFire, etc). Just make bullets add a lot of heat in a small radius, and you can ignite the various fuel nozzles with your bullets.
So thanks to a friend I met on the Steam forums (Jim) I've learned a considerable amount about mapping. This inspired me to really try to make Zombie Colony as mapper-friendly as possible. From the beginning I've tried to allow mappers a lot of freedom with the resource code. The "Scavengable" resources can be any prop containing any amount of any resource. While that alone is quite flexible, it's still not quite as flexible as I'd like. After thinking about how I wanted mappers to interact with the way the game is played, I realized there is a lot that can be done with even the very simple system that exists right now. At first my focus was taking much of the game and making it dynamic, allowing players to create things at run-time. While that is still a big focus, I realized that the map you play on is just as important to gameplay as how the game is built, if not more so.
So with that in mind, I developed two new brush entities that give mappers almost unlimited potential. The first is zcfunc_repairable, a repairable brush entity. The idea evolved out of giving players more of a goal to work towards, such as repairing and stocking an escape vehicle.
This entity operates much like a func_button, but is tuned very much to the resources. It can be activated by 'using' it, by hitting it with the crowbar, by touching resource entities to it, or by counting the total resources in a pile within it, much like a trigger. It has lots of inputs allowing control over it in-game, and lots of outputs. Activating it with the crowbar or 'use' key gives a set amount of resources from the player's inventory to the entity; when it reaches the limit set in Hammer, it fires a "Trigger" output.
The next entity I set up replaces five others. The others still exist, they're just rendered obsolete.
This is called zcfunc_resourcegenerator. When it's 'used' it creates a non-scavengable resource of a type set up in Hammer, at whatever value defined. Essentially, it replaces the scrap car, fuel pump, water tower, and gunsmith lathe with one single entity. All a mapper needs to do is enclose a model within this brush, and define a spawn offset and resource model. The created resource can then be taken to the command vehicle and is distributed like before.
Just these two entities alone allow for lots and lots of game types. Standard Zombie Colony where players must defend the camp, Left 4 Dead style gameplay where players need to progress along a level, and even a Nazi Zombies style map where players are awarded a resource they then use to purchase doors and weapons are all very possible using just these two entities. And to prove that point, I made a Nazi Zombies gameplay map.
As you can see, my mapping skills aren't quite as good as some, but it was never inteded to be a beautiful map, only a proof of concept. This map features weapons you can buy off the wall, doors you can spend scrap metal to open, doors and windows you repair, and even a prototype random weapons crate; all using just the zcfunc_repairable. Zombie kills and hits award you with scrap metal, which act as the "Nazi Zombie" points. Everything in the map was made using existing entities, along with the brush entities I created.
I do want to make one thing very clear, Zombie Colony is not a Nazi Zombie, or any other zombie game clone!
My purpose in remaking the gameplay of NZ inside my mod was to stretch the concept to it's limits. I thoroughly believe that if I was the only one creating content for this game, it would get very stale very fast. Giving lots of flexibility to the way resources are given and used allows for very interesting ideas, such as a Left 4 Dead map where the goal is to explore an open environment and collect enough medicine to save a life, while building barriers and reinforcing buildings to survive waves of zombies, or even a player-vs-player Starcraft type map, where resources are collected from large mineral brushes and vespene geysers.
This mod is one I've been wanting to make for quite some time. It's a rather ambitious project, and I still don't know how it ranks in terms of potential and quality when compared to some of the other mods for Half Life 2. This is why I need feedback, and lots of it. I don't want to sound narcissistic, but I've been thinking about doing a podcast/devlog/developer diary recently, and I wanted to know if that was something people would be interested in. I want to keep in close touch with the people who are interested in this project, and when it's released, the players in the game. Would you like to see something like this?
Also, following the theme of player feedback, I thought of a system recently that I think would be very interesting and very unique. In the lobby of a map, while players are waiting for friends/teammates to be ready and start the match, I could have a panel with a poll on it that gathers feedback from players while they're playing the game. It would range from simple "do you like this feature" to more complex "should these zombies be faster/hit harder/get nerf'd", etc, etc. Would this be a feature you would find useful?
Anyhow, that concludes this news update. As always I leave you with a video. This one is about the new traps I mentioned at the beginning.