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