Friday, September 10, 2021

Captain Quake - unfinished game prototype


After playing the game "Claw" from 1997 this was supposed to be a short 2 week project to test how fast I can prototype a simple game using my Broken Mug Engine and to again spark my interest in this hobby. That was June 2019. More than two years later I am releasing this in an unfinished state and I can say that original idea failed miserably.

As you can see it is a mix between Claw and Quake 2 with a dash of Metal Slug on top. I have cut two thirds of the first level and haven't put the final polish on many features, but at least it is in playable state. I have planned to write a detailed editor manual and also make few map examples, so someone might try making their own levels, but that was also left unfinished. I wish I could have released it all in a better state, but I really had to force myself to work on it and I don't want to delay anymore.

Anyway, this is still technically the most advanced project I made, even compared to the 2012 Quake 2D demo. You can see Box2D physics in action, colored lights, complex particle effects made using an actual particle editor, interpolated skeletal animation made using an animation editor, boss running around using waypoints, event listeners controlling platforms and sounds, and all the objects, weapons and enemies are defined in external XML files, everything is highly customizable.

Download (Google Drive) 

Download (ModDB)

Saturday, August 7, 2021

Baking a GPU in the oven - Part 3

More than 2 years after I baked my Sapphire R9 270X for the first time the thing still works. In total I baked it 7 times since June 2019:

1. June 2019 - 190°C/8 minutes - worked the longest period of 8 months
2. February 2020 - 200°C/10 minutes - worked only month and a half
3. May 2020 - 200°C/15 minutes - worked 6 months
4. November 2020 - 210°C/12 minutes, worked just few days
5. November 2020 - 220°C/15 minutes, worked 6 months, but it crashed several times, but it would work after reboot
6. April 2021 - 210°C/15 minutes, worked 3 months
7. July 2021 - 200°C/15 minutes, worked just a month
8. August 2021 - 210°C/15 minutes, to be continued...

As you can see the poor thing doesn't even have its original fans. One fan became noisy so I removed it and put one of my case fans which I connected directly to PSU with a molex at 12V. In worst case so far it reached 78°C, but that is still under control, since it only happens in summer when my room is warmer.

In this picture you can see how the plastic on the board changed its color because of all the baking.

Thursday, July 8, 2021

Broken Mug Engine - destructible 2D terrain and objects

After almost 5 years finally a new Broken Mug Engine video and playable demo. I was trying to make the code from my 2014 destructible terrain demo work again and I got carried away. It is still based on Box2D, Clipper and Poly2Tri libraries, but is much more advanced. No mugs were actually broken during writing the code and recording this video.

Here are some of the new features:

- support for multiple destructibles

- FBO or polygon based destructibles

- dynamic destructibles with rotation, scaling and proper UV mapping

- splitting of destructibles into new destructibles

- debris - fake voronoi triangulation, particle effects, decals

- support for holes and enclosed environments

- preservation and destruction of joints

You can download the demo from my Google drive or Mod DB:


Mod DB 

Tuesday, September 22, 2020

Serious Sam 2D TLGH - full playthrough on Serious difficulty

I released this game 10 years ago and since nobody made a full playthrough video I did it myself for the anniversary. I did not play this for a long time, so I am a bit rusty. In some parts you can see me shooting a biomech with a shotgun. I was trying to save rockets for the werebull part, but then I picked up a rocket ammo pack like an idiot when I was almost full, which caused trouble later when I ran out of them. You really need to be careful with ammo in some parts. Game was designed to be hard and I really had trouble in few levels. It took me an hour to finish and half an hour was just to beat the final boss. The final boss can only be reached by playing on Serious difficulty. If anyone wants a challenge try to beat the game on Serious with no deaths.


Game must run at 64 of 67 FPS. By design it should be 64, but 67 is also fine. If it runs lower than that it will impact the minigun fire speed and Level 3 (the one at night) will be impossible to finish, because there are too many enemies and they come in too fast. Windows timers are for some reason all messed up and sometimes game runs at 50 FPS, but then you can try running some other program in the background to "magically fix" the timers to get 64 or 67 FPS. When I was still using Windows XP I could use WinAmp for it, but now on Windows 7 having Tixati running in background helped.

