I’m currently exploring OpenFL, and I see that it has an implementation of Stage3D to create 3d graphics.
I’m kinda curious about it, since using it means that I could stay on OpenFL if I move on to 3d programming. Another plus is that the interface looks pretty simple.
There are a few cons, though: first, help seems hard to find. The API docs are very good, but in this case a few more things would be needed to really know how to use Stage3D, specifically documentation for the AGAL. It probably used to be plentiful, but now that flash is dead and that the links in its docs slowly go dead too, I’m not too sure where to find help for that. All the 3d stuff in OpenFL seems to gravitate around a framework called Away3D, but I don’t want a framework in between and I do not trust the state of the project given the look of the homepage.
Finally, I see that there are quite a number of restrictions on the resources you are allowed to use, namely:
Resource Number allowed Total memory
Vertex buffers 4096 256 MB
Index buffers 4096 128 MB
Programs 4096 16 MB
Textures 4096 128 MB
Cube textures 4096 256 MB
AGAL limits: 200 opcodes per program.
Draw call limits: 32,768 drawTriangles() calls for each present() call.
…plus a decent amount of limits on texture sizes:
Texture Maximum size Total GPU memory
Normal Texture (below Baseline extended) 2048x2048 512 MB
Normal Texture (Baseline extended to Standard) 4096x4096 512 MB
Normal Texture (Standard extended and above) 4096x4096 2048 MB
Rectangular Texture (below Baseline extended) 2048x2048 512 MB
Rectangular Texture (Baseline extended to Standard) 4096x4096 512 MB
Rectangular Texture (Standard extended and above) 4096x4096 2048 MB
Cube Texture 1024x1024 256 MB
The thing is that I don’t know how big that is; I’ve never done 3d game programming before. Within these constraints, is it possible to make a decent-sized game, or will I be constantly butting my head against the limits? By the way, are those limits still in place in OpenFL, or is it just because it’s a verbatim port of the flash docs?
All in all, is OpenFL usable for 3d games, or am I way better off using something such as Kha?