OpenJKDF2 – A cross-platform reimplementation of JKDF2 in C
github.com
github.com
I shouldn't have been confused as I saw this repo browsing GitHub on the weekend.
I think it really started dropping off as an option around 00s.
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?
(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)
How have I never heard of this game before? And why does Jedi Knight: Dark Forces 1 use so many guns?
I'm guessing it's off the back of Doom's success.
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.
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.
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?
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.
Does a vulkan3D backend make any sense at all for this engine?