It was originally supposed to be similar to Seal Hunter, but it ended being what it is. The final boss "Beshtiya" (basically means "beast") was inspired by the first boss in Metal Slug 2 that burned the player with its engine exhaust and soldiers would fire from the top. The fireball attack in the "head form" was inspired by the final boss in Metal Slug 1 when he drops bombs from the helicopter over the whole screen. One guy once said the birds in this game are out of place and they really are, they really look bad. Them triggering stuff was inspired by the birds in Turok 2 where you would open a secret area by shooting them. Also one thing I would like to mention is the behavior of the werebulls. In original games they would turn around if they miss the player, but here when they reach the left side of the screen they are teleported to the right at the same Y position as the player.

Game is set in 2018 and in the end it says "To Be Concluded", but that will not happen. You can see G-Man in one level and Beshtiya drops a crowbar. Well, the story was somewhat inspired by the movie "Last Action Hero". Trying to stop Serious Sam once and for all, Mental developed technology that could transport him and his armies from the video game to the real world, so he could destroy Croteam, creators of Serious Sam. He invaded real Earth and destroyed all game developers and their games, but he could not locate this obscure country called "Croatia" on the map, so Serious Sam was the last video game hero left to defeat him.

Wednesday, July 8, 2020

Intel stock CPU cooler vs. Cooler Master Hyper 212 EVO

Two or three years ago I bought Cooler Master Hyper 212 EVO cooler for my i5-4690k processor, but I never took the time to actually install it until now. I was using the stock Intel cooler, the thin aluminium one with a copper core, ever since I bought the new computer in late 2014.

I used the included thermal paste when I installed the new cooler. I used my AC to bring the room temperature down to 24°C when testing and removed the case side panel. I used CPU-Z stress test to keep the processor at 100% load and HWMonitor to keep track of the temperatures.

With Intel stock cooler the idle temperatures were around 30-32°C. After 10 minutes of stress test the maximum reported temperatures were 74-80°C depending on the core. The maximum fan RPM was 1860.

With Hyper 212 EVO cooler the idle temperatures were around 24-26°C. After 10 minutes of stress test the maximum reported temperatures were 45-51°C depending on the core. The maximum fan RPM was 1300. So, with default settings in idle the difference is around 5°C and during stress test it is around 30°C which I did not expect.

Then I repeated the test with fans set to "silent mode" in BIOS, where they only spin at 750 RPM, and even then the maximum temperature goes only to 55°C.

Then I tried overclocking the CPU to 4.4 GHz (stock is 3.5-3.9 GHz) with fan running at only 950 RPM and the temperatures went only up to 71°C, so I might even go for 4.5 GHz with higher RPM.

I was really surprised with the difference on default settings compared to the stock cooler and how well the new cooler can handle even overclocking.

Saturday, May 30, 2020

Lenovo G580 - first time cleaning after 7 years

My mother's Lenovo G580 laptop from 2013 started to sound like it will take off even when just watching videos online. Using Hardware Monitor program I could see it is hotter than it should be. I never tried disassembling a laptop before, but it was getting on my nerves, so I decided to do it. Luckily there are several videos available on YouTube showing the whole procedure.

I bought thermal paste (Arctic MX-2) and I also bought a 120 GB Western Digital Green SSD in hope it will speed up the laptop a little bit and I could use the 500 GB hard disk from the laptop for myself, since she doesn't really need any storage at all.

It is ridiculous I had to disassemble everything to get to the fan, it should have been designed better. As you can see the fan exhaust was completely blocked by dust. There was only a little 1 mm hole on the left where air could get out. I cleaned everything, applied new thermal paste and put in the SSD.

When watching YouTube or a 1080p movie in VLC the CPU temperature was around 65°C before, now it dropped to around 50°C. Room temperature was around 22°C. The maximum CPU temperature I got while testing was now 20°C lower, from 78°C to 58°C. It is also important to mention that these lower temperatures are achieved with the fan spinning at much lower speed which makes the laptop more silent. I was very happy with the results.

Replacing the old hard disk with a new SSD did not make much of an improvement since the laptop is mostly used for web browsing, so the speed of the SSD is not really noticeable. The biggest bottleneck there are basically ads or ad blocking plugins slowing everything down. At least it is completely quiet and I got myself a 500 GB hard disk I can use to store my stuff.

