At the end of last
semester, Pete and I talked about starting a project and he pitched his idea to me about a
multiplayer game that pits two players against each other in two different games, notably
Tetris and Breakout. When we finished the year off, I did a bit of coding in C++ and
OpenGL to have a look at how we would go developing this idea, it seemed
achievable at the time because I had just finished learning
OpenGL and C++ during uni so it was still very fresh in my mind.
Presently we've just started back at university, and its been a long four months. I really haven't had any time to keep coding since I've been busy working, but I think with a few weeks of coding I'll get back into the swing of things, I had the same problem at the beginning of last year and it only took me a week or so to get back to were I left off.
I've been working on and writing down notes on some things we can put in our project proposal, but I also took some notes down while Pete and I were at our studio's tutorial. Below are the notes I took down during the
tute and the notes I came up with for the proposal and the project, the way I write down my notes should reflect my thought process and how I identify and solve problems.
What language should we use? C++ vs Java - Pros + Cons?
C++ is a very common language, it is very powerful and is favoured by industry when developing. On the other hand Java is a new and also very powerful language, it has a lot of libraries and classes that are easily accessed. I'm not going to go into
in depth detail about the real pros and cons of both of these languages.
Do we want the game to be
multi platform? Windows, Linux and
OSX.
In my opinion, yes!@! Their is a shortage of good games available on non-standard operating systems like
linux and
osx. Obviously this isn't a major issue and is actually probably quite trivial, but none the less I think its important that we think of these type of things.
We will need to implement modules like a
Particle Engine and Collision Detection, which can both be fairly complex, especially when dealing with 3D graphics (
OpenGL/
DirectX).
A GUI (Graphical User Interface) will be required to operate the game(s), what will this look like? How will it be implemented, using
OpenGL or Swing controls?
I can't really explain how the GUI might look at this stage, its still early days, but I should try and get a concept idea drawn up for this project plan, just for show. About implementing it, well initially we WILL be using Swing controls because its a quick and easy way of debugging the game and testing it to see if things work.
On the topic of testing, we might actually need to get a few friends or associates to help test the game(s) for bugs, I
don't think between the both of us we will have enough time to
accurately debug all of them before the end of the s
emester.
The networking side of things, do we develop just a client? Do we develop a client and server, using application tier architecture?
We'll the networking part of the project should be the most interesting, this is the sole purpose of creating this project in the first place, so players can compete against each other. Well, making a client that can serve as the host of the game should work most effectively, I've seen many older games like this before and they have been successful. What would be the need of having a server? A centralised server could be used for advertising open games so players are not just limited to playing with their friends, and also possibly a scoring system or ladder for recording players high scores or ranking. This area has a lot of room from discussion and a bunch of ideas, but I think we need to stay conservative and try to bite off more than we can chew.
OpenGL or
DirectX?
To start with, I have zero experience in
DirectX, but i do have some in
OpenGL, I was fortunate enough to have James
Sofra teach me 3D programming last
semester, which I enjoyed
thoroughly, and feel confident that we can tackle this project head on in this department. Though I
don't have a LOT of experience in
OpenGL and this will still be a major learning curve developing something of this scale and magnitude.
Which
IDE do we develop in?
Netbeans? Eclipse? VS.NET?
I think any one of the
IDE's above are capable and usable, Pete and I both have experience in all of them. I think the main reason for asking this question is to find out more specifically what
CVS client do we want to use? Concurrent
Vesioning System (
CVS) was designed for developers to use as a way of keeping track of changes to the system, and allow multiple developers to work on the project simultaneously. If two developers write a patch of code in the same file at the same place, they will be shown the differences between each part, and the opportunity to fix up the code, and merge the two patches together. This sort of system is perfect for our project and will play a major part in the development.