I want to express my sincere appreciation for Scirra's dedication and innovation in developing Construct 3 (C3). The continued improvements, driven by both Scirra's creativity and the valuable suggestions from the community, have made C3 an amazing game development tool. I see that SDK V2 is aligned with this direction.
However, as user demand for 3D functionalities grows, I believe a collaborative approach can further enhance C3's capabilities. This proposal outlines a community-developed 3D add-on suite that would not only empower users with 3D features but also remove the 3d feature pressure from Scirra's valuable resources, to allow more focus on other areas of C3 development.
This proposal outlines a suite of three FOSS (Free and Open Source Software) projects:
- 3D Object: Handles 3D models and animations (already FOSS).
- 3D Effects: Manages 3D lighting, height fog, and other visual effects.
- 3D Physics Behavior: Provides realistic physics simulations for 3D games, including kinematic character controller
These projects leverage C3's unique visual scripting and event interfaces, allowing for rapid development without coding. They are currently functional but require changes to comply with SDK V2 and completely eliminate any engine hacks.
To enable this suite with V2, I propose the following limited and prioritized SDK V2 requests:
- World coordinates for effects (Git #236): Essential for 3D lighting and effects.
- GPU 3D rotation (Git #230): Improves 3D object and shape rotation performance.
- SDK V1 functionality support in V2: Ensures backward compatibility with existing add-ons, without any internal engine access.
- Mesh data access (Git #283): Allows for features like 3D text and physics tri-mesh terrain support.
I have prepared examples showcasing C3's 3D capabilities with these addons and without any addons. It shows the viability of C3 doing a nice level of 3D in commercial and educational projects. The intent is that this collaboration would benefit Scirra, the product, and the entire community. The examples follow this post.
I am open to discussing this further through any available channel (forum, Discord, email, etc.). Thank you to the community for their feedback on this post. Looking forward to feedback, alternate approaches, etc.