Hacker News new | past | comments | ask | show | jobs | submit login
Dungeon KeeperFX 1.0 (keeperfx.net)
213 points by MrJagil 10 months ago | hide | past | favorite | 112 comments



Coincidentally, Dungeon Keeper 1 and 2 are currently on sale on GOG, if you find yourself needing a "legit" version to power the FX:

https://www.gog.com/en/game/dungeon_keeper https://www.gog.com/en/game/dungeon_keeper_2


I'm confused is this required to run the game or something?


Like most open-source re-implementations of games, you need the original game for its assets. The re-implementation typically only consists of code. So yes, you need to own the original game in order to use KeeperFX.


Same with a friend‘s re-implementation of Battle Isle 2 (https://www.kitana.org/arena/bi2/bi2.html)

You would need the original or the GOG version.


oh wow haven't seen this in a long time. I played Battle Isle 2 like crazy back in the day. None of the sequels manage to get me hooked though.


Similar to Roller-coaster Tycoon etc.

The only fully open source formerly commercial game I am aware of is Warzone 2100. And for a while I think they didn't have access to music or video files.


OpenTTD lets you use either the base graphics, which require Transport Tycoon Deluxe, or OpenGFX graphics, which do not.


OpenTyrian is ported from the original Tyrian code and the original assets have been made freely available, the original graphics artist even made a remastered version of the tileset [1]

[1] https://lostgarden.home.blog/2007/04/05/free-game-graphics-t...


Star Control II / "The Ur-Quan Masters" might count as well.


TUQM is not actually a reimplementation, the source code and assets were legally made available by the original developers as they retained the rights. What they didn’t own was the name “Star Control”, hence the project using a different name.

Probably my favourite game ever, we owned the original with the map and manual.

I replayed it a couple of times as the TUQM, still loved it.

I tried replaying the original X-Com, but it had serious quality of life issues (squad members not remembering gear assignments between missions, no keyboard shortcuts during missions) so was just too tedious for me.

Apparently there is a reimplementation of the game out there which fixes these things, but at this point in my life my time is too limited.


> squad members not remembering gear assignments between missions, no keyboard shortcuts during missions

I still have a notebook that contains squad member names and loadouts. I used that to quickly equip soldiers for missions.

You can tell the changes by the crossed out text. When I got plasma rifles. When I got blaster bombs. When my main assault guy caught a heavy plasma hit in the face.

Good times, but I’m glad they remember the load out in the new games.


> I tried replaying the original X-Com, but it had serious quality of life issues

There's Xenonauts, if you want X-Com, but modern.

https://store.steampowered.com/app/223830/Xenonauts/


One Hour One Life (http://onehouronelife.com) is public domain (software and assets). It's not playable without a healthy multiplayer community. The developer sells access to the official server.


Here is another one:

https://play0ad.com/



what about quake3? Does it need assets belonging to id software?


Yes. While the game engine itself has been re-implemented it still uses the assets from the original game.


For the assets, yes


Is DK2 considered a straight upgrade from DK1? Or did they mechanistically go down different paths and each has something unique to contribute?


They're both unique. I never really played them back then but gave both a try recently. I feel like DK1 has aged better, especially with DK FX. It feels like it could be a modern indie game. It actually looks gorgeous, imo. DK2's move to fully 3D makes it look very dated and the way the UI/UX has changed also makes it feel more dated to play than DK1. I found it to be more frustrating just in how you interact with the game.

I really enjoyed both games though, so I absolutely recommend playing both.


The tone/“atmosphere” of DK1 is very strong and the gameplay high-stakes/visceral. (Like the previous Magic Carpet games). DK2 went a more stylized, silly and cartoony direction - never resonated as much with me as DK1. DK2 is still a decent game though.


Thanks! Do you know if KeeperFX uses assets/mechanics from both?



working on replicating dk2 stuff in fx, but no don't need assets from dk2, only dk1, currently making a dk2 style secret door, but that wasn't done for the 1.0 release so it'll be for the 1.1.0 release, or the dev build


I don't! I just saw that both were on sale, and DK2 was the one I grew up playing, so, I thought I'd give both a mention.


Dirt cheap too!


Man I loved this game as a kid.

I wonder though ... they say it's now pure open source that's been "rewritten" from scratch. Hate to be a party pooper but is that really true? It took all of two minutes to find this in the code:

https://github.com/dkfans/keeperfx/blob/master/src/engine_re...

    //BucketKindPolygonStandard in this function could also be BucketKindPolygonSimple or BucketKindBasicUnk10 idk all 3 pretty similar
    int z;
    struct BucketKindPolygonStandard *v5;
    int v6;
    struct BasicQ *v7;

    if ( (ec1->field_8 & (uint16_t)(ec2->field_8 & ec3->field_8) & 0x1F8) == 0
        && (ec3->view_width - ec2->view_width) * (ec1->view_height - ec2->view_height)
        + (ec3->view_height - ec2->view_height) * (ec2->view_width - ec1->view_width) > 0 )
    {
I dunno, this looks a lot like decompiled code. There are lots of other variables with names like v15, v16 etc in other parts of the code too.


They definitely interpret things a bit differently. The main achievement here is that all the code required to run the game is now open, the game no longer jumps into original game code from the original Dungeon Keeper executable in order to function. Whether the source in itself is 100% legal is not part of that equation.


Do people use LLMs to "improve" decompiled code? Just plugged the above into Gpt-4 and got:

    // The choice of PolygonKind can be PolygonStandard, PolygonSimple, or BasicUnk10 - they are quite similar in functionality
    int intersectionResult;
    struct PolygonStandard *polygonStandard;
    int computationResult;
    struct BasicQueue *basicQueue;

    if ((edgeClipper1->clipMask & (uint16_t)(edgeClipper2->clipMask & edgeClipper3->clipMask) & 0x1F8) == 0
        && (edgeClipper3->viewWidth - edgeClipper2->viewWidth) * (edgeClipper1->viewHeight - edgeClipper2->viewHeight)
        + (edgeClipper3->viewHeight - edgeClipper2->viewHeight) * (edgeClipper2->viewWidth - edgeClipper1->viewWidth) > 0)
    {
Seems it didn't really understand "BucketKind". Neither do I to be honest.


That is the first impressive thing I've seen a llm do with code. My company does not allow their use out of legal concerns so I haven't tried using them for anything since playiwith the initial gpt trial. I was not at all impressed then. Can you really just point it at your code base and ask it to improve the variable names or whatever?


Ah, here we see the great danger of LLMs, which is that they have the ability to be confident enough to bullshit you completely successfully. I don't think this is clipping edges, although I could be wrong about that, but if all thomasahle was to put the exact above code into GPT-4 and did not go to the source and pull more out, GPT has absolutely no reason to label "z" as "intersectionResult" as it was never used in the rest of the code, same for labelling "v6" as "computationResult", and the guesses for polygonStandard and basicQueue are at best the first stab a decompiler might take, but there's probably a better name than simply reiterating the type.

That's not better variable names; that's better-looking garbage. At least you know you don't know what "v7" is. With the post-LLM code you're having to poke through confident error.


No don't do this.

Once I asked chatgpt to make some obfuscated+minified js readable for me. It did. I was blown away by how well it chose the variable names.

I started looking at this code to find the prod bug, but I found other bugs that I wasn't expecting...

I took a closer look and realized that the code it made was almost right, but also 5% wrong.

I wouldn't have noticed the incorrectness if I wasn't debugging for several hours before and had some general idea of what the pretty printed code did and did not do.


You can get better results by setting up a test harness that compares to the original and feeding back the results.

But then you are doing boring work and letting the llm do the fun work, which is not the point the whole thing.


Maybe you can get achieve it by asking it to just give you the name correspondances in a table and do the renaming yourself.

That’d be hardly useful in a full file with colliding names but on a single function that may be useful.


Answering your question directly: RE is 60% of my daily work, and I don't use and don't know anyone who uses LLMs for RE. One reason is that you lose interactivity if you process code using something other than your decompiler of choice, and it's a huge problem - you want to stick to your RE "IDE". The other is that, at least in my line of work, I don't need perfect code, just to understand what's going on and maybe a few critical functions.


they became popular just a bit after I finished all the RE work, so no didn't use any for it


They do now


it's decompiled yes, used to rely on a dll that was just the converted og exe, but now it's now fully readable code, minus maybe a few random variable names here and there, I don't believe it says anywhere it was done from scratch


> I dunno, this looks a lot like decompiled code.

And what if it is? At what level is using decompiled code copyright violation as opposed to just replicating an algorithm?



> Connectix's successful appeal maintained that the direct disassembly and observation of proprietary code was necessary because there was no other way to determine its behavior.

If it is the disassembled code, nothing will happen. There are no damages to award, so there's no reason that this would even make it into court. If it did go to court (as part of a larger case), the artifact decompiled would be proprietary. However it would be impossible to prove (and difficult to convince anyone) that the code was directly from that artifact.



One of the best games ever. Why there is no official franchise I have no clue


"War for the Overworld" is another game, in addition to Dungeons 2, 3, and (just released) Dungeons 4.

https://store.steampowered.com/app/230190/War_for_the_Overwo...


Worth noting that in War for the Overworld, Richard Ridings has come back again to tell me i am too poor to train my creatures...


It is payday


There is a spiritual successor I can recommend :

https://en.m.wikipedia.org/wiki/Dungeons_3


Oh hey that’s pretty nice. Thanks for the recommendation. DK never got the credit it deserved but it and arcanum are my top 2


Lords of Nether is inspired by it and in development as well. https://lordsofnether.com/


Somehow I ended up playing Dungeon Keeper during Christmas vacation for the last few years. So this release is just in time for this "tradition" to continue! Great effort from the KeeperFX team!


This game prepared me for work in big tech.

goes back to lifting ARPU before the giant floating hand slaps me


"Giant floating hand" reminds me of Lionhead Studios' Black & White for some reason. Is this a test where you can deduct the birth year / formative years of someone just by figuring out the god game of their time?


Giant Floating Hand of God is kinda Peter Molyneux‘s thing. Going back to Populous.

Lionhead Studios was a spin-off of Bullfrog Productions that made Dungeon Keeper.


Oh the memories, playing with my siblings and my dad when I was little...

War For The Overlord is a good game, but I'll have to try DungeonKeeperFX!


War for the overworld[0] is not only great, it’s fantastic. I’ve played it since launch and it just kept getting better and better! The devs where and are also great with the community <3

[0] https://store.steampowered.com/app/230190/War_for_the_Overwo...


How does it compare to Dungeons 4?


I like all of them, but if you want a more pure DK-like, War for the Overlord is what I'd recommend. Dungeons is decent, but the split between the above ground and underground isn't great.


The dungeons series is pretty much the same, focused on events and story. Overworld focuses more on building, micro/macro managing, exploring and combat.


I have never been able to fathom how people put so much effort into remakes of old games instead of, say, creating new games. It doesn't mean you have to do commercial "indie" games. Old games are cool, but what would be cooler is new old games.


Some of my guesses:

Programmers are overrepresented both among FOSS enthusiasts and among nostalgic old gamers, meaning there are more people able to and interested in rewriting the engine code collaboratively than there are for the other parts of game-making.

People who want to do unpaid work on the other parts of game-making can do mods instead.

Making a new game is an artistic endeavour that is hard to do without either having an hierarchy making the decisions or being a solo/small group thing, making it somewhat unfit for community FOSS. When doing a remake you have the specification more or less done, you just have to implement it and do the uncontroversial fixes and improvements.


Just answering for myself, but it's because I like the programming/engine aspects. Not the creative aspects of the art/music/level-design/rules/balance/etc. I can use an existing games art/content and just focus on the part I like.

Plus nostalgia.


Reminds me of Moonring that recently came out. It's an homage to the old Ultima games, but is new and looks and plays fantastic: https://store.steampowered.com/app/2373630/Moonring/


that was made by one of the original Dungeon Keeper devs btw


Wow wow wow… wow


> instead of, say, creating new games.

The Steam store is utterly littered with indie games on preview, so I don't know how you can say that with a straight face.


The outcome and expectations are clear, this makes things infinitely more manageable than a new game. Also it's easier to find knowledgeable team members (when the fanbase was large) who are also easier aligned throughout the project compared to an open ended development.


I wonder this too. Few hypotheses

1) great learning experience because you get fast feedback in terms of fidelity to the original, vs. the more amorphous goal of “good game”

2) nostalgia

3) creating an open source rendition is step 1 to the free-for-all modding utopia that people really wanted in the first place


> I have never been able to fathom how people put so much effort into remakes of old games instead of, say, creating new games.

I've always held that when I retire, I'll commit to remaking Majora's Mask or Super Mario RPG. (Nintendo recently committed to the latter, but the tone is very different.)

Old games are a means of recapturing childhood nostalgia and reliving the fleeting feelings of youth. New games don't do that at all.

I'm not even a gamer anymore. I have next to zero time or desire to play new games. But I'd happily pick up something old to feel those feelings again, and I regularly watch YouTube videos of old games. They send you somewhere.


Parent's late response to good sibling comments that no one will read:

Many people here seem to think that because one is good at programming they are necessarily bad at everything else like visual art, music, and story-telling. However I think many of such programmers would actually be in a great position to pick up one or even two such side competencies and do amazing things. Many of the old good games probably had programmers doing things outside their core competency. | Especially with the recent advent of AI, I think programmers should no longer think of themselves as narrow specialists but something like directors or conductors.


Because programming is an entirely different skill set to game design, art, music, marketing and all the other skills needed up make a game


Old games have a pre-established fanbase, so releasing some kind of fix/patch/remake for one is almost guaranteed to make at-least some people very happy. The reception for an entirely new game is somewhat less guaranteed.


I'd like to see a linux version of this game...


yeah it's close, but no dev is currently working on it, atm the main thing blocking it is a big blob of assembler remaining in the rendering code, replacing the CPU rendering code with GPU rendering would be ideal for a native port, but yeah maybe if some interested dev joins, otherwise could be close for a while


There has been a improvements to move away from proprietary file formats and Windows only code, but there's still work that need to be done.

I personally play it using just a default Wine installation on Ubuntu and it runs great.


Does it need 32-bit Wine or will 64-bit do?


I loved this game when I was a teenager. A shame they made that money grab mobile version with predatory monetization. (It failed).


Not only did it fail, they (EA) threw the project at Mythic Studios to butcher the original, then they shut down the studio when it failed:

https://en.wikipedia.org/wiki/Mythic_Entertainment


Every time I see a project ending with "FX", my first thought is that it must be implemented using JavaFX.


It stands for Fan eXpansion but it has become a lot more.


I am glad you have recovered from that 15 year coma - welcome to the world of 2023.

There have been a lot of technological improvements since you have been away but I am afraid JavaFX didn’t make it.


But I like JavaFX ...


And this is relevant to everybody else because... ?


You could've chosen to take up the cue and discuss JavaFX with me. You chose to be an ass. How is that appropriate for HN?


Looks like you really are unable to reply without being disrespectful. And it is me who is choosing to be an ass? Yeah, right.


What's your problem? Why are you on HN? You began the conversation in an incredibly disrespectful and dismissive way, and you're acting like you're the victim. This isn't the place for you.


I don’t have any problem.

My comment was not disrespectful, you may have not liked it but that’s a very different thing. I didn’t call anyone an ass; you did. You are the one who cannot maintain a conversation without calling names.

> This isn’t the place for you

Unfortunately you don’t get to decide that.


> My comment was not disrespectful, you may have not liked it but that’s a very different thing

No, it was disrespectful. There's no point in discussing this with you because you refuse you recognize when you've treated somebody else unfairly and with disrespect. I'm done here.

You've repeatedly argued in bad faith and tried to put the blame on me instead of thinking about what you wrote and how that affects other people. This is significantly worse than "namecalling", which was really just calling out your behavior.


There is no point in discussing this with you indeed. Have fun.


WOW God the memories of slapping those minions silly.


Does anyone know how to solve the touchpad scrolling issue? I can only scroll downwards, if I try to scroll up it bounces back downwards.


Time to go CD archive digging to find my original disc so I can play.

Looks like a great project.


It's super cheap on GOG if you want to just buy it https://www.gog.com/en/game/dungeon_keeper


$1.49? I dunno. I might wait a few months til the hype wears off and the price drops :P

Honestly, at that price it’s cheaper to just buy it again than to spend the time digging the CD spool of ancient games out of the box in my basement.


You're paying GoG to sort your box of old games and keep them clean for you.


The big news about this release is that you don't need the original anymore.


From the linked article:

> Ownership of the original game is still and will always be required for copyright reasons.

Is there something more to the story?


You no longer need the original executable. However, the artwork is from the original game. As are the levels (although there are also original levels available).


So if someone asks, you have to produce proof of ownership, but you don't actually need to do anything other than that?

Or do the assets need to be installed and accessible?


> So if someone asks, you have to produce proof of ownership

I mean, I don't think EA can barge in and demand you prove you bought a copy of Dungeon Keeper back in the day (or since), just because you're running KeeperFX.

I think the practical matter is mainly that KeeperFX can't redistribute the artwork and levels themselves. So, as another user said, you need to copy over the files from GOG or a CD, etc.


That means you still need the original then? What am I missing? Or what's the material difference between downloading the assets and downloading the entire executable?


From the end user POV, no difference - you still need to provide the original game files in order to play.

From an engineering POV it's great that it no longer needs to call into the old executable; they may be able to drop some legacy code and change some internal types, clearing the road to more changes in the future.


That it can be distributed, and that there is source available for modifications, expansions, and ports to modern systems.

Generally game assets don't depend on the external environment like code does. Sure, porting is still a lot of work (which I don't think has been done for this one), but it's less work than porting an arbitrary executable.

