Blog

A-Spec First Assault Patch 0.12.1 (November 2023)

The first update for A-Spec First Assault, after being released into Early Access last week, is now live on Steam.

A new update is released for A-Spec First Assault bringing much-loved improvements to explosion visual effects, reading transmission dialogue, improvements to HUD/UI screen usage across various resolution ratios, more bug fixes, and even more improvements. See the full patch notes down below.

A civilian transport is being buzzed by hostile fighters.
The civilian transport takes enemy weapons fire and starts venting plasma and atmosphere.
Civilian transports docked at the mining station prepare to make a run through the blockade.

Patch Notes 0.12.1
Overview

  • Improved explosion visual effects
  • Transmission ticker added to flight HUD
  • Resolution ratio UI fix
  • Lots of bug fixes and improvements to prologue missions


Known Issues

  • Autospeed match ‘close’ setting does not work as expected
  • Colliders for Fighter, Gunship, Carrier, and Large Transport are not optimized for best-fitting
  • Jump-out animations are not scaled correctly for ships bigger than a gunship
  • Guard My Target command is not implemented


Fixed

  • UI cut off when using 1920×1200 resolution and other edge case resolutions
  • HUD Afterburn and Speed Indicator panels fail to maintain scaled positions across various screen resolutions
  • Advanced Navigation tutorial has reference to completing intermediate training
  • Explosions now look better than before
  • Distinct debris flickering when the player rotates the view
  • Prologue Mission 7: The briefing title states “Prologue 1” and should be “Prologue 7”
  • Various scripting improvements and fixes across all Prologue Missions
  • Pause menu background is not flush with the border
  • Spelling error in the tutorial weapons_01_primary transmission dialogue


Added

  • HUD Monitoring panel for tracking the status of important structures during campaign missions
  • Added External Orbit Camera during flight
  • Ticker text for displaying player-received transmissions in the top left of the HUD during flight
  • Prologue Mission 4: Added transports to the monitoring panel
  • Prologue Mission 4: Transports have now been given names better than Transport X
  • Prologue Mission 7: Added transports to the monitoring panel


Changed

  • Increased max range of distance indicators for missile alert to 8000
  • Wingman monitoring panel adjusted in size and now scales horizontally
  • Adjusted flight HUD element positions to make best use of screen space across a range of display resolutions
  • HUD Waypoint marker now has a border to make it stand out better on bright backgrounds
  • Prologue Mission 3: Beautiful Mind is now the first object to be targeted
  • First Person Camera positions for cockpit views moved nearer the model bounds and more central to that location (you’ll see less of your ship)
  • Removed the non-functional News button from the Campaign menu

Buy A-Spec First Assault now on Steam.

A-Spec First Assault launches into Early Access on Steam

A-Spec First Assault is available to buy now on Steam. Releasing into Early Access, A-Spec First Assault adds a mini prologue campaign designed to introduce new players to concepts and features over 7 missions.

Completing the prologue opens the campaign preview with 3 main and 5 side missions. These are the same missions made available in the demo.

The skirmish gameplay mode provides quick access into combat with abilities to change the loadout and number of ships on a 1 v 1 team singleplayer with AI teammates.

A-Spec First Assault offers a wide range of customization options for each ship. Equip your vessel with an array of primary projectile guns and secondary missile launchers, bolstering your frontal assault. Alternatively, opt for turreted guns that provide wider firing arcs, or adopt a balanced approach with a combination of both. Remember, bigger ships deliver greater firepower and make bigger targets.

Augment your ship’s performance with support modules, bolstering its core systems. Enhance agility, top speed, armor, hull strength, fire rate, firepower, and more, tailoring your vessel to your play style.

A-Spec First Assault Trailer

You don’t need to understand quaternions to use them in unity

This is just a quick take on what Unity users seem to believe they need to understand inside and out: Quaternions

The Unity documentation for the Quaternion class is all you need to reference and use as a black box to the magic numbers of Quaternions.

If you understand Euler Angles, you can get along well enough to work with Quaternions. You don’t need to understand the inner workings of Quaternions. Unless you are really interested in them, spend that extra time making a fun game.

