return to table of content

SurrealEngine: Open-source reimplementation of Unreal Engine with playable UT99

modeless
40 replies
1d1h

I just ported Quake III to the web with multiplayer and mobile support: https://thelongestyard.link/. I was hoping I could use this project to do Unreal Tournament as well, but it seems like it's not that playable yet.

I wish Epic had GPL'd their old releases the way id Software did. I'd especially like to have UT2k4. I played a lot of ONS-Torlan in college.

Instead of UT I may do Serious Sam next. Serious Engine was open sourced and there's already a web port (without multiplayer): https://www.wasm.builders/martinmullins/serious-sam-in-the-b...

jamesu
10 replies
1d1h

I'm half-way porting another turn of the century game engine to emscripten but I'm a little stuck on the networking so it's pretty cool being able to have practical examples to reference.

modeless
9 replies
1d1h

Cool, which one? I've also done Cave Story https://thelongestyard.link/cave-story/ and I'd like to do a bunch of the old shareware classics as well.

Multiplayer on the web is tricky. For non-action games you can get away with WebSockets but for arena shooters or other action games I think UDP is important, and you can only get that with WebRTC and all the baggage that comes with it. I'm using a library called HumbleNet to handle WebRTC, but I had to make a lot of changes for it to be usable. https://github.com/jdarpinian/HumbleNet

lytedev
3 replies
1d1h

Has there been any progress with using browsers' support for QUIC for latency-sensitive game networking?

modeless
2 replies
1d

There is WebTransport which is based on HTTP/3 (formerly QUIC), however it is not available in Safari (no surprise there) and also it does not support peer-to-peer connections.

WebRTC is available today in all browsers and supports peer-to-peer unreliable UDP.

thot_experiment
1 replies
23h6m

Is there a reasonable networking library for just throwing data packets somewhere using WebRTC in browser, specifically with a client-server rather than P2P? I've probably started work on such a thing like 4 times now but I've never gotten very far because I always found that whole stack incredibly convoluted and onerous to work with if you're not using it for it's intended usecase, but I really would like to have a go-to library to make little multiplayer webgames that use UDP under the hood.

modeless
0 replies
22h9m

Yeah WebRTC is not a well-factored API. It's basically almost an entire end-to-end implementation of a video calling app Google acquired and bolted on the side of Chrome. If what you're making is not a straight video calling app then it's a very strange API to use. But it does work!

The problem with WebRTC for this kind of application is the need for a whole separate "signaling server" just for connection establishment, plus STUN/TURN, plus your actual application server makes three required servers. It puts a really high minimum on the complexity of any WebRTC app. For a client-server only application you might be able to combine all three servers into the same binary. I haven't seen a library that does that, but maybe it exists, I haven't looked extensively.

The HumbleNet library that I use provides an implementation of the signaling server for connection establishment, and for the client app it hides all the WebRTC complexity behind the BSD sockets API. So all you need to do is host the server.

jamesu
2 replies
23h43m

In my case I'm porting an earlier variant of the Torque Game Engine, so making it work with WebRTC would really come in handy!

modeless
0 replies
23h39m

Nice! I thought about trying to port Tribes 2 but I never played it myself so it wasn't high on my list. My HumbleNet repo would be a good starting point but some changes may be required for it to work. It's not at the point where it can drop in and work on any game, although I think it would be possible to get there.

klaussilveira
0 replies
22h15m

Oh, that is nice! Been a while since I saw anyone working with TGE. I miss the GG forums and the community around it.

sho_hn
1 replies
9h32m

I did Tomb Raider a while back:

https://eikehein.com/stuff/sabatu/

I'll upstream the work to tr1x (which I contribute to) at some point.

modeless
0 replies
1h44m

Wow, this is awesome! Is your fork public? I'd love to try adding some stuff like touch controls and save file syncing like I've done for Cave Story https://thelongestyard.link/cave-story/

kridsdale3
6 replies
1d1h

Tim Sweeney is not quite as much of a bro of the people as John Carmack is. Sadly, as I like the guy otherwise.

bravetraveler
0 replies
7h41m

The Linux bit is so backwards. I realize I'm preaching to the choir.

His thinking perpetuates the problem, doing the more laborious thing of supporting Linux will net more freedom

andrewmcwatters
1 replies
22h3m

