
Hello everyone,
In this thread, I’ll be talking about the process of preparation and production of my content creator pack; Mid-Century Modern. As a little introduction; I’m REV0 from Steam Workshop and I am active on content creation side of Cities: Skylines since 2016. While I did make buildings in the past, my main workflow during that time was mostly revolved around vehicles and especially rail infrastructure. Thus, working on a pure building package was a nice change of pace and also brought its own challenges. But since I'm a bit of enjoyer of the latter, working on this pack was quite fun

Two of the recent projects I did for Steam Workshop: Railway 2 rail network pack and Alstom TWINDEXX train.
Content Pack Roster:
The pack contains 147 growables, 1 district style, 32 props and decals, 11 brands, 5 ploppable leisure buildings and 5 car ports.
Making of: Mid-Century Modern
OriginsI started to gather references for a Mid-Century pack around the same time when I was working on Railway 2 project in early 2021. One of the problems of finding an accurate reference for US rail infrastructure was to go back in time, as it was mostly unmaintained for couple of decades. While looking at references, the Mid-Century architecture became a common theme and I decided to collect materials related to MCM as well.
A while later, I checked those references again and started to look for more sources with an idea of a building pack, which eventually became the base of Mid-Century Modern CCP.
Planning: Technical Preparation
When planning the pack, I set myself certain parameters (or standards if you will) to respect after a bit of ‘marketing research’. Some of these parameters were based on customer feedback of previous CCPs and also my own personal experience in 3D modelling. The original list was more or less this:
- The growable pack must have a custom district style, so entire collection of the pack can be used in a zone. This was number one criticism made for some CCPs that lack district option, forcing users to use Workshop mods to have a district style.
- All assets in the pack must be decorated from start for the convenience of vanilla and console players.
- All assets in the pack must be made in an optimized way, that no post-production work to fix them would be needed, as by that time I’d have little to no time.
- Thus all assets in the pack would use a ‘standardized’ UV layout to switch components on the fly to differentiate the look of assets if it’s needed.
- Assets would rely on high texel density for textures and detail, to a degree that I personally find it acceptable, on-par with Workshop content.
- The pack must offer at least same amount of content as European Suburbia, as I considered Avanya’s work a standard to reach for.
- No unique building template for ploppable buildings, so players would have maximum versatility to use assets they pay for.

References including building detailing, props, garages and so on. Color Refs ended up not being used, as I had later acquired digital color codes for Mid-Century era.
Once I was comfortable enough with residential references, I started to separate and filter all the collected references during the process. This stage was a process of elimination; growables that don’t fit into the style, too large, or not possible to make due to game limitations were removed.
Once the selection is made, they’re all categorized and I started to analyse how many variants in terms of building levels houses can support, and their approximative lot size. This part involved some excel sheet calculation, as I sorted the excel sheet to give me the count of total number of growables, growables per level and growables per slot size to balance things out as much as it’s possible. Some lot sizes are ignored as they were rare or redundant.

Planning: Artistic Preparation
Once the selection is made, I started to check details of these houses. The first issue was the decoration. Most of the houses had gardenwork done and featured decorations on gardens. Since Cities: Skylines is a modern city building game in terms of artistic style, I decided that custom props and decals will be a necessity to deliver the Mid-Century feeling I was looking for. For this purpose, custom decals for surfaces, table sets and planters was planned to be made for the pack. At this stage, I also thought about panels that can be used on houses. These panels would be ‘procedural’ in nature, and change visual variants with each spawn, even with same house.

References of original panelling and some of the props
With that done, I added three more extras to my ‘parameters list’ such that:
- Custom props with Mid-Century artistic style
- Swimming pools must be part of assets, whose fates to be decided on prototyping
- Wall panels would be used to differentiate the look, to be decided on prototyping
Prototyping
The features I had planned to implement was new and required prototyping on my end to make sure I would deliver what I had promised. For this purpose multiple prototypes were made before the production phase.
First prototype was to ensure terrain clipping is working on growable assets. A simple test of using vanilla asset with clipping terrain proved that the feature is operational on growables.

First prototype to test terrain clipping on growables.
Second prototype was with terrain clipping and an addition of submesh on growables. For that purpose and before making any final asset, I used a train mesh in my import folder with removed color map. This test too seemed to pass, and thus submesh with color variable as well as terrain clipping feature was working as intended on growables.

Second prototype testing submesh on growable, color variance and void.
At this point, I ditched the idea of using ‘procedural’ wall panel idea as color variation of props wasn’t something I had control over, and I didn’t like the idea of making non-color variable props that would cover a portion of the façade, which would eventually unify the look of growables. Instead panelling, I decided to color vary all growables whenever it’s possible, to increase possible variations close to 600, over the base of 147 growables.
Swimming Pools
Third prototype was to test swimming pool and terrain manipulation. As I had already started to work on growable houses, I used an existing mesh of a Mid-Century house, and created a basic mesh and textures for swimming pool.

After first series of tests, terrain clipping issue proved to be a problem. There were two problems to solve:
1. Terrain brush being not perfect square (something I was already aware of)
2. Terrain clip area being changed on terrain elevation changes (aka terrain clipping through the pool).

