Development Hell - P3D-Space-Tech-Demo/Panda3DSciFiTechDemo GitHub Wiki

The development of the Panda3D Tech Demo (2021) has not been without challenges which our team has overcome through study, hypothesis, collaboration, and testing. Designing a video game is hard work which comes with a tall software and design stack.

The following is a summary of some of the more trying design challenges we faced along the way, in roughly temporal order.

Initial Collaboration

  • We were aware that several developers had previously attempted to build programs which were demonstrative of Panda3D capabilities, yet they had all failed to complete their projects.
  • Hence, trepidation was high at the earliest stages.
  • In addition, Panda3D has been subject to a roughly 3-year long extension period to support Physically Based Rendering, which has created multiple ways to build Panda3D programs.
  • glTF 2.0 and PBR support are still under continuing core development, which necessitated improvisational abilities in some of the more advanced rendering cases.
  • We were aware that a team of just three developers was likely the bare minimum requirement to build a compelling tech demo with mechanics that span three or more game genres.

Down in the Weeds

  • How is a "proper" Panda3D instantiation conducted?

  • Design of the asset hierarchy, common.py , and module minimalism

  • Support for the instantiation of OOP and Structured design styles

  • Building out the procedural generation demo

    • Should we use AI to move the bots and drones, Intervals, or vector interpolation?
    • Segmentation of bot emergence volumes via elevator shafts
    • Switching to an entirely Interval based format for the bots
    • Studying the movement of quadcopter drones in order to produce compelling Interval-based procedural drone motions
    • Platform-specific visual differences emerged with light attenuation that required positive vertex normalization to fix
    • Implementation of multiple discrete PBR shaders for node-level application and platform visual consistency
    • The PBR based 3D modeling slog continues ever forward!
    • Implementation of holo.py
    • Solving the Material texture asset problem by leveraging customized https://cc0textures.com/ free PBR Materials with Blender 2.9
    • Solving .gltf collision modeling the preloaded way, Part 1
    • Designing and implementing Section-based loading with menu integration
    • Implementing "pause game" functionality for an entire game stack for the first time, and ultimately succeeding
    • Design and animation of a fully rendered starship cockpit exterior and interior
    • The character is 15 feet tall, that's okay right?
    • Procedural normal-mapping of a spacesuit and armature design
    • Oh, so the Panda3D forum thread limit is 499 posts before being auto-locked?
    • ...that's interesting, Collaborative Sci-Fantasy Tech Demo Part 2 engaged
  • Building out the space simulator

    • Conventional or Newtonian movement?
    • Shader integration woes and reliefs
    • Design of the soft cam and movement effects
    • Design of the spherical portal system
    • Solving .gltf collision modeling the preloaded way, Part 2: Spherical Portal Tunnel Edition
  • Building out the first person shooter "Many Worlds" showcase

    • Character controller design
    • Implementing model-relative particle effects for timed animations