# Tromi, a tetromino game

Thread in 'Discussion' started by mushroom, 3 Jan 2012.

1. ### mushroom

attached is a zip file based on revision 25

For Windows Users:
A zip file containing the game: http://bazaar.launchpad.net/~mushro...120217000958-d6ugdoc79mayzg3b-1/tromi-win.zip
A not well-tested py2exe distribution. Nothing additional required, supposedly!

requires python and pygame.

python 2.7 can be found here:

pygame can be found here:
be sure to download pygame for python 2.7, and make sure that both python and pygame are either 32- or 64-bit.
mac pygame releases can be found at the bottom of the page.

if you're on linux, the python included with your distribution should work fine. pygame should be installed with your package manager.

I made a game similar to tgm1, but with many differences. namely:

-no line clear delay. ARE begins directly after the last frame of lock delay
-soft drop is gone, replaced with an instant locking drop. keyboard-friendly but zangis are still completely doable
-no restrictions on wallkicks. I pieces will kick one space left or right just like every other piece, and no columns are blocked from kicking
-different level system, different grading system
-irs allows kicks
-no restriction on the first piece
-randomizer is 6-roll as opposed to 4-roll

see README for more specifics. press F for fullscreen

known bugs:

-no joystick support. I might need help with this as I don't have a joystick anymore.
-a bit ugly, but this is at the bottom of my priorities

please let me know what you think, and please report any bugs you find.

**special thanks to Edo for finding important bugs**

#### Attached Files:

• ###### tromi.zip
File size:
122.4 KB
Views:
5
Last edited: 17 Feb 2012
2. ### Wojtek

Re: sooo I made a game

i have python 2.6 and installed pygame-1.9.1.win32-py2.6.msi and it dosn't work:
Code:
D:\gry\tromi-dist>python tromi.py
Traceback (most recent call last):
File "tromi.py", line 18, in <module>
import pygame, random, sys
File "c:\Python26\lib\site-packages\pygame\__init__.py", line 95, in <module>
from pygame.base import *
ImportError: DLL load failed: %1 is not a valid Win32 application.
os: win7 64bit
any help?

can you make version for windows with http://www.py2exe.org/ and libs included?

3. ### mushroom

Re: sooo I made a game

I'm working on an executable, I'm getting weird errors when I try to run it though

4. ### Wojtek

Re: sooo I made a game

ahh, it's not, after i installed 64bit pygame it runs fine.

5. ### mushroom

Re: sooo I made a game

cool. lemme know what you think

6. ### Wojtek

Re: sooo I made a game

works fine, adding some graphics and sounds would not hurt. i like replacement of softdrop with harddrop, stupid drops is what annoys me most in tgm.

7. ### mushroom

Re: sooo I made a game

8. ### mushroom

Re: sooo I made a game

so I'm wanting to put in some sounds for the following events:

-a piece touches the floor
-a piece locks into place
-lines disappeared

they need to be short and they need to sound like they have some relation to each other.

I'm gonna look for some royalty-free sounds on freesound or perhaps make my own, but if anyone has any suggestions I'd like to hear them

9. ### Kasumi

Re: sooo I made a game

SFXR is a random sound effect generator. For sounds like blocks slamming together (piece touching floor, piece locks), you probably want a short noise channel sound. Get creative with your line clear.

It's especially useful if you actually know what the sliders are because then you can tweak a good one you got on a random roll into great one.

10. ### mushroom

Re: sooo I made a game

thanks, that sounds perfect

unfortunately it crashes silently on my dev box, I'll try it on my win7 laptop sometime tomorrow

11. ### mushroom

Re: sooo I made a game

zip file on the first post is updated. rotation was rewritten to be less dumb and a rudimentary half-width mode was added (B+A at the title screen, it will save over a high score). also the bug where the start text stays on screen until a level is cleared is gone.

I tried adding sound effects but the latency between the event and the sound was quite off. It also may have affected the game's performance but I might just be imagining that.

12. ### Muf

Re: sooo I made a game

Ignorant question: does it have to use bag instead of history?

13. ### mushroom

Re: sooo I made a game

I could easily implement history... I kinda prefer bag though. Why history instead? Is bag too predictable?

14. ### mushroom

Re: sooo I made a game

updated again. line detection is a lot more efficient now

also I thought about it for a while and implemented 6-roll history

15. ### mushroom

Re: sooo I made a game

lol, after I wrote something in to make the bottom rows always filled I figured out this game is way too harsh, so I'm definitely going to need to mess with the grading...

16. ### Muf

Re: sooo I made a game

The scoring system is weird, but I absolutely love the way the game feels. Nice work! Got S4 @ 8:24 after a bunch of tries. It says level 9, but the game just stopped without me topping out. Is that normal?

17. ### mushroom

Re: sooo I made a game

yeah, it's really no-frills right now, so no credit roll or anything.

18. ### Edoa.k.a. FSY

Re: sooo I made a game

Despite its simplicity, I think the grading is actually very well balanced and not too harsh at all; my only complaint is with the 2 second rule, which really shouldn't exist in any tetris game, ever.

19. ### mushroom

Re: sooo I made a game

I admit it probably doesn't work as well on a level system based solely on line clears. my first instinct is to make it a three- or four-second rule, or to use fixed level time checkpoints. I'm not quite sure yet.

20. ### mushroom

Re: sooo I made a game

updated zip file with new system for the level time bonus. I decided to use fixed time limits:

level 0 - :45
level 1 - :42
level 2 - :40
level 3 - :40
level 4 - :38
level 5-9 - :37

also instead of the grade deduction time limit on each level simply being 1:00 it's now 15 seconds past the level bonus time limit (i.e. levels 5-9's time limit will be 52 seconds)