Here’s a short video demonstrating a small project I recently worked on. The objective was to take the 26 year old light flickering code from the original Quake (also used in Half-Life, Half-Life 2, Portal 2 and Half-Life Alyx). Last year it made the news after some folk synced up videos of the lighting in each game and found the flickering matched exactly.
Converting the code started by pulling the original lighting patterns from the Quake Source Code and converting it into C# for my little WinForms app.
From there I simply added a ComboBox with the options, a Setup button (to make a connection with my Hue Bridge) and a Start/Stop button to control the flickering.
The characters represent the flickering pattern, e.g. ‘mmmaaaabcdefgmmmmaaaammmaamm’ is ‘Candle (second variety)’ which ultimately gets converted into a number between 0 and 255 which is sent to my study Hue light as a brightness value allowing it to work with any colour.
It turns out that it’s hard to make a decent quality video when you want to show something on the screen and room lighting!
Duke Nukem 3D was released in 1996 and sits amongst the top first person shooters of its time alongside games like Quake, Doom, etc. It is also known for the game engine under the hood called ‘Build’ which has been used as recently as 2019 for Ion Fury.
Playing it in 2022 turns out to be straight-forward. All you need is a…
Legal copy of the game (GOG, Steam, Disks, etc.) so you have access to the files DUKE3D.GRP and DUKE.RTS files
Download EDuke32, a source port of the original and extract it
Lately I’ve been loading large datasets into Microsoft SQL (MSSQL) and found the quickest way to do so is using BULK INSERT, even from .NET (instead of SqlBulkCopy for example). Chatting to people, it seems not many knew you could load data straight into MSSQL from a file using this, so I thought I’d write it up.
In my example I’ve downloaded a 5 million row CSV from this neat source and used the following command to load it into my local MSSQL server.
You’re able to load 5 million records in 20 seconds into the table.
Now, the gotcha (isn’t there always!) is that the file is relative to the SQL server and not the machine you’re running the command on. Which seems obvious when you say it but it does mean that if you’re writing an app that makes the file then both systems need to be able to access a shared folder. This is also true on Azure, but you’re able to use Azure Blob storage to get around it.