Welcome!

Red wizard who looks happy to be there Red wizard who looks happy to be there

Hi! My name is Lakkie and I do Coding in C++, C#, Python, Java(+ Scala and Kotlin), x86 ASM, Lua, Go, and others. When it comes to computing, I'm interested in learning about everything that I have time to learn about! Some of those things are more on the side of games, like Unity and Godot game development, along with writing shaders to learn how visual effects are made in code. Other things I'm interested in are on the side of web development, like backend using Django(what I used for this website) and frontend using Bootstrap, Carbon framework, and writing my own CSS or SCSS.


The staff the wizard should be holding with a red orb on top The staff the wizard should be holding with a red orb on top

Outside of coding, I'm also hosting a dev diary that I'll add miscellaneous coding projects to. On the projects page is a portfolio of all of the things I've made in software. On the conlangs page, I have resources and texts related to my conlang called Nait, which I've been working on for fun and to learn more about language. The SM64 times page has a spreadsheet of all of the latest times that I've gotten in Super Mario 64, which is a game that I speedrun. My library has some public files, but to access everything you'll need an access code which I only give to certain people. If you don't know me and want access to the library, you can email me at lakkie@lakkie.net.

Dev Diary

Lua Visualizer

Lua Visualizer is one of the projects that I've had around for a while, but I didn't really get around to actually making any progress on. Now that I'm done with school for the summer, I can actually get around to completing.

The idea of the project is to print out the state of the Lua Virtual Machine so that you can see what exactly it's doing to make your script run. The way I'm doing this right now is by printing out instructions and memory in the command prompt.

Example visualizer output with instructions and memory

The way that the virtual machine works is that instead of having registers or caches like a normal CPU, it works entirely off of these "registers", which are really stack indices. understanding this concept has caused me a lot of trouble, but this resource has helped me a lot in understanding it, along with whatever other documentation I can get my hands on.

I also want to do more projects related to programming languages and human languages. This sort of stuff is really interesting me and I want to delve more deeply into it!

Lakkie on May 20, 2024, 3:36 p.m.


Multiplayer Snake

Multiplayer snake is like normal snake, but you split up the direction controls by player. So one player will control left and right, and another player will control up and down. This means you can have anywhere from 2-4 players.

I've done some networking projects before, but they haven't been easily presentable. There are some things that I want to do differently for this project:

  • WebSocket based - I want to be able to run this game entirely out of the web. This means that I'll have to use some technologies I haven't used before.
  • Visualization - There will be options to look at what is happening on the networking side of things. If you want to, you should be able to look at each individual packet, see what data is being transmitted, and when connections are established/terminated.
  • Testing - This app should have complete unit testing, which is quite different for networking apps. This requires setting up fake clients and thinking ahead of time about the architecture of the app. For example, I want to split up the code for receiving packets and the code for interpreting the packets' data. That way, I can write tests for checking whether both work individually, and if they work together. The server will also have to be developed to handle plenty of error handling, as in theory the client could send any packet it wants to at any point in time.

For the client side, these are some hand-drawn UI layouts:

4 UI layouts: snake with controls to side, snake with controls below, game over screen, lobby list. Below is a packet list.

The top left is used as a big screen mode, the top right square is a small screen mode, and the two screens on the bottom are special screens used for state outside of being in a lobby playing a game.

Below that is the packet debug interface, which will appear either on top or on the side of the screen. This will display a list of all the recent packets sent and allow you to access all of their information and see information like latency, timestamps, server information, etc. The goal for that screen is to give as much debug information as possible.

Lakkie on May 20, 2024, 3:30 p.m.


Website published!

After spending most of the day today trying to get this website published, it's finally here! The database is connected, the app is running, and so far everything is working perfectly!

Lakkie on March 6, 2024, 2:16 p.m.