Contributing To Development - Monitor221hz/Pandora-Behaviour-Engine-Plus GitHub Wiki
Whether you're a user, a mod author, or a programmer, there are many ways to contribute to development of the engine!
Users of the program can help development by submitting good bug reports through Github's issue tracking system.
When submitting a bug report, please provide the steps that another user should take to reproduce the same issue. Always write your report under the assumption that the developers have no information about the bug, as is the case most of the time.
At the bare minimum, the Engine.log file should be submitted so that the author can look through the log messages for more information, as well as see the patch list of mods available.
Ideally, the entire output of the engine should be zipped up and attached to provide the most information possible.
Keep in mind that users are not in a position to decide which files will contribute to debugging the problem, unless they are familiar with the source code and behavior. When in doubt, include as many relevant files as possible.
Provide an image or video of the issue if possible.
Reports that follow very little or none of these guidelines will be ignored, and likely closed.
Please take some extra time to create a good report, so that developers can fix the issue quicker and easier.
Please take the time to read legally acquired Havok™ SDK manuals dated as close to 2010 as possible (Havok™ Anarchy 2011 is a good reference). This page will not provide links to this documentation.
Contributors are not expected to have practical experience with using the Havok SDK but knowing the different layouts for skeletons, characters, behavior, etc. is extremely helpful for understanding the engine.
In addition, reading the raw xml of unpacked .hkx
files will help with understanding the output, and getting accustomed to the extremely verbose flavour of Havok™ XML. This is needed for debugging Pandora's output files. There are applications available for unpacking .hkx
files from binary to XML, namely hkxconv (64 bit), and hkxcmd (32 bit)
In case you want to jump into editing behavior files, use either Haviour or Skyrim Behavior Editor..
If you're new to C#, please don't contribute until you feel like you know enough to understand the code and its purpose. This is not a beginner project and contributors need to understand intermediate to advanced concepts such as parallelization/concurrency, MVVM, Linq, and Reflection.
If you are new to Avalonia, please read the documentation.
Before you start any pull request, please make sure you understand the part of the engine you're changing.
Pull requests should be styled in this format:
[Commit Type]: [Short Explanation] [User Implications]
There are no strict guidelines for code style, just be sure to follow a naming convention consistent with the rest of the code.
Try to avoid name abbreviations where possible, the extra second spent typing the full name is well worth the clarity and decrease on cognitive load it provides the developers.