Haiku as a gaming OS?

I think it would be interesting to put some games on Haiku, simple ones for now and more advanced ones when we get hardware acceleration on newer GPUs, what do you guys think about this? Are there any games in specific you’d like to see on Haiku? I’d like to see Clone Hero on Haiku, but that would require a port of the Unity engine.

3 Likes

I’ve successfully played Elder Scrolls 3: Morrowind (OpenMW) and the Half-Life 1 trilogy (Xash3D) on Haiku.
That with 3D acceleration would be awesome.

3 Likes

Such a lightweight but powerful OS should make a great gaming environment when completed with 3d acceleration.

@bobsmith
Unity generates WebAssembly code in the latest version so if it works in WebGPU or WebGL, it may be possible to port once WebPositive becomes more feature-complete.

I don’t know how far behind the browser Wasmer’s WASI environment is but it should be much faster. Presently, graphics and sound aren’t supported in WASI yet.

Can you create a tutorial to configurate and installiert this games?

Would be a nice work for the community.

2 Likes

It’s really straightforward, you just need to copy the game data files from the original game installation. I think you can just follow the Xash3D/OpenMW instructions from the respective websites.

It might be a good idea to set up a wiki for third party Haiku application instructions some day. I’m just not sure I’m the right person to do that. (currently struggling with a burn-out)

1 Like

We have a knowledge base for that:

https://www.besly.de

I can not do it by myself, because i have not these games

1 Like

No offense, but WebAssembly would probably be the least efficient and laziest way to get Unity to run.

WebAssembly isn’t much less efficient than any other C++ compiler framework. It’s everything else in the browser that makes it slow and inefficient. WebGL can’t hold a stick to WebGPU either. (The former being OpenGL-ES in a wrapper while the latter is Vulkan in a wrapper.)

Why so many people so fixated on playing games? I never understood why adult people plays games and why they call this activity “gaming”. There is simply no word like that, but this is not the biggest problem with the whole concept. Also i never understood why some folks are like “lightweight platform? check! THEN GAMES!”

Personal computing is in a terrible shape in 2021. I have imagined a much more interesting future back then than rgb leds and games. :frowning: oh, and 6*10^23 DPI mouse obviously with leds.

2 Likes

I’d like to play adult games on Haiku, of course!
There are already many great games ported to Haiku, Warmux and The powder toy are some nice ones for example (0ad is also ported but seems to be broken? I doubt it would run well without gpu accel in any case)

Webassembly is a bytecode, not sure what you mean by compiler framework, byte code does not care what you think the source langauge was. Anyhow, it’s fairly pointless to try and use the WASM target that unity uses for the web for native applications, you’d be working pretty much against the system, its likely way easier to use the native machine target and make it use OpenGL or vulcan as normal than trying to use WASM and then trying to teach it /not/ to use WebGL, and add to that that WASM wouldn’t save you any porting effort whatsoever, you still need to do all the native bindings as before.

If you want to run unity games on “the web”… eh, seems like a bad Idea, even on powerfull machines on “modern” windows browsers they run pretty terrible in my experience, I doubt WebPositive will deliver what you want here.

1 Like

adults playing games != adult games.
But i definetely misunderstood this sentence because i don’t play any games (ok, once a year so far when i fellt ill i played a bit supermario 1 dos version, not because i adore it, but thats the only thing i can play and which doesn’t try to get me signed up for a subscription, but even that ended, because it seems corona eliminated my yearly illnesses. No value lost.)

I agree on that point. That’s why I brought up WASI afterward. It is about six times faster than WebAssembly on the web while still leveraging the same bytecode. That’s why I’m not going to waste my time with WebAssembly on the web until I’ve at least got Wasmer running.

re:Framework
I was referring to LLVM here since WebAssembly originally targetted LLVM almost exclusively.

LLVM has it’s own bytecode, maybe you are confusing WASM with LLVM IR?

  1. Tell me something on Windows that does “not” run slow
  2. Tell me something made with Unity that does “not” run slow… or plain out sucks :smiley:

    Okay… Unreal Editor is slower… It eats your system alive and spits it across the entire room. :roll_eyes:

LLVM IR was tried in PNaCl and later rejected as the portable bytecode used on the web because it changes with every major release. ASM.js was a competing standard from Mozilla. WASM is a compromise between the two.

ASM.js is a javascript subset… WASM is a bytecode optimized for arm and x86 transpilation, I don’t see how those are related.

Throwing WASM against every problem is not really going to solve anything. All of the scripting in Unity is generally done in C# and AOT’d to native code… I think using native would just be a better idea. Games is one place you don’t want to compromise. Jonathan Blow famously started to write his own compiler because he grew tired of C++ and nothing else fitted his requirements (must be native code, must not JIT, must not use managed memory and object lifetime (i.e. not garbage collected.)

Another reason using any form of WebAssembly is bad is that I’m looking to see/get games running in engines like UE2, UE4, Source Engine, and Renderware to run, official source or community made clean room RE projects in the case of Renderware. I have the most knowledge on Source and can confirm the Source SDK 2013 contains the code to build the binaries of the engine and it’s probably possible to port the game to Haiku, along with the fact it already runs on other POSIX systems like Linux and Mac OS X.

To be fair, I have no programming knowledge whatsoever but I at least have general knowledge about most of these engines and I’d imagine it wouldn’t be super difficult to get Source or UE2 running considering the fact they both have DX and OpenGL renderers.

Rust fits the bill for his requirements… Except that it uses LLVM as its codegen and can therefore generate similar quality code using WASI also.

Re:game engines
The reason I thought WebAssembly would be useful in this case was that I thought Unity was closed-source. Also, trying to repeat the port every time a new architecture is added would be a pain. That’s why having a central code generation framework like LLVM or GCC is handy.

Well, no - he eliminates Rust because it it too “high friction” (his words.) The fact it cares too much about safety is his main peeve.

The fact it may of may not use LLVM is not really relevant because he wants to target the native code backends. He wants native code, he doesn’t want interpreted, JIT’d code or anything with any kind of additional overhead. What he came up with is actually far more interesting than what you are suggesting anyway. It is worth looking in to.

You can’t avoid this. Performance is the one thing you need and the one thing you sacrifice in spades using anything that is not compiled to optimised native code. You want full control over the low level execution. Any kind of additional layer on top, no matter how clever, will reduce the performance. Think of it this way - have you ever tried to emulate a mid 2000’s console on modern hardware? Without a lot of optimisation and clever tricks, modern hardware can’t play games from far unsuperior hardware. This is kind of what you are asking to use WASM/WASI/WebAssembly to do.

2 Likes