[TGM] Practice Tool/Pentominoes/Clone

Thread in 'Research & Development' started by FeV, 16 Apr 2017.

  1. FeV


    Introducing unnamed TGM clone! Yay!

    So I decided to make a pentomino game with TGM's engine because my favorite clone Fierceblock wasn't ready to play yet. One thing led to another and now it aims to be an all-around TGM clone. The engine will eventually be (already is?) more accurate than Texmaster, and the code is cross-platform and MIT-licensed.

    Currently the only TGM modes I've implemented are death and shirase, but it's somewhat trivial to put in new modes. I plan to have a lot, including ALL of the TGM modes (well, except maybe Easy mode ;) ). The randomizer for TAP is almost 100% accurate, only the initial seeding is wrong (I seed it with time(0) on the first game in a session). The TGM1 and TGM3 randomizers are both set to use TAP's until I get the code for them.

    Keyboard input handling works the same as MAME (mostly!), so it should be better than Texmaster for keyboard play (in Texmaster you can't press down if you're holding left or right). Joy2Key is required for joystick play at the moment (sorry if this causes problems!).

    DISCLAIMER: I work on this for fun, I'm no professional when it comes to programming. Since it's written in C, the code is not guaranteed to be safe.

    Also: Texmaster is great, and I still recommend it. I compare my clone to Texmaster a lot because I use it as a baseline for quality. The only way is forward!

    Installation for Windows:
    Extract the files; in game.cfg, set key bindings and set the HOME_PATH option to the full path to the directory where you extracted the ZIP archive. Run the game from the same directory as game.cfg or specify the cfg filename as an argument.

    Installation for Unix-based systems (Linux/Mac OSX/BSD):
    You'll have to build it from source. Dependencies are sdl2, sdl2_image, and sdl2_mixer (all 32-bit versions). Once you have these just run `make' in the src directory and configure the bindings and HOME_PATH (see above).


    ESC returns to the main menu, or moves control back to the menu in the practice tool
    Left/right with a mode selected changes the starting level
    D button in pentomino modes: 180 degree IRS

    Initial field editor:
    Shift+click and drag selects a rectangle
    1-7 enter a cell corresponding to the piece colors (ITJLOSZ) or fills the selection
    0 or left click enters a grey (garbage) cell
    9 enters a bracket block
    Shift+(0-7,9) fills non-air blocks in the selection
    Right click deletes a cell
    Delete/Backspace deletes the selection
    CTRL+A selects all
    CTRL+Z is undo
    CTRL+Y is redo​

    Piece sequencer:
    Enter/Return toggles text editing
    CTRL+A selects all
    CTRL+C and CTRL+X for copy and cut are unfortunately not implemented yet
    CTRL+V pastes
    Notes on the piece sequencer:
    • Lowercase letters are ignored. Illegal symbols are ignored (and likely will not show up properly).
    • Putting a "4" suffix onto a piece name will give you the tetromino with that name. If you are in QRS mode, for example, "T" will register as a T pentomino, but "T4" will be the standard T tetromino.
    • Groups can be defined with parentheses. "(JIOL)" will group J, I, O and L together. This is useless [except for readability... you can use spaces anyway though] unless you specify a repitition count. You do this by adding an asterisk "*", followed by a number (or "INF" for infinite repetition) to the end of the group. For example, "(JIOL)*8" to repeat the group JIOL eight times, "(J)*INF" (or "J*INF") to repeat only J pieces forever. Incomplete group syntax will do nothing, and groups can be mixed with regular sequences. [Side note, I don't expect this to be useful for much other than infinite repetition, but play around with it :) ]


    Version beta1: http://digitalno.de/public/tetris/felicitys_clone/release-beta1.zip
    If you're curious what I'm working on: I will probably be leaving random updates about my plans/progress on Twitter.

    Known bugs
    • Volume settings are not saved if you change them from in-game. (I also recommend you use this only to balance sound effects and music volumes, because at low values, rounding will come into play)
    • Left/right handling on keyboard causes unexpected lack of DAS [Probably fixed]
    • Crashes after a few seconds of play for some Windows users for unknown reasons
    • Using hold for the first time on the last piece in a sequence in the practice tool crashes the game [FIXED IN NEXT RELEASE]
    • Floorkick autolock mechanics are slightly more permissive than intended [FIXED IN NEXT RELEASE]
    • Returning to the main menu during a background transition doesn't reset the brightness, resulting in a sometimes very dark image [FIXED IN NEXT RELEASE]
    • HOME_PATH setting requires a full system path and does not accept trailing slashes (e.g. /home/fe/game works, /home/fe/game/ or game does not work)
    • In the practice tool, mouse-related editing functions don't work with a video scale that isn't 1 [FIXED IN NEXT RELEASE]
    • In G2 Death, if you reach level 999 by exactly the right number of levels (e.g. clearing a tetris at 995, 995+4 = 999), a replay is not recorded. [FIXED IN NEXT RELEASE]
    • Replays influence the seed of the next death/g3 terror game that you play, allowing repeated plays of the same seed [FIXED IN NEXT RELEASE]
    • In Death mode, passing level 500 gives you the grade MK instead of M [FIXED IN NEXT RELEASE]
    • Grades above MK render as "--" (same as no grade) [FIXED IN NEXT RELEASE]
    • In G3 Terror, reaching level 1300 gives you the grade "S13 m1" and lets you continue (mihara?!) [FIXED IN NEXT RELEASE]
    • In G3 Terror and pentominoes, the T4 can floorkick two cells upward [FIXED IN NEXT RELEASE]
    • In G3 Terror and pentominoes, the T4 floorkicks on the wrong orientations [FIXED IN NEXT RELEASE]
    • Garbage (grey) cells are not drawn with an outline [FIXED IN NEXT RELEASE]
    Let me know if you find more!

    Just posting this so I get a version out before feature creep laziness anything delays it any more. Also will mention, there's no music for the TGM modes right now, but you can supply your own in the audio/g2 and audio/g3 directories. Just make sure they're either .ogg or .wav and rename them to track0, track1, etc.
    If you want a different sound pack (*cough*), feel free to PM me on the QuakeNet IRC and I'll send you one. I usually use the nick "Felicity" on there. :)
    Last edited: 20 Jul 2017
    deeden, Tomek, TWF and 9 others like this.
  2. Any updates?
  3. FeV


    Good question. I am still (sort of) working on this, but the last few months have been a little unusual for me for various IRL reasons. There's talk of getting at least one more person on board and moving the code to GitHub once SGDQ is over, so by then hopefully we can clean up the code and get a minor release out. Still no promises, but I would say it's likely there will be an update by the end of July early August. :) Happy to see some interest.
    Last edited: 1 Aug 2017
    deeden and Qlex like this.
  4. FeV


    Minor update on my progress :)

    I'm done putting new features in for the beta2 update. Should be moving to git very soon, but as usual, I'm late compared to the ETA I gave for this update being released... the main problem I have is that I don't have experience building software on Windows, so I have to figure that out before I can release a Windows binary. (I have Windows 7 64-bit, but if other people could supply binaries that would probably be helpful!)

    I'm trying to fight the urge to delay my version releases, I really am, but this is my first time trying to develop with a schedule in mind, so bear with me. Some cool features should be on the way once this update is done...

    EDIT: Oh, and it's going to be called Shiromino. (Final answer, Alex.)
    d4nin3u and FreakyByte like this.

Share This Page