The concept
While the development of the 3D editor hosted here is ongoing, and there are many features that would be great to implement, there is an intention to create a browser-based 3D game using a non-traditional approach.
Many high-quality browser games exist, particularly open-source indie titles built on libraries like Three.js and Babylon.js. These games are beautifully modeled and textured in 3D, with developed gameplay, a defined setting, and a nice, short story.
However, these kinds of web games are typically packaged into a single bundle of files and delivered to the browser all at once. As a result, download times and the actual game loading process on the client side can be significantly long. Yes, we all know the old-fashioned loading bar (and love to watch and track its progress).
But how can we avoid this? Or at least minimize it?
To minimize these delays, a modular approach is proposed. Gameplay could be divided into separate acts, each consisting of self-contained, highly optimized WebGL scene files hosted at specific URLs. This structure would enable URL-based navigation between game segments.
Key optimizations for this method include:
Utilizing a "vanilla" WebGL engine to keep file sizes small. Restricting 3D models to low-polygon counts and essential objects only to ensure rapid delivery.
Low-poly modeling is a key optimization:
Engine enhancements achieved through the adaptation of features from the current 3D editor while adding:
- First- and third-person camera movement and control.
- Minimal physics and collision detection for scene objects.
- Animation systems.
- Textures and more advanced lighting.
URL-based navigation between gameplay acts also makes it possible to develop the story and game challenges as development goes, without modifying existing parts. Of course, this structure (still theoretical at this time) may not be suitable for all types of 3D games. Additionally, the transitions between separate acts could be sharp, which might lead to a jagged and fragmented gameplay experience. But anyway, it is worth exploring.