This week has certainly been a big one for the project, as I mentioned last week I am now in the process of fully updating/replacing the scripts and assets to handle a full conversion to 3D. Before making any major change like this it's important to clearly understand and consider the reasons consequences of the change. In this case there were a number of hurdles I created for myself due to false assumptions when starting the project and due to analyzing the results of playtests.
False assumption number one was that the sprite assets I would need would be plentiful and varied. Paying an artist for custom work was of course always going to need to happen, but there needs to be enough base stuff out there that the requests to artists could be targeted. What I discovered is that if you're doing fantasy you're for the most part set, but the minute you step out of swords and sorcery the pool shallows immensely. This gulf still exists in the 3D asset world but due to the sheer enormity of the assets available it is less of a problem. The next problem however was core to the design...
The game has, at it's very core, depth layers as a gameplay mechanic. Fighters at the top, battleships at the center, and stations/dreadnaughts at the bottom. These ships interact with other layers based on very specific rules and playing around these rules is core to the experience. The problem was there was a consistent problem with portraying the actual depth between the layers. I tried fading the layers you were not on and also putting text in the corner of the screen stating which layer you were on, but in the visual mess of the scene it was not communicated well enough to the player. With the perspective camera and assets with varying sizes and depths it is already proving much easier to keep track of how each individual layer is doing.
The singular biggest thing I had to work out this week was weapon rotation and targetting. In the 2D version of the game the turrets on a ship simply turned in the direction of their target and fired with no other regards. As soon as I started updating the script to work with the new assets it became immediately clear that it was now possible to shoot your own ship's geometry. This problem was overcome with additional checks to first check if you had a clear shot to your target, and if not checks if you have a clear shot to some other valid target.
Overall I believe this conversion is going to cost me about 3 weeks, maybe 4 if some unexpected obstacle shows up. Overall I'm very happy with this change and believe it'll result in development speed gains in the future, a more pleasent dev experience for me, and an overall better experience for the player.
In the coming week I hope to finish coverting the movement and weapon/projectile/object pool scripts.