Nucleus is a virtual Unix-like operating environment written in MonoGame that also acts as a game engine for games not unlike ShiftOS or The Peacenet that require a simulated OS as part of their experience. Nucleus is that OS.
I started development of Nucleus initially as a general-purpose game engine, but then I realized that I quite simply didn’t need one. I wanted to write an engine I could use for my games, but if a game I decide to make is advanced enough to need 3D, I’ll just use Unreal. If it’s simple enough that I’m just working with sprites, I’ll use MonoGame directly. But I still wanted to write an engine, and I realized that most game ideas I have involve some sort of simulated computer operating system – so I decided to develop one as a game engine. And that’s what Nucleus is.
Nucleus is not a real OS.
Nucleus is what you’d call an operating environment – if it’s even that. You know how back in the day Windows was a program you installed that ran on-top of DOS? That’s an operating environment, and I guess, so is this. Really, Nucleus is more of a shell than an operating environment since it still needs to run inside a host OS. Whatever. Even then, it’s meant to be a game engine for creating games like The Peacenet that are played through a virtual OS. I wouldn’t use Nucleus as a daily driver at your local home, office, school, or viral quarantine zone.
Nucleus has or will have these features:
As a game engine
- Container-based GUI system
- My multi-color MonoGame text renderer
- A basic screen manager
- My own mouse/keyboard input manager
- A really freakin’ handy brush renderer system
- Window management
As an operating environment
- Customizable graphical shell
- sh-like command-line interface
- ANSI-compatible terminal emulator
- virtual desktops
- virtual filesystem
- virtual process management
- Possibly some sort of script or binary execution system, or both, haven’t decided yet.
- ShiftOS skin support, maybe.
- With that said, GUI skinning.
This is one of those projects I want to be open-source, and so it is. However I ought to rename the GitHub URL eventually. Nonetheless, you can access the code here. The coide is licensed under the MIT license.