Sweet! My workaround for streamlining propper is no longer needed. Now you can download a version of propper that works with the “modern” Source games, and you don’t have to install and switch between two development environments.
Get the new recompiled for source sdk 2013 propper here ↙
Note: This isn’t a guide to setting up Propper. For that, check out the SourceSDK documentation and TopHatWaffle’s guide. This is a guide on automating your workflow so that you can spend more time iterating on meshes and your map, and not worrying about the locations of dozens of files.
A Propper Introduction
While getting into some nitty gritty model creation and map optimization on de_boardroom, one of my go-to tools is Propper. But for several years now, propper has only worked via a fairly simple yet annoying work-around. SyncBack is a dead simple tool you can use to automate part of the process.
With OLD propper, you would make an element of a map using bsp brushes, then decide it’s worthy of being a model instead. It could be that you planned for it to be a model from the start, and just used primitives to block it into your level. At this point, you might install propper, hit build, and use it like any other model.
But with “new propper” you couldn’t do this. You make an entirely separate mod, just for propper. You have to get all of your content into that mod, and mapped correctly. That part is pretty drawn out yet it’s simple. The problem I ran up against is in the actual using of the pipeline.
I redefined the feel of the outside of the building, and at the same time proppering the new modular pieces so that I’m not wasting tons of detail brushes on exterior walls which won’t really be seen. So in CSGO, I prototype a few modular wall pieces that I’ll use. I even built out a basic version of the entire building in a side copy of the map, to see if it was really the direction I wanted to go. Once saved in my map, I usually copy and paste out individual pieces into their own vmf’s. Previously, this is where you’d just ‘propper’ the brushes into a model and be done. Now, I have to get my vmf’s into my Propper Mod first.
I’ve got dozens of models, which equals hundreds of files. My eyes glaze over at the sight.
Once in propper mod, I grab it, name it, and build to propper. Repeat dozens of times for little pieces. Now – grab all of those files, which are in proppermod/models/ and proppermod/materials/.. and move them to the corresponding location, back in CSGO.
This is the part that kills me.
I’ve got dozens of models, which equals hundreds of files. My eyes glaze over at the sight.
I’m iterating multiple times on each model- nothing is perfect the first time anyway.
And now I’m in windows explorer, moving files around at 3am, between folders with names like source/prop mod/source sourceSDK/source, and materials/models/props.
This is time consuming, highly error prone, and annoying.
So – automation.
The Proper Propper-Source in SourceSDK (say that 10 times fast)
I could write a batch file that would do the same thing I’m about to describe. It would copy anything in X folder and put it into Y. But then I don’t really know if it worked (paranoia), I can’t see it happening, I don’t have a record of what happened without writing even more junk into the batch file, and if I want to change the way I’m copying files, I’ve got to edit the batch file.
Instead, I chose SyncBackFree. This is a great little backup application that I have used personally and at a former employer to do the local back ups on various servers and repositories. It’s free, and stupidly powerful.
1. Set up a profile for your map’s model folder and a profile for the map’s materials folder. My profile names are Boardroom Propper Models and Boardroom Propper Materials. SyncBack will ask you if you want to Backup, Synchronize, or Mirror. For this task I chose Backup. I don’t want to complicate things by synchronizing or mirroring, since I’ll have other models that are totally unrelated to Propper. This is only about moving the latest files into a different directory, which is the definition of a backup.
2. Drill in and set up the full source and destination paths for the Propper Mods Models and the CSGO Models. Hit OK.
3. Now do the same for your Propper Mod Materials and the CSGO Materials paths. Hit OK.
4. Once finished, review your setup in SyncBack. Really awesome so far, right?
5. Now, go into SourceSDK 2007, in your Propper Mod. Make a model using propper. Hit F9 and build to the Propper target. Don’t even look in your directories for the vtf’s, vmt’s, vtx’s, etc. Just go straight to Syncback.
6. In SyncBack, Hit RUN on both of your tasks. You’ll see a nice GUI pop up with the files, press Continue Run to confirm it.
7. Now close Source SDK hammer, and open CSGO hammer (or whatever game you are mapping for).
8. Open a map and hit Shift+E, Enter. Select prop_static. Open the model viewer using the Browse button in the World Model field. Type a few characters of your model name – voila. You should see the model you created.
What if I don’t see the model? Pink checkerboard?
You typed in all of the source and destination paths correctly, right?
You made sure to set up syncback profiles for both models and materials?
You hit RUN and both profiles finished?
Most errors with the Source art pipeline end up being incorrectly typed path names and file names. Triple-dog-check them.
I’m not a dirty CounterStrike mapper, I make Portal maps! Cake!
Use SyncBackFree to set up any number of Profiles. Remember, a profile in SyncBack always consists of a point A and a point B. Any time you end up religiously copying files over and over, think about automating it.
Other Benefits to SyncBack
Note that since we set this up as Backup, it will only affect files that have changed. If your models share textures, you will end up overwriting certain materials multiple times, but that’s no biggie. It totally works fine.
SyncBack has Simulated Run, a feature that lets you see the changes that will happen when you actually run the current sync rules. The ultimate gut check!
SyncBack also has a log, so you can see the last action that happened. A couple of times I made naming mistakes in Propper that I didn’t catch. Rather than sift through hundreds of files, I checked the SyncBack log and noticed my mistake quickly, out of only the handful of files that were actually changed.
You can also create another SyncBack profile and set it on a daily timer, which will copy your entire mod, or specific files, over to another hard drive for backup. I also suggest something like CrashPlan for general PC backup.
While we’re at it, since I know that most mappers aren’t using version control – get a clue- be professional! Real gamedevs use version control. Start with SVN, or even better, GIT. I say to roll-your-own Git, but you can also use the popular GitHub.
SyncBack is a free, full featured backup tool which can make your life much easier. Hope this works for you too.
What other tools like SyncBack are out there? Is there a better way you’ve found to use Propper in a full scale level with dozens of props? Hit me up!
A multi-tiered corporate boardroom in the penthouse atop a century-old skyscraper. Focus on tight quarters, verticality, and non-traditional CS.
INTERESTING:
*two-bomb DE gameplay at the moment
*multiple custom models
TODO:
*Support more gametypes
*Soundscape/audio pass
*Bombsite B needs work
*Update radar image
*Clipping pass
*Replace more geometry with custom models, such as the white sculpture hanging in the atrium
*Add place names to navmesh
*Fix zfighting in a few lazy places
*Additional detail pass
*Environmental story telling
*Performance testing and optimization
The exterior of the building has been built out almost completely. I can’t promise that will all stay as it is unecessary to see during gameplay. It will be used in some promo shots and new assets for the level, but ultimately removed since it will improve performance for older pc’s.
Here’s what’s happened since I started re-skinning the level exterior, and detailing the interior. FYI still a lot of WIP art, most notably the large hanging sculpture in the center of the main atrium.
Created a dozen or so models for the exterior. Really would like more to match the architectural look I’m going for. Will need a seperate post to explain those.
Pieced the models together into the building exterior, after painstakingly removing the old geometry.
Brought in some portal2 assets, placed in level.
Major lighting and fx pass.
Detailed interior geometry and texturing.
A few semi-major flow changes which might get rolled back.
Not pictured – radar (minimap) texture is in, in a basic form.
Nav mesh work.
Fog/sky work. The building is shorter now, so the effect it has on the shadows from other buildings is bothering me, might raise the building back up.
Playing around this weekend with having two bombsites in this map instead of just one. So much verticality, I like the idea of giving the T’s a bombsite within a few seconds of the spawn. It is likely to spread players out more yet the silo-like vertical paths should let shifts/feints happen quickly in response to one team or another. Definitely not a conventional CS map.
Major changes include the new wood look, and adding a small bit of cover around the boardroom table. I don’t want to add too much and I will also be adding furniture and potentially a few small walls down in the atrium, so this may change again. Also I made the sculpture have a bright texture for now, because it was vanishing and muddying up the player’s view. Ultimately I’ll have a real model in it’s place, probably something with a bright shiny bronze or copper patina.
I have also reworked the elevator shaft, changing the location of the access hatch, and adding a short vent that leads down to the janitor’s closet. This will allow a choice of entering the atrium directly from the elevator, or from the janitor’s closet adjacent to it. The elevator shaft alone was a very direct route, but too easy to camp. CT’s were sitting ducks if they all decided to go that way.
The player pops out in the janitor’s closet via a drop down. It will take more playtesting to see if I need to add a way back up through this vent. My gut says yes.
The final area that needs a lot of work is this upper tier. It is currently impossible for the player or bots to reach, however I mean for it to become a difficult to reach sniper’s nest. Both teams will have quick access to the landing, but it will require jumping and careful footwork. This will possibly balance the eagle-eye view that it will give the players that reach it.
Not too much longer and the map will be at a Alpha stage and I’ll start thinking about releasing it. So far throwing bots at it has come up with a fairly even split, but I have a few major choices to make before finalizing the nav mesh.
To make or not to make the north windows opaque in order to spread players out further before the first conflict?
Cover and new flow on the roof, atrium, and a few empty rooms
Creating stories and experiences for other people to enjoy is amazing fun. Lots of people have already discussed doing this within Minecraft, so I’ll simply share a few scenes and ideas from a small quest that I’m working on in my server. The target audience: two pre-teen nephews of a buddy of mine.
The core idea within Minecraft is that of total freedom within a world with seemingly few but very strict rules. I’m talking Survival mode here, where building a decent sized village actually matters, and shows a good amount of dedication.
When you watch kids play Minecraft, or even better -play along with them- you realize very quickly that:
a) They don’t need your help, but
b) They might benefit from a little focus from time to time.
Kids play Minecraft as naturally as I remember running around my suburban neighborhood in the ’80’s. Back when kids played outside for real, we considered several square miles to be open game (even more in rural areas). Our transportation tended to be BMX style bikes, and we would use each other’s houses as waypoints and safe zones between adventures. Everyone had total mastery of the immediate areas around their house, and everyone shared this knowledge within the group.
We all knew the alleys, and which street to take when going this way, because it curves and meets up with that other street sooner. Or going in the opposite direction, we’ll take that street, because it has a great long slope that we can cruise our bikes down with no hands.
The outer boundaries of our fiefdoms came naturally. As a kid, you learned to stay away from the edges of your world, yet to slowly expand them. If you strayed too far off you feared losing the control you had. This was a very real invisible wall; kids that lived just outside of the fog of war were left out, if getting to their house meant crossing a huge road or passing a few run-down buildings. Yet as we became older and more experienced, we pushed through these walls and slowly expanded the world. The excitement of exploration is a prime motivator.
With that memory in mind, and playing Minecraft for several years with kids of all ages, it finally came about that I would elect myself an adhoc Dungeon Master on the server that I play on. I am not leading groups of players to dungeons, players know how to do that by themselves. Instead, I am simply adding a small amount of structure to the world, to play along side Minecraft’s immense procedural content.
My goal with this is to have players find an unexpected item which triggers a series of events and tasks, leading up to the discovery of a massive underground complex ready to be explored. It’s basically Minecraft with a little history added. (In working on this and writing it, I have become extremely jealous of anyone working on the new EQ game!)
Overworld
I decided to pick several spots on our map that would make sense for a very simple scavenger hunt. In order to ensure that at least one of the kids would even find my quest, I am creating several starting points, each with their own path to the end of the line. Since I don’t exactly have time to mess around with all of this stuff, I am keeping it very simple.
For the uninitiated: The terrain below was randomly created. Each point of interest on the map was either created randomly by the game, built by everyone on the server, or built by me in secret.
The players will hopefully find the first clue at the Witch House to the East of our base. This is a fairly new private server, so my plans will not be foiled unless I can’t implement the entire quest before someone stomps into the stuff that I’ve already prepared. In anticipation of that, I have been working backwards. I started in the remote areas I know no one has been to yet, and have worked my way back towards the planned quest starting points.
The quest is temporarily called “The Mystery of the Missing Explorers”. I have located an Abandoned Mineshaft on a different continent that will act as the “Mysterious Abandoned Dig-site”. This is a key strength of Minecraft and good procedural content in general: I am able to skim the game world for what I’m looking for, and re-purpose it to my needs within the story. And since most of the work was done by the creators of Minecraft, I’m just doing an easy piggy-back which will hopefully give a few kids the willies.
Story Devices in Minecraft
We are running a vanilla server with no mods. For now I’m limited to using these items to tell a story:
Environmental Details such as buildings and props to build out new story context (It’s minecraft, duh).
Explanatory Signs to mark important features, describe areas, and label points of interest.
Book and Quill to create individual pages such as journals, instructions, letters, etc.
The limitations are pretty huge when compared to an RPG. I could devise a redstone machine that would allow me to do some collection quests, but I’ll save that for v2. This would also be perfect for booby traps.
The strengths of these devices is that I can quickly build out some detailed, themed areas and fill them with passive story telling. This works great in Left4Dead, and the against the literal vacuum of structure within Minecraft, I believe even a few mysterious notes with simple hints will spur the players along.
Locations
If the players find an alternate book hidden in our mega underground mining complex, it will lead them here, via a long ride by horseback from our main area.
This Villager will meet an untimely end…this is to be the “Abandoned Village” and I will be slaughtering these AI in the name of the Muses. The other Village will remain populated. Wish I could script these guys!
I created this house and dock (“Boat House”) to provide a grounded place to travel to before being directed to get across the ocean. In Minecraft it’s very easy to build boats, but the Boat House is just a detail that gives the story more depth.
The player approaches an unknown land with a tiny cabin. What could it be? Who lived there? What happened to them?
One of the books I have written and placed around the world to add story details. These are created in-game.
The most remote part of the quest – the location of the cabin in the woods with an abandoned stairway dug straight down into the ground.
The final bit of light players will have before spelunking below. I tunneled far far below this point, placing chests with story books as I went. At the bottom of this is a procedural (game-created) Mineshaft. I then re-traced my steps and removed all of the torches and any sign of my presence along the way. “Leave no Trace”…
Seriously, it freaked me out. It is sooo un-Minecraft to let the zombies reclaim the land, unless perhaps in pvp.
As I was deep in the ground writing the final book page that describes the Explorer’s moment of doom, I heard a quiet and soft padding approach slowly from behind. At the last second I realized I had become a character in my own novel. It was a creeper.
Will report back with the results of this little adventure.