Y_Y a day ago

Jedi Knight: Dark Forces II

  • jordemort a day ago

    Thanks, thought it was going to be a Java Key Derivation Function

    • geodel a day ago

      LOL yeah, I was also thinking in terms of HKDF, PBKDF2 etc

    • jamesfinlayson 21 hours ago

      Yeah I had to do the double-take when I saw the J, D and K there.

      I shouldn't have been confused as I saw this repo browsing GitHub on the weekend.

    • panzi a day ago

      Yeah, I also thought its a key derivation function I haven't heard of yet.

  • unwind 10 hours ago

    Yeah, this is an obvious meta-suggestion to rewrite the title to something like "'Jedi Knight: Dark Forces II' reimplemented in portable C" or something.

saberworks a day ago

There’s a fork of this by one LadyEebs that adds a whole bunch of modern touches like ragdoll physics, advanced lighting, fog, and she’s even been tastefully modding the single player maps with more detail. I don’t have the repo handy because I am on my phone, but a lot of the dev discussion takes place on the Discord of The Massassi Temple (https://www.massassi.net/). I do run that site but am not involved in openjkdf2 or Eeb’s fork. There is also another JK reimplementation project by BAH_Strike that is also impressive.

arusahni a day ago

Wow, this brings back memories! This game had such a fun online community. My secret weapon was my trackball. The minute I entered a duel I'd spin it rapidly and mow down whoever I was fighting.

AdmiralAsshat a day ago

This is the only game I can remember the had "IPX" as a connection option when searching for multiplayer games (maybe Quake II as well)? Pretty much everything after that was TCP/IP.

  • cogman10 an hour ago

    Oh loads of 90s games and some 00s had IPX. Warcraft 1/2, Starcraft, C&C, Diablo, RA, RA2. Of course that was only for LAN parties, but it was everywhere.

    I think it really started dropping off as an option around 00s.

  • jamesfinlayson 21 hours ago

    Oh that brings back memories - I remember IPX from a few of id Software's older titles but had no idea what it was at the time (I think the multiplayer for those games was dead by the time I played them).

  • jandrese a day ago

    Loads of old DOS games had IPX network play. Once Doom arrived with Internet multiplayer the days of IPX were over.

  • therein a day ago

    Age of Empires 2 had IPX as far as I remember.

tomcam a day ago

This seems like a big achievement but I’m not too familiar with this programming niche. I have existential questions about its purpose.

On the surface it appears to be on the way to becoming a cross-platform game engine that in theory could be general purpose, but focuses on one game and still requires you to purchase a copy of the game for its image and sound assets if you want to play the game itself.

Is the ultimate outcome meant to be a clone of the game with open source assets provided by artists or what?

  • o11c 16 hours ago

    Jedi Knight usually appears on lists of "the best video games of all times". People still want to play it, but it has a few things that make it tricky to run on modern machines. And the limits on modding are quite severe by modern standards.

    (TIE FIGHTER, also a best game of all time and from a similar era, is even finickier; even at the time there were a few features that were broken for me. IMO it is worth the effort, but note that it absolutely requires a joystick; neither mouse nor gamepad is good enough)

    • cogman10 an hour ago

      Really? Not surprising, I loved that game (hence my username :D ). Before half-life, DF2 was one of the best online multiplayer games out there.

    • robertlagrant 7 hours ago

      TIE Fighter with a Sidewinder joystick in the late 90s. Bliss.

  • jamesfinlayson 21 hours ago

    Basically what someone else has said - get the game easily working on modern systems and fix various bugs and issues with the original.

  • saberworks a day ago

    Don’t know the ultimate goal but this project makes it very easy to install and play the game on modern windows and Linux computers. Getting the original game to work right can be a pain.

  • ender341341 a day ago

    I think it's more about game preservation.

skerit a day ago

Took me a while to realize this wasn't a reimplementation of the Java VM.

How have I never heard of this game before? And why does Jedi Knight: Dark Forces 1 use so many guns?

  • jamesfinlayson 21 hours ago

    > And why does Jedi Knight: Dark Forces 1 use so many guns?

    I'm guessing it's off the back of Doom's success.

  • o11c 16 hours ago

    Since the history is a bit confused:

    Star Wars: Dark Forces (1995, the original game for DOS) was just a shooter, no Jedi in-game and the only melee was punching (which was mandatory for one very-difficult mission). Confusingly, the engine was called "Jedi" though. Being a few years after Doom, it had most of the things we expect from a 3D game, but the level design was still largely "stack of 2D objects" (one advantage of this: the map feature is actually useful) and it had trouble with slopes. There was at least one small place in the game where it was impossible to teleport to using cheats, since there was a bridge within the same level number. It's the only one I've played but not beaten without cheats; the lack of modern save functionality is very annoying. Note however that using some cheats can kind of break some levels (duplicate objects etc; I'm pretty sure the script wasn't capable of "move this object away after one event, move it back after a different event"), but the basic health/weapon cheats are safe. It does have some weapons and other features that have never recurred since.

    Star Wars: Dark Forces II: Jedi Knight (1997, what this is talking about; in recent years the DF2 is usually at the end but historically it was mixed) was still mostly a shooter, but as you go through the game you get a lightsaber and start developing force powers; in practice you still use the guns a lot since guns are good at killing non-saber-using enemies from a distance and some enemies are dangerous up close (sometimes, however, reflecting the enemy's shots back is effective). Confusingly, the engine (which finally was an unconstrained 3D engine) was called "Sith" this time, and used this newfangled thing called "Microsoft Direct3D", since it was made for Windows 95 rather than MS-DOS. The game was notable for using real videos for cutscenes, and for having "secret areas" that are effectively mandatory if you want a full-power character at the end. It came on 2 mixed-mode CDs (so you could put them in a CD player).

    Star Wars Jedi Knight: Mysteries of the Sith (1998) was a single-CD expansion for the preceding, using essentially the same engine but lacking the real videos, and renaming all the cheat codes (eriamjh -> freebird). It was notable for having quite a few "reset" events through the mission sequence (I won't spoil it), and actually forcing you to use the lightsaber (though it also majorly improved many other weapons). The plot was definitely less coherent but it's still considered an essential part of the JK experience. IIRC one of the multiplayer levels crashes, at least if you play it with only one player. It was the first to drop the "Dark Forces" branding.

    Star Wars Jedi Knight II: Jedi Outcast (2002) switched to the better-known quake3 engine and made secret areas useless, and also nerfed a lot of force powers. Also, at this point it becomes really clear that they're just repeating plot points. IMNSHO it kind of ruined the spirit of the series, but it's popular. Other than the repeats the only thing I remember is, fairly early on, thinking "I'm not even going to try 100% completion". Most of the source code was open-sourced in 2013 when LucasArts was annihilated by the Mouse.

    Star Wars Jedi Knight: Jedi Academy (2003) ... I never actually played at all. It seems closely related to Jedi Outcast, but it's the first one that is not based on the same character.

e12e a day ago

> also contains the original versions of byacc and flex used for COG script parsing.

Interesting. As far as I can tell, the actual cog scripts aren't in the repo? I assume they need to be extracted from a copy of the game?

Would be nice to see an example of what the cog script language looks like if anyone has a link?

  • cogman10 36 minutes ago

    I wrote a bunch of cog scripts (hence my username) it was one of the first programming languages I learned :)

    It's been a while since I wrote it, but it looked pretty close to a simple C programming language.

    It was effectively bound events with predefined global methods you could call

    So you might see something like

        damage:
          setHealth(player, 100);
          while (getHealth(player) > 100) {
            setTint(getHealth(player) * 90, 0, 0);
          }
          return;
    
    Something like that (I may be forgetting some of the syntax, been a few years).

    The file structure was important. You'd have a `force_push.cog` which the game engine knew to link up all force push events into.

    A lot of these were ran locally, which as you can imagine, was a big issue when it came to cheating. There was a rudimentary checksum system in JK that would run against the cog files to verify two players hooking up together had the same version. That was easily hacked as the check ran client side.

    You could have events that you called and I believe labels you could jump to. That's how people created more advanced interactions. Up to and including new AI systems written purely in cog syntax.

  • unaut 21 minutes ago

    [dead]

paulryanrogers a day ago

Waiting so long for DF2 got me into modding Quake with models and animation. I'm planning on revisiting it with this project once I'm done with another RE project: TheForceEngine (DF1).

It is interesting how much effort we as fans have put into some of these properties, and how efforts coalesced around a relatively small number of games.

sylware a day ago

kewl!

Does a vulkan3D backend make any sense at all for this engine?