Blog

  • Chaste Tris Manifesto

    I have created and am maintaining 3 separate versions of the same Tetris game. They are as follows:

    Original C version with Raylib library
    https://chastitywhiterose.itch.io/chaste-tris

    Lua version with Love2d​ framework
    https://chastitywhiterose.itch.io/lua-tetris

    PICO-8:
    https://chastitywhiterose.itch.io/pico-8-chaste-tris​​

    The difference between the 3 versions is that they are for different people with different preferences and technological needs. The C version focuses on speed of code and adding extra graphics and music to make it an enjoyable experience. The Lua Love2D version is designed to be simple and quick to boot up and play on any platform that Love2D supports, which are many. The PICO-8 version was made to be able to be played on the web on nearly any device imaginable, including touch screens. These 3 clones of the same game make my game stand out among other Tetris games. Sure there are plenty of others but they are usually done as a small project and then abandoned by the creator and don’t have the features that make Tetris enjoyable, such as the confusing controls and/or the ability to only rotate in one direction.

    The official Tetris games published by major game companies are no doubt better than mine, but they have multiple programmers, artists, musicians, and often disappear from the market without warning. I have bought all the modern Tetris games available on Steam including Tetris Effect, and Puyo Puyo Tetris 1 and 2. I love them a lot but that doesn’t mean I trust the Tetris company when it comes to business practices, especially considering the complicated history of Tetris. I like my game because I can improve it as needed and for the first time in my life, I am actually a game programmer.

    History of Chaste Tris

    I want to explain what led to the concept for the first game and also why I made other versions, what the differences are, and why my game is unique among Tetris clones.

    Being a fan of Tetris for almost my entire life, I became very sad when certain Tetris games previously available became unavailable either due to lawsuits and/or license changes.

    The first delisting of Gameboy Tetris from the 3DS eshop a year before a friend bought me a 3DS was the first.

    Second was the delisting of Tetris Ultimate, which was available on 3DS,Switch,Steam, and other platforms before it was also delisted. I have heard it wasn’t a very good Tetris game but I don’t like to see games disappear. Video game censorship is similar to book banning in my opinion with a few powerful elites deciding not only what information we access but even what recreational activities we are allowed.

    A third delisting was Tetris Friends which disappeared due to the fact that Adobe Flash was removed from everyone’s web browser which also made all other flash games including Robot Unicorn Attack(that is a post for another day) impossible to play without people finding ways to keep alive old flash software and emulators to play their favorite flash games. It can be done but only for the people tech savvy enough to do figure it out had access to games that used to be available for everyone.

    Because of these events and my love for Tetris above ALL other video games, I had the idea of creating my own. I knew I was not the first person to make a Tetris game but I wanted one that I could guarantee that I could keep forever because it would be me in control as the single programmer.

    But at the time I knew so little about making games and I had never succeeded at making ANY video games. But what happened in 2021 changed my life forever. You see I had a roommate at the time who was also a lover of Tetris and still had a Game Boy. We laughed as we played Tetris on the gameboy and yet I noticed that River, my roomate’s transgender chosen name, could not play at higher speeds like I could and I thought about making a Tetris game that did not pressure people to make moves in a hurry.

    But since I was not confident in my ability to make games, I decided to try first making a small version of Tetris that only included the I blocks which River called the “Long Boi”. By focusing on that one block and creating the right arrays in C I found that it was not hard to represent the blocks or the grid. I chose Raylib as the library for graphics and input because it is the easiest to use for game programming that I have found. All the hard work was writing my own functions to move, rotate, and check the collisions of the blocks. This took at least 6 months before I got it down just right and I had to fix a lot of bugs as my code grew bigger.

    But after I got it working, I decided to also add the other Tetris blocks because my movement and rotation code would work just as well for them. Everything worked so well that I even published the game on Steam to bring it to a wider audience.

    https://store.steampowered.com/app/1986120/Chaste_Tris/

    My game has gone mostly unnoticed in spite of months of promotion and updates. The same goes for the many books I have published.

    But regardless of what happens, I am very happy with the work I have done and I find myself often playing my own game more than official Tetris games because it is relaxing and yet allows me to challenge myself to improve at Tetris as a whole.

    And finally, I would like to say that the reason Tetris means to much to me is because it lets me forget my personal struggles and for a moment all the problems I have had disappear and I feel good about myself because I am a person with a mind who is capable of solving at least one problem: The problem of where to fit that next block!

  • Pico-8

    I rewrote my checkerboard demo for the Pico-8 Fantasy Console. This program is amazing. It is probably the closest thing to QBasic which I used to use. However it uses a slightly modified form of Lua that also has graphics commands. In a way it is a lot like using Love2D but I am still quite new to using Pico-8. One of the most notable features is that it has built in ability to record video to a gif file.

    Pico-8 is almost like a mini DOS or Linux distribution except that all the programs are written in Lua. It comes with a full manual explaining the features which is available as a text file and also a page on the official website here:

    https://www.lexaloffle.com/dl/docs/pico-8_manual.html

    I do think that Pico-8 would be a great tool to teach people computer programming for the first time. It would allow learning Lua but also allowing a new person to start with graphics programming.

  • Valentine’s Day (by Judena Klebs)

    I have a theory about Valentine’s Day. No one really knows what to do with that day because hardly any one has a spouse or a date that they’re not mad at most of the time but they know that if they don’t pretend to love them at Valentine’s Day that person will be even more mad and stuff candy hearts down their throat until they choke. They also feel the pressure to spend hundreds of dollars on fresh flowers so that they will not be smashed over the head with the large vase that was positioned in plain view as a hint. There are naked babies with bow and arrows decorating every building. Anything you order from a restaurant is heart-shaped. If you are single, people look at you at parties as though you poked your head out of a casket at your own funeral. You see lips kissing and then realize it is just a decoration on a glass window or door. Where is the rest of the person? One must try not to think about what this holiday must have been about when the first mushy person tried to celebrate it. Why did it become traditional to give chocolate candies to the woman you just fought with because you insulted her about being overweight? Who started the tradition of checking couple’s memories about what kind of sausage they had for breakfast the morning before they first met? I don’t know about you, but Valentine’s Day strikes me as a very mysterious holiday. The only one that seems more useless is Groundhog Day!

  • Chaste Font

    My font library now works completely and is a separate github repository.

    https://github.com/chastitywhiterose/Chaste-Font

    My latest update includes a function which can draw scaled fonts which allows for the blocky retro font characters no matter how big they are.

    I have used this font library in my games Chaste Tris and Chaste Puyo but I finally separated the code from those games into a small demo that shows that I can draw my fonts at any size now.

    I could also add more fonts if I find particularly good ones but for now the one with the characters typically seen in DOS,QBASIC,and certain modes of FreeBASIC is one of my favorites.

    The font is nothing more than an image file containing all the characters. I wrote my own functions for using it because I want to port it to other libraries such as SDL if I ever am using them for a project. But currently it is implemented using Raylib which is good enough for almost anything.

    Below is a screenshot of my demo showing different sizes of text. The first 5 are fonts directly drawn from the different sizes of the same font which are loaded from different files. They are the originals which were all made in GIMP. The lower ones are scaled versions of the smallest font which scale perfectly.

    Because I have the ability to scale fonts with Raylib, I probably don’t need to have multiple size images of the same font, but for historical and possible performance benefits, I am always going to keep the images and the code that loads them in my games because they work and there is no reason to change what works just because something new comes along.

    And my games are about appreciation for the older technology anyway. Not all programming libraries support drawing scaled images anyway and there is most likely a performance penalty even if it is hard to notice on the fast machines of today.

  • The Pride of the Tetris playing Floral Clerk

    I just want to say that currently I am feeling good. I’m very happy with what I am capable of in the Floral Department and with my computer programming. I have a lot of talent and can often work around my limitations with my strengths.

    I don’t know what my future holds and I honestly don’t even expect to live long because my chances of being able to get full time employment are slim to none unless something majorly changes. But I do have a ton of ideas that may improve my situation.

    I want to get trained to the point where I can be a Floral Designer. This might help me at Hy-Vee greatly.

    But at the same time I also have insane computer skills. I am now making my own video games for fun and I’ve self published so many books on Amazon and Smashwords for myself and my mom. I could definitely keep working on these technology things I’m good at whenever I have the time. Maybe even go to some tech school for training in some specific task computer related for some kind of job that I would excel at.

    But it’s actually far more likely that I could run a business of helping others who are computer illiterate publish their own books.

    And with my experience in game programming with the C programming language I might even get some money from people who enjoy my games and want to support my work. I have already made two games which are clones of Tetris and Puyo Puyo. Plus there was the game BBM box adventures that I never finished.
    I could probably teach other people some basic programming who want to get started since I have 21 years of experience with programming and finally broke the glass ceiling when I discovered Raylib lets me compile games for Linux and Windows flawlessly on my computer with a dual boot system.

    And a final note must be made that all of my greatest achievements happened in my 30s. It took a long time to heal from tons of trauma that made me depressed and suicidal. But now I’m just too talented, beautiful, and funny to die now. Now I want to live.