[HN Gopher] SurrealEngine: Open-source reimplementation of Unrea...
___________________________________________________________________
SurrealEngine: Open-source reimplementation of Unreal Engine with
playable UT99
Author : klaussilveira
Score : 274 points
Date : 2024-08-23 14:50 UTC (8 hours ago)
(HTM) web link (github.com)
(TXT) w3m dump (github.com)
| tedivm wrote:
| 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 wrote:
| Yeah, when I saw the screenshot of Facing Worlds the song from
| that level immediately started playing in my head.
| manuelmoreale wrote:
| 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.
| klaussilveira wrote:
| You should hang out at the
| https://www.oldunreal.com/phpBB3/index.php forums
| xhrpost wrote:
| 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 wrote:
| 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 wrote:
| 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 :)
| Lammy wrote:
| It's so cool to watch it play in the tracker software
| https://www.youtube.com/watch?v=mCRibm4kOaE
| klaussilveira wrote:
| You might get a kick out of: https://osgameclones.com/
|
| Hopefully you find something from the past that can bring even
| more happy memories!
| andrewmcwatters wrote:
| 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.
| robinpdx wrote:
| 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 wrote:
| 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 wrote:
| Get GMDX installed on top of the original game.
| mdaniel wrote:
| https://github.com/dpjudas/SurrealEngine/blob/efb4a196ccc856...
|
| Look, I get it: they named their library "dumb" so they felt they
| just have to be cutesy with the license file, but please don't.
| If you hate licenses that much,
| https://spdx.org/licenses/WTFPL.html is probably for you
|
| (the actual project seems to be BSD-3)
| georgyo wrote:
| You're complaining about a 3rd party library license that the
| project cannot change...
| mdaniel wrote:
| 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
| yodon wrote:
| 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 wrote:
| People should do what makes them happy
| yodon wrote:
| Licenses are legal documents. They aren't supposed to
| make people happy. If they do, you're probably doing it
| wrong.
| thfuran wrote:
| 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 wrote:
| DUMB is essentially BSD, clause 8 says that clauses 4, 5, and 6
| are null and void.
| thih9 wrote:
| For people who want more cutesy licenses, find some here:
| https://github.com/benlk/misc-licenses?tab=readme-ov-file#ot...
| andrewmcwatters wrote:
| Maybe it's just me, but if you understand the history of audio
| libraries, it just sounds like a titular homage to LAME.
| justin66 wrote:
| 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.
| mepian wrote:
| Epic could open-source the original engine, like its former
| primary competitor id Software did with the old idTech engines.
| Vt71fcAqt7 wrote:
| 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 wrote:
| 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.
| Vt71fcAqt7 wrote:
| My guess is that they are very busy and forgot about it.
| Maybe if someone reminds Tim he will do it eventually.
| ThrowawayTestr wrote:
| Fortnite killed UT 4 and I hate it for that
| MildlySerious wrote:
| 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
| araes wrote:
| On a quick screengrab in response to yours and the above
| comments. It looks like Fortnite also killed Tim
| Sweeney's personal involvement with his own forums. They
| never seem to have the time to do anything on the engine.
| Too much money to be extracted.
|
| Plot: https://imgur.com/a/fortnite-killed-unreal-engine-
| developmen...
|
| From:
| https://forums.unrealengine.com/u/Tim_Sweeney/activity
| sumuyuda wrote:
| Epic has some agreement with the old unreal community where
| people have access to the source and release patches.
|
| https://github.com/OldUnreal/UnrealTournamentPatches
| Pxtl wrote:
| 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?
| rasz wrote:
| 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.
| sandelz wrote:
| 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...
| bluedino wrote:
| 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 wrote:
| 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.
| SirMaster wrote:
| Love the name lol
| newsclues wrote:
| I still can't believe epic hasn't released a modern Unreal
| Tournament game.
| bloqs wrote:
| There is one that is on their site since fortnite released but
| stalled i think
| ThrowawayTestr wrote:
| They were working on it but then Fortnight made a trillion
| dollars.
| newsclues wrote:
| So hire people to finish it?
| nemothekid wrote:
| 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 wrote:
| 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 wrote:
| Fortnite made a thrillion dollars because people who were
| making UT4 were tasked to make a little F2P mode for it
| called Battle Royale.
| patmorgan23 wrote:
| There's a beta from like 5 years ago
| newsclues wrote:
| I know, but maybe if they want the epic store to be popular
| maybe release new versions of your classic IP on it?
| chupasaurus wrote:
| 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.
| jval43 wrote:
| Any recommendations for the genre? Most games are just way too
| slow nowadays.
| brink wrote:
| Titanfall 2 is really good.
| doublerabbit wrote:
| There isn't. It's a genre that's pretty much dead.
| atom-morgan wrote:
| Quake Champions is the best I've found.
| oneshtein wrote:
| Tactical-Ops: Assault on Terror was very good. However, Urban
| Terror was good replacement, when it was alive.
| unethical_ban wrote:
| 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.
| Lammy wrote:
| 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/co
| mments/13eslyb/at_the_bu...
| phendrenad2 wrote:
| 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.
| Lammy wrote:
| 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.
| snarfy wrote:
| Not really. You can't buy it, and it doesn't work online
| without community support.
| failuser wrote:
| You need to find a reason why it would be better than the
| original or UT2004.
| Eisenstein wrote:
| New game means new players.
| kevingadd wrote:
| They did, it failed. It was called Unreal Tournament 3.
| matheusmoreira wrote:
| 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.
| modeless wrote:
| 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...
| justin66 wrote:
| 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 wrote:
| Even the latest UT on UE4 had like few hundreds of players at
| best.
|
| Seems like the genre is just not popular.
| kridsdale3 wrote:
| Tim Sweeney is not quite as much of a bro of the people as John
| Carmack is. Sadly, as I like the guy otherwise.
| klaussilveira wrote:
| His tweet on Linux a few years ago comes to mind:
| https://twitter.com/TimSweeneyEpic/status/964284402741149698
|
| And Epic's removal of titles from stores:
| https://www.gamingonlinux.com/2022/12/epic-games-are-
| killing...
| justin66 wrote:
| Given the easy terms of availability of cutting edge Unreal
| code vs. whatever id is doing nowadays, he's doing okay.
| andrewmcwatters wrote:
| It shows in their architecture for their respective engines,
| too. Unreal just isn't as nice compared to id Tech.
| klaussilveira wrote:
| 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 wrote:
| 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 wrote:
| Ah, so you are the prestigious jdarpinian! Thank you for
| all that hard work, sir!
| Pet_Ant wrote:
| 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 wrote:
| the parent literally linked their own GitHub page...
| homarp wrote:
| and it is in their hn profile
| jamesu wrote:
| 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 wrote:
| 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 wrote:
| Has there been any progress with using browsers' support
| for QUIC for latency-sensitive game networking?
| modeless wrote:
| 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 wrote:
| 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 wrote:
| 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 wrote:
| 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 wrote:
| 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 wrote:
| Oh, that is nice! Been a while since I saw anyone working
| with TGE. I miss the GG forums and the community around
| it.
| pipes wrote:
| Impressive! :)
| thot_experiment wrote:
| 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)
| cdaringe wrote:
| 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 wrote:
| 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...
| orthecreedence wrote:
| 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.
| accrual wrote:
| 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.
| rl3 wrote:
| > _I 'd especially like to have UT2k4._
|
| Honorable mention to UT2k3's menu music:
|
| https://www.youtube.com/watch?v=IberpcWz9mU#t=0m10s
|
| The NFL themes had nothing on it.
| nsbk wrote:
| Goosebumps
| jsheard wrote:
| 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 wrote:
| I think you are wrong. SurrealEngine was designed to
| reimplement the first UE1 as a standalone engine, not requiring
| UE5 at all.
| jsheard wrote:
| 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 wrote:
| 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 wrote:
| 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 wrote:
| Or buy an old pc and go with it haha
| anthk wrote:
| 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.
| anthk wrote:
| Deus Ex and GMDX on top of this: heaven.
| Lammy wrote:
| Recommended: Civvie 11's "Epic Unreal Megaspecial"
| https://www.youtube.com/watch?v=5PtU2stZK0M [01:15:46]
| rossant wrote:
| I miss UT99 so much. I never came to like modern FPS games as
| much.
| klaussilveira wrote:
| 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.
| deisteve wrote:
| now if somebody can open source reimplement Rune which was made
| on Unreal Engine during this period
| leecommamichael wrote:
| Interesting, they've got a little GC in there.
| kevingadd wrote:
| 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...
| jauntywundrkind wrote:
| 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_ wrote:
| 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
| roland-s wrote:
| 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
| tryauuum wrote:
| 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
___________________________________________________________________
(page generated 2024-08-23 23:00 UTC)