A Grand Theft Auto III Re-Implementation
openrw.org
openrw.org
When re3 went public, OpenRW archived their repository; when re3 was DMCA'd, OpenRW unarchived their repository; and when re3 was sued, OpenRW ceased development.
(This is based on my recollection from observing this two years ago - there may be other factors involved)
OpenMW is a very similar project for a game of the same vintage - Morrowind. Still in active development (last commit 1 hour ago as of writing).
To think Bethesda would be fine with openMW, but rockstar had to shut down openRW.
Bethesda at least had a specific reason for going after OpenMW, though. They’re okay with it now under “certain conditions” that I’m sure the OpenMW devs aren’t going to argue with.
Their main ask was that the OpenMW devs don’t advertise OpenMW as a way to play Morrowind on Android (or other platforms besides PC).
And there’s an understanding that OpenMW’s “intention” isn’t solely to be a way to play Morrowind, but also to implement a generic RPG engine and editor that uses Morrowind’s gameplay and file structure. For someone to make their own game with, not using any of Morrowind’s assets. (I’m not sure if any such game exists, though)
[0]: https://wiki.openmw.org/index.php?title=Bethesda_Emails
To be honest, every project of this kind claims that. And in reality, everyone knows 99% of usecases for such engine is to play the original game. Sometimes there are new IPs being created on such engine. For example recently there's been some "boomer shooters" coming out using engines which were made originally to play classic DOOM or Duke Nukem 3D. But such cases are rare.
> Clean-room design is useful as a defense against copyright infringement because it relies on independent creation. However, because independent invention is not a defense against patents, clean-room designs typically cannot be used to circumvent patent restrictions.
You may be able to patent the functionality of a piece of software.
The point of the clean room practice is to avoid a literal line for line copy of the original software. It would be entirely legal to say, write a song from the perspective of Taylor Swift about her feeling sad and betrayed after a breakup.
But analogies are dicey because the law treats functional software differently from literary expression.
Precedent here is vTech reimplementing the Apple II BIOS and Phoenix reimplementing the IBM BIOS and Connectix selling a PlayStation emulator for a fraction of the price of a PlayStation.
A clean room is NEVER a possible defense for patents and it is sometimes a possible defense for copyright.
Copyright infringement requires copying.
Patent infringement does not require copying.
There's a famous case on this exact issue.
Atari Games Corp. v. Nintendo of America Inc. 975 F.2d 832 (Fed. Cir. 1992)
"Nintendo can show copying by proving that Atari made literal copies of the NES program. Alternatively, Nintendo can show copying by proving that Atari had access to the NES program and that Atari's work — the Rabbit program — is substantially similar to Nintendo's work in ideas and the expression of those ideas."
Considering that "Harry Potter" is not an uncommon name in the UK (I've met two) nor is the concept of a wizard school, or riding broomsticks, or house teams, I suspect that AI today might be able to generate something that would get Rowling's attention.
So no it's unlikely to actually be fully clean room project, but written from scratch.
Modding a Bethesda game is literally getting into the innards of the game itself and changing or replacing bits in it as you please, at least until we get into hooking in DLLs which is a whole different story.
There's also "Skyrim, Home of the Nords" which is an effort to re-create pre-Skyrim (the game) lore about Skyrim... in Morrowind.
https://www.pcgamer.com/take-two-dismisses-lawsuit-against-g...
The day reverse-engineering legal protections failed.
These companies know very well these independent groups, even if it's on their legal bounds, can't afford a legal defense team and actively exploit that to abuse them away.
It is protected legal activity to decompile a binary and study the source.
It is protected legal activity to study some source code, describe it, and have someone who never saw the source reimplement the code described.
It is straightforwardly illegal to decompile source code, recompile it, and the distribute the recompiled binary.
re3 is somewhere between the latter two, and (again aiui from looking into it 2 years ago) they didn't have a clean room step.
It's probably a good thing no one will litigate it. It seems highly likely to be illegal and reasonably do. It would be a bad thing to spend money on.
But it is not straightforwardly illegal (according to Microsoft et al) to decompile source code, train an LLM on it, generate the source code, recompile it, and then distribute the recompiled binary.
One easy 947 quadrillion tensor-operations lifehack
According to what? If the rules are so poorly defined that way then maybe it's not a bad thing to disregard them. Because simply decompiling source code and then recompiling it isn't a simple one-step thing in the way you suggest, not even close.
If you wrote a bash script which decompiled and recompiled the original binary, that would be your property to distribute as you like
For any on mac who are looking - it is available for free from Porting Kit (which is a Wine-like platform). I am assuming they can install it for free since they're some sort of side project of GOG and I presume they have the original binary from when it was released for free
So presumably anyone else with a Win system could get it from GOG (actually looks like you can get it here - https://gta.com.ua/rockstargames-classics-free-download.phtm... )
GTA2 was a LAN party favourite.
There is a video of a guy reviewing some of the code. It’s quite readable. The game was much simpler back then, some special casing was made (eg Catalina copter). But it’s a cool look behind the scenes
It's an interesting video to watch to get his perspective though.
This one was very enjoyable, too. It was an ex-Vice City developer reviewing the re3 source code.
Plus last commit was 2 years ago.
why even post this?
But why RW? Did the GTA games run on RenderWare?
Source: worked in game dev using RenderWare on PS2 back then
I know it’s common now, and seems to have really taken off in the Wii/PS3/360 era. My understanding is it wasn’t in the PSX generation (at least early?).
It must have started off as a purely software renderer as I can remember trying to compete with their published stats on tris/sec.
RW is RenderWare, it's not a game engine.
> really taken off in the Wii/PS3/360 era
No? RW have/had the immense success as an engine used in more than a dozen commercial games (compared to idTech1/2/3), but it's usage explodes in 2001, with 18 titles, compared with 4 in 2000.
> PSX generation
Too early.
Looking into it, I found one instance of a reimplementation attempt[0], but it isn't clear to me how far along it is. There's some discussion of it here [1].
[0]: https://github.com/reburndev/reburn3
[1]: https://www.reddit.com/r/REGames/comments/15ymbtq/an_open_so...
Just a heads up that a Bully sequel (trilogy?) is in the works:
https://www.xfire.com/ex-rockstar-games-employee-leaks-bully...
I always find it a bit sad when I see pictures of old games I used to play. My memory of them seems to automatically "upgrade" how they look to modern standards. Then when I see them it's shocking and disappointing to see how wrong my memory is. I'd rather leave it as a memory.
Maybe it depends on the person, but for me personally I have difficulties imagining what my parents looked like when they were 20 years younger, apart from reciting some specific photos.
When someone I see daily gains or loses weight slowly over time it's hard to remember what they looked like in the past.
I had a good mental picture of my now deceased cat in my head, but when I got a new cat of with a similar color and fur, the mental image of my previous cat slowly got replaced with how my new cat looks.
I am very courious how many colors from those 16 milion of 24 bits are LCDs able to reproduce. My LCD seems to be able sometimg less than 16 bits (65535).
* Fidelity level (in terms of resolution, color amount and similar) needs to match with the amount of information within drawing. One example of this are some of the games during transition from EGA to VGA which allowed to use more colors. Just slapping a color gradient on everything doesn't necessarily look better than more stylized look carefully using a limited color pallet.
* Inconsistent quality level. While some of the assets are much higher resolution, not all of them are. This makes the older assets look worse compared to everything being equally low resolution. The mismatch can be caused not only by asset quality level but also lighting techniques.On hand you have sharp high resolution shadows on the other there are still some low quality textures and geometry.
* Higher resolution textures makes it easier to notice bad texture tiling and low resolution geometry. With a high resolution textures perfectly projected on low polygon it's much easier to tell how blocky they are and where the edges are, compared to using more blurry textures.
I'm sure they could do some AI upscaling, but that probably wouldn't improve the situation much. GSG tried that for the Definitive Edition, and look how that went.
It would be interesting to see a new texture pack made for it, which focuses less on nostalgia and more on fidelity.
Case in point: Warcraft 3 [1]. This remaster was not only awful technically but Blizzrad changed the ToS on third-party maps so they owned all the IP because they didn't want a repeat of the Dota fiasco where Dota 2 sprange from a WC3 map and Blizzard basically lost the MOBA war.
Rock Star not so long ago released an awful remaster of the GTA3 trilogy [2]. These games are beloved. It's hard to believe they could screw up such an easy lay up but they did.
There seems to be an all too common thread of outsourcing to third-party contractors on the cheap, little oversight, no internal accountability, limited oversight and honestly not really caring.
But as we see people write emulators to play dead games on dead platforms. People remaster existing games largely for free. It's crazy to drop the ball so hard on something with such a huge inbuilt market.
[1]: https://www.resetera.com/threads/i-still-feel-absolutely-awf...
[2]: https://screenrant.com/gta-trilogy-definitive-edition-remast...
Digital Eclipse gets around it by making nicer ports on the cheap, but I think a long-term solution would be a low-cost way for rights holders to keep older games in circulation without effort.
On the other hand, a lot of custom maps for Warcraft 3 were based on external IPs (Dragonball Z maps etc) so it's not something Blizzard can claim anyway.
Even when transitioning to Dota 2 they had to purge some of the more obvious IP things that existed in Dota 1, such as the sorceress character named "Lina Inverse" became "Lina".
It's best to ignore youtubers and generally disagreeable nerds from reddit and all those places. They feed on hate.
While I don't disagree with your experience at all of it being better than the originals, that is unfortunately just part of the issue here. The background is that Take Two has been very litigious, and a number of high-quality mods are no longer relevant due to their actions.
I may be misremembering the details but iirc there was a very high quality GTA4 graphics mod that essentially gave the game "modern" graphics that too was forced to stop due to legal issues(to say nothing of the GTA3/VC etc mods). GTA 5 loading times were very high until a single guy fixed their shitty code with a mod.
Take Two isn't just poorly managed or have poor code quality (which they do), they are also hostile to users wanting to modify their game. A good bit of the criticism here isn't specific to the game itself (which for eg may be fine once it loads) but rather their behaviour.
or maybe it's not irony, but the opposite of irony. maybe it's totally predictable and shouldn't take anyone by surprise at all.
https://www.reddit.com/r/gaming/comments/3ylmm4/comment/cyet...
Do you have a link with more information? Steam removed games that people legitimately purchased from their personal libraries?
The sad reality is that you purchased a license under terms that allow them to do whatever they want- it’s not really your personal library. Unless a government were to pass a law and fine them about it nothing will happen- it’s what you agreed to when you use services like Steam.
The desire the "purchase" games decreases with each passing day.
Here is my mirror, it should have all the commits: https://git.dawidpotocki.com/mirror/re3/
Thanks for your mirror though
Edit: I see, it's just some CSS. New question: Is it FOSS?
I have not cleaned it up for release or anything, so it's a bit messy, but feel free to use it under the licence terms of cgit (GPLv2.0-only) and if you don't mind, put an attribution somewhere, like at least at the top of the CSS file.
EDIT: You will also need this in your <head>, otherwise you won't have a mobile-friendly layout:
<meta name="viewport" content="width=device-width" />
And also a custom pygments config so it uses the correct variables for colours, like this: class BiualStyle(Style):
background_color = "#000000"
highlight_color = "#222222"
default_style = "#cccccc"
styles = {
Token: "var(--code-cyan)",
Whitespace: "",
Comment: "var(--code-blue)",
Comment.Preproc: "",
Comment.Special: "var(--code-red)",
Comment.Hashbang: "var(--code-magenta)",
Keyword: "var(--code-yellow)",
Keyword.Declaration: "var(--code-green)",
Keyword.Namespace: "var(--code-magenta)",
Keyword.Pseudo: "",
Keyword.Type: "var(--code-magenta)",
Operator: "var(--code-yellow)",
Operator.Word: "var(--code-yellow)",
Name: "",
Name.Class: "var(--code-cyan)",
Name.Builtin: "var(--magenta)",
Name.Exception: "var(--code-green)",
Name.Variable: "var(--code-cyan)",
String: "var(--code-red)",
Number: "var(--code-magenta)",
Generic.Heading: "var(--code-green)",
Generic.Subheading: "var(--code-magenta)",
Generic.Deleted: "var(--code-red)",
Generic.Inserted: "var(--code-green)",
Generic.Error: "var(--code-red)",
Generic.Emph: "italic",
Generic.Strong: "bold",
Generic.Prompt: "bold var(--code-blue)",
Generic.Output: "var(--code-gray)",
Generic.Traceback: "var(--code-blue)",
Error: "border:var(--code-red)"
}Ah, nvm, it's all mentioned in the README: https://git.robbyzambito.me/mirror/re3.git/tree/README.md?h=...