It shows in their architecture for their respective engines, too. Unreal just isn't as nice compared to id Tech.

justin66
0 replies
15h53m

Do you develop professionally on current idtech code? Or are you comparing present-day, easily available Unreal Engine code to what id most recently made available under the GPL, which is essentially twenty year old code?

justin66
0 replies
1d1h

Given the easy terms of availability of cutting edge Unreal code vs. whatever id is doing nowadays, he's doing okay.

extraduder_ire
0 replies
1h0m

I think it was someone other than Carmack that was pushing for source releases and linux ports inside of Id. They stopped doing it a while before Carmack left even.

thot_experiment
5 replies
23h11m

Ut2k4 is so fantastic, I still have a scar on my forehead from the first time I played the demo on a CRT sitting on a chair and my friend tackled me into it to "save me from a sniper". I would get up at 4am because I had a bedtime but no wakeup time and play 4 hours of CTF-Face instagib before school. Q3DM17 also holds a special place in my heart, I'm getting a tattoo of the "Impressive" emblem in a few weeks!

Not a day goes by that I don't pine for turn of the century FPS gameplay. (and maybe my turn of the century reflexes)

orthecreedence
1 replies
20h46m

Instagib was the only way I'd ever play. And the bots in the game were actually (adjustingly) capable so I could play for hours just by myself.

paulryanrogers
0 replies
19h21m

UT's bots really helped at smaller LAN parties and get togethers. They weren't as competitive as professional players, yet could actually play the different modes and fill out the teams.

Before that point bots seemed only capable of team death match.

cdaringe
0 replies
21h38m

Haha this is incredible! I had a gap in my gaming years—I only enjoyed UT GOTY (a 2000 release?)—and sounds like the series carried the same kill streak sound bites over. Impressive is prob a safer tatt than HEAD SHOT!

cbull
0 replies
21h13m

If you have a copy of the game there's still playable servers using Openspy ( http://beta.openspy.net/en/server-list/ut2004 ).

I play regularly and the couple of servers I play on get full to the point nobody else can join...

NateEag
0 replies
16h39m

I was pining for oldschool UT recently, and found that Xonotic (https://xonotic.org/) has done a decent job of filling that void.

The player base is small, and the skill ceiling is extremely high, but it's a shockingly solid piece of work for a free, open source game.

klaussilveira
5 replies
1d1h

Nice. Did you use inolen/quakejs as a base, or new fork? Are you using WebRTC? Have you heard of HumbleNet? They also had a Q3 forked: https://hacks.mozilla.org/2017/06/introducing-humblenet-a-cr...

For the curious, FTEQW has an emscripten port as well, and FTEQW allows you to play Q1, Q2 and most Q3 maps: https://github.com/fte-team/fteqw/blob/1f9f3635f0aef3b2eed6b...

Also, the LvL LiveView is a great way to check Q3 maps in your browser: https://q3js.lvlworld.com/play/2043/media/633a9623b1b6458735...

What a time to be alive. :)

modeless
4 replies
1d1h

I did a new port of base ioquake3, and actually contributed changes back, so upstream ioquake3 now has decent Emscripten support. The multiplayer is using WebRTC DataChannel, based on HumbleNet but I had to make quite a few changes, as it was abandoned a long time ago.

Code is here: https://github.com/jdarpinian/ioq3 https://github.com/jdarpinian/HumbleNet

klaussilveira
3 replies
1d1h

Ah, so you are the prestigious jdarpinian! Thank you for all that hard work, sir!

Pet_Ant
2 replies
1d

If they have a different username here, it feels wrong to out them. If they wanted, they could have said it themselves. You could have thanked them without tying the username together in a way that is Google-able.

Kirth
1 replies
1d

the parent literally linked their own GitHub page...

homarp
0 replies
23h17m

and it is in their hn profile

justin66
4 replies
1d1h

UT2k4 deserves to live, but if we're being honest, there weren't a lot of people playing it during the last decade and a half. I wonder if being able to play it in a browser would actually improve that.

epolanski
3 replies
21h10m

Even the latest UT on UE4 had like few hundreds of players at best.

Seems like the genre is just not popular.

DidYaWipe
2 replies
16h27m

With the genre being FPS, or what?

