Posts
Network namespaces to separate network applications
When using a default VPN application all traffic is routed through the VPN host. In most cases this is the desired behaviour but there are cases where only certain applications are to be rerouted. A quick but resource intensive solution is to isolate these applications in a virtual machine. An alternative is to use Linux’s namespaces and iptables.
Using My Phone as a Webcam
I don’t own a camera that is compatible with my system and I’m not interesting in purchasing a bunch of webcams to test their quality when I’m already satisfied with image quality provided by my phone. It would be neat if I could use my phone as a substitute for a webcam which led to the creation of this setup.
Dark Chronicle's Level Generation
Dark Chronicle, also known as Dark Cloud 2 in North America, was originally released for the Playstation 2 in 2002. I played it a long time ago and was always curious about how its levels were generated. In order to accomplish this, I had to dive into the underlying machine code. Thankfully the final release of the game contained debug symbols which made it easy to locate relevant functions and paired with Ghidra’s Decompiler which transformed the machine code to C, this difficult task was became a lot easier. So I dove in and took took away the core principles and reimplemented them in Rust.
Shattered Dungeon's Level Generation
In my previous post, I covered Pixel Dungeon’s level generation which relied on the subdivision of a rectangular region. I’ve decided to check if the popular fork Shattered Pixel Dugneon had any significant changes and I was fairly surprised by what I found. Shattered throws away the underlying level generation process which was bounded by a finite rectangular region and replaces it with one that is unbounded but still confined to grid cells. This required significant changes and increased the complexity of level generation but increases the freedom of level configurations.
Pixel Dungeon's Level Generation
Pixel Dungeon is an addicting open-source roguelike that was developed for Android in late 2014 and has spawned multiple forks, the most notable being Shattered Pixel Dungeon which continues to be updated today. In this post, I’m mostly interested in examining how level is generated so I’ve given the source code a read and attempt to explain it from a bottom-up approach.
Rogue's Level Generation
I really like procedural generation and was curious as to how Rogue generated their levels. Since Rogue is open source I dived into to the code and disected extactly how they did it. My goal of this write up is to explain how they accomplished it with a bottom up explaination. I’ve ommited details that add complexity and don’t contribute much to the intution. An example of an omission is Maze rooms since they require a understanding of the basics first before being added.
subscribe via RSS