# Erik McClure

##### Name Shadowing Should Be An Operator
I recently discovered that in Rust, this is a relatively common operation: let foo = String::from("foo"); // stuff that needs ownership let foo = &foo; Or this: let mut vec = Vec::new(); vec.push("a"); vec.push("b"); let vec = vec; /* vec is immutable now */ This is a particularly permissive form of name-shadowing, which allows you to re-declare a variable in an inner scope that shadows the name of a variable in an outer scope, making the outer variable inaccessible.

A highly modular game engine built around a Entity Component System, using ordered systems and optimized component arrays. Comes with built-in support for PlaneShader, Box2D, LuaJIT, and TinyOAL, but can easily be extended to unify any set of technologies needed.

An adaptive, hybrid 2D graphics engine with automatic batch rendering. Currently only supports DirectX on Windows, but can be extended to different graphics APIs and platforms in the future. Allows 2D games to integrate simple 3D effects, and allows implementing a fully gamma-correct 2D lighting pipeline.

An anti-spam bot for Discord used by over 1000 servers spanning nearly a quarter of a million users. Primarily designed to detect and neutralize raids or trolling attempts, and to augment discord’s existing moderation tools. Many users joining at the same time will trigger a lockdown to help immunize the chat against raids. Patreon supporters also have access to a chat log that allows moderators to track deleted messages.

Feather is a lightweight GUI abstraction layer that separates functionality from implementation. By internalizing all GUI behavior, implementations of Feather need only to render widget components properly and handle any OS-specific needs. This allows Feather layouts to be opened as both native executables or embedded in games without needing any special treatment. Written in minimal C, Feather is simple to integrate into higher-level languages.

4 years in the making, Aurora Theory is a compilation of all the songs I managed to make while attending university. The earlier songs were extensively improved, and all songs were remastered for the album’s release.

Buy it on Bandcamp for $7, or$10 on iTunes, Amazon, and Google Play. The album is also available on Spotify, last.fm, other online radios, and can be previewed on YouTube.

The Black Sphere Studios Utility Library is a collection of miscellaneous utility code and algorithm implementations in modern C++17.