We do often include affiliate links to earn us some pennies. See more here.

A 2016 Thanksgiving retrospection about the open source game engine 'xoreos'

By - | Views: 11,645

xoreos is a FLOSS project aiming to reimplement BioWare's Aurora engine (and derivatives), covering their games starting with Neverwinter Nights and potentially up to Dragon Age II. This post gives a short update on the current progress.

Note: This is a cross-post of a news item on the xoreos website.

And again a year is nearing its end. Like last year and the year before, I'd like to turn my gaze inwards.

A lot of things happened with xoreos this past year, albeit most of them hidden and "under the hood":

  • I wrote about disassembling NWScript bytecode. The tasks I mentioned there are still open, too. If anybody wants to take them up, I'd be happy to explain them in more detail :).
  • We released xoreos 0.0.4, nicknamed "Chodo". That was the only release of xoreos in 2016. xoreos 0.0.4 included some minor fixes and features for Neverwinter Nights, and the xoreos-tools package included the new NWScript disassembler.
  • In April, I reached a streak of a full year of daily xoreos commits. Due to some real life things, I had to take a break there, though. I'm now again at three months of daily commits, but there is a three-month "hole" between April and August.

  • Farmboy0 fleshed out the Jade Empire engine a bit, mostly in the scripts department.
  • Supermanu implemented a huge chunk of the character generator for Neverwinter Nights.
  • Farmboy0 fixed a glitch in the Neverwinter Nights animation system that has plagued xoreos for quite some time: the animation scaling in various creature models was off. This lead to, for example, the head and arms of elves detaching from the body during the yawn animation.
  • I then implemented a few more animation script functions, too, which is especially noticeable in the intro animation for Hordes of the Underdark. I also fixed a mistake in the keyframe interpolation. This takes care of another glitch in Neverwinter Nights: model nodes rotating the wrong way around.
  • smbas added support for Lua scripts in The Witcher. A lot of the initialization code that sets up the classes and functions The Witcher expects to find is still missing, so nothing obvious is visible as of yet.
  • Farmboy0 moved the window handling from the GraphicsManager into a new WindowManager class, making the code more readable.
  • I fundamentally restructured our build system, or at least the autotools part of it (xoreos can be built using either autotools or CMake). Previously, we used a recursive autotools setup, where make recurses into each subdirectory. This is, unfortunately, pretty slow, among other drawbacks. I changed it to be non-recursive now, with the top-level Makefile instead being created using (recursive) includes.
  • I then introduced various smart pointer templates into the codebase, making it easier to read and easier to keep track of memory allocations.
  • berenm added AppVeyor integration. Like Travis CI (which we already use as well), AppVeyor is a continuous integration service. This means that every single commit to the public xoreos repository will now be built on Microsoft Windows, using Microsoft Visual Studio 2015, in addition to gcc and clang on GNU/Linux (via Travis CI). This ensures that any compilation breakage on these systems is immediately visible and can be fixed at once.
  • GitHub added a new feature, "Projects", that provide Kanban-like boards of tasks. I took the time to fill the xoreos Projects page with boards for tasks from our TODO list.
  • There were of course also various clean-ups, minor fixes and expanded code documentation. 
  

Additionally, there are several tasks currently being worked on, among them:

  • Supermanu is looking into pathfinding.
  • mirv is still working on rewriting the OpenGL renderer.
  • I am currently writing unit tests for the xoreos codebase, using Google Test. I already found multiple issues, bugs, and corner cases while adding them.

From my side of things, my current plan is to make my unit tests branch public some time in December. I'll write a small announcement here about it then. A new release of xoreos, 0.0.5, should follow early next year.

As always, this all wouldn't have been possible without a lot of people. For them I am thankful.

  • Farmboy0, for various fixes, implementations and file format spelunking.
  • Supermanu, for his character generator work and pathfinding research.
  • mirv, for continuing to work on the OpenGL rewrite.
  • smbas, for his work on Lua and The Witcher.
  • berenm, for the AppVeyor integration and CMake knowledge.
  • TC01, for writing a Fedora specfile for the xoreos projects.
  • CromFr, for taking a stab at the walkmesh structure in NWN2's TRN files.
  • clone2727, for invaluable ideas and corrections.
  • The folks at GamingOnLinux, who continue to be a great resource for all things related to Games on Linux.

I am also thankful for all the people who take the time to explain things to others, people who write interesting, useful or needed articles, and people who provide mentoring and help. Relatedly: a week ago, Stephanie Hurlburt published an article with engineers who are willing to mentor or answer programming/engineering questions. I for one think that's a really great idea. Please take a look at that article.

And now, let's see what the next year has in store for us. If you, however, found all this terribly interesting and would like to help with our little project, then please, feel free to contact us! :)

Article taken from GamingOnLinux.com.
17 Likes
About the author -
Geek. Atheist+. Leftist. Metal-Head. Discordian. Lefty.
ScummVM dev, xoreos lead.
Free software zealot.
See more from me
The comments on this article are closed.
7 comments

tmtvl Nov 24, 2016
Thank you guys fr all your hard work, and I'm really looking forward to seeing how xoreos continues to evolve.
Keyrock Nov 25, 2016
A big thanks to the team for their work. I can't wait to someday play Jade Empire again using this engine.
Luke_Nukem Nov 25, 2016
This is incredible work! Bloody amazing!
z1lt0id Nov 25, 2016
I can't wait to play Witcher 1 on Linux using this open-source implementation.
Keyrock Nov 25, 2016
Quoting: z1lt0idI can't wait to play Witcher 1 on Linux using this open-source implementation.
As much as I love that game, I'll probably never play it again even when I can play it natively using Xoreos. I've thought about replaying it on several occasions, but when I do the nightmares of THE SWAMP return. I can't bring myself to go through that swamp again. That area was the worst. It's too bad, because I really liked the majority of the rest of that game, but that swamp is so awful.


Last edited by Keyrock on 25 November 2016 at 5:45 am UTC
scaine Nov 25, 2016
View PC info
  • Contributing Editor
  • Mega Supporter
Quoting: Keyrock
Quoting: z1lt0idI can't wait to play Witcher 1 on Linux using this open-source implementation.
As much as I love that game, I'll probably never play it again even when I can play it natively using Xoreos. I've thought about replaying it on several occasions, but when I do the nightmares of THE SWAMP return. I can't bring myself to go through that swamp again. That area was the worst. It's too bad, because I really liked the majority of the rest of that game, but that swamp is so awful.

Funny you say that - my 2011 play through (or was it 2012?) of that game ended at the swamp. Good game until that level, but it was so tedious that I finished up at some point, then never went back to it.
DrMcCoy Nov 25, 2016
Thanks for the kind words, everyone. To give my usual spiel, though, we really need more contributors. :P
While you're here, please consider supporting GamingOnLinux on:

Reward Tiers: Patreon. Plain Donations: PayPal.

This ensures all of our main content remains totally free for everyone! Patreon supporters can also remove all adverts and sponsors! Supporting us helps bring good, fresh content. Without your continued support, we simply could not continue!

You can find even more ways to support us on this dedicated page any time. If you already are, thank you!
The comments on this article are closed.