A note on interfaces

Anton Swifton  — 1 week, 4 days ago
Here is an article that advocates for Norton Commander-like keyboard graphical interfaces (and in general, reconsidering how we use computers for everyday tasks).
https://tttthreads.com/thread/927593460642615296

Ignore the fact that this is a long article about what tools are better suited for particular tasks, written as a sequence of tweets.

I agree that keyboard interfaces are faster to use once you get used to them than interfaces based on screen buttons. Also, Screen buttons, if you think about it, sound a little unnatural: you have a bunch of physical buttons already, why would you draw a fake physical ...
Read More →


Shutting down

Anton Swifton  — 2 months, 3 weeks ago
I'm going to stop working on this project for an unclear amount of time. The main reason is that the project is too large given that I'm trying to get a PhD and do a bunch of other things at the same time. Another reason is that there are legal issues that I don't want to deal with.

If anyone was planning to play when the game is finished, I apologize. However, there will be similar games, because I'm interested in the idea of giving the player an intuitive graphical interface for making a bot playing ...
Read More →


Legal issues

Anton Swifton  — 5 months ago
After making a pretty good progress in May, I thought that I should get more serious about this project. This would involve:

1. Sorting out legal issues. The Tetris Company has been suing people for copyright infringement very actively, and I have to find out a way to avoid a lawsuit.
2. Putting the prototype online and posting a note to a couple of appropriate subreddits and maybe Hacker News to find out whether people find this game interesting (I still don't know whether they will, frankly).
3. Thinking about doing some PR and eventually making the PC version ...
Read More →


24x Speedup

Anton Swifton  — 5 months, 3 weeks ago
Here is how I measure the speed of my program: I run the game for 1 000 000 randomly picked tetrominoes and measure how much time it takes. In the js prototype it takes 40 seconds.

Here is what I have done in May.

1. Implemented the matching algorithm in C. Running time was 44 seconds, slightly worse than the js version. Compiling with /O2 gave a 2x speedup, bringing it down to around 23 seconds.

2. Made it possible to test a program by loading a pre-generated sequence of tetrominoes and turning on deterministic mode (it was randomized in ...
Read More →


No progress in April

Anton Swifton  — 6 months, 3 weeks ago
The semester is over, though, so May should be more fertile.
Read More →


When you test your pattern-based program, Tile Machine simulates the Game of Falling Tetrominoes and uses your program to decide where exactly each tetromino will fall. This process consists of the following steps.

1. Pick a tetromino randomly.
2. Consider the patterns that handle this tetromino. Each pattern in the game can handle only one tetromino (*1). I use the word "column" to denote the set of patterns that handle the same tetromino (*2).
3. Patterns in any column are ordered. Take the first pattern.
4. Run the matching algorithm.
5. If the pattern matches a region of the playing ...
Read More →


Challenges

Anton Swifton  — 9 months ago
Before exploring possibilities for speeding up the computations in Tile Machine, I decided to add one more feature to the prototype: small challenges that allow the player to make incremental progress in the game. Trying to beat the whole game at once is difficult, I spent many hours trying to do that and only got to the average game length of 150 rows. Another reason why challenges are useful is that making patterns for all tetrominoes is a lot of work. It's much more enjoyable to make a program just for one tetromino, optimize it and extend it to ...
Read More →


The general plan

Anton Swifton  — 9 months, 4 weeks ago
I am planning to build a higher quality desktop version with a better UI and more advanced testing features. The idea is to use C and Windows API for UI. Another alternative is to keep doing it in javascript and just improve the current version. The current plan is to go with C, because I think that it will be easier to optimize the matching code (which is currently the only bottleneck) in C than in js. Also, I think that a Windows UI will be better than a browser UI. Also, I think that handling saves will be easier ...
Read More →