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.
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.
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.
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.
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.
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).
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?
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)
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.
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.
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.
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.
Jedi Knight: Dark Forces II
Thanks, thought it was going to be a Java Key Derivation Function
LOL yeah, I was also thinking in terms of HKDF, PBKDF2 etc
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.
Yeah, I also thought its a key derivation function I haven't heard of yet.
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.
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.
Looks like the fork is:
https://github.com/LadyEebs/OpenJKDF2
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.
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.
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.
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).
Loads of old DOS games had IPX network play. Once Doom arrived with Internet multiplayer the days of IPX were over.
Age of Empires 2 had IPX as far as I remember.
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?
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)
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.
TIE Fighter with a Sidewinder joystick in the late 90s. Bliss.
Basically what someone else has said - get the game easily working on modern systems and fix various bugs and issues with the original.
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.
I think it's more about game preservation.
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?
> And why does Jedi Knight: Dark Forces 1 use so many guns?
I'm guessing it's off the back of Doom's success.
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.
> 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?
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
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.
[dead]
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.
There's also a reimplementation of the original Dark Forces [1].
[1] https://github.com/luciusDXL/TheForceEngine
kewl!
Does a vulkan3D backend make any sense at all for this engine?
[dead]