Week 11, 2025


Projects

This has been quite an eventful week for project development. As result, this week's blog post will be a bit longer than usual.

StaticSite

On March 16, 2025, I have added a feature to StaticSite that allows to override what template to use. This is done to prepare for the website redesign.

On the same day, I made use of this new feature for the MediaCow Touch 2 project page, adding some aesthetic changes to the page.

MediaCow Touch 2

During this week, I have ditched the use of GOWIN FPGAs for the RGB-MIPI bridge. I have decided to use a Lattice FPGA instead for reasons covered in the MediaCow Touch 2 - Part 14 blog post.

PyRPG

I started some work on PyRPG, which is more or less of a tech demo of making a top-down RPG-like game in Python using the PyGame library.

I plan to make a game using this though I have not decided what to name it. One name I thought of is "Amoxa" as the name does not seem to be used for anything other a shortening of the medication name "Amoxapine" or "Amoxicillin". The name is not derived from the name of medications; in fact I saw it on a label on a car window once. I chose the name due to how similar it is to "Qimonda", reflecting the plan to use futuristic aesthetics of the early to late 2000s. I may continue to have the repository and project name be "PyRPG" for now.

I see the game as a spirtial successor to Portal 2 maps that I have started to make in late 2023. In particular, it is a successor to "The Hall", a map that follows the same style of the original Portal. I stopped working on maps for Source games recently due to the difficulty of setting up the tooling on Linux, let alone Windows. The idea of making my own RPG game is not new; the idea dates back to at least 2017 with successful attempts in the educational programming language Scratch. Unfortunately, I must have deleted the account in either 2019 or 2020 so I would not be able to recover the work. Back then, I decided that I should move on to a written programming language in order to attempt to make a game with multiple, larger maps and more interactivity. Since then, I did not really have a good idea on what the game would be about other than a clone of Undertale.

Story

The story of the game is about someone who had their mind uploaded to a humanoid robot after a seemingly unknown fate. It is up to the player to traverse through the laboratory, solving computer-based puzzles.

The game would be unique as in that the player would interact with in-game computers, having to use the command line to solve puzzles.

Development

The game would be made in Python, using the PyGame library (or pygame-ce). Everything from there would be written by myself. Recently, I decided to use Tiled, a map editor for making 2D maps like this. This significantly reduces the amount of work needed to implement maps.

An idea I had for loading maps is to have the tiles drawn on a canvas and then saving the canvas as a PNG instead of constantly drawing all of the tiles every frame, significantly reducing load on the CPU. I am still not sure how I am going to implement this.

Art

I have came up with some floor tile textures already, taking some inspiration from Portal. The game's aesthetics is heavily inspired by futurism from the early to late 2000s. Textures and sounds would reflect this.

Floor tile textures

I plan to use some ambient sounds from freesound.org, for now I have used ambient sounds from Portal 2 though I plan to replace these soon since they're not mine to use. Some other ambient sounds I have added are also edited sounds from Portal 2, named "cave_vXX.wav", "v" meaning Valve to keep track of what assets where taken from Valve games. The "cave" prefix came from when I edited these sounds originally in November to December 2023, with the idea to use these sounds for a custom resource pack for Minecraft that replaces the default Minecraft cave sounds with those particularly more eerie. I later decided that these sounds would fit other uses much better than Minecraft due to many sounding mechanical and futuristic.

TaskSystem

In order to learn Go, as mentioned in the section below, I have decided to start developing TaskSystem in Go.

Go Programming Language

On March 14, 2025, I have started to consider using the Go programming language. It is a compiled language so it would be much more performant than Python while it seems to have wide support for CPU architectures and operating systems. Other things that caught my attention were the built-in support for concurrency, has a presence in web development, and has a package manager that can use GitHub repositories as a source (though Rust's Cargo and Python's pip can do this).

There is still a lot of things I need to learn about Go before I can use it for development. It would likely be a long time before I start using it in my projects.

What I've noticed is that it takes minimal effort to make HTTP server in Go with the net/http package provided by the standard library.

NetKart

On March 15, 2025, we started to weld the frame together, just tacking the pieces together instead of making final welds as things may change. For the first time I have seen an oxyacetylene torch used in person. With the tanks having Syracuse, New York written on them, it has been a long time since they have been last used.

We used the torch to heat up the front part of the frame to bend it upwards to have the two metal tubes that span the length of the frame to reach the front of the frame.

Personal

The use of ToDoKiosk on the new setup for it has been going well. The monitor being much closer to my desk helps a lot especially now I can fit much more tasks on screen due to having better visibility.

College

On March 10, I set the calendar sync back up on the phone. I expect this to help with being motiviated to complete college assignments. Last year I removed the calendar sync due to power usage and the amount of notifications that appear when the server is down.

My class in Cloud Computing has started recently.