Skip to content

An open-source implementation of the Aurora/Odyssey engine, targeting the two Knights of the Old Republic games

License

Notifications You must be signed in to change notification settings

lachjames/NorthernLights

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

60 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

The Northern Lights Project

The Northern Lights Project (a placeholder name) is a full reimplementation of the Aurora/Odyssey engine, targeting the two Knights of the Old Republic games (KotOR 1 and TSL). It is made of two elements:

  • A full re-reimplementation of the Odyssey engine, intended to fix bugs and allow the game to run on modern hardware without the nightmares of the past...
  • A level editor (named the KotOR Level Editor, or KLE) with similar (but extended) capabilities to the Aurora toolset from Neverwinter Nights, targeted at the KotOR games.

Please find a video outlining the features of the KLE here.

What Works

  • The level editor is functional, and can save and load modules. It is still in (very early) private alpha, so please let me know if/when you find bugs.
  • KotOR and TSL are both supported fully in the level editor.
  • Model loading and animations (thanks in no small part to the work of rwc4301, whose work in turn seems to be partially based on the Xoreos project)
  • NCS scripts run natively, although performance needs to be improved
  • Many of the engine routines have been implemented, along with the corresponding systems
  • I've got a rudimentary UI system working, but how exactly I want to handle this is still an open question
  • Enemy combat AI is working (but is very simple; for now, I'm overriding the k_ai_master script and writing the AI logic myself).
  • The action system has been implemented, but many of the actions require implementation
  • Movie playback works (although it works by first converting all the movies to MP4, and then playing them). Eventually, using Xoreos as a reference, I'd like to read the movies directly from .bik format, but that's a lower priority.

What doesn't work

  • Many of the systems currently use reflection to (very significantly) improve code readability. However, this comes at a performance cost. I might have to reimplement some things without reflection (the script system, in particular, is a target for this).
  • The save-load system
  • The effect system (as in, effects on characters, such as heal, damage, ...) is not yet implemented
  • Combat and gameplay in general are very limited in scope right now. Dialog works, and some scripts work (but with large, game-breaking bugs).

Installation (for level editor - engine reimplementation is not ready for prime-time yet)

Please follow the following steps:

  1. Go to this link (as it is the latest stable version of KLE): https://github.com/lachjames/NorthernLights/tree/0b994f127ab1f394e20e0cae2b514aff9fca2a6a
  2. Download the repository, either by cloning it using git or just downloading it as a .zip file
  3. Unzip the resulting folder somewhere on your computer
  4. Open the folder in Unity as a project
  5. Open the "KotOR" scene, in the "scenes" folder
  6. In the top menu, go to Edit -> Project Settings, then click the "Aurora Preferences" tab. Enter the game you're working on (TSL is best supported for now), the location of your K1/TSL installation (where appropriate), and a "Module Out Location", which is a folder that you don't mind being completely erased frequently by the level editor (it's used for temp space during saving/loading).
  7. Follow the guides at https://github.com/lachjames/KotOR-Modding-Guide/wiki to learn how to use the editor, including which windows are applicable for which tasks.

Who to thank

  • Almost all of the code for loading models, GFF, LYT, RIM, MOD, ERF, ... files is either directly from, or derived from, the KotOR-Unity repo (https://github.com/rwc4301/KotOR-Unity). This project wouldn't have gotten off the ground without the amazing work of rwc4301.
  • JC on the DeadlyStream Discord has been invaluable and this project would not exist without his knowledge of the game engine
  • Thor110 for his help and support, tmonahan23, VicariousVeteran, and many, many others
  • DrMcCoy and the Xoreos team for the Xoreos project (xoreos-tools is used in this project for a few things, and xoreos itself is a great reference)
  • The Reone project, which
  • KotOR.js, another project similar to this, whose public source code has been helpful when trying to crack a couple of difficult nuts
  • MDLOps, whose source code I have relied on heavily when trying to understand the MDL/MDX format
  • The NWN NSS/NCS Skywing documentation
  • So, so much more... I need to continually update this section with people I missed, or new people who helped out :)

About

An open-source implementation of the Aurora/Odyssey engine, targeting the two Knights of the Old Republic games

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published