Relatively minor update this week, as most of the work I've done is under the hood. I was hoping to include destructible terrain this week, but it's not quite ready to roll out yet. The reason I'm releasing an update anyways is because I've made a few changes to the way the game runs through each game tick.
Previously, the game timer would interrupt the game and cause issues with using the interface, as well as essentially locking up the game for a few milliseconds while it processed each game tick. Now I've moved things around in code so that the majority of the game tick runs in a separate thread. It seems like an obvious thing to include even before releasing in Early Access, but in my mind performance comes secondary to correctness ie. I was initially more concerned with making sure everything worked and was fun rather than how quickly it ran (as long as it was playable, of course).
Using the UI should now feel a lot more responsive even while the game timer is running, and I'm hoping things run a lot smoother in general. Let me know if you run into any issues - if any of you have done programming yourselves, you'll probably be more than aware that multi-threaded/concurrent programming occupies its own special place in Hell. Nevertheless, I'm hoping this improves the game experience for a lot of you.
Bugfixes/Changes:
Made game tick concurrent.
Prevented the HQ and Aerodrome from refreshing every game tick, which should make those screens more easily useable while the game timer is running.
Added the ability to use the WASD keys to scroll.
Reduced the number of subscreen refreshes, which should make things less "choppy"
Drag-selecting entire groups of units and issuing orders to them will now ignore HQ units if HQ units are unable to perform those orders (build orders, wiring, etc)
Selecting HQ units will now highlight their subordinate units as well.
Added weapon names in the Order of Battle subscreen.
Updated the tutorials so that they are no longer broken versions of the main map. This also means that the bug in which the map toggles in the upper right corner of the screen now work in the tutorials.
Changed the game icon to something other than the default Godot icon.
Soon to Come:
Destructible Terrain - I have one house type completed, as well as the underlying logic for any type of terrain in general. I probably won't release this feature until I have at least a few different building types, otherwise it's going to look really weird.
The ability to schedule attack orders using the Scheduled Order screen.
A Retreat button once you send units over the top.
Better UI for managing subordinates/superiors. Right now it takes several clicks to, say, select a company within a brigade, and then to select all platoons in that company. I'm probably just going to steal the interface from HOI3, but it will take me a few days to implement, and I wanted to get an update out today.
Artillery gun-pits. Some of you have suggested this, but until now I couldn't think of a gameplay-related reason to include them. Since artillery can't enter blockhouses, I'm thinking these will basically be blockhouses for artillery. They take longer to build, and it takes artillery units a long time to settle into them or leave them. However, artillery will be protected from counterbattery fire and aerial observation (signals units can still spot them, though). Let me know if this sounds good!
The Settings screen in the main menu now has the option of switching to an alternate font which I believe shows up better at lower resolutions. This can only be done on the main menu, because allowing it from the pause menu would be MUCH harder to implement. Let me know if the new font helps - I can always change it to something else if necessary.
Aircraft
I've now made it necessary to assign aircraft to individual pilots before sending them out on sorties. It's pretty basic at the moment. Once you get 1,000 Valour points, you can upgrade any of the aircraft to better models, which provide bonuses in combat against inferior enemy aircraft. You can also have pilots change planes if one becomes too damaged.
Let me know what you think of this feature. I'm not 100% sure how much detail should go into it, so I'd love the feedback.
Bugfixes:
In the process of tweaking the aerodrome, I noticed that new pilots weren't being generated. Now, at the beginning of each month, if the number of pilots and/or planes is too low, new ones are generated.
Pilot info now contains an icon to indicate whether they are Recon or Escort pilots.
Fixed bug in which scheduled orders for dugouts and blockhouses wasn't working.
Fixed bug in which Dry Weather Only scheduled orders wouldn't work a lot of the time.
Optimized pathfinding a bit, which should reduce some lag whne pathfinding over long distances.
I've added a few more new features that have been requested over the last few weeks.
Field Supply Dumps
Dugouts can now be turned into field supply dumps by supply units carrying supplies, by using the "Add Supplies" order. Field supply dumps can hold all types of supplies and provide passive supply regain to units in range. This replaces the existing system in which everyone regains supplies passively no matter where they are - now units must be near a field supply dump. Think Protoss pylons.
It also means that if you're able to capture an enemy field supply dump, you get to steal those supplies.
Order Delay
Command ranges are now working, which means that order delay now works. When a unit receives an order, each HQ unit "passes it on" to its subordinate units, with a delay incurred depending on the cumulative distance.
For example, each HQ unit has a default command range of 15 tiles. If a rifle platoon receives an order to move, the order chain starts at its Brigade HQ. If its Battalion HQ is 18 tiles away from its Brigade HQ, then it will take 3 game ticks to even begin moving. If its Company HQ is 20 tiles away from its Battalion HQ, then an additional 5 ticks are added. Finally, if the rifle platoon itself is 17 tiles away from its Company HQ, then 2 more tiles are added, which means it will take 10 game ticks (100 minutes in-game) before the rifle platoon starts to move.
A new icon now appears next to a unit's task when it encounters order delay.
Let me know if you like these changes!
Bugs:
Fixed a bug which would cause the game to lag horribly when the tile information window was visible. This may explain a lot of the performance issues in the game.
Fixed a bug in which air patrols were observing EVERY tile on the screen instead of only tiles which had things on them.
Division supplies now actually become lower when supply units take supplies (I can't believe I missed this one). To balance things out, starting supplies are now higher, and monthly intake is also higher.
I've added a new sub-screen at the top of the screen alongside the Aerodrome button. This screen lets you schedule construction orders and artillery bombardments in advance, with the option of limiting them to a certain time. So, for instance, you can make units set wire only at night, and have them repeat it every night.
The screen gets populated with the units you currently have selected. In addition, I've also added another button at the top-right of the screen, which allows you to quickly manage and view existing orders. Hope this helps make the game a little easier to manage.
Changelist:
New Schedule screen which allows you to manage scheduled orders.
Added orders pop-up button at the top right of the screen.
Bugfixes:
Fixed Pilot experience bug, where it would remain as Inexperienced despite hitting 100%.
Pilots now withdraw properly and re-appear on the pilot list. Previously, they would mysteriously disappear.
Fixed a bug in which drag-selecting units would only select one unit from each tile.
By popular request, I've gotten Save/Load into the game. Give it a try and let me know if there are any issues with it. I've tested it thoroughly, but it was a lot more difficult to implement than I thought it would be. There's a bit of a lag when loading games, but as far as I can tell it's working fine. Note that Autosave does NOT work yet, and won't until I'm certain regular saving works perfectly.
Changelist:
Save/Load
Order of Battle tree now shows unit action, so you can see a rough overview of what everyone is doing.
'X' button on unit action menu has been enlarged
The ESC button can now be used to deselect all selected units. The pause menu will only appear once all units are deselected.
Bugfixes:
Small bug where game would revert to full screen when returning to main menu if full screen had been disabled.
Numbers on HQ screen, such as casualty figures, etc, are now updated and shown properly.
Spacebar can now be used to play/pause the game timer. This was doable before, but there was no delay to prevent the button from flipping on and off rapidly.
Assigning a Supply unit to supply an area now deselects the unit properly (so that other units can be drag-selected). Previously, drag-selecting units after using "Supply Area" would cause the Supply unit to move up.
I've now added the ability to assign construction orders without having to select units beforehand. If you don't have any units selected, you can now right-click and create construction orders as usual. Nearby units will then be assigned to the order.
Another much-requested feature was the ability to tell a Supply unit to resupply an area instead of having to manually resupply units. I've now added a "Supply Area" order when Supply units carrying supplies are selected, which will allow you to drag a box for the unit to focus on.
It seems to work quite well, to the point where I'm considering removing the original "Carry Supplies" order entirely. Try it out and let me know what you think!
Lastly, I've made some minor tweaks and fixes. First, I've added two slower timer speeds. The original speeds of 1-4 are now 3-6, and speeds 1 and 2 allow the game to run slower than before. I've also fixed a bug in which casualties inflicted/sustained weren't being recorded properly, and I've made it so that killing the enemy even between dated offensives now provides Valour points.
Thank you to everyone who has supported the game thus far, it's an honour to see you all playing the game! Based on the feedback I've gotten today, I've decided to release a small update with some minor quality of life improvements:
Selected units are now indicated visually. This admittedly should have been included from the get-go, but I got so used to everything that it didn't even cross my mind.
"Attack Unit" now works. I made some last minute changes last night and didn't realize that I had accidentally broken something that had been working fine up until now.
Mouse scrolling is now included in the game.
Heavy rain now damages tiles. I removed this originally because I thought it might be annoying to constantly have to repair trenches. Let me know if you enjoy this feature or not, as I'm on the fence about it myself.
Full screen is set by default.
Added missing tooltips to Order of Battle and Aerodrome subscreens. Hope they help!
Artillery attack animations now appear as static images when the game speed is set to 3 or 4. Having them animated at such fast speeds actually lags the game, so this will have to do. Animations still remain in place at a game speed of 1 or 2. Some of you have asked for visual indicators when attacking with machine gunners or rifle units. I'm still trying to come up with the best way to do so. [\list]
Minor issues, but I hope even such small changes help you all enjoy the game more!