June 16, 2025
Heya! Truly sorry for a long devlog, haven't posted in a while. I was busy trying to wrangle the HTML parser into existence which as you can see by my GitHub commits was... not easy so to say :/ In the end I decided to make a custom one semi-based on the tutorial, and I'm proud to say that (excluding some line height issues) the parser works! I'm getting really tired of this project tho so I'll probably ship after fixing these issues and implementing some QoL features (tabs, settings, history, yknow the gist). I plan to ship tomorrow (hopefully I can implement all these by then)! See ya next time :)
Hellohellohello! Didn't originally plan to submit a devlog this big but there was some weird bug with SoM where it thought I only ever had 2 minutes and did not let me make a devlog, that was weird :/ Anyway, HTML parsing is well underway now with a proper (although sometimes a bit glitchy) layout system and everything! A lot of changes aren't really visible since they're bugfixes or under the hood improvements, like the addition of variable fonts which was a PAIN IN THE ASS (average freetype2 moment). I feel really good about the progress I've made, the browser can already open and render basic sites great and I'm really close to finishing HTML! CSS will be really challenging tho...
verrrrrry quick fix - found what caused the segfault and patched it so we can actually run the program now! Still no text rendering with the new parsing system but hey, progress :)
Started following the Flaskr tutorial on Flask's official site - really like how the entire system is structured so far (and also SQLite FTW). Already have registering, logging in and out and all that shebang, writing posts next :D
My website, https://laky2k8.hu, hasn't been really updated for some time and definitely needs some polish. I also want to merge the blog and the rest of my site but tbh I hate PHP, so I thought - why not just rewrite the entire thing in Flask? (hope it's not one of those "last words before disaster" moments :P)
Started actual HTML parsing today - here you can see one of the mid steps where I implemented different font styles and weights. Sadly I didn't have any more time today and I even got a yummy SIGSEGV :(
HUGE devlog: Added Unicode support, HTTPS, view-source, file:// loading, redirects work now (huge W for http links!), scrolling and started parsing HTML. The browser is starting to look really good :D
Shorter devlog today: Added error checks, and unsuccessfully tried to add HTTPS.
No real HTML parsing yet, only cleaning the text from tags, as I focused on other things like a much more robust URL handling (the old one randomly decided to just not update the URL for no reason), HTTP 1.1 support (User-Agents yippee!!!), and the pièce de résistance: Dear Imgui for the GUI; This means I can even support things like tabs in the future :D
The next step is to implement a better socket system as the current one does not support HTTPS which in 2025 immediately makes the browser not being able to open 90% of websites. After that (and a couple extras I want to add based on the browser.engineering exercises) we can finally jump into HTML parsing!
After a LOT of wrangling with FreeType, GLFW and sockets, I finally got the first HTTP request working and the first HTML. The fun part comes next: HTML parsing :D
A browser/HTTP renderer/something something made in C++ with GLFW, FreeType and somewhat following the great tutorial on https://browser.engineering/. Hopefully this turns out to be something pretty cool :)
I have followed the tutorial without any porting this time to make a version in JS since that is far easier to prototype in than C++. After some work and a tiny (but necessary) bit of help from Perplexity both depth sorting AND rudimentary shading are now working! The next step is to port this back into C++, though I might switch to a different rendering framework before that (maybe OlcPixelGameEngine?), I am not sure yet. It's going to be some time before I can work on this again, so stay tuned ;)
Not much progress since yesterday, still couldn't figure depth sorting out... I'm thinking of starting over and making a demo in some simpler language like Python or JS before delving into C++. OpenGL could be an option too but that kindof feels like cheating...
Rewrote the engine under a new wrapper around my GLFW window and framebuffer system so it's a bit easier to work now. Also added triangles (no sorting yet lmao, only random colors) and texture loading - next step is textured triangles! The code is pretty jank though so I'm going to have to work on that...
Used this tutorial: https://github.com/cunev/Your-first-3D-Isometric-Engine to start making a simple engine: There's a object that you can move and rotate with connected lines. The code is very messy though so I am going to rewrite it. After that probably object sorting and the thing I dread the most, textured faces...
After already making a raycaster and a Doom-esque engine back in High Seas I figured I'd step up my game - and while I don't want to tackle full on software rendering 3D just yet, I decided to try and make an isometric 3D renderer. The eventual plan is to use it to make a truly cool RPG engine - something like the old Fallouts except truly 3D ;)
This was widely regarded as a great move by everyone.