The Large Update

March 25, 2021


VR progress

VR is going to be a thing in BadLads. Here's a quick preview, VR isn't ready for this update.

VR is going to be a part of the base game and you'll be able to play with regular players and vice versa. VR was announced in the last Update Tease, which this devblog is replacing, to reiterate the last post:

The VR experience of BadLads is not a seperate game! It's a hybrid situation, desktop players can play with VR players, and VR players can play with desktop players. You'll be able to have meaningful interactions with everyone. VR comes with VR specific changes, VR options menus, custom VR movement types, VR inventory management. The VR version required some major work in terms of getting the game to run at a stable 144 frames on my VR system. The game is running on a completely different rendering path called "Forward shading" and the engine has been gutted to run the game as well as possible. The best side effect of running in forward shading is that you get infinite light distance in VR, as you can see in the videos above.

Base Building

alt

alt

Base Building is a thing now, find an available Build Lot and rent it out to start building. You can use the new base buildables in any rented estate, they are not exclusive to Build Lots.

New Buildables

  • Ceiling Light. A light source that can be placed on the ceiling.
  • Fancy Spot Light. A hollywood-esque spot light that'll make your estates pretty.
  • Standing Lamp. A light source that can be placed on the floor.

Developer commentary: Adding buildable lights was an interesting problem. The games lighting is completely dynamic and as you may know, dynamic lights kill your framerate. As a developer you can get around this issue by being smart with light placement, adjusting light cull distances and tweaking them to fit specific scenarios. However buildable lights mean anyone can place them anywhere, and as much as they want. This is a big issue, performance has always been king and always will be. That's where the new light culling algorithm comes in, used exclusively for buildable lights. The algorithm prioritizes buildable lights that it thinks should be high quality, in BadLads this is called a significance level. Each light has a significance level that gets assigned by the new culling algorithm that takes light distance, radius, visibility, was recently shown into account and gives it a significance level. The result is being able to place hundreds of lights with no performance impact, while still looking as good as possible.

  • Doors. Keep out those nasty burglars. Automatically hooks into the estate and becomes leasable/rentable just like any other door. Doors can snap into inner wall frames.
  • Windowed Brick Wall
  • Brick Wall
  • Brick Wall with inner wall frame.
  • Foundation
  • Foundation Steps
  • Impromptu Wall Buildable
  • Long Impromptu Wall Buildable

Building Features

  • Base Buildables will inherit their color from the estate you are building on. Making every building look unique.
  • Free Snap - Hold R to free snap, mouse wheel for small rotation adjusments.
  • Smart Snapping - Automatically snap walls and foundations to their appropriate locations depending on where you are aiming.
  • Build Border - Displays a waving line around the Build Lot's border to let you know how far you can build.
  • Build Copy - Click the mouse wheel to copy the buildable you are looking at, it will buy said buildable if you don't own it.
  • Cosmetic Buildable Destruction. After a buildable is removed/destroyed, it will shatter into hundreds of tiny pieces. If you don't want cosmetic destruction, run the game with a -nodestruction launch parameter.

Building Changes

  • Changed: You can now stack buildables on top of each other, as well as place them on any surface.
  • Changed: Changed non-free snap rotation to an increment of 45 degrees from 90.
  • Changed: You can now stand outside of your Build Border and keep building, attaching that pesky piece is now possible.
  • Changed: Buildable Counters and Impromptu Walls are now smart snapped by default.
  • Changed: The build selection menu now rememebers your scroll offset, making it less tedious to use. Base Buildables change their color depending on which property they are on. This is a temporary solution to make buildings look unique. In the future buildables will be paintable.

Contracts

alt

alt

Contracts are goals that players can fulfill to earn some money. Contracts vary based on your current job, some can be fulfilled many times, some can only be fulfilled once. Find a Contractor NPC near you and sign some! Your active contracts can be viewed by opening your inventory menu and clicking on the Contracts button. Or just press F1.


