Aiden’s Journey – Part 2

Operating System

At first, I was going to install Windows 11, because that is what I am most comfortable in.

But then I’ve read about better performance in Linux and as a software architect, I thought it would be good to refresh my Linux knowledge and so I decided to make it a dual boot system with Win 11 and Linux.

So, … what Linux to use? First everything pointed to an Ubuntu LTS distribution. I downloaded it, prepared a bootable USB stick and the journey could begin.
Or so I thought…

BIOS where art thou?

When booting the new machine connected to my new LG monitor, I realized that the first thing I saw was the Windows login screen, nothing before that.

I tried different ports, the onboard graphics card vs. the NVidia one. I tried updating the firmware of the NVidia card and connecting it via different cables.

But the BIOS or anything else never showed up on screen. My other gaming PC with an NVidia RTX 4090 had no problems at all.

So… I ended up connecting it to my TV in the kitchen, which made working on it a pain. The misbehaving wireless mouse was also adding to the experience.

Ubuntu

But at least I could start installing the system now. At first, everything looked fine and it installed alright. After doing some stuff in the – in my opinion – not so great Gnome desktop manager, I needed a reboot.

That’s where things went downhill.

The system stopped booting because of trouble with the NVidia drivers.

As Linux was unknown ground for me, I followed lots of tutorials from the internet and killed the old drivers, blacklisted Nouveau drivers and did lots of stoneage stuff (typing in a shell).

After an hour or so, the system started with lots of graphical artifacts and a wrong aspect ratio. But at least I had a desktop again and could try to install a better driver. Unfortunately, I still had to do lots of stuff in the shell.

After a lot of steps (that I would never be able to reproduce), the machine started with a working display again and I was back on the desktop to do stuff. Another small change later, a reboot was necessary and I was back at the broken state.

Goodbye Ubuntu!

Garuda Linux

After a websearch for the best distributions with NVidia support, this one popped up with some others. I chose Garuda in the end and installed it from a fresh USB stick.

I finished the installation and rebootet from SSD. I tried logging in with the password that I had chosen, but… computer said no.

It seemed that I had somehow managed to mistype my passwort two times during setup and so I just restarted from step 1. XD

But after this hiccup, the installation was fine and the desktop experience was so much better. It took some time to get it to look nice (e.g. to get rid of those weird rounded windows), but then I almost felt like home.
Most of the windows key shortcuts work the same, which speeds up my work a lot.

Now, the real fun could begin.

Aiden’s Journey – Part 1

Prologue: The Hardware

It all began with a friend sending me a link to a cheap AI NVidia card, the RTX 2000 Pro Blackwell. For “just” 800 bucks you could have 16 Gb of VRAM for a little AI machine.

The idea intrigued me, as I’ve always dreamt about a separate machine to provide the power for a coding assistent or image generation while I still had the GPU and VRam on my gaming pc free for other stuff.

I looked at it for a while and realized: This would be a downgrade!

My current gaming pc has a NVidia RTX 4090 with 24 Gb VRAM. It allowed me to load quite a selection of models and use them for generative AIs. The new card only had 16, so I would not be able to load as much.

I tried to build a PC and put two of those in, but the sites I visited only offered PCs capable of containing one of those beasts. So…

I thought: “You just had your [censored] birthday, gift yourself a cool machine!”

And that’s what I did. 🙂

At first I ended up on a site only selling to companies, then I found out that – for some weird reasons – the prices on some of them excluded taxes. That meant that they were almost 20% more expensive at the checkout than they were in the shelf. T_T

I thought about it some more and ended up with a YOLO feeling and… just bought it.

The configuration I ended up with:

CPUIntel® Core™ Ultra 7 20-Core-CPU265K (up to 5,5GHz) 30 MB Cache
MainboardASUS® PRIME Z890-P WIFI (LGA1851, DDR5, M.2 PCIe 5.0, Wi-Fi 7)
RAM32 GB PCS PRO DDR5 5600 MHz CL46 (1 x 32GB)
GPU48 GB PNY NVIDIA RTX Pro 5000 Blackwell, 14080 CUDA-CORES, 4x DP
1. M.2 SSD1 TB CRUCIAL T710 GEN 5 M.2 NVMe PCIe SSD (bis zu 14,900 MB/sR, 13,700 MB/sW)
2. M.2 SSD2 TB SAMSUNG 990 PRO M.2, PCIe 4.0 NVMe (bis zu 7450 MB/R, 6900 MB/W)
3. M.2 SSD2 TB CRUCIAL E100 GEN 4 M.2 NVMe PCIe SSD (bis zu 5000 MB/sR, 4500 MB/sW)