I'm not really a gamer. When I discovered original UT I'd play it at work because my home computers never had good enough graphics. I loved the atmosphere of many user-created maps.

Is there no similar experience that's popular today?

archagon
1 replies
10h0m

Arena FPS of the Quake/UT era have been supplanted by CoD-style tactical shooters, slower team-based FPS like Halo, hero shooters like Overwatch, and battle royale shooters like Apex Legends. I don’t think a popular pure arena shooter exists today. (Though Splitgate and, to a lesser extent, Halo Infinite scratch the same itch for me.)

I’m optimistic, though. Adventure games were dead for a while but eventually came back with a vengeance. I doubt the desire for quick, pure shooty fun will ever go away.

zdragnar
0 replies
3h17m

I had played UT2k4 almost exclusively for months before ever trying halo, since I didn't own a console. I eventually played at a get together at a friend's house and genuinely couldn't understand why Halo was so popular- the speed was so slow.

I eventually appreciated it a bit more, but UT will always have a special place in my heart.

nsbk
0 replies
21h14m

Goosebumps

amatecha
0 replies
10h32m

It kinda makes me want to play WarCraft II haha, similar awesome vibes!!

pipes
0 replies
1d

Impressive! :)

accrual
0 replies
22h28m

I managed to play some ONS-Torlan this past weekend with my friend on a pure LAN (no Internet), it was fantastic and just as much fun as I remember. I enjoy turning on lots of fun modifiers like low gravity, big head mode, berserk, etc.

newsclues
25 replies
1d2h

I still can’t believe epic hasn’t released a modern Unreal Tournament game.

jval43
9 replies
1d1h

Any recommendations for the genre? Most games are just way too slow nowadays.

oneshtein
3 replies
1d1h

Tactical-Ops: Assault on Terror was very good. However, Urban Terror was good replacement, when it was alive.

DANmode
1 replies
11h32m

Is it slow, or truly dead?

Urban Terror's death has been exaggerated before =]

oneshtein
0 replies
2h25m

Urban Terror in Fedora cannot be ran, unless symlink from /usr/share/ to user /home/ is made. When I ran it anyway, I saw zero users at all servers and maps, including Eagle.

nullify88
0 replies
11h19m

Oh good times om Tactical Ops. I did enjoy Verdon a lot.

unethical_ban
0 replies
1d

Quake Live, Quake Champions both have some activity. I don't think either has the numbers for big onslaught maps like the good old days.

doublerabbit
0 replies
1d1h

There isn't. It's a genre that's pretty much dead.

brink
0 replies
1d1h

Titanfall 2 is really good.

atom-morgan
0 replies
1d1h

Quake Champions is the best I've found.

Lammy
0 replies
1d

Unironically Splatoon 3. It's so fun once you master the motion-controlled aiming and Squid Rolls and all that. Clam Blitz especially is the most fun I've had in any multiplayer game in years and really scratches that old UT2004 Bombing Run / Tribes / TF2 itch: https://old.reddit.com/r/splatoon/comments/13eslyb/at_the_bu...

ThrowawayTestr
4 replies
1d2h

They were working on it but then Fortnight made a trillion dollars.

newsclues
2 replies
1d1h

So hire people to finish it?

nemothekid
1 replies
1d1h

No reason to hire people at Fortnite Salaries to complete a game that won't even make a million dollars. Arena shooters are pretty much dead.

unethical_ban
0 replies
1d

Yep. They can't get zoomers to spend $30/month on a "free" game's marketing skins if the skill floor is too high.

chupasaurus
0 replies
23h24m

Fortnite made a thrillion dollars because people who were making UT4 were tasked to make a little F2P mode for it called Battle Royale.

phendrenad2
2 replies
1d1h

To make a game as complex as Unreal Tournament 3 you're looking at millions in dev salaries alone. Meanwhile UT3 is still available to play, if anyone wanted to.

snarfy
0 replies
21h17m

Not really. You can't buy it, and it doesn't work online without community support.

Lammy
0 replies
1d

Not being as complex as UT3 would be a good thing. I wanted to love UT3 but it's so graphically busy that it distracts from the game play. Even UT2004 — as great as it is — misses the *SOVL* of UT99's simple geometry and colored lighting.

patmorgan23
2 replies
1d2h

There's a beta from like 5 years ago