I used the Quaternion class with Unity’s Physics for Absolute Territory and A-Spec First Assault. It was more difficult for using use rotational forces rather than the built-in rotation methods made available.

As a side note: You use the Rigidbody Inertia Tensor for mass with rotations, and Mass for translation if you want to apply forces to simulate a Reaction Control System.

New single-player campaign preview

A new single-player campaign has been added to the A-Spec First Assault demo. Play through 3 main missions and 5 side missions in a fight for survival against a relentless hostile oppressor.

Patch Notes 0.11.0

Overview

  • Added a single-player campaign as a limited preview

Known Issues

  • Autospeed match ‘close’ setting does not work as expected
  • Carrier and Large Transport do not have death animations and blink out of existence on death
  • Colliders for Fighter, Gunship, Carrier, and Large Transport are not optimized for best fitting
  • Jump-out animations are not scaled correctly for ships bigger than a gunship

Added

  • Campaign: Single-player campaign as a limited preview
  • Campaign: 3 main missions for the campaign
  • Campaign: 5 side missions for the campaign
  • Campaign: Player Item rewards for completing a main mission in the campaign
  • Campaign: Player Prestige rewards for completing main and side missions in the campaign
  • Campaign: Player Experience rewards for completing main and side missions in the campaign (used to unlock following main missions)
  • Campaign: Player Prestige and experience rewards for kills
  • Skirmish: Wingmen will now spawn in formation with their wing leader
  • New Ship: Fighter (only available to AI actors in the campaign)
  • New ship: Gunship (only available to AI actors in the campaign)
  • New ship: Carrier (only available to AI actors in the campaign)
  • New ship: Large Transport (only available to AI actors in the campaign)
  • New primary weapon: Hydracannon as XXS size (only available to AI actors in the campaign using the Fighter)
  • New secondary weapon: Guided bomb (only available to AI actors in the campaign using the Gunship)
  • New turret weapon: Autocannon as XS size (only available to AI actors in the campaign using the Gunship)

Changed

  • Limited frame rate to 30FPS when in menus
  • Luhansk corvette mass was too low (raised from 200,000 to 2,000,000) and will no longer be spun around as much by weapon hits

Fixed

  • Faction Active/Dying unit tracking was left in an erroneous state when starting a mission, preventing further missions from completing correctly
  • Explosive damage was not being applied correctly against moving structures
  • AI actors would get stuck attempting to complete a priority objective that was impossible to complete
  • Selecting a target from cleared selection selects 2nd contact in the list rather than first
  • NullReference when firing missiles
  • Fixed an issue with lateral thruster burn time calculations for AI actors

ASPEC First Assault Patch Notes 0.6.0

Patch Notes 0.6.0

Overview

  • A focus on improving the user experience as a demo candidate for the next Steam Fest

Known Issues

  • Weapon Panel border and title misaligned
  • Autospeed match ‘close’ setting does not work as expected
  • Turret gunners are trigger happy generally firing too early and very likely to miss their target at longer distances on the initial trigger press

Added

  • Key binding for cycling only Hostile targets
  • Key binding for cycling only Friendly targets
  • Key binding for cycling only Neutral targets
  • Distinct debris for Kherson, Luhansk, and Donetsk
  • Added control binding Group 2 & 3 in Control Mapper
  • Added ‘Classification’ to current target display in HUD
  • New HUD Color Picker, for changing colors on HUD elements (Options > Game > Edit HUD Colors)
  • Screen flash effect on the player taking hull damage (Options > Game > Flash Screen on Critical Damage)
  • Primary guns will now point over the closest hotspot on a target, instead of focusing at the center of the target

Changed

  • Disabled controller thumbstick for menu navigation due to interfering with Control Mapper Configuration of axis controls
  • Renamed ‘Pilot’ category to ‘Flight’ in Control Mapper
  • Renamed the ‘Shift 1’ category and bindings to ‘Group 1’ in Control Mapper
  • Proofread and updated descriptors for key bindings in Control Mapper
  • Added headings under categories sections, and re-ordered binding controls in Control Mapper
  • Second ship collider for testing against ship collisions to avoid ships wedging each other
  • Minor adjustments to Slide, Flight Assist, and similar indicators
  • Ship armour sections will regenerate, as long as the section does not take damage for 10 seconds. Regeneration will be interrupted on taking damage
  • Top and bottom armour sections added to all ships
  • Explosions, caused by weapons (i.e. artillery), inherit the velocity of the object they hit
  • controllerData.cfg is now located inside the player’s Profile directory (allowing multiple Steam users to have their own unique controller bindings)
  • settings.cfg now located inside the player’s Profile directory (allowing multiple Steam users to have their own unique settings)
  • Armour/Hull Quadrant display flash effect now animated over time
  • Radar display quadrants light up when the player takes damage in that quadrant
  • Primary gun pointers now have state changes (solid = ready to fire, hollow = reloading)
  • Changed AU damage evasion modifiers. AI pilots will make efforts to avoid taking weapon fire more frequently

Fixed

  • Static gun pip displayed on HUD if no primary weapon is equipped
  • Issue preventing accuracy of primary weapons, causing unintentional misses
  • Mouse bindings incorrectly configured

Absolute Territory 2.4.1 update

Merry Christmas or happy holidays as you celebrate. I’ve been reticent this year due to long-standing issues with Long Covid. I’m still here though!

I’ve been making progress with A-Spec First Assault and some of the changes made with A-Spec I have brought them into Absolute Territory.

The update came in two parts, due to a couple of things overlooked. The big takeaway is an improvement in FPS when flying through asteroid and mine fields and (hopefully) less micro jitter overall. I improved the floating origin system. If you flew really far out you’d notice weird wobble effects which are now fixed and were the whole reason for such a system in the first place.

All this came in time for the Steam Winter sale. Pick up Absolute Territory with 75% savings.

2.4.1 Release (20221223)
Overview – A couple of things have been overlooked since the last patch

Fixed – Spawn positions are off while progressing through multiple nav points in a mission
Fixed – Missile decoys were not included in the floating origin

2.4.0 Release (20221222)
Overview – Big fixes and performance improvements

Fixed – Default Flight View Perspective set to Last Used will always start in 3rd person view if the player died in a mission
Fixed – Frame Rate limit was being ignored when setting graphics quality to medium or higher
Fixed – A cause of object jitter when the player was rotating their ship
Fixed – Target health bars show above the player’s scores during in-flight
Fixed – Target health bars showing above the player’s gunsight during in-flight
Fixed – The FPS counter remains, after being enabled during a mission when the player restarts the mission
Fixed – The mouse flight cursor showing above the control bindings screen
Fixed – MLRS missiles will no longer collide and explode with each other when launched

Amend – Physics update is now linked to the game Frame Rate limit
Amend – Frame Rate limit ’15FPS’ option replaced with ‘Monitor’. Which will use your monitor refresh rate for the frame rate
Amend – Removed the refresh rate values from the video options screen resolution dropdown list

For vs foreach: the performance difference will shock you

I recently started looking at performance optimization applicable in Unity. Doing Google searches showed out-of-date tests (much like this could be if you are reading in the far future).

I’m specifically trying to determine which type of loop (For Vs. ForEach) is the most efficient to use as 1) referencing GameObjects and 2) modifying a value.

For these tests I’m using Unity 2020.3.19f1 LTS on Windows 10 with an i9-10850 CPU with 16GB RAM. For updating values, the GameObject position was changed. I ran the test seven times and used the average to come to a conclusion. This is more as a reference rather than the “be all and end all” of which case suits your best. Basically, do your own tests to see how each case would suit your own needs.

Without further ado, here is are my test results iterating an array of 100,000 GameObjects:

Results

Editor

IL2CPP EditorRead ValueSet Value
ForForEachForForEach
0.0033917430.0036640170.067594050.04567719
0.0034174920.0035285950.063674450.04667139
0.003467560.0035200120.066828730.05114985
0.0033812520.003345490.062442780.04349947
0.0034904480.0034618380.060833450.04655266
0.0034084320.0035433770.063357350.04396629
0.0035672190.0035228730.062111380.04444933
Editor For v ForEach Times in Seconds
Average0.0034463065710.0035123145710.063834598570.04599516857
Difference0.000066008-0.000066008-0.017839430.01783943
Editor For v ForEach Time differences in Seconds