48 Gb of VRAM! That was double the amount I had before. That should mean something, right? Well, I guess we have to wait and see.

At first I thought that I won’t need much RAM as most of the stuff is happening in the VRAM, but right after I ordered it and they started assembling it, I looked at some posts and decided to get more…

The Memory Switcheroo

Memory does not seem to be easy to get a hold of nowadays. I started on Amazon as I usually do, but I specifically wanted to get the same RAM that was already in there, so I had two identical 32 Gb memory modules.

In the end I returned to eBay where I got most of my collection of over 1,000 DVDs and Blu-rays in the good old days.

I found an okay offer for 340€ and grabbed it. The seller seemed trustworthy and quickly sent the package out and even showed a photo of the item with the invoice.

In the meantime, I installed Win 11 and found out that (using the vanilla setup) you could not skip using an online MS account anymore. I don’t know what they need all those fake temp accounts for…
Of course, I switched back to a local account right after installation.

A few days later, I received it and opened it to find… a 16 Gb module.

First thought: Fraud

Second thought: Did I misread it?

I checked the original eBay offer and it said 32 Gb. The invoice said 32 Gb (the one in my hand and the one on the photo). Then I zoomed in and saw that you could see the 16 Gb module on the photo with the 32 Gb invoice.

That helped me calm down a bit as I had proof now and it was unlikely that a fraudulent dealer would provide something like this.

So, after contacting him, the issue was resolved and a week later I got the correct 32 Gb memory module and the next phase started.

Unesroga – The not so final version

After I completed all puzzles and did two playthroughs, I started doing the soundtrack. I looked for a few music tracks from the same artist and recorded my own sounds, which was tricky but fun.

Then I thought that the game was finished. I sent the link to someone who started testing it and instantly – accidentally – bruteforced it and thus circumvented a large portion of the game. 🙁

As usual, the following part contains spoilers of the game, so don’t read on if you want to play it yourself.

Continue reading Unesroga – The not so final version

Unesroga – Puzzle-complete

Yeah, I’m bad at writing dev logs…

I wanted to do more blog posts, but now the game is finished gameplay wise and I am doing the ending now. XD

After you open the exit, there will be a corridor with fun facts about your playthrough.

I am using an effect to make the text appear, similar to the effects for the “ultragreen” paint that you can only see with the green lamp.

Therefore a texture is generated consisting of images (TBD) and text including your statistics.

The “Magic Displays” with some live generated textures

To add some perspective to it, the texture has been postprocessed to make the lines and text “go along the wall”.

As you can see, the text suffers from this. I have tested several fonts, but there was no way around it: The letters would break when stretched or shrunk along with the height of the wall.

So I reworked my text rendering code that I used to draw wrapped text and added a callback for manual letter rendering. The idea was to not actually shrink the text, but only make it go along the lines parallel to the wall.

The result was a lot more readable:

Letter placement instead of texture manipulation

Images that might be part of an info panel would still be postprocessed the old way.

I think in a pixel based game with the low resolution 480×270, this is the way to go.

Here is an example of how the panel is animated when clicking on it to reveal the text:

Quite a few panels are still missing, but then the next task is to add sounds.

I am really looking forward to that part. 😀

Unesroga – The next room (Spoiler alert)

After finishing the demo, I can now work on the next room. At the end of the demo, the player just opened the door to it. When clicking on it, there’s just a “To be continued…”

And that is done at the moment. I’m trying to keep this as much spoiler free as possible, but if you want to discover everything on your own, then:
Do not read any further!

Continue reading Unesroga – The next room (Spoiler alert)

Unesroga – Demo 2 finished

I’ve finished the work on the second demo of Unesroga.

The last things to do was to generate some texts for the completely irrelevant books in the shelf of the starting room. Still, I wanted them to be in there and there will be more in the future.
I had to fix more stuff in the layouting code of the books after adding new ways to style the text elements with a little markup, because changing the font or size of the text made the previous size calculations invalid.
There was an incredible struggle to maintain the correct number of linefeeds because of the way I first split the text into parts (including styling, alignment and some other metadata) during the calculation and split to pages step and at the same time reconstructed the text, so it could be drawn later on.
In the end, I got rid of the double parsing stuff and used the calculated parts directly, which produced some other problems, but eventually it got all resolved and now it is stable and works in all cases when there is plain text, styled elements, page styles or conditions or custom pages with images etc.

The demo contains roughly 75% of the game. There are two more rooms planned and I have a basic idea of what will happen in one of them.

But before I start the work on that, I will wait for the initial reaction to the new demo and see if I have to do some quick fixes to it, so I can release it to a larger group.

I am curious to find out whether the puzzles will be solved quicker (or at all) than the one in the first small demo. ^-^