Porting a fork of SurrealEngine to Haiku

Hi all,

Just wanted to share.

Surreal port to Haiku:

  • Game loads with both stock mesa and nebula but the rendering/quality is much better with nebula:
  • Currently a work-in-progress so no hpkg yet but you’re welcome to build the source, here’s a how to. ( p.s. it’s a rather large and long build ).

Follow

Demo Video

9 Likes

Getting closer :slight_smile:

4 Likes

:slight_smile:

1 Like

Hpkg now available for testing

This installs all the necssary files in /boot/system/apps/SurrealEngine

Map and UT binary files required

To Play:

Notes: v436 works really well. Anything higher may not work as well. Works really well with nebula graphics stack. Runs okay with default Mesa stack when not in fullscreen mode.

  1. Place UnrealTournament99 Game Folder in /boot/home/UnrealTournament_cd_436_patch as so
  2. Open Terminal to /boot/system/apps/SurrealEngine/bin
  3. Copy and Paste this into Terminal:
    SE_DEBUG_FORCE_NULLTEX_WORLD=1 ./SurrealEngine /boot/home/UnrealTournament_cd_436_patch/
  • Replace “UnrealTournament_cd_436_patch/” with the actual directory you use.

Main Issue:

  1. Currently, map lighting textures is broken and that’s why SE_DEBUG_FORCE_NULLTEX_WORLD=1 is used.
    But hopefully will get that fixed soon :slight_smile:

Other known issues:

  1. The main startup SDL window appears blank. Moving the mouse around or resizing window fixes that.
  2. Exiting fullscreen and trying to move the game window sometimes jumps to bottom right corner.
  3. Characters appear dark.
  4. Networking is missing.
  5. Fullscreen mode with default Haiku Mesa is a bit sluggish

Download
Demo Video with nebula graphics stack
Demo Video with base Mesa graphics stack

1 Like

honestly, if I’d maintain the upstream project, I’d be pissed after writing a certain md file. Anyways, I’m pretty much finished with a patchset and recipe. I’ll only have to check some licensing related stuff. I’ve already done a PR on haikuports for it.

I honestly have no idea what you’re talking about regarding the md file,
but from the looks of it, you also are porting SurrealEngine to Haiku.

That’s awesome!

I ran into the same mouse bug but I think I got it worked out without having to switch to SDL2.

Trying to get this darn dark textures fix has been a struggle. Hopefully will get them resolved. Then I will move on to making networking work.

All the best!

I never had those problems with texturing. About networking, perhaps look into the upsteam Status.md (It’s currently not implemented)

About that md file: the upstream maintainer told you about it when you tried upstreaming it (Add initial Haiku OS build/runtime support by ablyssx74 · Pull Request #356 · dpjudas/SurrealEngine · GitHub). I dislike it in general when people ignore wishes of the upstream maintainer. At least fork it then.

Making some headway on the networking.

fixed the texture bug. Probably related to opengl. My port doesn’t use vulkan. May test vulkan later, low priority.
texture bug fix also fixed the bots showing dark.
fixed the normal window resize bug.

No updated hpkg yet. Just source has updates.

4 Likes

In case any one is wondering about this project of mine. and the message above regarding the merge request I accidentally sent to the upstream maintainer, here is a detail list of events. Hopefully, it will help others to avoid similar mistakes.

  1. First thing I did was create a fork of the project.
  2. Started my project and as Claude sent updates, I would go to github create a merge request, than manually set the main repo that automatically tags the upstream as default, to my forked repo.
  3. Merge and repeat the process for any new code updates.

Some where on step three, there must of been a slip up in the browser and a merge request was sent to the main upstream maintainer. I happen to see the email merge request rejected status and promptly replied to the upstream maintainer, as you can see in the link.

So, to circumvent this ever happening again, I told Claude to skip asking me to merge new updates, and to directly edit my main repo fork. This saves me from having to manually switch back and forth in Firefox with github, claude, and other tabs, accepting the merge request, and potentially making a mistake when pointing which repo to merge to. Now all I do is enter the command line and type git pull and build the updates.

Just a status report…

  • Still chomping away with online playing. Aiming for compatibility with v469* servers
  • v469* compatibility is the main goal for both normal playing and online gaming.
  • V469c seems to work great for offline playing. Still have not tested fully to see what doesn’t work.

v436 is pretty rock solid. No updates to the hpkg files yet, though source is up-to-date.

this amazing. all the best

1 Like