Forum > Flight Simulation

Tiny Combat Arena, a simulation-lite, yet fun polygon-shaded flight simulator

<< < (2/4) > >>

Asid:
0.9.0.4 is on the Tester's branch!
Tue, 30 August 2022



I deleted ~3700 lines of old vehicle code and it felt great

Hello! The patch notes for this one are short, but there were some substantial under the hood changes.

Instant Action functionality has been restored. In particular, the Strike mode. The new vehicle code changed some pretty fundamental assumptions on how vehicles should work, so the Strike code needed to be adapted to work with these new systems. From a feature level, it should be identical, though the vehicles will pathfind a bit now, as opposed to before where they drove in a straight line to the target.

With this patch, the new vehicles are now on par with, or exceed all the features of the old vehicle code! If testing of this build goes well, it'll be pushed to live soon.

Changelog:

New Features:
- Instant Action is functional again

Improvements:
- In instant action, groups of vehicles are spawned in based on the faction defined formations
- Removed ~3700 lines of old vehicle and vehicle adjacent code (no game change, but I'm really happy about it)
- When a strategic target has negative MaxSupply, the UI will not show supply at all

Bugfixes:
- Fixed group icon sometimes appearing at the origin for vehicles marked important (i.e. AAA)

Asid:
Version 0.9.0.5 is available on the Tester's Branch!
Fri, 2 September 2022

Targeting algorithms are really hard!

Hello! The finished version of the old prototype targeting work is finally in. I wanted to get this into the patch before it goes live, since the difficulty in targeting high threat targets is one of the game's most common criticisms.


The new Targeting




As you move the targeting crosshair around (hidden when looking forwards), a selection of 6 targets will be specially highlighted. Pressing the target button, the radar will cycle between these targets. Most importantly, this selection is prioritized by threat, so AAA like Shilkas will be targeted before a tank that is not a threat.



Anti-aircraft vehicles also now have a unique targeting icon to make it easier to pick them out.



It's worth mentioning again that the targeting is based around the screen center, allowing you to target by looking at something. When off-boresight, a small crosshair will appear in the center of the screen to give you a reference point to aim with.

Changelog:

New Features:
- Added key (Shift-H by default) to toggle visibility of Arena symbology while flying

Improvements:
- Targeting logic creates a group of selectable objects
- Target button cycles between this group of objects
- Selectable objects are prioritized by type so that threats are targeted first

Bugfixes:
- Fixed bug where errors could be thrown by bullets when leaving Arena mode
- Strela classified as SAM instead of vehicle
 

Asid:
0.9.0.6 is available on the tester's branch!
Tue, September 6, 2022

Hello! This is a small patch to get ready for the public release.

Changelog:

New Features:
- AAA vehicles won't (purposefully) put themselves between the base they're defending and a hostile base

Improvements:
- Vehicles defending a base with adjacent hostile base no longer clump up in one spot
- Strategic Targets don't read "(Idle)" anymore when not building, the idle is implied

Bugfixes:
- Removed some log spam related to vehicle AI
- After a strategic target is disabled, the supply from units in production is also lost
- Disabled bases can no longer build vehicles
- Group counts are accurate now (e.g. no longer shows 8/2 groups)
- Fixed NRE caused by Strategic Targets not correctly keeping track of their spawned units

Balance:
- Murasa Shilka build time increased 15s -> 30s
- Toramaru Shilka build time increased 15s -> 45s

Asid:
0.9.0.7 - Vehicles, Pathfinding, and Supplies!
Fri, 9 September 2022

Putting this post together took so long.

Hello! The 9.0.X patches are now public. This is the biggest patch the game has had in a while. In late June, I started working on IR SAMs. However, I quickly ran into many snags with regards to the performance and inflexibility of the current code. The bad news is that IR SAMs still aren't in. The good news is that the game has made some major strides forwards and cleared the worst roadblocks that used to keep me up at night.

For the moment, the Arena UI is really busy. I've added a shortcut to disable it, defaulting to Shift-H, while in flight, but this is all subject to change very soon.


Vehicle Overhaul




The central feature of this patch are the new vehicle mechanics and optimizations. The previous vehicle code struggled to scale any larger than what was presented in the Arena Demo mission. They also could not pathfind around obstacles, nor were they aware of terrain beyond that it existed below them. This critically lead to many limitations in the map design. For example, vehicles would be completely unaware of water, roads, mountains or bridges. The old vehicle code was also fundamentally quite performance intensive, even with many hacked on optimizations that made the code harder to understand and work on, to the point where I was simply not comfortable having more than ~100 active vehicles.


Pathfinding and its Implications


--- End quote ---



About 1800 lines of code later (and ~3700 deleted lines!), the vehicles have been massively overhauled, based on a proper pathfinding solution. It's hard to overstate how important this is to the game. From the beginning, I've wanted Tiny Combat Arena to be about strategically applying your own plane and weapons to influence a simulated battle on the ground. Your flights should be in service of a larger goal and mission, about more than just dogfighting in a context-less void. With this change, that goal feels totally within reach.

Vehicle behaviors are much more advanced now. They follow roads (and speed up when on them). They can travel through cities and around buildings. They will even try (try!) to avoid runways and drive around wreckages of other vehicles. This adds so much more depth to flexibility to how maps can be designed. The new code has been tested with hills, roads, canyons, and even tunnels. Vehicles will drive around bodies of water, and drive over bridges when available. Expect more interesting terrain soon!

If you'd like more detailed information, check out this news post about the vehicles.


Bullet, Gun, Turret, and Targeting Optimizations



In addition to all of this, the new code features greatly optimized code for bullets, guns, and turrets. The algorithms are efficient to the point where all vehicles can now compensate correctly for bullet drop, the targeting is much more accurate, and they can fire off many more shots than before without lagging the game. Vehicles can even support multiple turrets now (a forward looking feature). To show off this feature, the M60A1 is now able to use the commander's cupola machinegun.

This rewrite also gave me an opportunity to expose the bullet code to moddable JSON. Previously, guns could be edited, but the bullet definitions were hardcoded, optimized for the old gun system. The new guns were designed and optimized from the ground up to function with loaded data. However, be aware that these optimizations apply only to ground vehicles. Aircraft are still using the old gun/bullet system, but will converted soon enough.


Groups and Supplies



Vehicles are now spawned in groups
rather than the gigantic and cumbersome formations. This gives more flexibility to how they move around the battlefield, and helps to spread the units out a bit more. Battles are a lot cooler to watch now!

Strategic Targets now have supplies
and scenario defined group limits
. Each base can support a certain number of groups of certain vehicle types. Strategic targets will automatically "build" new groups to hit their unit cap, and will replace groups that have been destroyed. Building is not instantaneous, though for the moment it is very quick.

Building vehicle groups costs supplies!
Each group has a cost associated with it and if the strategic target expends all of its supplies it can no longer build units. Destroying units matters way more now that bases have supplies. If you destroy enough of their vehicles to run it out of supplies, those vehicles are gone forever. It makes vehicles much more valuable than before.

This system is something that will be expanded in due time, but for the moment, be aware that when a base is captured, it is automatically replenished up to 30 Supply. This is a feature I'm really excited about because it opens up many new avenues for mission design!


Revised View System




In order to expand the things that the camera can look at, there's been a slight rework on how views are selected.

External (F2), Chase (F3), Flyby (F4), and Weapon (F6) now only function to select cameras on the currently viewed object. Pressing F1 will always take you back to the cockpit of your plane and reset the viewed object to yourself.

Meanwhile, Vehicle (F7) and Aircraft (F8) can be used to cycle between all active vehicles and aircraft, setting them as the new viewed object. All the external cameras work on anything viewable, though the Weapon camera applies only to aircraft.

You can do the flyby camera on vehicles too, even if it looks a little silly.


Improved Targeting




The difficulty in targeting high threat targets is one of the game's most common criticisms, and something that's finally been addressed with this patch.



As you move the targeting crosshair around (hidden when looking forwards), a selection of 6 targets will be specially highlighted. Pressing the target button, the radar will cycle between these targets. Most importantly, this selection is prioritized by threat, so AAA like Shilkas will be targeted before a tank that is not a threat.



The targeting is based around the screen center, allowing you to target by looking at something. When off-boresight, a small crosshair will appear in the center of the screen to give you a reference point to aim with.


Flying Below Radar




Surprise new feature: you can fly below the radars of the Shilkas to avoid fire. This is probably temporary for this specific Shilka variant, since they are supposed to be horribly scary to try and kill at close range, but this is now a feature that can be applied to anything with radar. Keep in mind though that for the time being, this feature is only in use on the AAA radars. A pass on air to air combat, which will include refinement of the radar mechanics (and missiles), is still upcoming.


Closing Thoughts



What started as "I'm going to get SAMs working" ended up exposing the worst technical debt the game had. What's come out of the work, is a far more robust vehicle system and ground game that clears what was the biggest road block I feared. Maps are no longer extremely restrictive in design, vehicles are no longer the dramatic bottleneck of the game, and all the new mechanics create the building blocks that Arena needed to capture the feeling I was looking for.

Next up

Changelog

New Features:
- New navmesh driven vehicles
- Vehicles will prefer roads when out of Combat
- Vehicles can navigate around fixed obstacles such as buildings
- Completely new turret code for vehicles
- Vehicles can now have multiple turrets
- Completely new bullet code (used only by vehicles at the moment)
- Bullets created and loaded through JSON data, exposing them for editing
- Bullet constants file defines pools for different types of bullets and effects
- Bullets and their visual effects pooled in a new, less disruptive way
- Sensors are added to the vehicle, not the turret
- Individual turrets can now be linked to specific sensors on the vehicle
- Added error messages when spawning vehicles with invalid weapon or bullet names
- Added error messages for invalid barrel and firepoint subparts, or turrets with no barrels
- Navmesh support for "Sand Island" map
- Buildings have built in "no go" navmesh option
- Bridges default to "road" navmesh
- Vehicles now operate in "Groups" instead of massive formations
- Strategic Targets can support a scenario defined number of Groups
- Groups are "built" one at a time, and require supplies to build
- Strategic Target icons show group and "construction" related information
- Strategic Targets can be run out of supplies to prevent spawning of new vehicles
- When a strategic target is destroyed, its supplies are destroyed with it
- If a Strategic Target has <5 supply on capture, it will get 5 supplies for free
- Vehicle groups in combat will slow down to fire on the move and try to avoid roads
- Vehicles further from camera run at reduced tick rates to allow for higher vehicle counts
- "IsImportant" flag used on vehicles that require full fidelity regardless of distance (e.g. AAA)
- Vehicles can be viewed using F7 and Shift-F7 (See Improvements)
- Vehicles will avoid and drive around wreckages
- Small cross is visible in view center to help with targeting
- The next object to be targeted has its target box enlarged
- Minimum altitude mechanic under which a radar cannot detect a target, or will lose a lock
- Shilka/M163 have a minimum detection altitude of 50 meters/~150 feet AGL
- Added defensive mission for vehicles
- Defensive vehicles will position themselves between an adjacent hostile strategic target and their own
- Support for named vehicle groups
- Added key (Shift-H by default) to toggle visibility of Arena symbology while flying

Improvements:
- Vehicle movement has been significantly optimized
- Vehicles no longer clip into and overlap each other
- Bullets and their visual effects should no longer produce intermittent stuttering
- JSON: Renamed TurretBase->TurretAzimuth and Barrels->TurretElevation
- JSON: Explicitly defined Barrel data now required for turrets
- Significantly optimized targeting calculations allow for all vehicles to use bullets with gravity
- Tank cannons now named after their real cannons
- New visual effects for all machinegun impact types (Hit, Penetrate, Water, Grass, Explode)
- Crater counts adjusted (Small 175->100, Medium 75->150)
- Machineguns can not be heard from as far away
- Cannons can be heard from further away
- Bullet flyby SFX completely redone
- Longer tracers
- Targeting priorities are now specified on the turret level
- Max range and targeting priorities of a vehicle moved to the turrets in the Database
- Dust trail effect tweaked for performance
- JSON: BurstLength now refers to how many shots per burst rather than a time interval
- Vehicles wiggle a bit when off-road to simulate suspension
- Aircraft guns use new impact SFX
- Garbage collection optimizations for the old style bullets (still in use by aircraft)
- Capturing of Strategic Targets now happens in smooth "real time" versus one second "ticks"
- Experimental incremental garbage collection enabled
- Vehicles will avoid airports a little more (but will still drive over them if they think its quicker)
- Default cockpit horizontal FOV is now 75 degrees at 16:9
- Vehicles are more spread out and will try not to clump up as tightly
- View system redesign to allow for more robust cycling between objects
- External, Chase, Flyby, and Weapon are view types and do NOT cycle between viewables
- Next/Previous Vehicle (F7/Shift-F7) cycles the viewed object between vehicles
- Next/Previous Aircraft (F8/Shift-F8) cycles the viewed object between aircraft
- Removed bindings for Previous Externa/Chase (Shift-F2/Shift-F3)
- External/Chase camera can't look under vehicles
- Database shows statistics for multiple turrets (see M60A1) in a nicer format
- Bullets are initialized only once on game startup
- Drastically improved performance in the main menu
- In instant action, groups of vehicles are spawned in based on the faction defined formations
- Removed ~3700 lines of old vehicle and vehicle adjacent code (no game change, but I'm really happy about it)
- When a strategic target has negative MaxSupply, the UI will not show supply at all
- Targeting logic creates a group of selectable objects
- Target button cycles between this group of objects
- Selectable objects are prioritized by type so that threats are targeted first

Balance:
- Fixed scaling options not applied to wreckages
- M60A1 has a functional machinegun turret on top of its main turret
- Machineguns no longer use thick bullets
- Tank shell velocity more closely matches their real stats (1500-1700 m/s depending on gun)
- M68 mounted on M1 is more accurate than the standard one mounted on the M60
- T80B has its own more powerful gun and projectile (2A46-2, 125mm)
- M163/Shilka max range reduced 4km -> 3km
- M60s from Kogasa and T80s from Ichirin are now defensive
- Murasa Shilka groups reduced to 1 and now defend the base
- Added 2 groups of defensive Shilkas so Toramaru

Bugfixes:
- Planar shadows render correctly for scaled buildings (i.e. bridges)
- Bullets fired from AAA will no longer disappear when the vehicle is destroyed
- Looping gun audio works correctly for vehicles (affected M163 and Shilka)
- Ocean shader uses same depth offset as terrain
- M1A1 has a proper barrel submesh for recoiling barrel animation
- Potential fix for the elusive CAP null reference error that would shut down a flight of jets
- F2 camera no longer cycles to ground vehicles
- Fixed invalid vehicle spawn after Kogasa Arms Fort was captured by USSR
- Vehicles ride rougher when off-road and smoothly when on-road (logic was reversed)
- Groups of 1 no longer get stuck and unable to issue commands
- Target location for vehicles when moving will be in the correct formation
- Armored units will move to a new location when their target base has been captured
- Armored units should no longer cluster around the center of the target base
- Vehicles no longer change target every second
- Vehicles correctly prioritize targets again (e.g. tanks targeting tanks)
- Added missing barrel to M1A1 that was preventing it from spawning
- Missile turreted vehicles don't error check for barrels
- SA-9 and SA-2 can spawn without errors again
- Performance no longer sharply degrades after every level load
- Bullet effects no longer play a SFX at the origin on game start
- Fixed group icon sometimes appearing at the origin for vehicles marked important (i.e. AAA)
- Fixed bug where errors could be thrown by bullets when leaving Arena mode
- Strela classified as SAM instead of vehicle

Asid:
0.9.1.1 Now Available! Features updated fire/smoke effects and bugfixes.
Fri, 23 September 2022




Just small stuff because I didn't want to start something huge so soon

Hello! This patch was mainly for fixing bugs, but there's a few notable new features.


"Build Speed" lowers with the HP of strategic targets



This one was a suggestion that I think was pretty good. A base goes from 100% effectiveness to 0% effectiveness when it's destroyed, with nothing in between. This kind of binary state of a base made it feel like you weren't doing anything when you damaged a base, and further discouraged players from damaging a base if it was a target of opportunity. As before, a base has its critical structures restored when captured.

This goes both ways! Preventing your own bases from being damaged will make them harder to capture by virtue of being able to replace units quicker.


Visual refresh on smoke plumes in the battlefield




Another important change is the visual language for the smoke plumes. The original fire/smoke plume from damaged vehicles was a holdover from when much less of them were around. However, with the new and much more numerous vehicles, this old effect was causing huge smokestacks all over the map, often over inconsequential wreckages. Spammed like that, the effect lost its significance.



Now, big fire/smoke plume are reserved for damaged bases. It's a visual cue that a base is safer to attack, tells you exactly where the base is without needing any UI elements, and can't be confused for vehicles. Skirmishes between vehicles will still create smoke/fire, but it's more "smoldering field of wreckage" than "oil fire".


Changelog

New Features:
- When structures are near destruction, they sometimes get set on fire
- When a vehicle is destroyed, it enters a critical state before being fully destroyed
- How long the vehicle is in the critical state depends on how much damage was done to it
- After a vehicle has been critical for a short time, it will explode into a semi-permanent wreck

Improvements:
- Strategic Target critical damage affects production rate of new groups down to a minimum of 10%
- Vehicles have a new set of smaller fire/smoke effects when destroyed
- GAU-12 fire sound (also used by Shilka and M163) has a more seamless loop
- Shilka empty shells now in world space (won't turn with the turret)
- Added chihirobelmo credit to the credits.txt for the smart scaling algorithm
- Vehicles will defend closer to base radius (should prevent vehicles from driving to random beaches)

Bugfixes:
- Many changes to FMOD audio stealing logic to prevent audio overlap and cutting out
- Firing sound no longer persists after a Shilka stopped firing
- Fixed bug where there was exactly a 1% chance that a vehicle could fail to spawn a wreck effect and NRE
- Multi-barreled guns no longer create multiple unused audio sources
- Friendly AV8Bs no longer error and get their logic stuck when encountering a Shilka
- Running ther weapons camera on a munition which self-destructs no longer creates an error

Navigation

[0] Message Index

[#] Next page

[*] Previous page

Go to full version