A five minute job it said…
Only five minutes!
Why not add side slip whilst fixing the other issues?
Come on it won’t take long….
What’s 5 minutes between you and me?
That ‘five minute’ job took around a day to code. That’s the last time I listen to my brain! 😛
But we now have the ability for units to side slip.
What is side slipping?
It’s the ability for a unit to move or charge forward whilst slipping the whole formation either left or right.
Ancient units used side slipping where it could replace wheeling as it didn’t take as long and didn’t affect cohesion as much. But unlike wheeling, side slips are limited by unit type, training, formation density and unit speed.
So not all units will be able to side slip very well.
Why did side slipping take so long to implement?
The image above shows one reason why there were a few technical hiccups. Who would have thought that a side-slipping unit’s actual course is actually slightly different from the order arrow? Not me! 🙄
Of course (pardon the pun), that’s just a simple ‘trivial’ case.
Once you start adding lots of other orders, such as wheeling, the calculations get exceedingly hairy indeed!
But after a day of solid work it all seems to work across multiple orders and formation shapes. 😎
Although side slipping has accidentally stolen the limelight this week, the real bulk of the work was fixing the issues introduced from the formation changes that were added last week.
I have a policy of not starting any new functionality (side slipping excused), until I get the outstanding issues under control. As can be seen from the graph, I still have a little ways to go before I have a clean system ready for adding road travel functionality.
So what were the ‘outstanding’ issues that I had to fix?
Many of them came about from required functionality that I had simply not thought about for formation changes….
There were other issues too. Such as removing the ability for a player to delete a change formation order if a unit is already in the middle of carrying it out.
All these smallish issues were issues that were not necessarily thought about up front, but are needed to make the change formation functionality usable.
In addition, as a bonus, I fixed the graphical anomalies on unformed units!
Regular readers will be thinking, ‘But you already fixed that?’ Well I thought I had, mainly because I couldn’t see the issue on my development machine.
Further investigation revealed that the corruption was down to the way I was dynamically calculating index buffers for the units. On AMD hardware (my dev machine) it worked perfectly, but on my games machine which has nVidia hardware it caused the occasional graphical issue.
I have since re-coded how the index buffers are calculated using a much safer algorithm and now, finally, everything is back and working again! Woot! 😀
I even managed to spend a little time on cleaning up the wheeling orders graphic…
The older symbology used to have a solid line that was drawn perpendicular to the unit that connected the pivot point to the endpoint of the unit. However, these days, the order graphic shows a shadow of the unit, so there is no need for this line to be displayed anymore!
That’s it for this week. For the next week I will carry on stabilising the system, and once it is ready I will start on the new road travel functionality.
Some people might be thinking that this is a slow way of going about software development, but in my view if you don’t stay on top of an application’s quality it will soon get on top of you!
Anyways, I will leave you with a short video demonstrating what unit side slipping is. Best viewed in HD.