April 26, 2011

The Decision

I'm still not sure what my final expectations are, but for starters I'm going to use Java and work on an applet. Probably start off with the basic graphics API for 2D as I don't expect myself to go into 3D right away. I've been in the works on building the game engine and its been a great learning experience so far. I never knew all of the possibilities that open up with enumerations in Java. I think it is a bit amusing that they can implement Runnable but it only makes sense as they essentially are static classes.

The built-in Observer/Observable class/interface makes implementing observer patterns as easy as eating cake. With an MVC system this pretty much does all the 'hard work'. The factory method is fairly nice but I got a feeling I might consider using an abstract factory pattern just to make the factory less bloated when I go into it (Once I figured out the inner workings on the system). I keep seeing "Design Patterns: Elements of Reusable Object-Oriented Software" Which is looking to me like a book that is probably something I might want to consider looking through. Except for the fact that Wikipedia seems to have a good chunk of the information readily available which is always convenient.


April 19, 2011

The Choices

I've been thinking about which language to develop on and possibly which graphics API to use. The following combinations have come to mind:

  • C/C++ with DirectX
  • C/C++ with OpenGL
  • Java with OpenGL
  • C# with OpenGL
  • C# with XNA

Now its certainly a tough choice to be making at the moment. I do have an MVC system for C# w/ XNA and a Java one that uses MVC but currently only with Graphics2D. If I wanted to do one in C/C++ I would have to start from scratch which at this point doesn't look very promising. I guess the better question is what are my target platforms?

  • C/C++ with DirectX <-- this one is just asking for Windows
  • C/C++ with OpenGL <-- mostly Windows, but there is the option for X-platform here
  • Java with OpenGL <-- this one just spells out X-platform (tempting)
  • C# with OpenGL <-- this one I'm 'iffy' with, basically the same as XNA but more work
  • C# with XNA <-- Xbox, Windows, Win7 Phone
I think for a 2D game DirectX in C/C++ would be overkill and a bit of a headache, but I have a tiny bit of experience here. OpenGL would be a good starting place but I think this can be saved for when I want to go 3D (I can just here the sound 'Ooooo' in the background). XNA is very straight forward, for 2D is very sufficient even baby's the developer with what it can do and I have the backbone of an MVC system already in place. I will admit I'll need to clean up the system a bit before I can do any serious work with it (Yay, for code revisions!).

April 15, 2011

Programming Language

One of the toughest choices for me nowadays is figuring out which programming language to start a project in. The main options that come to mind are C#, Java or C++. I guess it is only fair to see which one would be the most productive. Java is wonderful in that it supports cross-platform development, easy-to-use and many great free tools. C# on the other hand also supports cross-platform, but for the purposes of the projects projects I have in mind this would be limited to Windows, Xbox or Win7 Phone. Just something to think about.