Cyborg Earthworm » Blog

Anton Swifton
6 months ago
I have finally released the game in Early Access on Steam: Read More →

Anton Swifton
8 months, 1 week ago
I procrastinated writing a blog post for more than one year, so quite a lot happened since last update.

1. Some experiments with design. I will probably make a bunch of separate posts about it.
2. A talk at Handmade Seattle.
3. An unsuccessful attempt to make the art fancy.
4. A successful attempt to make better programmer art.
5. A "coming soon" page on Steam:
6. A bunch of attempts to attract attention with mediocre success.

I will make more posts expanding some of this. Read More →

Anton Swifton
1 year, 11 months ago
I procrastinated for 4 months, and then realized that I can't work on the web version anymore. There are too many big changes that have to happen in the code before I can be productive in making this program do more things. And recently I got a brief but clear explanation of why it's so difficult to make those changes:

So I decided to start working on a PC version. There are two pieces of feedback I got from friends and parents when I released the web version:
1. It's very difficult to understand what's happening. There is too ... Read More →

Anton Swifton
2 years, 5 months ago
I shut down this project more than a year ago, but this idea is still bothering me. After some thought and a couple of tests I decided to use Snake instead of Tetris as the base game. It seems to work relatively well, not worse than Tetris. Here is a little demo-version:

Short story long:

The main reason I shut down the project was that I didn't have the programming skills to finish it in reasonable time. There was also a small legal risk of being ceased and desisted by The Tetris Company, which I didn't want to deal ... Read More →

Anton Swifton
3 years, 5 months 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).

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 button on the screen, ... Read More →

Anton Swifton
3 years, 7 months 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 a game (and exploring ... Read More →

Anton Swifton
3 years, 10 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 commercial, ... Read More →

Anton Swifton
3 years, 10 months 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 →

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

Anton Swifton
4 years ago
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 →

Anton Swifton
4 years, 1 month 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 handling ... Read More →

Anton Swifton
4 years, 2 months 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 →