Alrighty. The world is nicely populated now. Now going to start implementing the gameplay logic and visual effects of the missing game elements of level 1.
Just some of my initial thoughts about the porting:
- Overall porting of the code syntax was straight forward. Some namespace changes (Math to Mathf). Some missing math functions such as Vector * Matrix (replaced by Inverse(Matrix) * Vector).
- x axis was flipped for me, so I had to negate it when parsing my level data
- Model transformation in Unity follows strictly scale-rotate-translate. So some of the squishy effects of Armillo wasn't ported as a result as I used a good series of matrix multiplications as a result.
- I've avoided using Quaternions in XNA. Quaternions are now everywhere in Unity, but they're straightforward to use. (Just not straightforward to me when working with the math logic behind them!)
- I love Unity's game object, component, and runtime tuning system. Makes things a lot easier.
I had to also scrap the entire XNA coded rendering engine in favor of Unity's built in. Much easier to work with and shader support seems pretty good. I don't get any full screen effects or dynamic shadows with Unity Free, so I'll have to upgrade to Pro later on once I'm ready. Other things I've scrapped: the HUD (I'm debating whether I should go NGUI or OnGUI. This game doesn't have a complex HUD, so I'm leaning the latter), the Front-End, and the main game logic loop.