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?