mdsteele / azimuth

A metroidvania with vector graphics
https://mdsteele.games/azimuth/
GNU General Public License v3.0
51 stars 15 forks source link

Web port #25

Open midzer opened 1 week ago

midzer commented 1 week ago

Hi,

first of all, great game! :)

I try to port the game in the browser. But I am running into an issue using an OpenGL translation library https://github.com/ptitSeb/gl4es/issues/472

Basically, those alpha blended wall brown structures (which are destroyable with the first weapon upgrade) are not visible at all.

Perhaps there are some "special" OpenGL functions used which are not supported by gl4es?

Have a nice week midzer

mdsteele commented 1 week ago

Thanks for the interest! It would be fun to see the game get ported.

Azimuth's graphics rendering is written in old-timey immediate-mode OpenGL, and uses some deprecated features that, to the best of my knowledge, aren't supported by GLES. In particular, the brown destructible girder-like walls are drawn using GL_QUADS, but I don't believe that's a supported draw mode in GLES, so perhaps the translation library can't handle it.

If glBegin(GL_QUADS) isn't supported, then porting may well require rewriting a bunch of the rendering code to draw those game objects with e.g. separate GL_TRIANGLE_STRIPS instead, which would be a fair bit of work to rewrite and test. I don't know whether or not there's an easier solution.

midzer commented 1 week ago

Thanks for the reply @mdsteele

When linking azimuth with legacy GL emulation https://emscripten.org/docs/porting/multimedia_and_graphics/OpenGL-support.html#emulation-of-older-desktop-opengl-api-features there are undefined symbols like glGenLists, glNewList, glEndList and glVertex2d.

So, I have to rely on gl4es for now and investigate how solve this (minor) graphical issue described in first post.