Skip to content
dpogue edited this page Jan 3, 2015 · 17 revisions

Plasma Roadmap

General Cleanup

  • Untangle the circular pnNucleusInc and pnTimer dependency.

  • Investigate changing hsThread to be a wrapper over std::thread. #459
    (@Zrax is working on this)

  • Fix warnings from Coverity code analysis.

  • Replace Ogg Vorbis with Opus for audio files.

  • Replace Speex with Opus for voice chat data.

  • Replace any EAX code with OpenAL EFX. #8

Kill pnUtils

  • Deprecate pnUtils/pnUtTime's GetTimeMs() and use hsTimer instead.

  • Deprecate all of pnUtils/pnUtStr by replacing uses with plString or standard C library string functions.

  • Continued conversion of std::string, std::wstring, char*, and wchar* to plString when used in Plasma classes.

Kill pnAsyncCore/pnAsyncCoreExe

  • Rewrite pnAsyncCore/pnAcTimer as a pnTimer class using hsThread and hsTimer.

  • Rewrite most of the netcode to be based on plSockets.
    (@dpogue is semi-in-progress with this)

Cross-Platform (#5)

  • Replace PhysX with Bullet. #4
    (@Deledrius has some progress here)

  • Replace Win32-specific input handling with keycode.

  • Pull non-DirectX-specific code from plDXPipeline into a base class. #2 (@dpogue is working on GL pipeline stuff)

  • Validate the target_link_libraries for all of the Plasma sub-projects. #383

  • Fix errors and warnings for the following compilers:

    • Windows:
      • MSVC (32)
      • MinGW g++ (32)
    • Macintosh OS X:
      • Xcode clang (32)
    • Linux:
      • g++ (32)
      • clang (32)
      • MinGW g++ cross-compile (32)

64-bit (#34)

  • Replace PhysX with Bullet. #4
    (@Deledrius has some progress here)

  • Track down and fix 32-bit assumptions throughout the codebase.
    Hint: Build with 64-bit MinGW, identify and fix 64-bit issues.

  • Fix errors and warnings for the following compilers:

    • Windows:
      • MSVC (32, 64)
      • MinGW g++ (32, 64)
    • Macintosh OS X:
      • Xcode clang (32, 64)
    • Linux:
      • g++ (32, 64)
      • clang (32, 64)
      • MinGW g++ cross-compile (32, 64)

Restore Single-Player

  • Refactor plVault to not be tightly coupled to the eap netcode.

    • BONUS: Restore old creatable vault types (the current ones are a double-free disaster)
  • Separate network logic from linking.

Clone this wiki locally