Smith

Contributers

There are several ways you can help!

Playtesting

Just download the engine and report any issues you find.

Custom mods/levels

The majority of issues I have found with implementing features correctly have been through fan-made levels and mods.
This is because, generally speaking, fans have managed to find ways to push the original Sith engine much further than LEC did
in the vanilla game.

If you think you have a particularly challenging mod or level, let me know.

Research

If you have a good understanding of any of the peculiarities of the original Sith engine,
or an ideal way to implement a specific feature, then your design input is valuable.

The process of creating very specific testbed levels/scripts to isolate a particular engine behavior can be tedious, but
is generally not difficult to do and can be of immense help to ensure compatibility to every level and mod.

There are a slew of flags, and a bunch of COG verbs (such as CreateThing vs CreateThingNR), that have never been fully explained.

Ideas

It is super easy to expand the functionality of JK by adding new features to the engine and COG. If there’s something you always wished
was possible or there was better engine support to do it, let me know!

The COG compiler and virtual machine are completely hand-written and extremely easy to extend.
Want to be able to increment a value by doing i++ ? We can add a postfix unary increment operator to the language. Want to be able
to use strings and concatenate them like stringA + “stuff” ? Strings are already supported and extending the binary addition operator
to detect if the operands are strings and do a concatenation instead of a decimal value addition would take about 3 lines of code.

COG verbs are also utterly simple to add. Its just a few lines of code to add a new one. They can be simple like cos() or
VectorAngle(). But with full access to all the original engine code, entirely new avenues of engine functionality can be pursued.
Why not add a handful of COG verbs to be able to, say, dynamically generate keyframe animations? Or maybe some new functions to more
finely tune AI behavior? Heck, add some web request COG verbs to be able to stream content from the internet.

Code

To take a direct first-hand approach to Smith development, please contact me regarding an application to join BAH or have your group become an affiliate.

If accepted, you (or your group) will be added to the contributers list for the Smith project in github and will be granted full access to the repository.

You will need to prove the following:

Technical prowess

Understanding of JK

Moral standing

Intentions

Contact

Please direct all information, requests or other discussion to the Jedi Knight Dark Forces 2 Discord server, or to the Smith project forum at JK Hub.