de_boardroom

Source SDK Mapping: Automating the Propper Pipeline with SyncBack

sdk2007-syncback-csgosdk

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.

Take my map de_boardroom.  stats_de_boardroom_2015040102

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.

  1. I’ve got dozens of models, which equals hundreds of files. My eyes glaze over at the sight.
  2. I’m iterating multiple times on each model- nothing is perfect the first time anyway.
  3. 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.

Here’s the steps to automation:

0. Grab SyncBackFree, and install it.

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.models-rule

 

3. Now do the same for your Propper Mod Materials and the CSGO Materials paths. Hit OK.

materials-rule

4. Once finished, review your setup in SyncBack. Really awesome so far, right?

mainwindow

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.

modelwindow

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.

simulate-run

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!

de_boardroom 0.1 released on Steam Workshop

boardroom_iso_v0.1

http://steamcommunity.com/sharedfiles/filedetails/?id=388019891

 

Version 0.1

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.

350px-Steam_workshop

 

New CSGO Map De_Boardroom: Major lighting pass, detail work, new building exterior.

I’m super happy to post this update.

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.

de_boardroom level design work in progress – new architecture

After a lot of debating and hem-hawing, I’m switching the architectural skin of the building from a generic modern look to an older and move developed Neo Gothic (with a touch of Art Deco) style. The old floor to ceiling windows on most rooms will be gone, and the general feel of the level will be much more rich.

Originally, I started this level before the now-famous Agency was released. Agency is an amazing work, and though my original goal was to create a modern skyscraper with that sort of detail, I never solidified the exterior design and what exists on the outside (and parts of the inside) are too reminiscent of Agency. This is not to say I’m drastically changing the flow, but the level finally has a real theme, instead of what was essentially a generic modern building that could be backdrop material in GTA.boardroom_neogothic01

 

That said, here’s an early shot which shows the new direction. The work is still rough and I’m working mainly at this point to nullify horrible redo mistakes by completely implementing this change in a copy of the level, then doing it again it in the actual level. Like in programming, everything is easier the second or third time you do it. Since I can only work at most a few hours a week on this project, I have to go in like a surgeon, or I would simply destroy a lot of work that would have to be redone over a course of weeks. Measure twice, cut once.

The styling and structure will be based off of a number of images and actual buildings, namely the Fisher Building in Detroit.

fisher_building

Screenshot Update – de_boardroom map for CS:GO

DAL-OIL

 

New shots uploaded tonight. I’ve been able to peck out an hour here or there on this map over the last month, and I’m at the point where I require feedback. I’ll be uploading soon, very soon, for some initial testing. I won’t be doing any more work on the map itself before uploading, but I do need to create a basic radar image for the hud.

New bombsite for boardroom

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.

 

new bombsite
Bombsite B

Work in Progress 2: CS:Go Map de_boardroom

I have worked in a new look for the main atrium.

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.

de_boardroom0018

 

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.

de_boardroom0008The 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.

de_boardroom0009

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.

de_boardroom0011_sniperlanding

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
  • Finalize the look and feel.

Work in Progress 1: CS:Go Map de_boardroom

Here are some work in progress images on de_boardroom.

  • Level flow is basically done. There are a few questionable areas that I need to hammer on.
  • Ready to block in some better brushwork in the atrium. I’ve got a sweet reference image I’ll use.
  • Nav is in and working great, except in the elevator shaft. Bots are getting stuck so I’ll need to zhuzh the clip brushes and nav mesh there.