Jump to content
  • Advertisement
Sign in to follow this  
jsbach

Tetris scoring formula

This topic is 4768 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, I'm working on my own version of Tetris, and I arrived to the stage where I have to decide about the scoring formula. Can Anyone sugest one? Apparently, The basic principales should be: the more lines are cleared the more points are rewarded, and the score is multiplied by the level number. However, most Tetris clones award the players points when the shape merely touches the bottom - but I failed to see the logic behind it. Any ideas? Oh... and what do you think should be the number of level in the game? Thanks.

Share this post


Link to post
Share on other sites
Advertisement
Yeah, that's how I made it when I made a tetris clone. 1 line was like 1000 points, 2 was 2000, 3 was 4000, and 4 was 8000, multiplied by the level number. The point of giving points every time a piece touches the bottom was probably to reward the player for surviving longer.

Also, tetris usually has an unlimited number of levels, the pieces just drop a little bit faster each level. And every 10 lines or so cleared it's a new level.

Share this post


Link to post
Share on other sites
Quote:
Original post by jsbach
Oh... and what do you think should be the number of level in the game?
Thanks.


Just stop increasing the levels once the speed truly appears to be insane, where this happens is entirely dependant on your speed increasing system (I think I did around 9 levels in my version).

Share this post


Link to post
Share on other sites
I used 40, 100, 300, 1200 (based on 1, 2, 3, 4-line clear) * number of levels + 1 (my game starts on level 0). I believe those are the same numbers that the gameboy tetris used.

Quote:

However, most Tetris clones award the players points when the shape merely touches the bottom - but I failed to see the logic behind it.


A block will fall under two circumstances:

1) An amount of time has passed.
2) The user presses the down key.

When the block can no longer move down (it has nothing to do with touching the bottom), I award 1 point (a paltry amount) for each "forced down." This serves two purposes:

1) It psychologically increases difficulty, users want to rush when they don't have to.
2) It greatly reduces the likelihood of a tie on the scoreboard.

Many platform games give you n seconds to finish a level for the same reasons (notice most levels of such games give far more time than they need to)

Share this post


Link to post
Share on other sites
For speed I used the formula:

delay = 725 * .85 ^ level + level

Where delay is the time (in milliseconds) before the block falls one row -- That equation reaches its minimum at level 30 (35.5 ms delay) and begins to climb again until delay = level (basicly the game slows down about 6ms per drop by level 41). However, I was modeling a certain behavior, and you might have better performance with a more general equation:

delay = delay_at_level_0 / (level + 1)

Where delay_at_level_0 is a constant

Share this post


Link to post
Share on other sites
Thank you for the good ideas.
I'll try to integrate them into a single scoring concept
that will be both simple and effective.

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
You can also give the drop points (points awarded when players forces the piece to drop) to being some function of how far the piece had to drop. 1 or 2 points per every 1 block unit.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!