newsclues
1 replies
1d1h

I know, but maybe if they want the epic store to be popular maybe release new versions of your classic IP on it?

chupasaurus
0 replies
23h25m

All games in the series before UT3 are co-developed by Digital Extremes so they aren't exactly theirs, also that's probably one of the reasons they were removed from everywhere.

failuser
1 replies
1d

You need to find a reason why it would be better than the original or UT2004.

Eisenstein
0 replies
21h6m

New game means new players.

kevingadd
0 replies
22h57m

They did, it failed. It was called Unreal Tournament 3.

bloqs
0 replies
1d2h

There is one that is on their site since fortnite released but stalled i think

mepian
12 replies
1d2h

Epic could open-source the original engine, like its former primary competitor id Software did with the old idTech engines.

Vt71fcAqt7
8 replies
1d2h

There were some plans to do so a while back:

We definitely can’t open source Unreal Engine 2 or 3, because of dependencies on a large number of external closed-source middleware packages with complex licensing requirements.

Open sourcing Unreal Engine 1 might be possible, but getting the source and dependencies into a releasable state would take a lot of cleanup effort that we just haven’t been able to find time for. I hope we can do it someday. [0]

[0] https://forums.unrealengine.com/t/unreal-engine-1/14084/6

johnnyanmac
4 replies
1d2h

Man, I try to think longer term so "a while back" can be 3-4 years ago.

then I see that comment made almost 10 years ago. I feel a lot of that goodwill went out the door once Fortnite became a cash cow.

ThrowawayTestr
2 replies
1d2h

Fortnite killed UT 4 and I hate it for that

MildlySerious
0 replies
1d

Yup. UT holds a special place in my heart, and the abandonment of UT4 cut deeper than it should have. It's not like they couldn't have afforded a small team to continue working on UT4. Not getting more Unreal Tournament, and not getting the original continuation of Prey[1] are my biggest frustrations when it comes to gaming.

[1] https://youtu.be/jfHCZAK7p-s

Vt71fcAqt7
0 replies
1d2h

My guess is that they are very busy and forgot about it. Maybe if someone reminds Tim he will do it eventually.

rasz
0 replies
22h44m

This is proprietary closed source mindset. Nobody is asking for bug free cleanly compiling and running codebase. Releasing with dependencies removed is enough, community would patch around it in no time.

Pxtl
0 replies
1d2h

Honestly in an era when so many companies are re-releasing and re-mastering and re-making their back-catalog, I'm shocked that Epic seems to have forgotten their roots.

Where's an Epic Arcade bundle of their 2D masterpieces like OMF2097 and Epic Pinball and Solar Winds? Why isn't Jazz Jackrabbit appearing in half a dozen mascot-themed Super Smash Bros ripoff?

Compare vs Capcom's remakes of all their classic Resident Evil games (Unreal 1 and 2 could get this treatment) and rebundles of all their arcade fighters and beat-em-ups. Or Id's annual rebundling of Quake 1-3 for new generations.

And it's not just big companies like Capcom doing that. How many times has little Croteam re-released Serious Sam 1st and 2nd encounters?

Meanwhile can you even buy UT2004 anywhere anymore?

bluedino
1 replies
1d

It'd be nice if they released the code to their old DOS game catalog. Probably piles of 16 bit assembly but it'd still be nice (assuming they still have it)

isaacbrodsky
0 replies
23h36m

It took a very long time for the source code for e.g. ZZT to be published, precisely because they apparently lost the code. https://github.com/asiekierka/almost-of-zzt Even then that had some third party comments removed from it.

sandelz
0 replies
1d2h

That would be absolutely great if it were to happen, especially if they'd choose more liberal license such as BSD.

I'm a sucker for software rendering and unreal engine 1 has even more advanced features in that department compared to the original Quake (1 and 2) engines.

Would love to port that to wasm if this ever happens.

There is https://github.com/RedPandaProjects/UnrealEngine but I don't know what are the legalities and such...

georgyo
4 replies
1d2h

You're complaining about a 3rd party library license that the project cannot change...

yodon
2 replies
1d2h

No one should use packages with licensing of this sort. The way the project changes the license is by changing which library they use.

lagniappe
1 replies
1d1h

People should do what makes them happy

yodon
0 replies
23h33m

