Barebones (Patreon)
Content
I've added a "r_drawview" cvar that fully disables 3D rendering. This helped me confirm that crashes such as the intermission crash are not caused by the 3D renderer (disabling r_drawview before entering an intermission still crashes the engine).
There are several weird crashes in Retroquad, as you can see in the readme. If it wasn't for those crashes, I would promote this engine a lot more. It hurts me to see it crashing so much, and failing to figure out why all those crashes happens. I don't care much for glitches, because glitches can be worked around. But most crashes can't:
- The game is always crashing when the intermission camera is activated.
- Quite often, demo playback causes regular map loading to crash.
- In some cases, the engine simply crashes randomly upon loading the map.
- Some random crashes are caused by entity rendering. Setting r_drawentities to zero stops such crashes.
The first crash may be caused either by the physics, by the network protocol, or by the qc virtual machine.
The second crash is incredibly weird. Starting the engine without playing any demos stops some crashes in regular gameplay, and entering in regular gameplay before playing any demos makes some demos crash. This happens too randomly and can't be reproduced in a reliable way.
The third crash may be caused by the same possible causes of the first crash, but it happens as randomly as the second crash.
Retroquad's physics code still is mostly identical to vanilla Quake, but its network protocol has many changes to accomodate some of the new features. I'll have to investigate it deeply.
I'm also removing lots of dead code, and may start removing some unused features such as skyboxes to make the code simpler and easier to debug. If that's not enough, leaving the engine in a barebones state may be the way to fix the crashes. After getting a rock solid engine core working, I could start adding back the removed features.
I don't want to risk doing what I did years ago, implementing lots of features with no testing and debugging. This engine is already too fragile.