• Die4Ever@programming.devOP
    link
    fedilink
    English
    arrow-up
    7
    arrow-down
    1
    ·
    edit-2
    5 months ago

    Tomorrow Deus Ex is turning 24 years old, and DXRando is turning 4 years old!

    Biggest Changes Since v2.0

    • You can now pet the dog! And other animals too. With bingo goals.
    • Way more goals randomization
    • Mirrored maps
    • Installer program
    • New game modes:
      • WaltonWare mode - A quick option to get into the game without the time commitment of the full game! You start in a random mission and win by completing one bingo. As New Game+ keeps making it harder, see how fast you can complete them or how many you can complete!
      • WaltonWare Entrance Rando - both modes combined!
      • Zero Rando - great for first-time Deus Ex players to benefit from the bug fixes, QoL improvements, and balance changes we’ve made, without any randomization.
      • DXR Vanilla Fixer: This one is for the purists. Use our new installer program and it will do compatibility fixes for the vanilla game (Kentie’s Launcher, D3D10, DXVK, Engine.dll fix, and more), then just run DeusEx.exe as normal and the gameplay will be unchanged but with high frame rates and resolutions!
      • Randomizer Lite - randomizes some things without interfering with the immersion and mood of the game. Great for players who haven’t played Deus Ex in a long time, or if you’re intimidated by the full Randomizer.
      • Randomizer Medium - similar to Randomizer Lite but with more randomization features enabled by default. Remember you can tweak the settings in the Advanced menu to play with any randomization level you want.
      • Serious Sam mode - same as the normal game but with 10x as many enemies. The player has increased health and takes reduced damage to compensate.
      • Speedrun mode - speedrun with fewer resets while still being able to enjoy higher difficulties. And a built in splits viewer!
      • As well as the old Entrance Randomizer mode and Horde mode
    • Enemies overhaul with more variety, augs, helmets, face shields to protect from tear gas, and randomized patrol routes.
    • Now up to 337 bingo goals
    • Randomized music, continuous music, and support for Unreal and Unreal Tournament music
    • Auto augs to reduce fumbling with all your F-keys
    • Many more possible locations for items, datacubes, nanokeys, crates, and enemies to appear.
    • Loot refusal system.
    • Reduced pixel hunting
      • Datacubes/nanokeys/medbots/repairbots now glow
      • Crates that become emptied now turn into cardboard boxes so you know from a distance
      • Training mission improvements including explanation of some of Randomizer’s features
    • Die4Ever@programming.devOP
      link
      fedilink
      English
      arrow-up
      7
      ·
      5 months ago

      Technical perspective first…

      This is Unreal Engine 1, which used UnrealScript programming language. It was extremely flexible, and you can extract the original UnrealScript code (including comments) from the game. This means it’s nearly an open source game, except for the native code. But pretty much everything is controlled by the UnrealScript anyways. Including the GUIs, HUDs, conversations, most of the AI stuff, damage calculations, keyboard key bindings, etc.

      On top of this, Deus Ex released their SDK tools (I think in 2001, around the time of the multiplayer patch). Which is their version of the UnrealEd map editor, conversation file editor, and UnrealScript compiler/extractor.

    • Die4Ever@programming.devOP
      link
      fedilink
      English
      arrow-up
      4
      ·
      5 months ago

      Gameplay perspective…

      This game is really open, there are many approaches to every situation. Which means when things get randomized, it tips the scales of balance and you have to reconsider every option for every seed.

      Even just choosing a melee weapon, you’re thinking about knife vs baton vs crowbar vs sword vs eventually the dragon’s tooth sword. On some seeds the knife does a bit extra damage and then you gotta think if it’s better than the baton and crowbar because of its speed, and it only uses a single inventory space. On some seeds you might get a weak and slow dragon’s tooth sword and it might not even be worth keeping!

      And then you’ve got all the different paths through the levels, and you’ll be rethinking routes based on random start locations, random goal locations, or random enemies in different spots, or items or medical bots. Or maybe a door was randomized to need more lockpicks and your lockpicking skill is worse than vanilla, maybe you need another way around or you choose to find the key to save lockpicks for later. You won’t be doing the same thing every playthrough like vanilla where eventually you figure out which approaches you like best for each spot. The randomizer gets you to rethink it all and adapt.

      The ability to do anything also means you can always progress, you don’t get stuck just because you’re missing a password or low on multitools, there’s always another way. The randomizer really forces you to adapt.

      I think any game with good replayability is a good target for a randomizer, it just amplifies that replayability.

      • Matty_r@programming.dev
        link
        fedilink
        English
        arrow-up
        3
        ·
        5 months ago

        Thanks for your responses. Pretty incredible that its capable of being so flexible and still be a coherent game. The community behind it must be amazingly passionate about it.

        • Die4Ever@programming.devOP
          link
          fedilink
          English
          arrow-up
          2
          ·
          edit-2
          5 months ago

          Thanks! Yea everything shown in that trailer is in UnrealScript aside from the creation of the mirrored map files, and the installer obviously, both of those were done in Python. The death markers and other online features (which are all optional and opt-in, disabled by default) use a TCP connection in the game written in UnrealScript to make HTTP requests, the backend is a Python Flask server. We even wrote our own JSON parser inside of UnrealScript (it’s not perfect but it does enough for us). Technically it’s possible to add a DLL module to the game for stuff like JSON parsing but we haven’t needed to, and technically this keeps it more easily portable (like if SurrealEngine even gets to a more completed state).

          We had to write our own PRNG function to work inside UnrealScript, because the provided one doesn’t allow seeding.

    • Die4Ever@programming.devOP
      link
      fedilink
      English
      arrow-up
      2
      ·
      5 months ago

      And dogs, rats, greasels, karkians, and fish if you’re standing (the game doesn’t have a use animation while swimming), and grays too but you’ll take damage when you do it