Ages ago I had the idea of doing a Bubble Bobble clone to test out a graphics library I was writing at the time. Bubble Bobble was chosen because it's quite a simple game in terms of mechanics but still really good fun to play. And this week I suddenly decided to use it as an excuse to try out XNA and see if I can get a clone running on my 360 so four of us can play at the same time (instead of swapping every credit as we currently do).
Some random XNA thoughts:
- I really like how easy it was to get a basic app setup and deployed on the 360. A good project template and good VS intergration is really cool.
- I really dislike how limited the SpriteBatch class is, and even more so how much boilerplate code is required to do anything similar yourself. Changing the origin position should not require ~300 lines of code.
- The content pipeline and content loading looks really slick. I have concerns as to how well it's going to scale, but for now it's working really well.
- I was surprised to find out that my expensive Bravia tv is actually cropping the output from the 360, despite being connected via a digital (HDMI) connection. Apparently this is standard for all LCD HD tvs, but it baffles me as to why. So that big black border you see in the screenshot (from the windows version) isn't visible at all when played on the 360. Weirdly, if I connect my tablet to the tv via a VGA cable, it doesn't crop anything. I may have to write an entire rant on HD tvs and their odd behaviour, but thats for another time I think.
- It's been ages since I did a tile-based platformer (instead of a vector-based platformer approach I've been using for years now). I'd forgotten how many awkward hacks and edge cases you have to deal with to navigate through a tile based world. But it wouldn't be Bubble Bobble if it wasn't tile based so it stays that way. [grin]
- The XNA APIs are very easy to use, even if I do cringe with the constant LoD violations everywhere. Input in particular is nice and easy to access.