1. Tiny Combat Arena
  2. News

Tiny Combat Arena News

0.13.1.1 available on the Tester's Branch (Mod Loader)

Hello! As mentioned in the previous post new post, this update features the revised loaders, and most interestingly, the official mod loaders.

This is on the tester's branch first because redoing the asset loading on the back end is a pretty dramatic change. It's one of those things that ideally, people won't notice, because that means it all still works correctly.

[h2]The Mod Loaders[/h2]
Starting with this version, data/asset mods can be created and loaded by putting them into a "Mods" folder located in the game's base directory. There's no UI to indicate loaded mods yet, but something very basic will be coming soon.

[h4]To create a mod:[/h4]
  1. If it doesn't exist, create a folder names "Mods" (without quotes) in the game's base directory. You can get here by right clicking on the game in Steam -> Manage -> Browse local files.
  2. Inside the Mods folder, create a new folder with the name of your mod.
  3. Inside your mod's folder, create a new text file called Mod.json with the following contents
    {
    "Name": "A-10",
    "DisplayName": "A-10 Mod",
    "Description:": "Adds the A-10A",
    "Assets": [ ]
    }
  4. Modify the above contents to fit your mod.
  5. Create a Data folder and then add any JSON files you wish to overwrite or add to the game. The folder structure should mirror the game's own Data folder as found in TinyCombatArena\Arena_Data\StreamingAssets\Data.
  6. Mod loading can be confirmed by checking the logs which can be found here.

A better version of this with images will be posted separately as a Guide, but this is enough to get started. As stated in the previous news post, the asset bundler still requires some work before it can be released, and it's kind of a weekend side-project to be honest so I'm not willing to give an ETA beyond "soon".

As for Steam Workshop, as I've said before, it's still not in my immediate plans, but I've not ruled it out yet. The work done in this patch would have been one of the steps necessary to support Workshop. It might eventually happen, but no promises, and not soon.

[h2]Changelog[/h2]

New features:
- New mod loading system
- Mods can be loaded on top of each other
- Core game is now a hardcoded "mod" that gets loaded first

Improvements:
- Unified loaders for all JSON data
- Text adjusted to work better at low (800x600) resolutions

Balance:
- AV8B roll rate increased 140 -> 180

JSON:
- In Loadout definitions, "Aircraft" renamed to "Name"
- In Loadout definitions, "Loadout" renamed to "Loadouts"
- "Store" in the Store definition has been removed and made part of the Store definition itself

September, Loaders, and Mod Tools?

Hello! Between being out of town, getting sick when I got back, then a water heater related crisis, I've had precious little time to work on the game these past few weeks. However, that doesn't mean nothing exciting has happened!

For quite some time now, I've been on and off investigating and working on how to expand mod support. I've been really excited to see modders pushing the boundaries of what I thought was possible, even up to creating their own tools and pipelines for importing new models. I originally came from a modding background (Battlefield and Freelancer mostly, but not exclusively) so I love to see it.

Screenshots courtesy of nuclearstonk and giantenemycrab from the MPS and TCA Modding Discords

Between being inspired by the work the modding community has been doing, and the work I happened to be doing at the time, things had lined up in such a way that I could do something about the most difficult part of modding TCA: importing new assets.

[h2]The Problem of Loading Data Files[/h2]



This is a very back-end problem, but it's important to mention because it gives context to the fun part. In the beginning of September I began work on expanding the mission scripting and trigger system to build out the first campaign, and remove the placeholder dev-test one currently in the game. This was going to require some edits and likely additional data files.

The way in which the game loads data files (JSON files, to be exact) is bespoke and unique across basically every single object type that uses it. This was mostly a product of me learning as I went, since I was unfamiliar at the time with how best to structure this all. Since then, the process has solidified, and in game jam style side-projects, I'd come up with a generic solution worked best.

In TCA's current system, whenever I needed to load a new set of data, it requires a bespoke loader. The past 4-5 of these (most recently weapon related) have basically been completely copy/pastes of each other, further strengthening the argument for the unifying them. Redoing the loaders probably wouldn't take that long, since most of the data is already pretty uniform, but I had other motives for this well, relating to improving mod support and future developments.

For the record, rewriting and unifying all the loaders took only about a week.

[h2]The Mod Loader[/h2]



With all the game's loaders and data now conveniently consolidated, putting together a mod system in which the base game's content is now a "mod" for the game that is simply hardcoded to load by default was fairly straightforward. Additional mods, with their own content and data, can be loaded on top from a new Mods folder. This means that instead of player created mods requiring overwriting of the game's own data files (which will always be wiped on an update as well), mods can coexist in their own folders.



A mod for TCA uses the following:
  • Mod.json used to define some metadata about the mod
  • Data folder with all of its JSON data in a directory structure matching the base game
  • Asset file(s) used to add new content (e.g. models and textures) to the game

Any new data entries get added to the game on top of the Core data. If a conflicting entry is spotted, it will overwrite the Core's (or a previously loaded mod's) data, making it so that changes to base content are still possible.

There not currently any UI for this mod loading process, but some will be added soon.

[h2]The Bundle Exporter[/h2]


While the data for the game has always been exposed, the "missing link" for being able to truly add content to the game has always been a method to add new assets: models, textures, and animations. This was always going to be the trickier part, since Unity's model importers are only available at edit-time, and even in the best of cases imports will usually involve some fiddling with the model to map materials and animations post-export regardless.

The solution: asset bundles, a shockingly under-documented Unity feature that is critical for many games to deliver live content, that can similarly be used to pack content for mods. Sky Rogue's ancient post documents this method and it's been living in my head rent free for many years. Earlier this week I finished up a custom asset bundle tool designed specifically for Tiny Combat and the new mod system. This method of building models for the game has several big advantages:

  • Since this runs in Unity, with Tiny Combat's own shaders, you can preview exactly what the model will look in any lighting conditions.
  • Tiny Combat requires that that the axes for transforms and objects are aligned correctly such that Z is forward, X is right, and Y is up. Being able to preview the model natively allows you to be sure of their alignment and debug any issues in the import process.
  • Animations can be created using the same pipeline as the game, meaning support the game's built in animations (only landing gear at the moment, but this will be expanded in the future as needed)


The project still needs to be cleaned up, but it will be uploaded to GitHub has a self-contained Unity project for 2019.3.30 LTS (the version the game is built on). I've been testing the workflow using the A-10 model that I've been sitting on. It still needs work before it's game ready, but that's exactly why it's been such a good guinea pig.

[h2]The Next Patch[/h2]


Very soon, a new patch to the game will be released on the tester's branch. While this will have the mod loaders, the main purpose is to make sure that the game still functions normally. The loader changes were pretty low level, and while it should just work, you can never tell with these things, especially because Steam adds another layer of unknowns to this.

I plan on writing a more detailed article (perhaps in the Guides section of the game) for how to create mods. It's a very straightforward thing to do, so it shouldn't be too complicated. The asset bundle tool however will be much more involved, and its own separate guide. As stated above, the bundle tool still needs some cleaning up before it's ready for public release, and may take some time to write up the documentation necessary.

0.12.2.5 New Island terrain, water improvements, and munition fuzes!

Hello, the new island is finally available on the tester's branch. Keep in mind, that it's still a work in progress, so not all features are in yet. Most notably, the new island map cannot be used in the Arena as there's some pending Arena work to handle the more varied terrain.

[h2]New Island Terrain[/h2]



The biggest addition in this patch is the new island terrain. This is the culmination of months of new work using new tools specifically designed for making terrain like this. I've already previously written about this, so check out the original news post for more details.

Once again, the new map is currently not usable in Arena, but this is where the next major's patch's focus will be. This is to support the first campaign, which will essentially act as a tutorial to show off all of the mechanics available for Arena missions.

[h2]Improved Water Collisions[/h2]



As the mechanics of the game are getting closer to finalized, many loose ends are getting tied up. One such example was how the game treats water.

Previously, it was simply recolored terrain, and only some specific weapon-related effects really cared about them. From the aircraft's perspective, water was basically identical to terrain. For a plane that spends a lot of time near water, this isn't acceptable for the final game.



Water now damages aircraft, and when planes smack into water you it's a splash instead of a thud with dirt. In addition, a plethora of new water related effects for collisions and weapons have been added to the game to round out its depiction.

[h2]Airburst and Proximity Fuze Improvements[/h2]



While the game did have airburst fuzes, they were only really supported for cluster bomb canisters. They didn't really quite work correctly with normal dumb bombs, and even when they did, the resulting visual effects could be confusing. Variations of most of the explosion effects in the game have been added to support both air bursting and splashing against water. There are even new interactions with explosions that happen low above the ground (or water!) and the terrain below it.

Munitions now respect arming time. For most bombs and missiles you probably won't notice this, but in the event that a weapon hits something before being armed it won't explode. However, it can still cause damage through the raw kinetic energy of the impact!



An Mk82 variant with an airburst fuze has been added to the game under the "Convoy Attack" loadout in preparation for a future feature. Airburst bombs trade off penetration damage for a much wider area effect of splash damage. This makes them perfect for attacking unarmored targets such as APCs and soon to be in the game trucks.

I wasn't planning on doing this yet, but it resulted from the above water material changes. This is a long, but interesting, story. If you missed it the first time, check out this post for how it all came together!

[h2]Night Preview[/h2]



Before the 1.0 release, the plan was to support night time. The game has had a working time of day system since practically its inception, but because of a lack of night lighting, it's never been enabled for the game. The PAPI lights were only the beginning. Work on night time lighting has been happening in parallel with the terrain development, night time building lights, and now street lights.

