About the Game
Untitled Game is a 1-4 player multiplayer (online and couch co-op) game for Steam, where you:
- Blast baddies
- using custom abilities
- in a fully destructible world
- where every pixel is individually simulated.
The goal is pick-up-and-play chaos, where there's plenty of plausible deniability for you "accidentally" killing your friends.
If you want to see screenshots or whatever, read my latest updates!
More details
True facts:
- Heavily inspired by Noita for its pixel physics.
- Other inspirations are Broforce and the Helldivers & Risk of Rain series.
- 2D Pixel art style, since every pixel is individually simulated.
- "Every pixel individually simulated" means each pixel has its own physics and can react with nearby pixels - fire sets wood alight, acid burns through rock, etc.
- Action-platformer - no precision jump timing necessary, though some skill won't hurt.
- Both online co-op and couch co-op multiplayer support.
Probably true:
- Procedural ability-crafting to provide a limitless variety of guns and abilities to set off wild environmental chain reactions.
- Mission-based, kinda like Helldivers, but with Looping, like Risk of Rain.
- Unlock new abilities by completing Missions.
- Sci fi alien worlds setting.
- Levels partially handcrafted, with randomized elements.
- Action driven, not story driven.
Things I don't know yet:
- Versus mode, just for laughs?
- Level editor/sand-box mode built in?
- Replay mode?
Status
Being developed full-time by 1 person since January 2024, with contractor assistance.
Targeting a Steam release for Windows, Linux (including SteamDeck), and likely MacOS too.
Release date is in the air, but I share updates and playable demos weekly.
FAQ
How does the online multiplayer work?
The netcode is based on peer-to-peer deterministic-networking-with-rollback, which is the same tech as what good-netcode fighting games use (specifically, a custom fork of GGRS, which is itself a variant of GGPO). I have written lots about how it works - check out the updates around November 2024.
It will probably be "invite your friends" rather than "find a server to play with strangers" matchmaking.
Online multiplayer does work on the playable web demo too, but I've manually disabled it in newer web demos for the time being.
Is the pixel physics simulation CPU-based?
Purely CPU-based right now, so a powerful multi-core CPU is desirable, and your graphics card will only be used for graphical effects. Here's why:
Firstly, the rollback-networking multiplayer netcode requires:
- high performance rollback & re-simulation (2ms per tick, worst case), which may run into memory bandwidth issues if using GPU-based simulation.
- perfect cross-platform determinism, which is even more difficult to pull off when GPUs are in the mix (different graphics card manufacturers cheat with maths in different ways).
Additionally, in online multiplayer, players can move away from each other, which increases the memory requirements as more simulated pixels need to be kept in-memory; older or lower-end graphics cards may not have enough VRAM for that.
Lastly, browser WebGPU technology is not widely-deployed enough yet for compute shaders to be a feasible option for the playable web demo (and even if it were, the browser WebGPU spec does not support a few highly-desirable-for-performance extensions - like atomics).
So a rewrite of (or option for) the pixel physics simulation to be GPU-based instead is not 100% out of the question, but it is fairly unlikely at this point.
Will it support mods?
Yes, at least some modding will be supported. Right now there's support for data tables like physics materials, ability stats, etc to be sourced from config files to tweak stats or add new ones, and of course sprites are swappable too.
Scripting is not currently implemented because the combination of "needs to be fast" and "needs determinism for network multiplayer" and "can work on the web" is tricky - the programming languages that support all three of those things are not scripting languages! But, since the final game won't ship on the Web, I may eventually bite the bullet and integrate a scripting language.
Steam Workshop support would be nice but I haven't looked into exactly what it entails yet.
Can I play with more than 4 players?
The balancing (and UI design) will be for 1-4 players.
But the engine is written to support up to 8 simultaneous players, and could in theory handle more with minimal changes - so I may allow more than 4 players via an unsupported config file change.
Note that everyone would need to have powerful CPUs, and ideally be within about 60ms ping with reliable wired network connections (or accept a little bit of extra fixed input-lag) if you were to try and play online with more than 4 players, as almost every simulation-tick would require a rollback & resimulation of at least some previous ticks.
Will the Couch Co-op support split-screen?
Not sure yet:
- Currently all players playing on the same computer need to stay on-screen.
- I would like to offer voronoi splitscreen as an option, but no promises.
Will it natively support ultra-widescreen monitors?
I develop on a 3840x1600 (that's 24:10) monitor, so I will aim to at least support that well.
You will likely need a powerful graphics card for lighting effects at high resolutions (TBD; global illumination lighting is not implemented yet).
Will it support >60hz monitors?
Maybe. The simulation always runs at 60hz because it is tuned for that (and simulation tick rate must be identical for all multiplayer game clients), but support for high refresh rate monitors ought to be possible using interpolation to provide smoother movement. No promises.
Can I zoom out more than Noita?
I am aiming for the game to render simulated pixels at 2x or 3x zoom; 2x zoom would be more zoomed out than Noita. I'm not planning on allowing arbitrary zoom levels currently, but that might change as I work more on art direction and associated shaders.
Will this have secrets?
You will have to wait and see :)
Tech
A custom engine written in the Rust programming language, currently using Macroquad for rendering, input handling and window management, with Rapier for physics, egui for placeholder UI, and networking uses a custom fork of GGRS (which is itself a variant of GGPO).
The engine supports similar things to Noita's Falling Everything Engine:
- Every pixel ("atom") on screen is simulated using a cellular automata-like approach.
- Powder, liquid and gaseous (liquids with negative gravity) atoms are supported.
- Atoms can react to each other:
- coal and wood burn, dense atoms displace lighter atoms, fire atoms react with water atoms to make steam, steam condenses on ceilings, etc.
- Atoms can also be part of rigid bodies for traditional physics-based gameplay:
- Explosive barrels can go flying before they explode, bridges/roofs can fall down, dead enemies will ragdoll, etc.
Unlike in the Falling Everything engine, great care has been taken to ensure that all calculations are deterministic, which enables things like online multiplayer and replays.
If you are still curious about the tech, I have written many words about much of it.
Still here?
If my ideas are that intriguing to you, you may wish to subscribe to my newsletter: