There are many clones of 2048 but this one is mine

A year ago, I made 2048 in the console. I did it in less than 500 lines of code and I had made it with the game board drawing separate from the rest of the game with the intention of swapping out the display to a graphical one. A year later and that paid off because it was fairly simple to just drop in the game logic to my SharpDX template.

I did unfortunately separate out the generating of new pieces into its own class. This caused the code flow in an awkward way when the game resets, but it works. The code I wrote is about 2500 lines. Most of that is in the menu system that I started in my Matrix Falling Code project. I extended the functionality of the system to include text input and toggle controls.

I also created a way for menus to hand off to other menus. It was good practice in polymorphism. This was required to have sub menus and do things like get the played to enter their name to be saved in the high scores list. The project was a good example in the difference between a project that just does the bare minimum and one that is fully featured. I streamed about 16 hours of me working this on twitch and I probably spent another 4 off stream working on the project. I’m pleased with the result for 20 hours of effort.

I’ve published the code on my Github.

Here are a few of the menus in the game.

Timed To-Do List

Sometimes having a list of things isn’t enough planning. You need to assign a time to each task on your list too. Hey, why not have a program that can keep track of how much time you actually spent on those tasks so you can get an idea of how good your time estimates are. Well that’s what Timed Task List is for.

The program has many of the features you would expect. Save, load, add tasks, edit tasks, change the text size and font. There is a right-click context menu that allows you to delete tasks and reset the accrued time for the task.

I made the program in NET Core 3.1. The code is available on my GitHub.

I streamed a lot of the creation of this program on twitch.tv/crookedfingerguy. I made it to aid in streaming what my streams objectives for the day are and to track how well I stuck to the plan. This was also good programming practice. I haven’t made a windows forms desktop application for a while. I am pleased with the effort.

The Matrix Themed Motion Graphic

Trying to start programming regularly again so I started out simple by streaming the creation of a motion graphic using C# on twitch.tv. I have a few clone games in the works just copies of the old standbys like Tetris and Breakout. I created a template using the SharpDX wrapper for the DirectX API. It doesn’t do anything fancy like error checking or anything. The program crashes if you don’t have a DirectX compatible controller plugged in for example. What it does do is provide a simple non-flickering canvas in Windows. That’s it no game engine really at all.

Look I used a folder to organize my cs files!

I used this Matrix Falling Rain program to create a 2D motion graphic. I also over the course of about 10 hours streaming created a simple menu system for changing programs settings with a controller. I created the menu system that I hope to use in those simple game clones for things like the start menu and basic game settings. In this motion graphic program I used it to dynamically change the appearance of the motion graphic. You can change the number of falling symbol lines and their size. You can change the color, speed, and number of symbols in each falling line of symbols. I even added the ability to save settings or reset the settings to default.

I uploaded the code to my Github. You may have to fiddle with the NuGet packet manager to get all the references straightened out to compile it.

This is mostly some base programming to get used to streaming. Hopefully I will be getting a few more simple game clone programs finished and ready for people to take a look at soon.