But most importantly, not everything has to be a product with a practical benefit for the user, if the project goal is to be able to be a drop in replacement for all the code, and it does it, and the people involved are fulfilled, that is perfectly enough.


The practical benefit here is not to make DK1 free, but to make DK1 better. It's a Fan eXpansion, and while we needed to be propped up by the original game code there was only so much we could do.

Say, maps where limited to 85x85 slabs up until now, but in KeeperFX we allow maps up to 170x170 slabs in size.


Ports to modern systems is a very practical benefit, which they achieved.

IIRC GOG runs the DOS version of Dungeon Keeper on DOSBox, because the Windows version doesn't run on modern Windows. This means users miss out on the higher quality graphics mode.


The original game does not work great on modern operating systems and screen resolutions etc. Text sizes, GUI scaling is usually way off in games from this era. Using the "modernized" open source engine gives you a better experience.

There are also improvements to the user interface that weren't a part of the original.

Same goes for many other remakes.


I get that but the person above said that with this release the original game was no longer needed, except you still need to get the original assets from the original game?


You still need to own the original game to play it. To keep the rights holder happy we check if you have a DK version installed or on CD.

The big change is that the game does not use the functions from the original game to run anymore. All previous versions used a dll made from the original game as a crutch, so players would have the full experience on a partly made remake. This made the game fully playable from day 1, but it also meant we were limited in a big way in what kind of changes we could make. For example if Dungeon Keeper believed there were only 32 types of creatures, KeeperFX could not push anything related to a 33th creature type to the original DLL which meant we just had 32 creature types too. Now the number of creatures types comes from a user editable config file.

tldr: KeeperFX is there to make DK better, it does not make free.


you need the original assets. KeeperFX replaces the executable and doesn’t ship with the original assets, because it’s not theirs to distribute. The question is simply how you obtain the assets.

You don’t have a purchase/download option available to only acquire the assets, so you’ll inevitably purchase & download original assets + original executable, discard the original executable and use original assets + keeperfx executable.

Or you’ll acquire the original assets alone through nefarious means and can then just use it with the keeperfx executable.

Technically I don’t think you can be requested to provide proof of ownership, but keeperfx can definitely be taken down for distribution of assets they don’t own. So the acquisition of those assets falls on you to resolve and is outside their concern. They can only recommend you to purchase the rights to those assets from the proper rights-holders.


The assets need to be installed.


Just installed and accessible. It doesn't matter if they come from your original CD, the GoG release, or an ISO from the Internet Archive.


Not really. A big change on this release was 'fully rewritten', so I put that there to stop people asking if they would still need to buy it. Because yes, you do need to still buy DK1.


I'd just like to emphasize that discord is the place to go. A very friendly community that's been working on this for years and years. Super fun project to follow: https://discord.gg/hE4p7vy2Hb




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: