1. Tiny Combat Arena
  2. News

Tiny Combat Arena News

0.15.2.2 Hotfix (Testers Branch)

[h2]Changelog[/h2]
Bugfixes:
- Fixed desync of attrition meters between flight and Arena map
- Fixed NREs caused by attrition bars that weren't cleaned up properly

0.15.2.1 Patch Notes

This will be pushed to the main branch very soon.

[h2]Changelog[/h2]
0.15.2.1 (September 30 2024)

New Features:
- Handling for neutral bases
- APCs will capture neutral bases, tanks will not
- Laser guidance type will continue to guide weapons as long as there is line of sight to aircraft post-launch
- Laser guided weapons can acquire their targets post-launch, allowing them to be fired beyond their seeker max range
- Added "AGM-64C" short range laser guided anti-tank missile with 2x and 4x launchers
- "Close Air Support" loadout now had 8x AGM-64C
- Notification when bases are being captured
- Added support for "Spinners" for aircraft (see JSON section)
- Spinners only spin when the engine is running
- Ability for Arena missions to create custom Strategic Targets at runtime
- Added T-72 Ural, only slightly more armored than the average medium tank, but with a great gun
- Custom strategic targets can have custom spawn points
- Added new training mission 4, focusing on armor and anti-tank weapons

Improvements:
- Attrition can be disabled per-side by setting starting tickets to negative
- Attrition display will display a single bar if only one side is using the mechanic
- Added "Tactical" entry to Arena mission briefings
- Updated formatting of the mission briefings
- Updated descriptions for existing training missions with the new tactical entries
- Missions can set a custom number of tickets that the player costs on death
- Campaigns can be hidden from selection, and test campaign has been hidden (obsolete, and source of many bugs)
- Civilian color is now a gray color
- Tickets no longer deducted once the mission has been completed
- Currently selected Arena mission is now highlighted on the Arena mission selector
- Better initial camera positions for the Arena training missions
- Changed the Arena sortie unable text "No pilots available" -> "No Sorties Available"
- Mission status messages last longer on screen
- Depleting red tickets automatically results in a win
- Depleting blue tickets automatically results in a loss
- Depleting pilots automatically results in a loss
- When missions are completed, new sorties cannot be started
- Slightly smoother Arena camera movement
- Tinted AV8B forward canopy for easier to read HUD
- Vehicles don't slow down if they are firing on air targets only

Bugfixes:
- Custom attrition costs are now respected (e.g.)
- Frontline arrows will shrink in size if the bases are too close to each other
- Fixed rearm/refuel dialog not being updated when rearm/refuel is pressed
- Bases too close together have their frontline arrows rendered with no weird clipping
- Weapons symbology is hidden when weight on wheels
- Flight messages no longer block mouse clicks
- Fixed fuel tanks and cosmetic stores not appearing correctly on pylons set to hide when unloaded
- Sortie button no longer overlaps loadout buttonw hen sortie unavailable
- "ReloadsLeft" for vehicle missile turrets should now function correctly
- Fixes to arena capture/disable/attrition events not firing correctly
- Fixed loading order of the triple Maverick rack
- Moved the flight messages to not overlap certain HUD elements
- Fixed fuel weight being incorrect in the pre-sortie loadout screen
- Retooling of "Capture" training mission to only use the small Sand Island island to make it go quicker
- Vehicles spawn directly onto the navmesh instead of terrain clamped
- Fixed NRE from laser on destroyed targets
- All spawn points are now used correctly for Strategic Targets instead of just the first one

Balance:
- M2 damage increased 5 -> 12
- KPVT damage increased 8 -> 15
- Increased yaw RCS on AV8B 7000 -> 14000
- AGM-65D tweaks to make it fit the role of the high power "standoff" long ranged anti-tank and anti-air weapon
+ Drag greatly reduced to fit description better and be more in line with bombs 0.1 -> 0.025
+ Motor duration reduced 6 -> 5
+ Max effective range increased 10000 -> 12000
+ Effective range increased 8000 -> 9000
+ MaxG reduced 7 -> 4
+ Updated database description
- Mission 2 now uses the High Drag Bombs for the default loadout
- Mission 2 added new primary objective to prevent capture of home base
- Increased drag on Mk82 "Snakeyes" to make them easier to use 0.2 -> 0.5
- Tanks will fire on passing aircraft with their main gun, but won't lead them correctly

JSON:
- "IsHidden" can be set to "true" in the Campaign definition
- "Attrition" property for Vehicle and Aircraft definitions now functional (defaults to 1)
- Fixed typo in the aircraft bullet pool definition (BulletConstants.json, "Aicraft" -> "Aircraft")
- "ReloadsLeft" set to -1 will be infinite
- "ReloadsLeft" set to a positive number will allow the launcher to be reloaded that many times
- "GuidanceType" now has possible value of "Laser"
- Added "Spinners" list to the aircraft definition (see vehicles for example)

Armor, Penetration, and How This Changes All Vehicles



With the next main branch patch (currently available on the tester's branch), major changes to how armor, penetration, and vehicle damage is handled are being implemented.

A lot of this has been a long time coming, and building out and balancing the training missions was the final straw that broke the camel's back for this. The way vehicles act when fighting each other should be as easy to intuit as possible. Various quirks in the ways that vehicles were balanced, and the mechanics they used, were getting in the way of that, and producing unexpected results.

[h2]Armor[/h2]



Broadly speaking, the effect of armor has been dramatically increased. What was once a scale of 0-2, is now a scale of 0-10. It can go even higher if necessary, but all vehicles you'll find will operate on this 0-10 scale. To give some reference points:

  • 0: Completely unarmored. Applies to all aircraft. Currently no vehicles fall under this categorization, but things like convoy trucks and SAM sites will occupy this category. Unarmored vehicles take full and unmitigated HE damage and AP shots never ricochet off. Explosions of any kind are extremely deadly to anything unarmored.
  • 1-2: Lightly armored. All APCs fall under this. The armor serves mainly to provide some light protection against pure HE damage. All bullet based weapons will still penetrate 1 armor, though a 2 armor APC will provide some light protection against machineguns.
  • 3-7: Light Armor (e.g. ZSU-57-2) Medium tanks. Aircraft cannons are only moderately effective, requiring AP to have a chance to damage, but it can still be done in a pinch if you have gun ammo to spare. Explosive damage is reduced. Cluster bombs or ATGMs are recommended. Most tank have a decent chance to penetrate medium tanks.
  • 8-10: Heavy tanks. No aircraft gun can penetrate these tanks, requiring cluster bombs or ATGMs to destroy. Medium tank cannons will have some difficulty with this, about 50% penetration rate.

[h2]Damage and Penetration[/h2]



The way damage is dealt has been retooled. Impact damage is now treated as AP (Armor Piercing) damage while splash damage is now treated as HE (High Explosive) damage. These two damage types interact with armor in different ways.

[h3]Armor Piercing[/h3]
Armor piercing damage is binary. It either does full damage, or it does zero damage and the shot ricochets. If the penetration equals the armor value, then there is a 75% chance to penetrate, with the penetration reaching 100% if the difference between penetration and armor is 5 or higher. If the penetration is less than the armor, then it scales down to 0% penetration when the difference is 5 or higher.

Basically, the more penetration a shot has versus the armor, the greater the chance of it penetrating instead of ricocheting.

[h3]High Explosive[/h3]
High explosive damage is simpler. If the explosion has a penetration value that is equal to or greater than the armor then it does 100% damage. This is mostly important against unarmored targets such as aircraft and trucks, which take the full damage from an explosion.

When an explosion encounters armor it uses a multiplier calculated from the difference between the armor and penetration. The most important thing to know is that tanks are very resistant to explosive damage, trucks are totally unprotected, and most APCs are lightly protected. Some example numbers:

  • 0: 100%
  • 1: 80%
  • 2: 40%
  • 5: 16%
  • 9: 8%

[h2]Ricochets[/h2]



Ricochets have been something I've been wanting to add to the game for a long time. When vehicles get hit by an armor piercing round that doesn't penetrate, it instead ricochets off the vehicle.

Many new visual effects have been added to the game for ricocheting cannon rounds, to make the difference a little clearer. Ricochets have a lot of sparks, and a smaller flash/explosion and smoke.

This also applies to the terrain. Bullets that hit the ground at a shallow angle will ricochet off the ground in a cool looking shower of bullets. HE rounds require a shallower angle to hit the ground to ricochet, and the likelihood of a ricochet happening on terrain depends on the material that it hits.

[h2]Vehicles Rebalanced[/h2]



Finally, the vehicles have all seen big changes to their weapons, armor, and HP values. Rather than just describing how vehicles have been adjusted, I think it's easier to explain the motivations behind this and what the rebalance is meant to address:

  1. Vehicles were too similar to each other when it came to how the player treats them. I.e. you don't really think of a tank as any different from an APC or AAA.
  2. It's difficult to add new weapons with their own meaningful pros/cons when vehicles were so squishy that it didn't matter what you used against them.
  3. Vehicles were balanced on a different scale than the aircraft, leading to weird incongruities between how ground and air weapons worked.
  4. Tanks should be a much bigger threat to ground vehicles than they currently are. In certain situations, the player should feel like they have to intervene in order to save certain ground units to complete an objective.
  5. There's a queue of vehicles to be added, and it's difficult to differentiate vehicles when there was no granularity to the armor system, and so little variance in HP.
  6. The next map is going to be much larger, and the density of vehicles over an area will be going down. I wanted to make individual vehicle encounters more meaningful to compensate.


The new values, shown above, are all in response to these reasons.

The role of tanks on the battlefield, which is to smash APCs and other tank platoons, is now greatly emphasized, and from the player will require special consideration. In particular, I wanted a T-80 or M1 to be a big deal, and units you either want to support to allow them to do their work, or take out ASAP before they clean up a front line.

This also means tanks, in particular the top tier heavy hitters, will be much less common overall, and new vehicles, mostly softer targets, will be introduced to fill out the vehicle roster.



The rescaling of weapons to the new vehicle armor and HP values fixes a long-standing oddity with the game, where tank cannons and machineguns would barely scratch aircraft. Since they were designed to hit the relatively weak vehicles, they did very little damage in order to prevent vehicles from killing each other too quickly. While machineguns still aren't too dangerous (mostly due to their lower rate of fire and worse accuracy), a tank cannon hitting a plane will be an event.

[h2]Damage and Penetration Tester[/h2]



One last thing! When developing the new damage and penetration mechanics, I made this little test program so I could quickly experiment with values and get an idea of how vehicles would perform against each other. The damage/penetration simulator can be download here.

0.15.1.1 is available on the Tester's branch!

This patch adds the third training mission, demonstrating capturing of bases using APCs. To drive this, and to have the mission teach players about how to deal with tanks, this came a whole host of new mechanics relating to bullets and armor, and a massive rebalance of all vehicles and air to ground weapons!



There will be more posts in the near future about each of the new features, before the patch hits the main branch, detailing out what changed and the rationale behind them!

[h2]Changelog[/h2]
New Features:
- Bullet can ricochet off of terrain
+ Gravity handled on a per-bullet basis
+ ExplodeOnImpact bullets ricochet at shallower angles than AP
+ Threshold for ricochet off ground depends on hardness of surface
- Groups spawned from strategic targets can be "primed" to attack a specific target
- New armor and damage mechanics to add variety to vehicles and weapons
+ Munitions (bombs, missiles, etc.) use a simple penetration >= armor check against armor
+ Completely new calculations for how HE damage is reduced by armor (see tool)
+ Penetration is now checked against for a chance to ricochet (see tool)
+ Ricochets against vehicles do not happen on bullets where "ExplodeOnImpact" is true
+ Penetration check for impact will still happen on impacts even if "ExplodeOnImpact" is true
- Ammo belt functionality added to aircraft
+ Selected ammo type displayed next to gun ammo count in loadout dialog
+ If no ammo belt is defined for aircraft, guns call back on their defined bullet
+ Arena UI shows gun ammo and belt in the loadout preview box
+ AI use average gravity of ammo belt for air to air gunnery
+ Gun piper max range cue is based on average in ammo belt
+ Gun piper A-A aimpoint calculations based (also used by AI) on average gravity of belt
+ Gun piper A-G aimpoint calculations based on average gravity and max range of ammo belt
+ Added "Select Ammo" button to loadout dialog, hidden when no ammo belts are defined
+ Selected ammo type displayed next to gun ammo count in loadout dialog
- All damageable objecs have a specifically defiend attrition cost
- All vehicles and aircraft default to 1 attrition cost
- Added "Capture" training mission
+ Capture Kogasa with M113 convoy
+ Protect the convoy of M113s against the medium tank T-62

Improvements:
- Arena mission objectives and flags are serializable
- Arena missions can set camera height
- Targets store a "size"
- All buildings now have their size prescribed in the prefab and at build time
- Adjusted weights for the pathfinding to favor roads more when out of combat
- Temporarily(?) disabled wrecks blocking the navmesh to prevent bridges from getting blocked and improve navigation
- Vehicles are smaller for navigation and collision avoidance purposes
- Tweaked the effect of roads on vehicle movement
+ Road movement boosts acceleration (50%) and turn rate (100%)
+ Road speed bonus reduced 50% -> 25%
- Updates to vehicle targeting
+ Visually based targeting checks for line of sight
+ Targeting handled from top of vehicles rather than centroid
+ Vehicles will no longer turn around and drive away from targets that get too close
- Radars now check for terrain line of sight
- Loadout dialog slightly widened
- Arena mission selector shows a "recommended" aircraft, ammo belt, and loadout
- Many new impact effects specific to AP shells for autocannons and cannons
- Attrition Display now visible during an Arena sortie
- Added options for Always Show or Auto Hide for the Attrition Display (defaults to Always Show)
- Better logging when bullets have missing or incorrect effects
- Updated Mk20 description and tactics in database

Bugfixes:
- Many buildings now correctly contribute to the navmesh
- Fixed/added navmesh to the rest of the islands
- Major navmesh improvements to the big island
- Fixed cliffside near Shou not having a collision mesh
- Missile launchers will now reload when empty and out of combat
- Strategic target capture and disable objectives are functional again
- Fixed null reference when landing at random spot on the ground
- Damageable parts (e.g. wings) no longer each deduct 1 attrition when destroyed
- Fixed Attrition Display not initializing correctly after respawn

Balance:
- Big balance pass on almost all vehicles and weapons to use new armor and penetration values
- In general: Vehicles have a lot more HP, and are more armored
- In general: Effectiveness of gun against armor is reduced
- In general: Munitions are much more necessary to destroy armored targets
- In general: Tank cannon accuracy and effectiveness greatly increased
- M113/BTR70/M113/M48/SA9: HP increased 50 -> 100, Armored increased 0 -> 1
- BMP1: HP increased 60 -> 100, Armor increased 0 -> 2
- M1: HP increased 200 -> 500, Armor increased 1 -> 9
- T80B/M1A1: HP increased 200 -> 500, Armor increased 1 -> 10
- M60A1/T62: HP increased 100 -> 350, Armor increased 1 -> 5
- Shilka: HP increased 75 -> 125, Armor increased 0 -> 1
- ZSU57: HP increased 75 -> 220, Armor increased 0 -> 3
- M2/KPVT: Penetration increased 0 -> 1
- 2A28/M68: Deviation reduced 2.0 -> 0.5
- 2A20: Deviation reduced 2.0 -> 0.2
- M256/2A46-2: Deviation reduced 0.5 -> 0.1
- M256: Fires new 120mm NATO round
- 73mm HEAT: Impact damage increased 50 -> 100, Penetration increased 0 -> 1
- 105mm NATO: Impact damage increased 50 -> 150, Penetration increased 1 -> 8
- 120mm NATO (new): Impact damage 250, Penetration 15
- 115mm USSR: Impact damage increased 50 -> 160, Penetration increased 1 -> 7
- 125mm USSR: Impact damage increased 75 -> 275, Penetratio increased 2 -> 15
- GAU12 on AV8B has 3 ammo belt options: Mixed, High Explosive, and Armor Piercing
- GAU12 HE round has 15 splash damage and explodes on timeout
- GAU12 AP round does 12 AP damage with penetration of 3 and has a longer range and flatter trajectory than HE
- Attrition training mission defaults to HE ammo belt
- Big balance pass on all A/G munitions to bring them in line with the stronger vehicles
- Mk20 splash penetration 2 -> 10
- Mk20 splash damage 25 -> 100
- Mk82, Mk82SE splash damage 100 -> 200
- Mk82, Mk82AB, Mk82SE impact penetration 1 -> 10
- Mk82, Mk82AB, Mk82SE impact damage 200 -> 500
- Mk82AB splash damage 100 -> 250
- Mk83 impact damage 400 -> 800
- Mk83 impact penetratin 1 -> 13
- Mk83 splash damage 200 -> 400
- Mk84 impact damage 800 -> 1600
- Mk84 splash damage 300 -> 600
- AGM65D impact damage 200 -> 650

JSON:
- Added "InitialCamHeight" to the Arena definition
- Aircraft now have a "Size" property similar to vehicles
- Added "AmmoBelts" array property to Aircraft loadout definition (see AV8B loadout for example)
- Added "PlayerAmmoBelt" to set default ammo belt for plaeyrs in Arena Mission definition
- Added "Attrition" parameter to vehicle and aircraft definitions to define attrition deducted when destroyed

0.14.1.4 is now Available!

0.14 is now available on the main branch of the game! This features the first couple missions of the training campaign, which is being used to finalize all the Arena features and polish the game for the 1.0 release.


In case you missed it, check out this previous news post on the Arena runtime to get a breakdown for the most important new features and content this patch contains.

[h2]Damage Model Updates[/h2]



This patch fixes a couple long-standing issues related to the damage model. The most notable new feature to come out of this, is the introduction of critical parts. To fix some related AI bugs, many parts on aircraft are now marked as "critical". When one of these is destroyed, the AI pilot will attempt to maintain control of the plane, but when they figure out they can't, they'll eject.

Between this change and the rest of the damage model fixes, it's now possible to destroy planes without completely obliterating them or setting them on fire.

[h2]Game Stuck At Splash Screen Bug Update[/h2]

This is an issue which impacts only a very small subset, but it is game breaking enough that I want to get as many eyes on this as possible. If you were somebody whose game would get past the splash screen, and the error log was showing the below error, a workaround has been implemented.
[FMOD] Initialization failed : Output forced to NO SOUND mode : ERR_OUTPUT_INIT : Error initializing output device.
The game should start up now, but if you were receiving this error, there still won't be any sound. This is a difficult bug that I've been unable to replicate, and even FMOD support themselves don't know much about this since they can't reproduce it. This likely has something to do with FMOD not being sure how to handle specialized audio hardware, and at least one person has figured out a way to fix this on their end. See this thread for more details.

[h2]Map Progress[/h2]


Here's some early shots of villages and towns will be populating the European map. Tools have been written to help in generating the towns to speed up development. As always, this is WIP and subject to change, but I'm really happy with the progress being made and look forward to its completion!

[h2]Changelog[/h2]
New Features:
- First 2 missions of the "Prelude" campaign meant to demonstrate/teach all Arena mechanics
- Arena attrition mechanic where destroying units reduces the "tickets" available for a side
- New objectives using attrition mechanic
- Attrition bar to display Attrition mechanics when in Arena map view
+ Illuminates when attrition damage is done
+ Has a "combo" visual when lots of damage is done in a short time
- Event system to drive mission design and objectives
- New Arena runtime and objective system
- Completion of objectives and mission completion handled by runtime
- Added BMP-1
- Added "Critical parts" which trigger ejection from pilot
- Added ingame objectives display for the Arena game modes
+ Automatically opens on sortie start, when objectives completed/failed, and auto hides
+ Can always be viewed from the pause menu
+ Added new setting for objectives display to auto hide (default) or always show

Improvements:
- Objectives right justified in Arena mission selector
- Font size reduced for the arena mission selector
- When objectives are completed, a HUD popup appears
- Arena map camera dragging more responsive
- Arena menu displays objectives with display names
- Spawning for vehicles in Arena handled through hand-placed spawn points
- Added spawn points to all strategic targets on old and new Island maps
- Objectives display in Arena Map UI revised to make failed objectives states and stars earned more clear
- Audio speed of sound increased 2x -> 3x
- M113 and BTR70 moved to the Mechanized subcategory in the Database
- Reimplmented an optimized raycasted ground clamping for vehicles
- Added distance readout to the nav mode strategic target markers
- Expanded the island tour description
- Losing a wingtip in AV8 reduces RCS roll authority
- Losing both wingtips in AV8 causes complete loss of RCS roll authority
- RCS damage can be caused to specific control axes
- It's possible to destroy aircraft from pilot ejecting from damage instead of fire

Bugfixes:
- Vehicle icons restored when in Arena view
- Tweaked navmesh to reduce chance of vehicles getting stuck
- Updated Sand Island (WIP) navmesh to fix hole in it
- Fixed NRE when switching to vehicle camera before a vehicle has spawned
- Vehicles no longer hover above ground or drive under ground
- All engine instances can be destroyed by damage
- Right engine is destroyed by right side damage on F-4E instead of left
- Control damage is no longer multiplied by >200X
- Game shouldn't get stuck on splash screens in exceptional audio related circumstances, but there still won't be any sound
+ See https://steamcommunity.com/app/1347550/discussions/1/4328601356343965480/

Balance:
- Reduced gun tracking against air targets for BTR70 and M113: 50 -> 25
- Lowered attrition requirement for blue tickets from 20 -> 15
- Most Wings and elevators on all jets listed as critical
- Tweaks to MiG-23 damage model to better match visuals
- Reduced image of wing damage from AV8 elevators 2.0 -> 1.0
- F-4 outer wings roll damage increased 0.1 -> 0.2
- Swing wings
- Raised blue tickets from 21 to 25 in the Attrition training mission

JSON:
- Added "DisplayName" to Objectives definition
- Replaced "PrimaryObjectives" and "SecondaryObjectives" with unified "Objectives" in Arena mission definition
- Objective definitions expanded
+ Value: Used by the ticket goals as the reference value
+ IsOneShot: Once the objective is completed, it can't be failed
+ IsFailing: Used for objectives which are completed by default, and change to failed if their condition fails (e.g. BlueTicketsMoreThan)
+ IsPrimary: Required to complete the mission
+ SetFlagOnCompletion: Sets a flag on completion
- Added new GoalTypes
+ RedTicketsLessThan, RedTicketsMoreThan
+ BlueTicketLessThan, BlueTicketsMoreThan
+ AircraftArrive
+ UnitArrive
+ AircraftTookOffFrom
+ AircraftLandedAt
- Added "IsInvincible" to StrategicTarget definition, preventing it from being disabled from damage
- Removed "RCS" as a value for "Control" in the "PhysicsDamage" entries
- Added "RCSRoll", "RCSPitch", "RCSYaw", as values for "Control" in the "PhysicsDamage" entries
- "Control" value defaults to "None" instead of "Pitch"
- Added "IsCritical" to the "DamageablePart" definitions