Sign in to follow this  

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

This topic is 4811 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

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?

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites
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).

Share this post


Link to post
Share on other sites
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?

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites
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

Share this post


Link to post
Share on other sites
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.


Share this post


Link to post
Share on other sites
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]

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
You could always try to put a spin on tetris, Most spins have been done before, but you could try something like wrapping the tetris board around a cyclinder or something like that. Just some ideas... A direct tetris clone will be a piece of cake otherwise.

Share this post


Link to post
Share on other sites
Hey CoderGuy, there's a Tetris tutorial at the top of this forum and I've got a Tetris tutorial at my sight (click my siggie). Why don't you have a look at them and see if you understand them? They're both in c++ so you should understand what's going on. Java and c++ are very similiar.

Since you haven't used an API before, I'd recommend SDL or Allegro over DirectX. I found that when I learned DirectX I spent most of my time copying code from books. It's a mostly 3D API so you need to do a lot more (and it's a lot more complicated) to get it to draw stuff than you would with SDL or Allegro.

Share this post


Link to post
Share on other sites
I would seriously suggest considering something bigger than Tetris for a year-long project. Maybe a sidescroller?

Tetris is good for very basic games. But it lacks things that other, more impressive projects have. You can make a game with examples of AI, customizable levels, even a storyline, if you choose something bigger, which seems like a real option, if you have a year.

-Gauvir_Mucca

Share this post


Link to post
Share on other sites
Thanks for the tips and advice. Well, the reason I picked DirectX is because I figured that I could use the whole year to learn either DirectX or OpenGL. I'm actually leaning on learning OpenGL right now seeing that some people here have said it's a little easier to learn.

I would love to do a side scroller or something like that, but I just picked Tetris because I don't want to get into a project that I don't know what to do next. I did glance at that Tetris tutorial at the top of the message board, but I will check out your tutorial as well aaroncox1234. I figured Pong would be too simple for a year.

It's mostly up to the teacher next year if she'll let us try learning something new and or if she'd prefer us to do Tetris in a language we already know. I really appreciate all the great advice I've been getting.

Share this post


Link to post
Share on other sites
Quote:
Original post by Avatar God
You know, this really deserves mention.


Yuck

Any it does deserve a mention, either that guy had loose screws or the script screwed it up,either way there was a screw.

Share this post


Link to post
Share on other sites
The thing about Tetris is that you can be sure you'll have *something* to show at the end of the year, it will give you time to learn a new language and API, and if you are finished early, you can jazz it up with sound, joystick control, etc. Sure you can make a Tetris clone in a year, but it can take much longer to make a really nice version complete with menus, different difficulty levels, etc.

Share this post


Link to post
Share on other sites

This topic is 4811 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this