Player Build

IL2CPP PlayerRead ValueSet Value
ForForEachForForEach
0.00063562390.00054788590.043213840.0290904
0.00063371660.00054359440.041841030.02432728
0.00062608720.00066947940.03976250.02416563
0.00062561040.00052881240.037984850.02457619
0.00064945220.00054883960.043627740.02631426
0.00062751770.00053358080.038517480.02418947
0.00063562390.00055551530.038239240.02412081
Player For v ForEach Times in Seconds
Average0.00063337598570.00056110111430.040455240.02525486286
Difference-0.000072274871430.00007227487143-0.015200377140.01520037714
Player For v ForEach Time differences in Seconds

Conclusions

First off, Unity Editor has a lot of overhead and is going to be always much slower than a build. Testing in Unity Editor will help determine if there are easy performance gains. When you want to get more realistic values you need the Player build used by players.

Comparing Timings between the Editor and Player build when reading elements in an array

Comparing the Editor to the Player build, and reading values from an array timings move from the 100ths into the 1000ths of a second. Setting values is much slower than reading values measured in 10ths. Modifying elements in a list has a performance cost, so don’t update elements needlessly (much like you shouldn’t in any kind of game loop, i.e. Unity’s Update()).

Reading elements in an array

Does it significantly matter if you are using a For or ForEach loop when reading elements in an array? We are talking 10,000ths of a second. Not a significant difference between the two. If you want the fastest iteration possible then ForEach wins when reading elements in an array.

Comparing Timings between the Editor and Player build when writing elements in an array

Modifying a GameObject value has its performance cost (probably more due to using the position Vector3 array which is a struct) and the difference is 2/100ths of a second, and significantly more costly than just reading values.

Writing elements in an array

ForEach is 15/100th faster than For. This difference is not going enough to worry about on its own but ForEach is faster and the best choice for getting as much performance as you can.

Other considerations

A last-minute thought, quite literally, any garbage collection from using a For or ForEach. Several years back ForEach generated garbage, then an update improved its performance. This experiment has not taken this into consideration and could make a considerable difference in how much Garbage is generated and thus make Garbage collection run more frequently, slowing performance and increasing frame hitches.

Testing on a variety of target machines could impact performance differently.

Using Mono scripting backend could impact performance differently.

TL;DR: ForEach was faster than For in this experiment. That alone should not influence any decision-making process.

UPDATE

Garbage collection was skewing the results. The first time you access the .transform for a GameObject Unity generates garbage.

I got around this by just doing an initial iteration before testing the times. From some initial testing ‘For’ won 4 out of 7 times in the 1/100th’s of seconds.

Based on this there is not much potential for performance gains. It’s best to choose for or foreach based on the needs of the project.

This garbage generation on first time accessing the transform may be worth noting for anyone who pools gameobjects.

In Development for PC: A-Spec First Assault

Digitum Software is pleased to announce a new tactical space simulator combat with fast and manoeuvrable corvettes to hulking warships armed with sophisticated yet traditional style weaponry known to modern military.

Experience first-person tactical space combat in A-Spec First Assault. Fly corvette class warships, customize your load-outs, and do battle against opposing forces where ship positioning matters.

Keep your enemy against your strongest side while you attack their weakest.
All warships use a quadrant damage model covering the front, right, rear, left sides. Positioning your ship is just as important to protect yourself as it is in attacking your target’s weak sides.

Familiar present-day weaponry
The majority of weaponry available will be familiar to present-day and mountable on turrets with limited firing arcs.

Prestige
Prestige Points are the main currency used to purchase new ships, weapons, and modules upgrades. Earn Prestige by completing mission objectives, taking down opponents, and avoiding damage to your ship’s hull.

Warship Customization
Customize your ship’s weaponry with a range of projectile and missile turrets. Turrets slots have a maximum supported size and fitting the biggest guns in each slot is not an option.

Enhance the abilities of your warship by fitting modules. Modules will have an impact on offensive and defensive ship systems and crucial for gaining an advantage during a fight.

Subscribe and Add to Wishlist to stay up-to-date and not miss out on development news and opportunities to play preview builds for A-Spec First Assault

Absolute territory updated to 2.2.0