Crafting and Inventory Size

alt

You can now craft through the inventory menu. Right-click on an empty inventory slot and a crafting menu will appear. You'll see all the craftable recipes right infront of you. If you'd like to see everything you can craft, click on the little plus symbol on the lower right corner of the crafting menu. This will toggle into a special mode that will let you see every single craftable item in the game.

The inventory size has been increased.


Plugins

Server Plugins are a thing now. You can get started here: https://github.com/ChemicalHeadsStudios/as-badlads
Plugins go into the BadLadsPlugins folder in your server or your local game save directory, you can even use them in the sandbox mode without a server. They support hot reloading out of the box, so if you are developing a plugin it'll be completely seamless. This is a game changer for BadLads, letting the players create their own rules/worlds within BadLads expands roleplay experience entirely.

The plugins use a new exciting technology called WebAssembly. WebAssembly is exicting because it isn't constrained to a single programming language like traditional game plugins, you can use any programming language that can compile to WASM (WebAssembly Binary Module).


New Empty Map

alt

Cliff is a new empty map that players can use for whatever they want, this map is a prelude to something discussed at the end of this devblog. The map is absolutely ginormous, filled with huge bottomless pits that you best take care not to fall in. Features fancy desert like haze and shifting sand, making the experience really FEEL like a desert. The sand effects also transfer over to Vegas, making the sand look much better all around. SAND!


Visual Revamp

The game has received a huge visual makeover.

alt

alt

A lot of geometry has been completely redone in a new style.


Procedural Progress

Procedural isn't ready yet, work continues. Here are some screenshots.

alt

alt

A lot of work has gone into procedural, dynamic building streaming, performance optimizations to allow for hundreds of thousands of unique objects. The game automatically loads and unloads large buildings right under your nose, keeping object count low is preferable and loading in all the buildings would result in a horrendous experience. This coupled with the new PLOD system ensures that buildings are visible from great distances and don't just pop into existance when loaded.

Current Procedural development goals:

  • Build Lots are coming to procedural.
  • Varied building configurations and styles.
  • More visual clutter.

You can test out procedural right now, main menu -> sandbox -> procedural test.


Identity Cards

alt

Identity cards are a special per-player item. Having your identity card equipped will let others see your in-game name. Their purpose is going to be expanded in the future, players will be able to claim your identity card and steal your in-game identity.


Cotton and Trash

alt

Cotton fields! You go up to a cotton field and hold E to collect some. You do this a few more times and you'll be able to craft a piece of clothing. Cotton mostly spawns in the desert area. Certain types of collectables regenerate after a while.

Developer commentary: The foliage clusters in the game are dense and plentiful, and you're able to pick up a single piece with no issue in a large scale multiplayer game. How does that work? If you go and count how many individual foliage pieces you have per cluster, you'll end up with 64 every time, why? That's because internally the game uses an extremely compact 64 bit data value to store individual foliage states. This makes foliage clusters easy and cheap to network across all players. To make rendering huge foliage clusters fast, the game uses a special instanced rendering path for the meshes, ensuring high framerates. Last but not least, foliage placement can be optionally generated at playtime, meaning this works great with procedural levels.

alt

Trash piles. Trash is a special type of collectable that spawns around the map when the economy is in the dumps. Collect enough trash and craft Recycled Trash. Recycled Trash goes into the Trash Recycler (big trash can), that way players can earn money by cleaning up and recycling.

The economy gets worse when players are printing money, you can view the economy's current state on the large billboard in Vegas city.


Cotton Farms

alt

Cotton can be gathered and crafted into a special new item called: Cotton Farm. There are 2 tiers of cotton farms, high and low. Cotton Farms are a bit expensive, however if you need a fair bit clothing they are very worth it!. Plop one down and get farming!

City Bay Area

alt

A new area created for base building, a lot of large Build Lots that can be rented out!.


Procedural Player Height and Body Scale

