I’m currently struggling with the decision of dropping or not XNA support for PC and just keeping it for WP7 and Xbox360 (if XBLIG ever comes to Portugal).
Well one of the reasons is for porting purposes. Took me too long to port Vizati from C# to C++ and then having to implement an OpenGL render layer. If I had an C++/DirectX engine from the start it would be a question of replacing the rendering stuff to OpenGL. Or maybe just using OpenGL for Windows as-well.
If it was up to me I would use XNA everywhere, I love it and it’s a great framework once you get the hang of it but it’s downside is being restricted to Microsoft platforms. With nowadays platforms and a bunch of market to tackle you can see many indie pc games coming to iPhone too, like Osmos and Eufloria. Many games make sense on mobiles, many don’t.
If there’s one thing I’ve leaned with all this process is that you’ll never know when you need your code to run somewhere else that originally intended and for that C++ is generally the way to go. I got so used to C# Reflection, instanced based objects and lambda expressions that when I got to porting that part I was ready to pull my hair off. Lucky there’s many turn around you can do.
This doesn’t mean C# is worse or better than C++. They are different, and if you want to reuse code check their differences. One word of advice, don’t use foreach, for(;;) is nice and you’ll have many less lines to change.
With Vizati almost wrapped up I want to move on to other projects and leaving Vizati on a support/bug fix state only.
I really don’t know if we will manage to finance another game, It’s a bit dependent on the success on the iPhone/WP7 port.
Apart from financial problems deciding on a new project is always hard, not that we don’t have ideas, but the problem sometimes is having notion on what you can do instead of what you what to do. I like a few genre of games, like RPG, FPS, platform etc. If I like to play them that’s the kind of games I would like to make but this doesn’t I should do it.
Vizati was a cautions step without getting too ambitious, we knew it wasn’t a game to get us “rich and fame” but we wanted to prove ourselves that we could make a game from start to finish in a viable time. The game was well accepted, our work is starting to get respected and that’s also very nice. Things take time, even a puzzle game and embracing something an unrealistic project would probably lead to another prototype on my hard drive.
Either way we already throwing away some ideas and have a general idea of what we want. Rita showed me some concepts yesterday and I’m really excited, I really think it’s something nice and I can’t wait to start working on it.
Well…that’s it for now.
I personally believe XNA is useless for anything except hobby work. The ease of deploying to XBLIG is vastly outweighed by the difficulty of deploying on everything else, and business prospects on XBLIG are pretty poor anyway.
Now, I have a historical bias – from day 1 I said it was a mistake to choose XNA as a base platform because of the future portability issues. This was pre-iOS, but it was precisely this kind of thing I had in mind when forming that opinion.
Of course, you could use Mono if you like C# – Unity does after all – but XNA itself is out.
True, I first chose XNA because the game was for the XBOX.
After that the PC version was launched using the same thing.
I guess I learned it the hard way, but we are always learning =)