commit 894eb5ee0608e6f151268144f7b8058f09b1aeb2
parent a4f689e78cdd9a7fadda7d399cb78997c8bd7e6f
Author: Samdal <samdal@protonmail.com>
Date: Mon, 24 Feb 2025 03:56:09 +0100
more fixes old projects
Diffstat:
1 file changed, 12 insertions(+), 13 deletions(-)
diff --git a/_posts/2025-02-23-my-old-projects.md b/_posts/2025-02-23-my-old-projects.md
@@ -100,7 +100,7 @@ The game was made using GDScript and started development in Godot 3.
One of the biggest stop-points was that lighting wasn't anywhere near performant, so the game looked pretty bad.
I actually picked the project up again during the end of summer break in 2024. I started fresh from a clean slate in Godot 4, and it was surprising how far I've come as a programmer.
-The stopper that time was that I have gotten so used to working without game engines that it almost felt in the way. Some data-oriented approaches makes you to fight against it, which was a bit painful.
+The stopper that time was that I have gotten so used to working without game engines that it almost felt in the way.
I should try to have a go at it again though.
@@ -109,7 +109,7 @@ I should try to have a go at it again though.
I made a [Rick & Morty portal gun](https://github.com/Samdal/r-and-m-portal-gun) together with a friend from primary school. He led the physical design, while I did the electronics.
-The project was made in a pretty short time during late May - early June of 2021. The portal gun was meant as a parting gift my friend was going to give to someone.
+The project was made in a pretty short time during late May to early June of 2021. The portal gun was meant as a parting gift my friend was going to give to someone.
It was made using an Arduino, an mp3 player, a rotary encoder, and a three wide 7-segment display.\
It had a boot-up sequence, and allowed you to "select" different world coordinates, with a bias towards C137.
@@ -146,7 +146,7 @@ It made me discover new ways to program. I learned a lot from reading John's cod
[HS](https://github.com/Samdal/hs) is an OpenGL wrapper. It mostly simplifies resource creation and usage.
-It was a project I always wanted to make while I was following along [Learn OpenGL](https://learnopengl.com/) after I completed [gs_snake](#gs_snake).
+It was a project I always wanted to make while I was following along [Learn OpenGL](https://learnopengl.com/).
The project is very incomplete, as I never made anything proper with it.

@@ -155,7 +155,7 @@ The project is very incomplete, as I never made anything proper with it.
## Anders Tale (C version)
-I figured I could use [HS](#HS) to make something, and re-making anders tale seemed like fun. I thought that would be a nice way to have some focus.
+I figured I could use [HS](#HS) to make something, and re-making anders tale seemed like fun. I thought it would be a nice way to have some focus.
The only notable part about the game was it's tile-map system and a AABB collision. It also supported "allowed-areas", which forced the player to stay inside a room, instead of mapping each wall as large collision shapes.
@@ -199,10 +199,9 @@ My main editor was (and still is) Doom Emacs. Emacs is extremely slow, and I env
I started off with the code base of [ST, the Suckless Terminal](https://st.suckless.org/). I ripped out the "terminal" part and was left with a minimal X11/Xft monospace text renderer.
-SE continued in a simple and Suckless fashion. It was configured through changing the `config.c` file.
-It had a callback interface which allowed you to register extensions without inserting code into the core files.
+SE continued in a simple and Suckless fashion. It was configured through changing the `config.c` file, and it had a callback interface which allowed you to register extensions without inserting code into any core files.
-The syntax highlighting and auto-indents are done with a custom state-machine-like rule system.
+The syntax highlighting and auto-indents were done with a custom state-machine-like rule system.
I started implementing a fairly complete vim support, which was a larger undertaking than I expected. The main missing features were only macros and markers.
@@ -217,7 +216,7 @@ I started implementing a fairly complete vim support, which was a larger underta
It used the console to expose a virtual board interface and monitoring functionality.
-TArduinoNative is probably the most usable of my projects. I don't really think the code is that great, but the interface is pretty clean.
+ArduinoNative is probably the most usable of my projects. I don't really think the code is that great, but the interface is pretty clean.
Compared to other ways of simulating an arduino, using ArduinoNative is very simple.
Serial and AnalogRead Example
@@ -296,22 +295,22 @@ I also made an [example program](https://github.com/Samdal/gs_ddt_ex) for it.
## gs_avdecode
-[gs_avdecode](https://github.com/Samdal/gs_avdecode) was video decoder for embedding in gunslinger, which uses the avcodec API from ffmpeg.
+[gs_avdecode](https://github.com/Samdal/gs_avdecode) was media decoder for playing videos in gunslinger using the avcodec API from ffmpeg.
-I made an [example program](https://github.com/Samdal/gs_avdecode_ex) for the utility too.
+I made an [example program](https://github.com/Samdal/gs_avdecode_ex) for this utility too.
The latest revision of the program isn't the one github, as I decided to keep it private (it's a bit more integrated into work code now).
I still think `gs_avdecode` is an alright reference if you wish to learn avcodec.
## gs_bucket_array
-[gs_bucket_array](https://github.com/Samdal/gs_bucket_array) was a generic data structure for gunslinger.
+[gs_bucket_array](https://github.com/Samdal/gs_bucket_array) was a generic data structure I made for gunslinger.
-It operates similar to `std::deque`. Essentially it's a dynamic array which contains pointers to *chunks* or *buckets*. The array grows by adding a new bucket, which gives it fast insert/delete times while also being pointer stable.
+It operates similar to `std::deque`. Essentially it's a dynamic array which contains pointers to *chunks* or *buckets*. The array grows by adding a new bucket, which gives a good compromise between size and insert/delete/iteration times while retaining pointer stability.
The implementation additionally came with an optional packed free-list.
-I don't use this project anymore though, as I would rather use a linked lists or static allocation.
+I don't use this project anymore as I would rather use a linked lists or static allocation.
```
gs_bucket_array(float) ba = gs_bucket_array_new(float, 100); // Bucket array with internal 'float' data, where each bucket is 100 floats