alt

alt

Every single player now has a random height and body size. Some people are significantly taller, some are quite short. This is reflected in firstperson as well. Your viewpoint will be shorter/higher depending on your in-game height.


Hybrid Thirdperson

alt

You can now switch between thirdperson and firstperson with F5, which of course can be rebound. You'll only be able to switch on servers that permit thirdperson.


Speech To Text

Real time voice transcription using the cutting edge technology developed by Mozilla (now COQUI). This all runs locally on your computer, nothing gets sent out to any kind of third party voice transcriber. As good as it gets! Why STT? This will all make sense soon enough, you have my word. You can disable voice transcription in the Sound settings.


Text to Speech

alt

Anything you say in local chat will now be announced to the world as text to speech, comes out your characters mouth. Each individual player has a unique voice pitch and voice speed. You can disable text to speech in your Sound options. At the time of writing this only works for Windows desktop players.


Stars and Underwater Visibility

alt

They increase visibility, twinkle and look pretty.

alt

Swimming has always been difficult in BadLads, but pratically impossible while it's dark. That's changed. When you are underwater, the games lighting will automatically adjust to make it clear where you are going no matter what time of day it is.


Optimization Segway

The game has received a massive optimization pass thanks to the intial Procedural and VR work. For example buildings swap out hundreds of unique static meshes for a larger low detail static mesh at far away distances, the settings have been tuned to make it imperceivable if you aren't looking for it. Internally I've coined these as PLOD's, standing for Prefabricator LOD. You construct your building and bake out a lower level of detail representation of the whole building with a click of a button. The game automatically streams PLOD's in and out. This specific optimization actually halved the frametime in Vegas alone.

Next up I've replaced most instances of the dynamic materials (a single dynamic material is single drawcall in an unlit scene, per unique mesh). A dynamic material is used to color your hat, light up your vehicles lights, change the color of your buildables. That adds up quick, so... The dynamic material instances have been replaced with custom primitive data, meaning no material instances are created. Custom primitive data is a cheap way of getting information to your games shaders, unlike dynmaic material instances. This way we only pay for the unique meshes in the scene, which actually resulted in a negligible improvement in my testing scenarios. Because of this change, every single material in the game now stems from a single massive uber shader which takes care of everything you'll ever need. Custom emissive properties with no drawcall cost? Check. Custom colors with no drawcall cost? Check. Custom plane masking with no drawcall cost? Check. This makes adding cool effects a breeze and 0 cost in terms of draw call performance.

Everything else...

  • New Money Drop menu - open a menu to drop your cash with F4. Can be rebound in the controls menu.
  • New buildable damage animation. A new spring like animation has been added to buildables when they take damage. This applies to damage done by other players as well, so you'll notice when someone is trying to damage your buildables.
  • New UI hints added. Vehicles and Items hints have clear indications of purpose without having to guess what you're supposed to do.
  • New physics lights that are tied to a physics rope, they cast shadows and light. Look extra pretty during the night.
  • New ambient environmental sounds near special objects like pipes or water.
  • New Construction platforms - there are several construction platforms scattered around the city.
  • New Interaction Animation: when a player interacts with any interactive objects, an animation is played.
  • New voice transcription toggle in sound options.
  • New voice text to speech toggle in sound options.
  • New voice input gain to the Sound settings.
  • New commandline parameter called -simplelights, running the game with this command line parameter (aka steam launch argument) would double your framerate, sacrificing detailed shadows near by.
  • New tunnel fade effect that hides the skybox if the level is unloaded from a distance.
  • New cosmetic fog, different per level.
  • New Cosmetic Physics Flags.
  • New Cosmetic Cloth scattered around the city's buildings.
  • New game logo.
  • Changed: Base wage lowered by 33%.
  • Changed: Vehicles now hint at what seat you're about to get in.
  • Changed: Bay Area build lot prices to more reflective of build lot sizes.
  • Changed: Road tiles to be crossing near new bay area traffic lights.
  • Changed: Two-handed weapon hold pose in thirdperson.
  • Changed: Certain objects like pipes have a more metallic sheen.
  • Changed: Money printers max print amounts have been halved.
  • Changed: Tooltip menus now have animations.
  • Changed: Radial menus now have open and radial move animations.
  • Changed: New and more detailed door meshes.
  • Changed: Build Tool now has new UI hints.
  • Changed: UI key hints are now animated if the key is being pressed down.
  • Changed: Old items are automatically wiped if a old save is detected.
  • Changed: New light poles, new trashcans, new road barriers, new trees, new sidewalks, new architectural pieces, new parking meter.
  • Changed: The players camera now sways side to side based on the players movement.
  • Changed: Added apartment windows.
  • Changed: Made fire escapes properly climbable and placed them in a more logical way.

