There are allot of possibilities with #include <os>. But think about the application in games. The more i think about a game server, it makes much more sense as a service. This could be groundbreaking for UE. Am I dumb for thinking so?
So, I do realize this might be a little esoteric. So, What is a Unikernel Operating System?
Well in the most laymen terms. It is a set of operating system libraries. Developers choose which ones, are needed to run the application. It compiles and creates an image. This will run on a virtual machine monitor or hypervisor, without the need for windows or linux. What does that mean for Unreal? Well, for example. You have some game server you want to host. It runs on top an operating system distro, and it’s on a server, or maybe hosted at your own home on some machine. The only thing that server is doing is running the operating system to run your game server. Well a Unikernel Operating System allows you to boot into the game server application. Instead of waiting for the server to boot up the os and have the os boot up your application. As you can imagine this not only creates quick boot times. It creates a smaller footprint of what’s actually on the server. Wikipedia says. " Unikernels have been shown to be around 4% the size of the equivalent code bases using a traditional OS…" Crazy. There are improved security benefits too because of that small footprint. There is a much smaller attack surface than that of an application running on an os.
The drawbacks are simple. Changing something functionality wise means recompiling your entire unikernel and application. Then rolling that out onto your machine.
An idiot’s journey into an area with zero knowhow.
I’m going to be attempting to #inlcude <os> an engine repo. note, i have no idea if this can work, i have no idea how to accomplish it. I have no idea where to start. BUT im going to be trying it because why not. Also, i have a winblows machine so i will be taking a older hard drive wiping it and dual booting into linux for all of the development. so it will take awhile to get even a demo project up and running. because not only will i need to get a working version of include os, but also working with the linux unreal editor.
I do however have a plan of action or at least something to look into. What im thinking is taking the engine, looking for where dedicated server code is and attempting to include os there. Hopefully someone can lead me into a path of correctness or even better would want to help contribute to this. as its a pretty huge project.
This is very interesting. I’d love to hear if you find IncludeOS’ capabilities are broad enough to support UE4. If it can support UE4, it could support just about anything.
I’ve honestly always been surprised games didn’t go in this direction in the past(running on what’s essentially a dedicated barebones OS) for performance, it’s definitely a neat project and could be useful for UE4 if it works(I could imagine it being useful to Arcade vendors for instance).
I asked around and it would seem like it would work, but with allot of work to use includeOS’s current state. I will be looking to stay updated and work with includeos to learn it much better so that i may push my own engine to a machine. I need to get some experience first as this is actually a lot bigger of a project than i initially thought. even so, im dedicated to working with ue4 and include os for the long term, im actually looking to use UE4 as home automation software (i wanna gamify your home and how you interact with it, kinda a spiritual successor to the Dymaxion House), so allowing a ue4 server run on its own would be the best thing possible for me so i am pursuing this.