2.2.0 Release (20210912)
Overview – Early enemy fighter weapons feel less overwhelming due to the fast firing rate

Gameplay

  • Amend – Track IR anchor point made same as VR
  • Amend – There are now two versions of the laser bolt cannon (Rapid Firing and Standard)
  • Amend – Vomitoria and Drosophilia now use slower firing laser bolt cannon
  • Amend – Updated weapon lore entries for the laser bolt cannon variants
  • Amend – Updated the 21 Absolute Territory missions to include the new standard laser bolt cannon. Added briefing text highlighting when new ships are made available. Added briefing text to make known about experimental laser weapon being available in mission 20

Simulator Modes

  • Amend – Wave and Gauntlet to include the new standard laser bolt cannon

Campaign Menu

  • Amend – Removed Tutorials as a campaign item selection (they are still available under Simulator menu). They no longer have skip dialogue, since all tutorials are available and there was no need to skip


2.0.1 Release (20210820)

Overview – Tunnelling can be disabled in options and an unsupported TrackIR implementation.

Visual

  • Added – Auto Exposure and Ambient Occlusion Postprocessing Effects
  • Amend – Gameplay scene lighting adjusted to use the Skybox instead of constant color.

Gameplay

  • Added – Toggle Tunnel Vision when using VR (Options > Game > VR Tunnelling
  • Added – An experimental and there not officially supported (I reserve the right to pull this feature at any time) Track IR implementation

VR

  • Amend – Press CTRL-F12 to recenter the VR headset in the main menu and in flight

An important developed note on the current Track IR implementation
As I don’t own any Track IR hardware I cannot reasonably test this myself and has been classed as experimental and officially unsupported. If you enable Track IR the experience may be sub-par or entirely broken. I will do my best to work with any Track IR users willing to be guinea pigs and provide relevant feedback towards improving the implementation. That is no guarantee that Track IR will become an official feature in the game and I reserve the right to abandon any further development on it.

Enabling Track IR
The command-line argument “-trackir” will be needed, I recommend you create a shortcut to the Standard game exe on your desktop and add the argument in the target box as exampled below.

Flying your Starfighter in Absolute Territory

Absolute Territory is a futuristic single-player mission-based space dogfighting with the familiar feeling of good space sims. Fly 21 missions with a variety of search & destroy, assault, patrol, escort, and scan objectives. Choose from several space superiority fighters, customize loadout from over a dozen weapons, manage power settings, and use directional thrusters like an elite pilot.

Ship and Weapon Selection

Outfit your chosen fighter in the Weapon Selection Screen

Chose your ship type from fast-moving glass cannons to slow hard-hitting tanks. Outfit your chosen ship with a variety of deadly weapons. Make sure you chose both ship and weapons wisely to enable the completion of your mission objectives.

Dogfighting with arcade-sim mechanics

Dogfighting against enemy stafighters

Engage in gripping dogfights with Newtonian physics. Arcade forces are used for an arcade-sim experience, allowing for responsive controls to pull off hair-raising maneuvers making yourself a harder target for enemies. AN RCS computer will compensation for all directional changes, turn too hard and you will but yourself into a slide, or worse find yourself a sitting duck while your ship adjusts speed. Fight against a variety of enemy ship types from light to heavy fighters, transports, and large warships.

Absolute Territory is not pure arcade or pure sim. Its arcade-sim.

Power management

Assaulting an enemy destroyer

Distribute power across engines, shields, and guns for an advantage over your opponent or get yourself out of sticky situations. Power to engines gives faster acceleration and increased top speed, for shields faster recharge rate and overcharging, and guns for faster recharge rate for longer sustained firing of heavier weapons.

Advanced flight mechanics

Picking off turrets using the slide mechanic

Engage slide, match speed, and directional thruster mechanics to keep your target in your gun sights. Warships and transports are not defenseless and come armed with flak turrets. Use component targeting and de-teeth these ships of their turrets. Then move in for the kill.

VR and Standard mode

Fully modelled cockpits to look around in VR

The recent 2.0 update added VR mode. Use this to your advantage for improved situational awareness in the cockpit. Identify the biggest threats with a glance before turning to engage.

Play Absolute Territory today