Licenses are legal documents. They aren't supposed to make people happy. If they do, you're probably doing it wrong.

mdaniel
0 replies
1d2h

I know posting a top-level comment seems indistinguishable from wagging my finger at the project, but it was just a license rant. I hoped that by including the third-party link it would make it more obvious what was being commented upon but I guess not

thfuran
0 replies
1d2h

Presuming that there are actually jurisdictions in which those typical clauses about disclaiming any implied warranty and so on are important (and I wouldn't want to do otherwise), that minimal license seems like a terrible idea. Not restricting use is all well and good, but you don't want to somehow end up legally on the hook for someone using your code to shoot themselves in the foot, however much it seems like the fundamental problem there would be with the jurisprudence.

ndiddy
0 replies
1d2h

DUMB is essentially BSD, clause 8 says that clauses 4, 5, and 6 are null and void.

justin66
0 replies
1d1h

Use the jslint license. It has all the legal force of the 3-clause BSD license, but it also offends an awful lot of humorless people in a way that is funny to watch.

andrewmcwatters
0 replies
1d1h

Maybe it’s just me, but if you understand the history of audio libraries, it just sounds like a titular homage to LAME.

tedivm
8 replies
1d2h

This makes me so happy and brings back a lot of memories. I really appreciate all the effort that video game archivists put into keeping these old games playable.

neuronexmachina
6 replies
1d2h

Yeah, when I saw the screenshot of Facing Worlds the song from that level immediately started playing in my head.

manuelmoreale
4 replies
1d1h

If anyone is willing to set up a server I’m down playing some UT99. I should still have a GOG copy. Such an awesome game.

xhrpost
0 replies
1d1h

A potential side project I keep coming back is reimplementing the dedicated server for an old game like this. Even years ago when the games were popular, I often found the DS challenging to run.

sterlind
0 replies
23h24m

I used to play so much Bunny Tracks. It was like digital parkour, using physics glitches for acrobatics through crazy obstacle courses. Such a neat game format, but I never saw anything like it (besides Portal, kinda.)

amlib
0 replies
23h16m

Every year or so I have my fun with Quake 3 and UT99 with bots. They might not be as smart as a human opponent but playing on Nightmare and Godlike difficulty brings back that twitchy adrenaline infused moments I enjoy so much from those games :)

klaussilveira
0 replies
1d1h

You might get a kick out of: https://osgameclones.com/

Hopefully you find something from the past that can bring even more happy memories!

jsheard
8 replies
1d1h

My immediate thought was "this is like that project which hosts UE1 games inside UE5" and it turns out it's the same project, they've just rebranded from DXU24 to Surreal, and they now seem to have their own open-source frontend in addition to the license-encumbered UE5 frontend.

The developer has a bunch of WIP videos on YouTube: https://www.youtube.com/@dxu2424/videos

anthk
7 replies
1d

I think you are wrong. SurrealEngine was designed to reimplement the first UE1 as a standalone engine, not requiring UE5 at all.

jsheard
6 replies
1d

Seems I jumped to conclusions, both UE1 reimplementation projects are using the name "Surreal" but indeed there doesn't seem to be a direct connection between them. The more the merrier in that case. To set the record straight then:

Surreal98 (formerly DXU24) hosts UE1 games inside UE5. Plans to release as a commercial product?

SurrealEngine (this post) is a standalone UE1 reimplementation. This one is open source.

anthk
5 replies
1d

Yup. SurrealEnegine should run fine at least on 64/128MB video card suppporting SDL2 and Open GL 2.1 (or GL 1.4 by hacking up the engine renderer like crazy).

There's no point on reimplementing a game needing either a propietary engine (cough, cough, OpenMafia's switch into Unity) and/or a modern one with crazy requeriments defying the original purpose of replaying a game when a low end machine can't run a 20-24 years old game.

doctorpangloss
2 replies
23h42m

By that logic there’s no point in reimplementing the game at all. You should replay the game with an appropriate emulator. Or play the modern sequels.

szundi
0 replies
23h21m

Or buy an old pc and go with it haha

anthk
0 replies
23h2m

SDL2 it's multiplatform. With Unity, you are doomed with Risc-V, PowerPC or any non-released platform. Thus, the project it's already kaputt since the beginning.

Narishma
1 replies
17h32m

