by Bill McKessy - Senior Game Engine Developer at Pixie Interactive

This is an article written to be paired with the Northern Guilds game engine tech demo found at: play.northernguilds.com.

Hi, I'm Bill -- the person currently responsible for developing the rendering pipeline for the game engine of Northern Guilds. I have over 15 years of professional experience programming all types of interactive real-time multimedia experiences. I build things like 16-bit microcontroller-driven LED art installations, custom VJ software, and interactive educational installations.

Most of my work over the last decade has been on the US Pacific coastline where I built high-performance interfaces for cybersecurity companies that needed to visualize and sort millions of pieces of information in real-time. Only a WebGL accelerated interface could provide a smooth experience to our users in the SOC (Security Operations Center). Being able to go beyond the DOM and deliver a high-performance video game-like experience was the competitive advantage I provided to whatever product I worked on.

I am excited to take my experience developing production-ready GPU accelerated web interfaces and apply it towards producing a groundbreaking browser MMO game.

Evaluating Our Needs

We are building a two-dimensional pixel-art game. Those design parameters are at the center of every decision we make from our asset pipeline to our gameplay mechanics. Our artists create assets as image files in different tools like Tiled, Aseprite, and Photoshop. Our camera is at a fixed angle relative to the world. We don't have to make sure our draw distance is satisfactory, etc. 2D, pixel-art, top-down, orthographic -- these are all design parameters we made on purpose that limit our scope -- but also enable some interesting outcomes.

Why Not Use Unreal or Unity?

A valid question and the answer is three-fold; with the first involved in Licensing. Our status as an NFT game is complicated enough as it is. We don't want to hang the license of an engine around our neck only to find one day that we cannot legally operate our game.

Second, blockchain integration is just not mature within those engines, and our colleagues in Web3 gaming have not painted a pretty picture when we have asked about their experiences.

Finally, we feel that something designed from the ground up for the web is best. Unity and Unreal are groundbreaking pieces of software and they genuinely make the world a better place, but they are not a good match for our game. While both Unity and Unreal support the ability to do 2D or 2.5D games, you would be surprised at how many weird hoops you have to jump through to make those rendering pipelines pixel-art perfect under every condition.

I am not saying you can't make a pixel-perfect 2D web-based MMO game with either of those tools. I am positive that someone with a lot of professional experience with Unreal or Unity could easily deliver us a great solution. I am saying there is better tech out there for us -- PixiJS from Goodboy Digital.

Why PixiJS

Speed

PixiJS is very fast, and under certain conditions, it is stunningly fast! Check out the bunny demo. Thankfully, our needs align with the conditions where PixiJS is stunningly fast. With PixiJS, any recent computer or mobile device can push over 100,000 sprites on the screen at a locked 60 frames per second. RPG games will have less than 50,000 individual sprites per zone, and you would never have more than 5,000 moving sprites on the screen at the same time. This means PixiJS is orders of magnitude more capable than our requirements, which is where you want to be when deciding on a technology.

Compatibility

Predictability is the cornerstone of any art asset workflow, and the pixel-perfect native support for sprites (and animated sprites) means there are no surprises. You cannot put a price on predictable output, and PixiJS never does a bunch of stupid crap. By stupid crap I mean: half-pixel flickering, floating-point induced Moiré effects when scaling, edge artifacts, z-fighting, etc.

Developer Experience

The PixiJS API is mature and top-notch. Beginners can get sprites on the screen with 3 lines of code, and expert users can construct advanced pipelines with novel use of the same patterns.

Web First