For the past year I've been chipping away at a new game project in the background. I've recently began mentioning it, have posted a few nondescript teasers in the Neognosis discord, and have even backported some of the shader improvements for it into BallisticNG (there might still be some more stuff to come).
Ever since the introduction of the small vehicles content in BallisticNG there's been a very particular idea I've wanted to execute, based on one of my favourite racing games.
[dynamiclink href="https://www.youtube.com/watch?v=IdU-MmsaE5g"]
Taking place 20 years after BallisticNG, Aster has developed its anti-gravity bike league into a major sporting event that sits alongside the AGL. Experimenting with afterburner technology, Aster has carved it's own segment of AG racing where boost is king and piloting in a straight line is a sure-fire way to lose the race.
In short: this is BallisticNG small vehicles with a Crash Team Racing twist.
Verticality, drifting, boosting and boost reserve management are the name of the game. Rhythm is king, and if you have the skill you'll be barely wrestling control as you careen around at white-knuckle speeds.
Physics test available now!
[dynamiclink href="https://store.steampowered.com/app/4877720/Aster_League_2179_Demo"]
BallisticNG was available to play in its most infant stages and as a smaller developer, having people who were hands on and passionate about the project very early on was massively beneficial.
I'm doing the same with Aster League. Throughout early stages of development I'll be releasing free builds of the game for everybody to play. This starts today with the physics test, and updates will continue through to a completed alpha build.
The game currently only has a Windows build. Linux builds will be coming later!
What's in the physics test?
Cassandra, a track set in the location of BallisticNGs first track.
The KA10 kart and LB221 bike. These are placeholders and will be replaced in future updates.
1 pilot character, another placeholder which is going to be replaced in later updates.
Time Trial and Free Play gamemodes
Toxic, Apex, Halberd, Spectre and Zen speed classes
2 songs. More will come in later updates.
What's coming in the alpha?
3 more tracks
New vehicles
Pilot characters
Ai racers and the core Race gamemode
Weapons
Updated logos and slogans for the BallisticNG teams
Where can I provide feedback?
The best place to give feedback is on the Neognosis Discord: https://discord.gg/neognosis-games
Aster League also has its own Steam discussions you can use: https://steamcommunity.com/app/4877690/discussions/
Or send an email to [email protected]
The Long Plan
While I don't want to reveal too much this early on, especially as things can change, I do have an idea of what I want the final game to look like.
In broad strokes, the plan is:
Several vehicles covering karts, bikes and other bonus vehicles. Each vehicle will have selectable liveries.
A character representing every racing team within the BallisticNG world.
Vehicle and characters are cosmetic only. Stats will be chosen separately.
Several cups worth of tracks. Primarily new locations, but a few locations from BNG will make a return and be remixed.
Light combat elements. No eliminations, weapons will provide ways to slow each other down.
A campaign with an open hub, with mods being able to add their own.
4 player splitscreen
Online multiplayer (direct IP or through Steam)
Extensive modding capabilities
DRM free
Once the game has hit alpha status I'll stop pushing out game updates while I prepare for an early access release.
The early access release will contain half of the game's content and introduce 4 player split-screen, online multiplayer and extensive modding tools.
Exact numbers for content will be revealed when early access begins.
Technical Nerd Stuff
I've left this until the end since I figured some people might be interested as a lot of it is relevant to future modding support.
Physics Interpolation
A huge technical debt I had with BallisticNG is that very early on it was setup to run at 200tps (ticks per second) and wasn't built with physics interpolation in mind. This means BNG is particularly CPU heavy for physics calculations and because 200 isn't evenly divisible by common monitor refresh rates, the game looks a bit choppy.
Aster League fixes both of these issues: the physics run at 60tps and the transform of the vehicle is interpolated between each physics tick. It uses significantly less CPU resources then BallisticNG while also staying smooth at any refresh rate.
Lighting
The final output of lighting is exactly the same as BallisticNG, which uses vertex colors, but the technique of baking it has drastically changed.
In BallisticNG, a custom lightmapping tool was developed which simulates real-time lights and uses light sponges to help subtract natural lighting in places like tunnels. It relies on Unity physics raycasts for shadows which makes it particularly slow as it wasn't built around Unity's newer task system, which means it's single threaded.
Aster League instead hooks into the end of Unity's built in lightmapper and samples the lightmap textures to bake the vertex colors, all on the GPU. Since you don't need a lot of resolution for per-vertex lighting, the baking is pretty quick and scales much better with much more complicated scenes, while giving you the benefits of baked raytraced lighting and a useable editor as it computes (important for modders).
The end result is higher quality lighting with no rendering performance difference to BallisticNG.
Shared SDK
Modding came later on in BallisticNG and the solution I had come up with to add support was just to have a separate library with slightly more user friendly versions of the internal tools. It meant everything had to be developed twice, tracks have to be converted on load and adding anything to the modding tools is just a pain.
Aster League is being built for modding from the get go, and a large part of this has been writing code that can just be copy pasted into another Unity project. What I'm using internally to make the game is exactly the same as what you'll be getting for making mods.
When the modding tools are released in early access, an entire Unity project that mirrors the game's project configuration will be provided, giving you a complete development environment.
Mod Files
Mods will be working differently to BallisticNG. Instead of folders being used to specify mod content types and their categories, all mods will be inside of a single folder as container packages. Each mod file can contain anything!
Each mod contains a content manifest which allows the game to very quickly determine what's inside and setup data. This is needed for the everything in one file approach, but the driving force behind this way of doing things is to eliminate the multiple minute boot times you can get from BallisticNG in heavily modded instances.
All internal content (literally everything) is built and loaded as mods. The system is capable of asset overriding, so you'll be able to not just add content but modify existing game content too!
Track System
BallisticNG has the TRM (track render mesh) system where the track geometry itself is used to generate sections and tiles. It's a strict format and it's required to have a functioning track.
Aster League takes a much more free-form approach where everything is modelled in your software of choice and you draw splines in Unity to define the track, ai paths, progress gates, etc. You don't actually need these to even playtest the track. As long as you have some geometry to race on and a spawn point the game will adjust accordingly.
I've also implemented an import system, which has recently been backported into BallisticNG, that allows much of the Unity scene to be pre-configured inside of Blender using object names. I'll be expanding on this in the future with Blender addons to make it easier to create and maintain gameplay specific meshes like collisions.