Our game 3D renderer

Panda3D is an open-source, cross-platform game engine and framework designed for rendering 3D graphics and developing interactive applications like games and simulations. It is written in C++ but offers a Python API, making it highly accessible for rapid prototyping and development, especially for those who prefer coding over visual tools.

Why I Used Panda3D:

I chose Panda3D primarily because of its Python support, which made it easier and faster to prototype and develop my project. Python's simplicity and readability allowed me to focus on the logic and functionality of the game without dealing with the complexities of lower-level languages.

How Panda3D Differs from Unity:

Panda3D:

Requires more manual setup and coding for tasks like rendering, scene management, and asset integration. Lacks a built-in visual editor, so everything is done programmatically. To deploy a Panda3D game on a website, you need to use WebAssembly (Wasm) via tools like Emscripten to compile the game into a format that can run in a browser. This process can be more complex and less streamlined compared to Unity.

Unity: 

Provides a user-friendly, drag-and-drop editor that simplifies game development. Has a built-in WebGL export option, making it straightforward to deploy games directly to websites. Unity handles most of the optimization and compatibility issues for you. Offers better performance and graphical fidelity for web-based games compared to Panda3D.

Deploying to a Website:

Panda3D:

Requires converting the game to WebAssembly, which can be technically challenging and may require additional optimization for performance in browsers.

Unity:

Simplifies web deployment with its WebGL export feature, making it easier to get a game running on a website with minimal effort.

In short, I used Panda3D for its Python support, but Unity is more user-friendly and better suited for web deployment due to its built-in WebGL support and streamlined workflow.