As far as I can tell from a quick look at the source, it only seems to support Vulkan as a rendering API.

anthk
0 replies
9h22m

These might be available soon. Is not like the community didn't mess with UT and Deus Ex renderers since forever. That's how GMDX works today on DX9/GL video cards (and even DX10 and 11).

Also, Deus Ex it's one of the most played games ever due to its cult status (and, well, people loves conspiracy theories on the 9/11 and the Covid and in-game terror attacks). Having a GL 2.1 renderer (even a software one) will be one of the first succesful tasks being done.

I'm pretty sure even PPC Amigans would love playing it on their machines.

DX might be like the old Nethack 3.4.3 which have been ported everywhere, even to more platforms than Doom.

rossant
2 replies
1d

I miss UT99 so much. I never came to like modern FPS games as much.

klaussilveira
0 replies
22h7m

UT99 sat in a place between Quake 3 and CS that was quite unique and interesting. It wasn't as fast paced as Q3, but not as slow as CS.

01HNNWZ0MV43FF
0 replies
3h40m

The art seems a lot cooler than many other games

robinpdx
2 replies
1d2h

Unreal Tournament 99 and Deus Ex are two of my happiest game memories. This is a really ambitious project and it’s lovely to see those old games getting some love! Still hoping for a Deus Ex remake…

kridsdale3
0 replies
1d1h

I would love so much for the eventual state of this project to allow us to modernize the original DX. I don't need a remake, just modern quality of life. I know there's extensive mods.

anthk
0 replies
23h1m

Get GMDX installed on top of the original game.

leecommamichael
1 replies
1d

Interesting, they've got a little GC in there.

kevingadd
0 replies
22h57m

In this time period, Tim Sweeney was talking in public about garbage collection, Java, etc. and it seems like the Unreal engine scripting and object architecture drew a lot of inspiration from bleeding-edge (at the time) tools and programming languages. The interview I remember reading at the time is no longer on the internet, but this touches on some of the same subjects: https://www.gamedeveloper.com/design/classic-tools-retrospec...

tryauuum
0 replies
19h39m

probably a good time to post this. I've dockerized unreal tournament 2004, it runs ok on linux x86_64:

    mkdir -p ~/.ut2004/; sudo docker run -it --rm -e DISPLAY=$DISPLAY -e XDG_RUNTIME_DIR=$XDG_RUNTIME_DIR -e HOME=/ --network=host -v /tmp/.X11-unix/X0:/tmp/.X11-unix/X0 -v /run/user/$UID:/run/user/$UID -v ~/.ut2004/:/.ut2004/ --user $UID:$UID --privileged --name ut2004 ikuinen.earth:5000/ut2004

roland-s
0 replies
20h8m

Does anyone have a good sense of how many dev hours it would take to write something like Quake/Unreal from scratch today? Not a port, but a full rewrite with a custom engine

matheusmoreira
0 replies
1d2h

This is incredible! I wonder how they reverse engineered it. Couldn't have been easy.

So many engines are getting the open source reimplementation treatment. I wish them all the success in the world and hope their numbers continue to grow.

jauntywundrkind
0 replies
23h41m

There've been a couple mentions of Unreal recently, and they keep making me semi wistful over the time I had playing U2:XMP (eXtended Multi-Player).

A nice capture-the-flag game with deplorables & vehicles. Amazing set of 3rd party maps. It'd be amazing to see this brought to a modern engine, especially if the maps could be imported.

dvngnt_
0 replies
20h32m

Another developer is making surreal 98 that allows UE1 games like deus ex and UT playable under UE5 with vr + mods and other modern features https://www.youtube.com/watch?v=p2M0hrLoA5M

deisteve
0 replies
1d

now if somebody can open source reimplement Rune which was made on Unreal Engine during this period

anthk
0 replies
1d

Deus Ex and GMDX on top of this: heaven.

andrewmcwatters
0 replies
1d2h

Wow, this is really cool.

I would love to also see some sort of diverged reimplementation of the Unreal Engine that worked on a fixed tilmestep instead of a variable one, but it seems like maybe this implementation is faithful to the original engine behavior as well.

SirMaster
0 replies
1d2h

Love the name lol

H3BCKN
0 replies
19h16m

How was it achieved? Is the original UE open source, or was it reverse-engineered?