Another year is over, and I have to say Battlefleet Engineer has seen some nice progress, In the last January I was busy implementing the basic iteration of the real time lighting system. You were able to build individual ships, but they did not have any flight control or movement logic in place, let alone weapons or AI, so there wasn't really anything resembling a game. Now you can design ships, build fleets, set up battles, command your fleet etc. meaning that it is no longer just an engine, but is maybe just maybe starting to gain some value as a game as well.
However, I must say that I'm not very satisfied with the December's progress. According to my metrics, I only spent about half the amount of time on the project compared to the previous couple of months. This is mainly due to me spending the first week completely studying for an exam, and losing several workdays to sickness and Christmas as well. Due to not having that many visual new features, I have decided not to make an update video for December, but I'm fairly certain January will bring some quite interesting developments to show on video.
Tuning existing systems
I did a somewhat significant amount of code refactoring, and also took a critical look at systems like the deferred rendering that draws the dynamically lit objects, and the collision avoidance implementation. From the rendering system I was able to fix some visual problems such as flickering jagged edges (aliasing), and to improve the overall aesthetic a little by adjusting the light mixing and light source falloff etc. I also added dynamic light effects to beam weapon collisions/hits.
The collision avoidance was working OK on mot cases, but also had cases where the ships would just ram each other at full speed. Generally allowing the flight control logic to fly the ships at too high speeds meant that fleets would often collide head-on at such speeds the collision fixtures get stuck together and the physics engine goes crazy. To combat this problem I introduced a velocity limit to the flight controller logic (still not a hard limit!) so that it can always stop the ship completely in 10 seconds or less. This leads to fast-accelerating ships flying at faster velocities, and everybody being able to avoid collisions and react to changing movement targets much better.
New features
The only truly new and finished feature from December is the rather basic mini map. Since the battle "arenas" can be quite large in relation to the ship size (20 000 vs. 50), it is necessary to give the player some additional visual aids for maintaining an overview of the situation. However, I soon found out that a traditional minimap with fixed view that covers the entire area won't be of much use either because the action will usually take place in just a small portion of it. To better use the visual space, I made the minimap to zoom to fit so that all active ships are always visible.
The minimap shows both player and enemy ships with green and red dots, size of which indicate the ship's size. Also shown is the current main view's borders and the edges of the level.
Minimap shows the ships and current view rectangle |
Plans for January
I have ordered a proper microphone with plans of doing some narration for future videos, and probably some development streaming sessions on Twitch as well.
On January I will be continuing work on UI elements that give the player more information about the state of his fleet and the battle in general. Ship combat and fleet AI will also hopefully receive significant improvements. Overall, I need to now start pushing the game towards basic playable state with limited content so I can start play testing my ideas and refining those that seem to work the best.
I have actually already implemented (during the last week of December and this first week of January) a battle scenario editor that allows freely setting up battles between any kinds of fleets.