This update has been the largest the game has ever received, internally there have been < 1000 commits since the last update. Just writing this update summary is intimidating because of the amount changes you have to go through. I've left out any big technical changes as those aren't relevant in these devblogs. You can find the bug fixes at the bottom of the devblog.


What's next?

alt

  • Custom jobs defined by server owners.
  • Custom maps through an in-game tile editor, intended to be distributed through the Steam Workshop.
  • NPCs?

A new gamemode: "City Grow"

The plan is to add a new concept to BadLads, called a gamemode. At the moment the current gamemode is roleplay, and that isn't going away. A new gamemode is currently being developed, called "City Grow". The idea is simple, you enter into a giant baren landscape, no wages, no predefined jobs. You gather materials like wood/stone/metal and start building your general infrastructure. Meaning roads/buildings/power generators. Lights depend on power and so on. You keep expanding your infrastructure until you've built a city. Certain areas in the map have precious resources so factions will naturally develop. Let me know what you think in the @PlayBadLads Discord or get in touch with me here: mark.jg@chemicalheads.com

The games traditional roleplay isn't going away. The game will be defined into 2 primary gamemodes, traditional roleplay and city grow.


Everything after this point was covered in The Update Tease back in December, which is below.


A lot of assets are remade in a distinct BadLads visual flavor.

Unique objects

Most interactive objects now look different depending on where they are. Adding visual flair to otherwise repeating gameplay objects.

The games internal rendering elements were completely redone from scratch to allow for a single uniform "uber" shader. This is a leap beyond in terms of framerate and given artistic capability. It's a big win internally and performance-wise, giving the game a nice visual boost. It's also a much needed change for the ambitious feature below.

New Characters

The game has received a complete player character overhaul -- introducing some sweet new features.

Say hello to "Georgie", I mean Mr. BadLad. alt

alt

Every single player will have a unique hair variant, ranging from bald to full on mullet.

The best thing about the new hair is its compatibility with any head wearable in the game.

The hair uses a special plane based mask to hide away the clipping while wearing hats. Meaning the game won't swap out your hair for a dingy bald cap when you want to show off your flowing hair to the frightened civilians of BadLads. Also not everyone has a mustache.

New Character Clothing

Every single player has 2 new inventory slots, called wearable slots. Just like your head wearable, you can now wear a wide variety of different chest and leg wearables.

alt

alt

alt

Mannequin Showcase

One of my favorite things about the clothing is that you can show it off on a new buildable called the Mannequin Showcase. alt You can create your own clothing store with these.

Things not planned for this update:

  • I plan to add the ability to paint clothing on these mannequins, but as of right now that's on the todo list.
  • While the new clothing wearables allow for character customization to a new degree in BadLads, players still want to customize their character even more so: like changing the body's proportions, hair type, skin color. I hear you, and I plan to scrap the procedural SteamID characters and add a full character customizer to the game.

New Character Animations

With the character overhaul the game features brand new reworked animations, in thirdperson and in firstperson!

alt

