Genre: Real Time Strategy (RTS), Simulator, Strategy, Indie
Battlefleet Engineer
0.3.2207.6 Ship editing and testing improvements, merge from beta branch
This update focuses on improvements to make the ship blueprint editing and testing gameplay loop smoother. All existing changes from the beta branch are now also included in the main branch.
New functionality:
Added options for fleet test battle to reduce need for manually setting up a desired scenario every time. The level size, enemy fleet, and fleet deployment distance can be chosen from a new dialog.
Added the existing fleet generator tool to fleet editor.
Game overlay (damage, resources etc.) enabled and opacity settings are now persisted in game settings file automatically. The values are separate for sandbox battles, normal battles, fleet editor, and ship editor.
Position and visibility of ship editor dialogs is now retained until the whole fleet editor screen is closed.
Enabled configuration modding of shield parameters like size, energy use etc.
Ship mirror tool now uses existing movement group assignments of actuators for mirrored actuators instead of always recalculating all movement groups so any manual assignment effort is not lost. The logic tries to smartly utilize the existing assignments based on mirror axis and movement group direction, but may yield worse results than full reassignment.
Added settings for maximum overlapping shield opacity to the game settings file, but no UI. The limit can be lowered to see the ship's modules better under overlapping shields. Separate values are used for the fleet editor and battle.
Fleet editor: Added option to include only the selected ships into the fleet save dialog. This is primarily meant to enable a ship / fleet testing workflow where one or more ships are saved from current fleet to use as enemy fleet in the test battles.
Added file deletion button to all file open and save dialogs.
Notable fixes:
Debug overlay: Improved visibility of certain debug texts by drawing a black background under them.
Fixed configuration modding of shield modules.
Fixed / refactored beam weapon firing logic to use electricity and generate heat at the start of each firing burst.
Improved "first use" UX of the fleet generator tool by hiding the fleet listing and "Add ships" button until a fleet has been generated.
Fixed fleet generator tool dialog not resizing correctly to content when the dialog was first dragged, and then a fleet was generated.
Career mode related:
Renamed the "Campaign mode" to "Career mode" as that matches the idea of sandbox overworld mode with persistent fleet better. There likely won't be any story-driven or scripted "campaign" to play through.
Start battle dialog in career mode now shows a listing of the enemy fleet content.
Added option in ship blueprint browser (in fleet editor) to show only currently buildable blueprints. This is based on available modules in fleet and module production capability (including purchase price and resources needed) if docked to a station.
Fleets defeated in universe battles now automatically jettison cargo and slow ships to escape their attacker.
Empty fleets are now "scuttled" to debris instead of just deleting them, which releases any carried resources to the universe.
Player fleet motion planning now uses "stop and go" solution if it is significantly faster than the smooth one.
Fixed ship rebuild logic not assigning movement, weapon etc. groups, which would sometimes cause rebuilt ships to be immobile in battle.
Fixed fleet rebuild getting stuck in a temporary empty fleet state. This would happen when fleet's only ship needs to be fully dismantled to then build another ship from scratch.
Highlights of features previously available only in the beta branch:
Limited modding support via configuration files.
Many additions and improvements to the career sandbox, including:
Roaming pirate fleets
Basic playable station battles
Improved fleet motion planning and added fleet evasion logic.
Several UI functionalities related to resource transfer, starting and escaping battles etc.
Please see previous announcements for some more info.
New features in beta branch
The "development" beta branch has been updated to the current state of development, which includes few still work-in-progress but already pretty functional features.
During 2021 the amount of time spent on development has been admittedly pretty low and the work has focused on the sandbox campaign mode, which is still quite far from a releasable product.
New features:
Added simple configuration mod support. Don't like the balance of combat or want to try something wacky, like 10x faster fire rates on all weapons? Enable mods from a launcher or create your own by editing some JSON files.
Added roaming pirate fleets to campaign sandbox.
Added neutral single-station "free port" factions to campaign sandbox that are a good place to sell salvaged debris and rebuild your fleet.
Station battles can be now fought manually in campaign sandbox. This feature is still pretty basic, but features static defense platforms in a generated level with asteroids. Player can be either attacker or defender and any docked fleets also take part in the battle.
Lots of minor improvements to campaign Faction and fleet logic. For example, fleets will now evade enemies, and more fleets may join ongoing autoresolved battles.
Workshop content usage hotfix
Fixed an issue that prevented playing some newer challenge levels and using ship blueprints downloaded from the workshop. These would show up in the game, but e.g. trying to add such ships to a level would just fail without any error message. The root cause was that the Steam workshop item IDs for new items are now larger numbers than what a 32-bit Integer can hold, which hasn't been an issue before.
New feature updates will come eventually when those are ready. The "development" beta branch will get these first if you don't mind having some bugs.
0.3.2004.04 Fleet generator tool and fixes
This minor update adds a handy fleet generator tool to the battle sandbox. It allows quickly adding randomly selected ships similar to the battle setup screen. The tool may get introduced to the fleet and battle editors later.
Minor changes and fixes since previous patch notes:
Changed large plasma projectile damage modeling to allow them pass through multiple modules but not being able to fully destroy a module with a single hit.
Made large plasma projectiles cause external explosion if they hit ship exterior armor. This is intended to spread some damage to adjacent armor segments as well and generally buff these projectiles against armor.
Added a plasma destroyer ship design. It is a medium size ship with large plasma turrets and shields but very light armor.
Improved / changed ship peak power use statistic to include charging of shields and weapons. This makes the stat more useful and the power ratio stat to generally be less than 1.
Fixed ships sometimes not getting to launch all their missiles due to issues in the launching logic.
Fixed being able to queue launching of more missiles than were actually available.
Fixed fleet battle AI trying to regroup even if it only had one ship.
Fixed damage overlay rendering for ships that have kinetic shields.
Fixed a rare UI overlay initialization issue related to mouse position update to the UI.
Fixed certain single shot particle effects never getting to spawn their particles.
Fixed module disabled and destruction particle effects not spawning when last module of a ship got destroyed.
Fixed module destruction particle effects for ships's last module getting applied a random high velocity.
0.3.2003.10 Performance improvements
A small service update that improves performance in certain areas, allowing larger ships and fleets.
Fixed a significant issue with audio objects not getting released correctly if the sound never actually started playing due to a limit of simultaneous sounds. This caused whole game audio to eventually glitch and stop with large battles, and a long hang when returning to menu from a battle. It also gradually slowed the game down.
Improved performance of ship resource distribution and especially that of radiator modules. The effect is very noticeable in very large ships or platforms with up to hundreds of radiator modules.
Minor optimizations in particle spawning and ship weapon control logic.
0.3.2002.19 Big Guns
This larger update brings a new class of weapons, changes to shields, an easier way to fly-test your ship designs, and lots of small fixes.
New large modules
These new 2x2 modules are beam turret, plasma turret, and shield generator. They function similarly to the existing smaller versions, but with about 10 times the raw damage output and resource usage they form a new significantly higher tier. The large plasma and large beam are intended as main weapons of large ships that can provide enough energy and cooling to reach their potential. Normal shields are not adequate to defend against these weapons, which is where the large shield comes to play.
Large beam turret has slow rotation speed but can fire a perfectly accurate 4-second burst with medium range. If the firing ship and target stay still enough, the beam can drill its way through multiple modules. The large beam can be very effective against heavily armored ships, because the core modules can usually be sniped with a flanking attack.
Large plasma turret fires relatively slow plasma projectiles with medium to long range. It is effective against slower and larger ships that it can hit reliably. The large plasma shots destroy armor plating on impact and do additional explosive damage if they penetrate, which can damage multiple modules. Like the medium plasma module, the projectile size can be tuned from module options.
Large shield generator has double the max shield radius of the normal shield generator, and the shield is also tougher. The large shields are very effective against medium plasma, kinetic and beam weapons, being able to nullify even large amounts of incoming fire if the ship can provide enough electricity. Missiles, super gauss and large weapons may still get through. Note the difference between energy and kinetic shield variants also added in this update.
The new modules currently use existing audio effects, but the plan is to eventually have specially made individual effects that convey their greater power.
Energy and kinetic shields
Until now the shields have provided protection against all weapons, while being better against plasma and beams. This is now changed by having separate "energy" and "kinetic" shield variants with different properties. The choice can made using module options in ship editor.
The energy shields are effective against plasma projectiles and beam weapons, but have almost no effect on kinetic projectiles. They have same max diameter and visuals as the generic shields previously.
The kinetic shields are effective at stopping and deflecting kinetic projectiles, but do little against plasma and beam weapons. In addition, the kinetic shields stop relative motion of other ships and asteroids, guarding against collisions. Motion away from the center of the shield is not affected, so its hard to get further into a kinetic shield but easy to get out along the radius. Kinetic shields can be identified visually by their lighter color and larger max diameter compared to the energy shields.
Test flight mode
The fleet editor now has a second option beside "Test battle" for easier testing of your ship designs. The "Test flight" button takes you directly to manual control mode with selected ship in a special test level that has some passive targets to shoot and asteroids to fly around. This mode is based on the regular battle sandbox and the test level is a battle scenario you can edit using the battle editor.
Graphical changes
New beam rendering for sharper and more accurate visuals. The beams now fade away correctly along their length when their energy is drained by shields and segment ends are aligned to hit module surface normals to avoid gaps. When zoomed out far enough, simplified rendering is used to keep all beams in view similar to how projectile graphics are scaled.
Fixed weapon muzzle flash and projectile hit light effects. These seem to have been broken for a while and actually look pretty nice.
New particle effects for the large weapons and super gauss include firing, large plasma projectile trails, and projectile impacts.
Reimplemented main ship sprite sets to be a single sheet created with TexturePacker and loaded from user-editable image file instead of xnb resource.
Minor fixes and changes
Extended toggle ship / camera follow logic to allow following enemy ships and other objects if no ships are selected. Just point at an object and press F. Heavily prefers following ships over everything else.
Weapon turret targeting and firing logic improvements. Improved turret firing logic to require a valid intercept solution found in setTarget call, which prevents wasting energy on shots that will surely miss.
Globally disallow button elements to get and retain focus when clicked.
Added better handling of ship blueprint id conflicts when loading them from disk. New logic assigns new id to one of the blueprints and re-saves it. Stock and workshop designs have precedence in keeping their preferred ids.
Added mouse position change tolerance check to double and triple click check. This fixes issue in ship editor where fast placing of modules using single clicks would trigger the end ship editing action.
Fixed issues in rebuilding and duplication of ships have been edited in the ship editor and then brought into a test battle.
Fixed shield generator modules wasting / using too much electricity when shield is at max size.
Implemented adaptive shield rendering vertex count (LOD) based on visual size for small performance gain.
Fix for beam penetration intersection calculation in a situation where beam first enters a module with custom shape such as medium armor, passes through it and to adjacent module such that the exit and enter points are the same.
Added some tooltips in fleet editor and improved action button descriptions.
Improved some module descriptions.
Fixed projectile light position being at world origin on first frame of its existence.
Fixed wrong particle emitter's parameters getting updated in UI if an effect had multiple copies of same emitter type. Also fixed emitter parameter change event handler removal logic after exiting and re-entering the particle editor screen.
Fixed particle emitters continuing emission after emission time had elapsed if the whole effect wasn't done.
Increased shield pattern texture size and also increased its opacity when zoomed out. Enabled mipmapping for the shield hex pattern to avoid aliasing.
Made the game speed slider in battle screen actually reach 10 as max value.
Fixed beam energy calculation when module structural HP is negative.
Fixed initialization of shield generator module to not reset to full strength when deserializing.
Fixed mirroring of 2x2 modules in ship editor.
Added separate color gradients for kinetic shields.
Fixed and much improved sustained firepower ship statistic calculation. Now takes into account both available power generation and heatsinking within ship for a better estimate, but still not really accurate since resource distribution order, weapon range, active module usage etc. many other variables matter too.
Fixed manual ship control action groups UI moving vertically in battle sandbox when game was paused or unpaused.
Fixed ship control commands being triggered from shortcuts when in battle sandbox edit mode.
Fixed issue related to having disabled ships (debris) selected in battle sandbox screen.
Made radiator module self-illumination pass animate based on the stored heat similar to the diffuse channel.
Added smooth blending between shaded and raw diffuse color based on self-illumination value in DeferredCombine shader. The hard cutoff was very visible with radiator modules when the self-illu is animated based on the amount of stored heat.
Fixed bindings for ship control commands causing crash in the campaign prototype screen.
Updated shield wall ship design with large shields.
Updated arrow fighter ship design with kinetic shields.
Updated super gauss fighter design with kinetic shield.
Updated heavy punch ship design with kinetic shields.
Updated thin sniper ship design with kinetic shields.
Updated gauss barrage ship design with kinetic shields.
Updated light frigate ship design with kinetic shield and few more generators.
Updated big box ship design with large shields and guns, increased power generation.
Updated medium sniper ship design with kinetic shields, resource grouping.
0.3.1910.12 Battle Sandbox improvements
A minor update with mostly small user interface improvements in the Battle Sandbox game mode.
New functionality
Added options for what you can select in Command and Edit modes of the Battle Sandbox. This helps avoid accidental selection of e.g. enemy ships or missiles, asteroids.
Added ability to select, manipulate and rebuild destroyed ships in Battle Sandbox edit mode.
Fixes
Fixed a rendering issue that was causing jagged edges e.g. on weapon beams.
Fixed crash when using debug overlay in Battle Sandbox and selecting projectiles.
Going to Edit mode in Battle Sandbox now releases manual control of ship.
Fixed crash when using ship manual control in Battle Sandbox mode while the fleet AI is enabled.
Fixed static / stuck weapon beam lights appearing in battle after it has been loaded from a Level file. This also affected entering Battle Sandbox mode from an existing battle.
Moving a ship to another fleet in Battle Sandbox now immediately removes it as a target from other ships in that fleet.
Fixes related to popup menus and tooltips in normal Battles and Battle Sandbox.
0.3.1909.19: New game mode: Battle Sandbox
One of the major design goals for Battlefleet Engineer has always been to give the player freedom and tools to make their own fun with different ship designs and battle compositions. However, a significant limitation has been that the battles need to be set up completely beforehand with the fleets, level parameters, and asteroids fixed.
The new Battle Sandbox mode can be started from any ongoing battle and allows commanding ships in both fleets, adding ships and removing objects, ship and asteroid manipulation etc. - all without even having to pause the simulation! In addition, the "Command" mode of the sandbox lets you still play the battle as usual, with some additions such as being able to also fly and command the enemy ships if you want.
Current features include:
Add, delete, rearm, repair and rebuild ships.
Teleport or drag ships, missiles and projectiles around.
Move ships between player and enemy fleet.
Add, delete, move, and scale asteroids.
Independently enable / disable fleet AI for both fleets, allowing fully automatic battles or even playing against yourself.
More editing functionality and UI improvements are likely. Please let me know what you would like to see added to the sandbox mode.
0.3.1908.21 Switch to 64-bit
The game is now available as 64-bit (only). The immediate benefit from this is that the "Out of memory" crashes are now fixed. These crashes were occurring usually when starting or ending a battle, or when trying to run the game at 4k resolution.
Going 64-bit required large technical changes to get rid of 32-bit only dependencies, but also means that the game no longer depends on outdated and unsupported tech.
Replacing XNA with FNA The Microsoft's XNA Framework 4 has been replaced with the FNA library that is an open source reimplementation of XNA. Under the hood the game now uses SDL2, renders using OpenGL instead of DirectX, and installation of the XNA Framework redistributable is no longer needed. FNA also supports Linux and Mac, but porting Battlefleet Engineer to those platforms is not currently planned.
Replacing Awesomium with CefSharp Battlefleet Engineer uses a web browser engine to implement the menus and all more complex UI controls. This was previously done through an already discontinued Awesomium library, and is now realized with CefSharp that supports 64-bit applications. Both of these are based on the Chromium web browser, but all the interfacing between the game and the UI had to be redone due to API differences. This was a lot of work, but with the much newer version of Chromium now in use the UI development should be a bit easier going forward.
0.2.1906.10 First version of campaign prototype
The default branch now includes a very early version of a "survival sandbox" overworld where you have a persistent fleet in a small universe of warring factions.
It only has minimal graphics and UI, but many of the intended core mechanics are there such as Newtonian fleet movement, persistent fleet damage, resource scavenging from battle debris, power struggle between AI factions, and a simple resource economy to generate fleets for you to raid.
Please let me know what you think. It has been quite a while since last update, so I thought releasing this in the current state is better than just continuing the radio silence while making slow progress.