n-channel

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs

commit 894eb5ee0608e6f151268144f7b8058f09b1aeb2
parent a4f689e78cdd9a7fadda7d399cb78997c8bd7e6f
Author: Samdal <samdal@protonmail.com>
Date:   Mon, 24 Feb 2025 03:56:09 +0100

 more fixes old projects

Diffstat:
M_posts/2025-02-23-my-old-projects.md | 25++++++++++++-------------
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. ![HS Screenshot](/assets/images/old_projects/hs.jpeg) @@ -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