- C++
- Networking
- Game Design
- Gameplay Programming
- Data structures/Systems
About
Pyxis is an "infinitely" large multiplayer falling sand game with Box2d physics and easy to create elements!
Like all my attempts at falling sand games, it is inspired by Noita. Pyxis is my best personal project, taking after my many attempts to make a falling sand game.
The multiplayer uses Asio, which is now built into Pyxis Engine, after following tutorials from javidx9, aka "OLC". Asio is a "cross-platform C++ library for network and low-level I/O programming that provides developers with a consistent asynchronous model using a modern C++ approach." The Factorio Blog was also a huge help in programming the networking, as there were a lot of good blog posts describing in detail and with diagrams their methods on synchronizing multiple clients running a simulation!
The rigid bodies are a Box2D integration, where I use a culmination of a marching squares algorithm to find the shape outline, a Douglas-Peucker algorithm to simplify the polygon, and triple-skewed rotation to preserve pixels when rotating.
Just like Pyxis Game Engine, the project uses Premake 5 to build solution files, and currently has support for windows, but should be feasable to make Linux or Mac support using it.
In GDC 2019, there was a session held by Nolla Games' Petri Purho, who goes into great detail on the methods used in the Falling Everything Engine built for Noita. I used this as a guide when implementing various systems!
What I've learned
I've learned a lot about:
Transforms / Algorithms
- Pixel Preserving Triple-Skew Rotation
- Marching Squares
- Douglas-Peucker