Sunday, August 2, 2020

Code & Stuff

It will have to wait...

Some of the email regarding early-access Zombie Guard 2

In the early release of of Zombie Guard 2 there was an NPC at the end of the available content who would ask if the user would like to submit feedback. I still receive these emails, even though this NPC has been removed months ago. This tells me that many are downloading the app through third party sites instead of the app store, or simply not updating the app.

This game has potential, but for non-compete reasons I cannot work on it as this would create conflict of interest with my employer. I was okay with this when I accepted this position.

Even though I work full time and code all day, I still reserve some time for coding just for leisure. Here are three things I have been doing:


Path-Tracer converted to C#. 40,000 samples per pixel.

I had written ray-tracers before, but never a path-tracer. To accomplish this faster I used this resource and converted the code to C# and researched the actual algorithms and math separately.

C# has become my primary language both for work and projects if given a choice. Over the years I had used C, C++, UnrealScript, Lua, ActionScript, Haskell, Python, LiveScript for HTML5, etc. But C# combined with Language Integrated Queries (LINQ) and good usage of properties and naming conventions is just so hard to beat; it may remain as my favorite for a long time.


I tend to prefer the Arduino over the Raspberry Pi because I'd rather use my laptop to write programs, rather than install an operating system on an SD card to code on the Pi hooked up to a monitor. Plus I have multiple Arduino boards which don't need an SD card, so I can deploy the same program easily over USB.

Arduino with a WS2812B LED strip

I have a few WS2812B LED strips and a bunch of random modules like thermometer, barometer, motion detector, camera, buzzers, buttons, bluetooth, etc. I use the FastLED library to light up these LED strips, so from there I can hook up any modules I want for custom behavior. I could have these light up as I walk down a hallway, or turn on at a certain time, or just have the colors light-up using a custom app over bluetooth/wifi. Or, I may just line these under kitchen cabinets and my desk. Exercises

In my opinion, day-to-day game programming involves more effort in code organization, usage of design patterns, and utilizing what already exists. It tends not to be especially heavy with complex and optimal algorithms, so I practice this on the side.

A lot of the fun in these hard problems is not necessarily getting it to work, but getting it to run optimally. Most of the time this involves a hashset or a large cache in some form or another.