Author Topic: SCI Tetris  (Read 52 times)

0 Members and 1 Guest are viewing this topic.

Online cosmicr

SCI Tetris
« on: September 19, 2020, 10:34:59 PM »
I've been slowly learning SCI programming, working on my game. As always my game is huge in scope and I needed a diversion.

I wanted to try to familiarise myself with a few lesser used functions of SCI and learn a bit more in the process, on a smaller game.

So today I present: SCI Tetris!

No don't check your calendar, this isn't an April Fools joke...
It's all coded in one room. I've included the source for anyone who wants to take a look (warning it's quite messy). Anyone new to SCI programming might learn a few things.

How it works and my methodology:
  • I keep an array of the board in a 20x10 array. SCI doesn't support 2d arrays, so it's basically a 200 element array.
    The blocks are programatically generated from one View (with 6 loops) and move down the board. A popular implementation of a Tetris game.
    When the blocks hit the bottom they become part of the board and I used the AddToPic function. One of the issues I had to overcome was the addToPic library function doesn't work the way I wanted it to so I used the Kernel function instead.
  • Once I had the main game working, I added boundary and lines cleared detection. I used the template gScore and gMaxScore for the scoring. I also used the death handler but modified it to display a random Russian "Superstition" just for fun (and to abuse the text resource feature). I copied all the quotes from Wikipedia into a text file, then using a hex editor I replaced all the CRLF's with 0's and imported the text patch into my game.
  • The game gets progressively faster as you level up. Rosella is there to give you a sense of urgency.
  • I had a bit of trouble with keys. I'm not sure if SCI0 allows a key-held event. So for that reason you can't hold a key down you have to "tap" the key controls.  I didn't spend a lot of time on controls so it might be possible to improve.
  • High scoring is saved to a local file in the game folder so that next time you play it's still there.  The big font is just a "Russian" style Cyrillic-looking font that I found online.
  • Save and restore sort of don't work, but it wouldn't take much to make it work. But why you'd want that is beyond me hahaha.
  • There's also some midi music in there too.
  • I should also add I used Kawa's version of SCI Companion, but I don't think it makes any difference.
  • If anyone's wondering this is the result of about 12 hours coding/design/learning (about 2 days).

So anyway I've attached the game files to this post, take a look, let me know what you think, and any questions you might have!

Now back to my main game...
« Last Edit: September 19, 2020, 10:43:02 PM by cosmicr »

Offline Kawa

Re: SCI Tetris
« Reply #1 on: Yesterday at 06:36:01 AM »
Well, that's awesome, you're awesome.

Offline Doan Sephim

Re: SCI Tetris
« Reply #2 on: Yesterday at 09:19:58 AM »
Very cool! I look forward to giving this a go!

Offline OmerMor

Re: SCI Tetris
« Reply #3 on: Yesterday at 02:20:57 PM »

SMF 2.0.14 | SMF © 2017, Simple Machines
Simple Audio Video Embedder

Page created in 0.11 seconds with 25 queries.