After everything was done I realized I could have also replaced the 2 core/2 thread Intel Pentium 2020m CPU with a better 2 core/4 thread i5 CPU which can be found for cheap now. It is not really necessary since the laptop still performs perfectly fine. The only use case where it fails are x265 encoded 1080p movies, where it can reach 100% processor utilization which causes stutters, but x264 encoded movies run without issues. Maybe in a few years when it is time to clean it again...

Tuesday, May 5, 2020

Baking a GPU in the oven - Part 2

Last September I wrote about how in May 2019 I had issues with my old Sapphire R9 270X GPU from 2013 and how I fixed it by baking it in the oven and how it was working with no issues for months.

Now I have to report that the GPU worked for 8 and half months in total, until February 2020, when it would again give only black screen when in Windows. I played and finished 8 games during that period with no issues, so it did serve its purpose well after being baked.

After making a short break from more demanding games and using my integrated Intel GPU for about a month, I baked the R9 270X again in March, this time for 10 minutes at 200°C. To my surprise it worked again. Unfortunately I managed to play and finish only 2 more games this time before I got a black screen once again, two days ago. So, this time it only worked for one and a half month.

I baked it again! At 200°C, but I left it inside for 15 minutes this time. After playing around with the oven thermostat a bit, I'm not sure how well the oven and the thermostat even work and if the temperatures are accurate. Nevertheless, it fixed my GPU again! Now, let's see how long will it last this time...

Sunday, February 16, 2020

Dungeon Siege - high resolution textures (ESRGAN) - Part 2

After more than 4 months of work I have uploaded the texture pack for Dungeon Siege that contains 3929 updated textures and is 5.97 GB large (compared to original 700 MB). All terrain textures have been updated, 750 world objects and decals, as well as bosses and some larger enemies and NPCs.

No custom textures have been used, everything is based on original textures. I think the new textures preserved the original look very faithfully. You can watch the comparison video on YouTube and download the texture pack on ModDB:

This is the first time I hit limitations of 32 bit programs. First when I went to pack the textures into dsres files (think of it like Dungeon Siege rar archives), the program would stop when hitting 4 GB. Then the game would not load dsres files larger than 2 GB. Luckily the game was designed to load multiple dsres files. It is surprising all this even works, considering the increase in size. One fun fact; game originally supported screen resolutions only up to 1024x768, but now many texture files themselves are larger than that at 1024x1024.

Probably more than 99.9% of textures were updated using the "Misc" model. "Misc" is a fantastic universal model, the author "Alsa" did an amazing job. Other models used were "Manga109Attempt", "Skyrim Wood" and "Ground". Manga109Attempt was used for things that are supposed to look cartoony, like paintings or carpets with colorful designs.

A lot of work went into fixing and tweaking the original textures in GIMP to prepare them for ESRGAN for optimal results. Original textures were often blurry, some were too pixelated, others had compression artifacts that would be further exaggerated when upscaling. Simple use of noise and denoise filters on original textures produced great results. Also some sharpening of original textures before sending it to processing can help a lot.

 Blurring pixelated parts and adding noise to original texture before upscaling improved poor original result.

Skyrim Wood model was useful in few occasions where the original texture was extremely grainy, this model gives a "grainy blur" result which worked well on few tapestry, some carpets and statues.
 Skyrim Wood model.

Sometimes models give good results for one part of texture, but fail in other parts. For the terrain around Fortress Kroth I had to cut the grass from the "Ground" model results and copy it over grass from the "Misc" model.

Adding a bit of HSV noise in GIMP to original texture can add a bit of detail in the final texture. In this example this helped making snow look less like shaving cream and more like snow. It is a very subtle difference. Adding too much noise would make it look more like sand.

In a completely opposite example denoising the swamp floor textures before using ESRGAN helped them look more like grass with leaves compared to original result that lacked any clear detail. Unfortunately for me GIMP denoising filter often creates dark spots in corners of the image, so I had to manually fix that for each texture, it was very annoying and time consuming.

To finish this on a positive note here is an example were the algorithm and the Misc model did an amaazing job without me doing anything. This is a very cery complex texture yet the ivy came out looking excellent, with defined individual leaves.