kripken / BananaBread

BananaBread is a C++ 3D game engine that runs on the web using JavaScript+WebGL+HTML
1.37k stars 331 forks source link

Loading Issues for chromebook #70

Open xrago opened 6 years ago

noahcoetsee commented 6 years ago

I noticed this issue long ago. There seem to be some issues with shadow rendering. When I attempted to fix it using the options, it would always crash.

noahcoetsee commented 6 years ago

@kripken Are you still actively attempting to fix bugs with your engine?

kripken commented 6 years ago

I don't have time to improve this project myself (aside from keeping it working with latest compiler and browser updates), but I can help people that want to, if there's interest.

noahcoetsee commented 6 years ago

I'd love to help out with improving this project and I think I may be able to help fix some of these bugs, but I don't have a wide understanding of how the engine works exactly. Should I look into the actual C++ engine rather than looking through the code here to gain a better understanding (since it's just compiled JavaScript)... What do you think, @kripken ?

kripken commented 6 years ago

Hmm, depends on the bugs. Some might be in the C++ code, but I think I also saw bugs with the JS/web integration.

In general I'm not sure how many people use this project. For me, I use it as a testcase to check emscripten updates on (as a serious real-world codebase, it's good to see it works after a major update to the compiler). If there's something other people use it for, it might be be nice to fix issues they hit, but I'm not sure in what area that would be.

noahcoetsee commented 6 years ago

Right now the only issue I have is the fact that it doesn't work on the Chrome WebGL that's supplied on Chromebooks. I think it has to do with the fact that Rectangular textures or something don't work. It's a really weird bug, as this code should work with the Chromebook's WebGL. I think the loading issues are issues between WebGL and the compiled JS.

noahcoetsee commented 6 years ago

By the way, the original poster failed to even provide the in-game console, so here it is when run on a Chromebook:

init: sdl
init: net
init: game
init: video: mode
init: video: misc
init: gl
Renderer: WebKit WebGL (WebKit)
Driver: OpenGL ES 2.0 (WebGL 1.0 (OpenGL ES 2.0 Chromium))
WARNING: No occlusion query support! (large maps may be SLOW)
WARNING: No texture rectangle support. (no full screen shaders)
Rendering using the OpenGL GLSL shader path.
init: console
init: gl: effects
init: world
init: sound
init: cfg
init: mainloop
noahcoetsee commented 6 years ago

@kripken I'd love to help on this project, but I don't have a very in-depth understanding of how this works, so could you inform me a little bit more on this project? (I don't have time to take a very in-depth look myself atm)

kripken commented 6 years ago

I'm not sure what the specific bug is here? All I see is "loading issues in chromebook". To investigate that, I'd look at what errors are thrown and debug from there.

kripken commented 6 years ago

Errors might be in the dev console - I'm not sure if/how to view that in a chromebook, but if it's like desktop chrome, control-shift-j.

noahcoetsee commented 6 years ago

Yeah, I'm looking into that right now!

noahcoetsee commented 6 years ago

So it turns out the GLSL Shader Path doesn't work well with the Chromebook, which causes model flickering. It's very annoying, actually..

kripken commented 6 years ago

Just out of curiosity, is that one specific model of chromebook, or all of them?

noahcoetsee commented 6 years ago

I believe specifically this happens on the Samsung Chromebook 2 (this is what I am using to test).

It's probably related to the use of WebGL ES 2.0 or something with the built-in graphics drivers of this specific Chromebook (or maybe more models, as I said before, I am unsure)

noahcoetsee commented 6 years ago

Here's a screenshot of what's happening: https://imgur.com/a/ZsMp1Rl

noahcoetsee commented 6 years ago

My previous thoughts were wrong, as it is apparent that on a Windows 10 Desktop, the same Drivers and Shaders are used

On Desktop:

init: sdl
init: net
init: game
init: video: mode
init: video: misc
init: gl
Renderer: WebKit WebGL (WebKit)
Driver: OpenGL ES 2.0 (WebGL 1.0 (OpenGL ES 2.0 Chromium))
WARNING: No occlusion query support! (large maps may be SLOW)
WARNING: No texture rectangle support. (no full screen shaders)
Rendering using the OpenGL GLSL shader path.
init: console
init: gl: effects
init: world
init: sound
init: cfg
init: mainloop
game mode is efficiency
Efficiency: You spawn with all weapons and armour. There are no items. Frag everyone to score points.
read map packages/base/colos.ogz (0.1 seconds)
Colos by Gregor Koch