Braxnet Online 2 - January 2025 devlog


Did a lot this month, a lot of it was trying to fit in the deadline of the tech jam. I’m still mostly working on the “singleplayer” part of it as the dedicated server is still not ready.

As usual, a lot of this is out of order, so some features might not be visible in other screenshots.

Logic nodes

I had a thought about how cool it would be to have laser motion sensors that could trigger an alarm when someone walks past them. I started working on a system for this, but it quickly got out of hand, where I ended up making a full logic node system, where you can connect nodes to each other to create complex logic. It’s a bit like redstone in Minecraft or Garry’s Mod Wiremod.

I started by making a temperature switch for the electricity system, but funnily enough it isn’t connected to the logic system.

I added a sprinkler that would extinguish fires and make things wet, but I needed a way to trigger it.

A button. At the same time I made the main handler component, it works by using action graphs to connect to other components on the same game object.

When interacting with a logic compatible object, you get a link option in the radial menu. You can then link it to another object, and select the input and output parameters.

Laser detector
Laser detector that triggers an alarm when someone or something passes through it.

Some more nodes i added were delay, timer, relay, math, compare, and random. All of these use a custom model I made.

Logic nodes in action with relay, random, variable store, comparator, and LED.

A bunch of previous entities have gotten inputs and outputs too, since it’s so easy for me to add them using action graphs.

One of the more interesting ones for a lot of players might be the sound player. It can play from a predefined list of sounds or ones hosted on the internet.

Device parameters

Device parameters I added a system for devices to have parameters, like a stove having a temperature, or a light having a brightness. I’ve had to reimplement a lot of the s&box inspector widgets, they use the same attributes so it’s pretty seamless to add new properties.

Grabbing

Grabbed objects can now both be rotated and brought closer or further away from you. It’s very reminiscent of the physgun in Garry’s Mod. Surprisingly intuitive.

Snapping on both rotation and position was added, so you can easily align objects.

A simple shadow was added underneath objects when grabbed, like old games from the late 90s used to do. Helps a lot with depth perception.

You can also throw objects when held.

Freezing objects in place was added.

Interactions

Radial menu

The years-old interaction popup menu was replaced with a radial (pie) menu that you hold down to open. It looks a lot better, and doesn’t make people confused with a menu that pops up in the middle of the screen. I had to rework the layout code a ton for this, it was an absolute pain to get the math correct, which Copilot helped with a lot.

Radial menu in action showing precision mouse control.

On-screen hints On-screen button hints were also updated to not be in the way as badly.

With the new radial menu, I added optional icons to the interaction system, so it’s easier to tell from a glance.

Water

Water with buoyancy and splash effect.

Made a lot of improvements to the water. It now has buoyancy, so things float on it. It also has a splash effect when things enter and exit.

Water now extinguishes fire, and makes things wet.

It also now properly damages things in it regardless if electric objects were in it from the start.

Wetness

Things can now get wet. They won’t catch on fire, and that’s basically it. I will probably add something related to food to this later.

Pot

Reworked how the pot works, it now heats up by temperature changes, has water, and will slowly cook food inside it.

Gas can

I got some ideas from Carson, and remade the gas can to be more realistic. It now has fake fluid physics, and will only pour when the spout is below the liquid level. I had to fix up the object oriented bounding box code to make this work, had to use a lot of Copilot for that. It helped a lot with the height calculations.

It will dispense gas particles on anything which can be ignited, and spread to other objects.

Explodes when heated up enough. Don’t place it on your stove!

Analytics

Added a simple analytics system, so I can see what people are doing in the game. The most important metric is the error text, which is why I added it in the first place.

Skills

Experience

Skills Cleaned up the skill system and added a few more skills.

Made a cool jingle for when you level up.

Dependencies & addictions

Rewrote how dependendencies work, it’s now using GameResource instead of enums. Much easier to add new ones.

Dependencies version 1

These were very hard to see depending on what was in the background.

Dependencies version 2

Getting there, but didn’t quite feel right.

Dependencies version 3

Perfect. At 6am.

Completely redesigned the UI for them with a few iterations, with a throwback to the old Braxnet Online 1 UI in the final version.

Other

Optimised some calls and refactored a whole bunch of systems, making them less of a mess.

Added a money log, so we can see where money comes from and goes to, mostly for debugging and balancing purposes.

Added trash, with pawn pricing for bottles.

Added a temperature gun to measure the temperature of things.

Some objects can now be stuck onto walls automatically, very useful for things like buttons and paintings.

A new pause menu, with a simple local save and load system.

The carriables UI was updated, much easier to see what you are holding now.

Made an experimental “welder” tool which joins two objects together.