Top left: Terrain void going above pool mesh, top right: cornering problem with terrain clip on 1x1 surface. Bottom: Inconsistent terrain clipping on 1x1, 1x2 lot pools.
Terrain clip cornering problem was solved by enlarging the surface around the swimming pool. After various tests, an ‘acceptable’ size was found and swimming pools sizes were reworked. As for the elevation problem, it was solved by a series of solutions and checks to ensure they behave in the game as intended with no user interaction.
- Growables got ‘flatten terrain’ option to make sure terrain doesn’t elevate on slopes, to a degree. This was still not enough therefore a second check was added:
- Swimming pools received a retaining wall. Retaining wall mesh would follow the terrain and conform to it accordingly to ensure no terrain clips are visible for players. End result turned out very well with these issues solved, rest of the production would continue without any problems.


Final look of swimming pools with retaining wall applied.
Production
Growables
Production consisted the creation of 200+ assets, including the creation of textures, meshes, importing and decorations.
Props that were to be used on growables were the first sets of assets created, as they were dependencies on growables. This included items such as mailboxes, furnitures on gardens and pebble stone decals. A separate set of grass decal was added later to the set, as well as a second and third set of fence props.

Screenshot with focus on growable props, like benches, umbrellas, fences, decals and so on. On the left, out of focus: brand packs, which I will explain later down the thread.
Once garden props were done, I started to work on growables. As said previously, the UVmap of growables respected a degree of modularity, such that uvspace for rooftop, walls and garages were always on same coordinates, for ease the workflow and simplify the uvmapping process.

More or less the final uv layout that was used on growables. Horizontal tiling was essential during the texturing process.
In addition to this, modular wall pieces were made that is already uvmapped. During the creation process these wall components were re-shaped, rescaled and retextured where they were needed. Components such as raingutters were also made as a pack to be re-cut for houses that needed them.
Efficient UV mapping also allowed the texture share for some growables. While I avoided to reuse same texture for multiple different growables, for certain cases textures were shared across different class of growables, as certain texturemaps contained 2 variants of walls, or roof texture, allowing to share one map for 2 completely different house. For assets that had enamel roofing, I also included dirt texture that overlays on roof, this was achieved by using rotor shader on dirts, another application that was inherited through workshop workflow.

Example use of texture share.
As I had about 2 months for entire project, I paid attention to start one house set and finish it in the same day as minimum. Thus the daily workflow for a growable set was:
- Texture arrangement
- Modeling of all growables in said set with all levels
- LOD mesh making
- LOD baking for one type, then reuvmap to share same textures for LOD
- Import
- Decorating all growables
- Final saving to be tested and delivered to PDX
Ploppables
Similar techniques for texture-share and modelling was used on ploppables, with a slightly larger texture canvas (from 512x2048 on growables to 1024x2048). Ploppables were also decorated with era-specific branding style, and with fictional brands.
From the start, ploppables were planned to feature random branding, which would change per placement. For this purpose I created all brands at one go, then created set of brand props which include ‘sub-brands’ with an equally distributed spawn rate. Thanks to my previous tests, signboards were imported as subbuilding (and not submesh) to allow color change on boards.

Brand change, combined with color change on sign towers the end result was acceptable to achieve good amount of variation. With basic math, users receive 4 color variants for the structure and 5 brands giving 20 possible permutations of branding. This specific board is used on Roadside Diner.
As a last minute decision, I also added ‘Mothership’ the space-age themed restaurant, inspired by Theme Building in Los Angeles. It wasn’t in original pitch of my pack, but I wanted to have something that can represent unique looking Googie/Mid-Century asset. PDX was gracious to accept the last minute change and the building was included into the pack before the final delivery. Same as Roadside Diner, ‘Mothership’ also use random branding system, and is a ploppable (and not unique building).

Carports
Car ports were the last ploppables made for Mid-Century pack. Parking lots have always been one of the requested feature of vanilla and console users. Since some of my references had separate carport structures, I decided to use my pack to address this request by using available base-game mechanics, as CCPs cannot add any new mechanics.

Carports in Mid-Century Modern pack are using 'park' template that is available in the game, with additional entertainment and attraction value. This allows them to be visited by citizens and so they park their vehicles inside carports and designated parking lot markers, or these slots are used by nearby buildings.
Import
During the import process, all assets are tagged with keyword "Mid-Century" for ease of convenience for users, via their description section. As a final work, custom thumbnails were made for assets that are ploppables, props and decals. Growables didn't require any thumbnail work, as they are auto-generated.

Some of the thumbnails/tooltips, used on assets.
During the production, a total of 3016 raw files have been created (this includes textures, main and LOD models, thumbnails). The final size of the delivered asset pack is about 680MB, however since texture share is intensely used on growables, final load on RAM use is expected to be less than 1/3 of the pack size.
I'm closing the dev-diary with additional screenshots from the pack. I hope you find this pack useful, and enjoy being creative with the content,
Thank you for reading,
REV0












Last edited:
- 13
- 6
- 1