Not sure what route to go for getting ready to build Tetris.

Started by
16 comments, last by Low Bias 19 years, 6 months ago
Hi everyone, a friend and I next year for our final school project have decided for our year long project, Fall 2005 to Spring 2006, that we're going to code a Tetris clone. We're both working on our BSs in CS and we are thinking that Tetris would be a good project as we have not made a game before. Because the project will be from Fall to Spring we decided on something that would take a little bit longer to code instead of Pong. My friend knows a little Java and I know a little Java as well, (we haven't been introduced to it yet in class, but that is for this Winter and Spring) I have three game programming books on DirectX. (Two by Andre LaMothe and the other one is "Managed DirectX 9 Graphics and Game Programming". So my question is, do you think it would be a good idea to just play it safe and code it in Java, a language that we'd both be familiar with, or should we try and learn DirectX and the Win32 API and make Tetris for our final project using that?
Advertisement
Hmm...I'd recommend that, since you have an entire year to learn something new, you try out something new. I'd be willing to bet that most people on this forum recommend that you use a language that you're already familiar with for your first game, but since this is supposed to demonstrate progress over the course of a full year, you could learn something new.

You said you're familiar with Java, so I'd start looking at C++ if you're going for a new language. If I was doing this and was seriously interested in learning something new, I'd choose to learn DirectX, but if you have to learn a whole new language as well, it might be safer to stick with Win32 API and GDI.

You know, you might just be better off sticking with Java, because this would force you both to learn very fast, and still have a more-or-less [visually] unimpressive final project to show for it. At least if you stick with Java you'll know what you should refine and how to make it better.

So, in short, I don't know what I'm talking about 72.10% of the time, and you should do whatever you feel you can do.
Things change.
While a Tetris clone may take longer to code than a Pong clone, it still doesn't take very long, so it might be worth your while committing your time to learning some new things as part of the project.

C++ is very similar to Java in many ways, so I wouldn't expect learning the basic concepts of that to be too challenging for you (and the basics would be all you absolutely need for a simple Tetris clone). If you're interested in getting into game development, C++ would be useful to know anyway.

If you're concerned that learning Direct X as well as a new language within the time limit might be too taxing, you could try a simple 2D API like Allegro (or, as Boku San said, the GDI).
Well, I do know C++, I just kind of know Java. But I know that they're both pretty similar so picking up Java shouldn't be hard, plus I have a book on it. I'm just not sure what I'm going to do, I'm going to talk to the teacher about it before I take the class next year, and I have thought that it might be tough to learn DirectX and make Tetris in a year, but I don't know if it's feasible or not. What do you guys think?
Gourgy, (good name by the way :) ) I'll be learning Java this year for Data To Information, but during S.O.S (Student Originated Software) next year I beleive from what my friend told me, that the class won't teach us any new languages, but we'll have a whole year to build whatever we want.
Quote:Original post by CoderGuy
Hi everyone, a friend and I next year for our final school project have decided for our year long project, Fall 2005 to Spring 2006, that we're going to code a Tetris clone. We're both working on our BSs in CS and we are thinking that Tetris would be a good project as we have not made a game before. Because the project will be from Fall to Spring we decided on something that would take a little bit longer to code instead of Pong.

So my question is, do you think it would be a good idea to just play it safe and code it in Java, a language that we'd both be familiar with, or should we try and learn DirectX and the Win32 API and make Tetris for our final project using that?


If you guys have a year then you can surely learn the Win32 API in a few weeks (at least the basic stuff) and then start learning OpenGL which is much easier than DirectX.

If you are determined to Tetris as the final project go ahead but I you want my advice, do it as your first game project and then do more advanced games.

Gamedev::StartHere
______________________________________________________________________________________________________
[AirBash.com]
Yes, everybody here says try C++. While C++ is a good language, I find D (www.digitalmars.com/d) cleaner and easier to deal with than C++. You can use derelict (www.dsource.org/projects/derelict) to load SDL (www.libsdl.org), SDL_image, and SDL_mixer dynamically and then with those tools you can come up with a good tetris clone. I'm in the process on writing my own tetris clone in D.

Why D over C++?

#1) No macros.
#2) Built in resizeable arrays
#3) compile times are faster, especially on large projects (www.digitalmars.com/d/cppstrings.html), and even runs slightly faster than c++ in this benchmark.
#4) more 'java-like' than c++ with modules and imports. inline asm and builtin versioning.

Why C++ over D?
#1) C++ is a mature language. D has yet to reach 1.0, C++ has been around for years. D.Net is work in progress, D compiler is work in progress, gdc is work in progess, DTL (D STL equiv.) work in progess.


Quote:Original post by FireNet
If you guys have a year then you can surely learn the Win32 API in a few weeks (at least the basic stuff) and then start learning OpenGL which is much easier than DirectX.

If you are determined to Tetris as the final project go ahead but I you want my advice, do it as your first game project and then do more advanced games.

Yeah, if the project starts in Fall 2005 then there's plenty of time to start doing some preliminary work. Start learning the API of your choice now, and work on a few simple games (including Pong and Tetris).

Then, when the official project rolls around, you can hopefully work on something more impressive.

Quote:Original post by CoderGuy
(good name by the way :) )

Heh. It's a Celtic name, meaning "man dog". [grin]
Isn't DirectX slightly overkill for a Tetris clone? I mean, sure, you want to learn something, but talk about smashing cockroaches with anvils.
To win one hundred victories in one hundred battles is not the acme of skill. To subdue the enemy without fighting is the acme of skill.
you have to learn how to use an anvil at some point, why not before you use it to smash something bigger....
FTA, my 2D futuristic action MMORPG

This topic is closed to new replies.

Advertisement