While the game isn't yet ready for a full night time setting, the Evening time preset in instant action has been changed to just late enough that city and street lights start to turn on so you can check out where this is going! The plan is not just for night, but for something that works best under the cover of dark.

[h2]Changelog[/h2]

New features:
- New island terrain featuring hills, rivers, bridges, and a tunnel
- New line rendering used on roads, runway markings, landmarks, and scenery objects
- New buildings featuring LODs to maintain consistent detail density
- LODs updated for many existing buildings
- New fog rendering
- Bases moved around
- Murasa is now a large airbase
- New scatter system using pre-defined scatter positions (Still EXPERIMENTAL!)
- Faux "HDR" when looking at the sun darkens objects
- Lit windows at night time
- Effects when aircraft "slide" on water
- Engine wash effects for water
- Flyover effects over land
- Effecs for fuselage collisions with water
- Debris hitting water splahes and gets destroyed
- Water applies damage over time
- Air and water explosion effects for use by vehicles and weapons
- When killed by water, camera is closer and looks at impact
- "Dud" munitions when weapons impact something before their ArmTime
+ Dud munitions play collision impact effects on impact
+ JSON: "SplashWater", "SplashHard", and "SplashSoft" added to "WeaponEffectProperties, used for dud impacts
+ Duds create Rigibdody impulse proportional to kinetic energy of impact
+ Duds do impact damage proportional to the kinetic energy of the impact
- Effects for when a munition airbursts low over ground or water
- Effects for when munitions explode from airburst/proximity fuzes
- Effects for when munitions impact water
- Buildings have meshes for lights at night time
- Mk82 Airburst
+ Mk82 with increased splash radius and 30m airburst fuze
- "Convoy Attack" loadout which uses the new Mk82 Airburst
- Streetlights added to main roads with lights visible from a distance
- Modular helipad models created and populated around the island

Improvements:
- Building shadows made optional
- Map selector handles longer names better
- Arena runs in its own independent scene (back end dev change but hopefully doesn't cause bugs)
- When in arena map, fog is disabled
- Scattering code 50% faster
- Water made "slippery"
- Flyover effects triggered by airspeed rather than throttle setting
- Flyover effect handled per-airframe rather than per engine nozzle
- Optimizations to Flyover and engine wash effects
- All collision impact effects (hard, soft, dirt, ground impact, and impact explode) tweaked
- Debris hitting the water
- Bright water splash effects for weapons
- Fence shadows added to Kogasa
- Inroads for Kogasa/Nazrin
- Buildings baked into navmesh
- Terrain colliders centered terrain meshes to improve physics precision (fixes wrong material detected for weapons/collisions)
- Removed base offset from vehicles now that navmesh is way more accurate
- Grass colors tweaked
- Old islands color palette tweaked to match new islands
- Wire roads added to old islands
- Old island buildings use new prefabs
- "Evening" time of day made late enough that lights are on
- Added buildings to populate the small islands
- Larger new version dialog

Bugfixes:
- Fixed typo on instant action Strike not allowed button
- Removed the random debug M113 groups spawning on the old island map
- Ocean has collision again.
- Removed ocean ghost trees
- Landing gear non-functional on water
- Navmesh for big island continuously connects roads and bridges
- Fixed misaligned navmesh areas
- Terrain sorting prioritizes grass over water
- Improved terrain material detection
- Multi-select dialog wouldn't show second page under certain circumstances
- Flexible select dialog doesn't change size when going between pages
- All strategic targets have correctly assigned airfields again (fixes rearming in instant action)
- Fixed NRE from explosions near buildings
- Fixed NRE from proximity explosions on large terrain objects
- Airburst explosion damage now centered on explosion instead of ground splash
- More accurate raycasting, fixes airbursts sometimes having the wrong effect
- Ejecting pilots have collision disabled for just long enough to clear the plane
+ Prevents ejected pilots from instantly dying when ejecting from grounded planes
- Fixed "Middle Bridge" having its collisions ignored
- Fixed tail/fuselage slime lights on right side of F-4E not rendering correctly

JSON:
- Renamed "Mk82Snakeye" to "Mk82SE"
- Added SplashWater", "SplashHard", and "SplashSoft" to "WeaponEffectProperties, used for dud impacts

0.12.2.4 is now available on the Tester's branch

[h2]Changelog[/h2]

Bugfixes:
- Airburst explosion damage now centered on explosion instead of ground splash
- More accurate raycasting, fixes airbursts sometimes having the wrong effect
- Ejecting pilots have collision disabled for just long enough to clear the plane
+ Prevents ejected pilots from instantly dying when ejecting from grounded planes
- Fixed "Middle Bridge" having its collisions ignored
- Fixed tail/fuselage slime lights on right side of F-4E not rendering correctly

0.12.2.3 Hotfix

Bugfixes:
- Fixed NRE from proximity explosions on large terrain objects