Seats

  • This is a feature I've wanted to add for a long time, so I did. You can sit on every single seat in the game, environmental or buildable. Meaning park benches or buildable toilets. These changes come along with completely new character sitting animations.

alt

alt

alt

Thirdperson

I prefer games in firstperson, that's just me. Some players really don't like firstperson, especially for roleplay. So I added thirdperson to the game, the game by default is still firstperson. Server owners can come in and flick a switch to make it thirdperson just on their server.

We've (shoutout to Ninjarod!) been testing the game out with thirdperson for a few months and I have to say its grown on me, I might switch over to the thirdperson camp personally. Don't worry though, firstperson is not going anywhere!

Revised Building

The building experience in the game needed some work, so I revised it. The Build Tool is now an all-in-one, you don't need Worker's to buy you any more buildables. All you really need is the Build Tool and some cash.

The building has a new look and I've changed the way alignment/snap turning works to allow for finer placement.

New Job: Hobo

Say hello to the Hobo! He's a new neutral type Job that can search the garbage cans around the city for trashy treasure!

alt

Other features

  • Steam Audio has been implemented, binaural HRTF audio is default for all players be it VR or Desktop.
  • New single-player testing mode called "Ladmode" has been added.
  • New interactive object selection outline.
  • Microphone gain options.
  • The visuals UI has been overhauled with animations.
  • All Apartments interiors now have alarms.
  • Steam Rich presence support.
  • Network dormancy optimizations.
  • Droppable items no longer get stuck in mid-air.
  • Game messages like "You have been paid" have a special notification now.
  • Added HDR support. The HDR option will only show up if you have a HDR compatible display and your OS is in HDR mode.

Bug fixes:

  • Fixed players being leftover after leaving.
  • Fixed players not being able to spawn after a server has been up for n days.
  • Fixed crash that occurred sometimes after leaving a server.
  • Fixed UI dropping out of focus for seemingly no reason.
  • Fixed chat scroll.
  • Fixed money falling through containers.
  • Fixed invisible item shadows after switching between firstperson and thirdperson.
  • Fixed text to speech causing the characters mouth to stay open.
  • Fixed misaligned meshes in the new bay area.
  • Fixed cosmetic holes in the new bay area.
  • Fixed vehicle cameras breaking in singleplayer ladmode.
  • Fixed hair randomly disappearing when crouching or sitting.
  • Fixed Drivers not getting paid when a player exits.
  • Fixed bay area traffic lights not changing correctly.
  • Fixed timed actions being offset when picking up items.
  • Fixed firstperson item shadows being visible from thirdperson.
  • Fixed wearables disappearing for a small fraction of time when changing items.
  • Fixed wearable duplicates on Contractor/Job Giver npc's.
  • Fixed previously fulfilled contracts not disappearing from Available Contract list.
  • Fixed passenger UI showing the "Eject" button.
  • Fixed text to speech leaving the mouth open indefinitely.
  • Fixed misaligned meshes in the new bay area.
  • Fixed cosmetic holes in the new bay area.
  • Fixed vehicle cameras breaking in singleplayer ladmode.
  • Fixed hair randomly disappearing when crouching or sitting.
  • Fixed Drivers not getting paid when a player exits.
  • Fixed bay area traffic lights not changing correctly.
  • Fixed timed actions being offset when picking up items.
  • Fixed firstperson item shadows being visible from thirdperson.
  • Fixed wearables disappearing for a small fraction of time when changing items.
  • Fixed wearable duplicates on Contractor/Job Giver npc's.
  • Fixed previously fulfilled contracts not disappearing from Available Contract list.
  • Fixed passenger UI showing the "Eject" button.
  • Fixed text to speech leaving the mouth open indefinitely.
  • Fixed Item Gate not working.
  • Fixed Buildable Thumbnails not showing up correctly.
  • Fixed hitching when opening the build menu for the first time.
  • Fixed crash that happened when you swapped the Build Tool too quickly.