Giter Club home page Giter Club logo

webgl-quake3's Introduction

WebGL Quake 3 Renderer

WebGL app that renders levels from Quake 3. Quake 3 and anything related to it is the property of id Software, who does not authorize or endorse this project in any way.

Related Links

webgl-quake3's People

Contributors

ivnnv avatar toji avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

webgl-quake3's Issues

No License

Without a license, developers are not free to reuse code. ๐Ÿ‘Ž

a developer's small request

This is a very cool program. Currently I am using three.js to develop a large scene display effect, which contains a lot of static models. I tried LOD, clone and other related technologies and finally did not have any significant acceleration. My goal It can be rendered as efficiently as your current demo version. If three.js can do it, please give me some inspiration, thank you very much.

Curved meshes missing collision?

Hi, I noticed you have a few branches in progress, including one to use ammo.js and three.js for physics and rendering, so maybe this is a moot point (not sure what state of completion that branch is in?) but I noticed that for all surfaces that are curved, perhaps because they are made from the Q3 patches, are not processed by the collision mesh generating script perhaps? So the player character clips & falls through curved walls quite readily.

I guess this post doubles as a question somewhat: If you are aware of this issue, do you remember by any chance if it's an issue with collision detection by the character, or like I mentioned above, the collision surface generation process? And, is it worth exploring a fix in the "main" branch, or working with the "exporter" branch?

Pointer lock not working

I am using Chrome 18 on a mac and the pointer lock is not working. I am running the game on localhost and I have enabled the pointer lock functionality in about:flags. I also tested chrome canary with same result.

I tried updating to version 0.5 of the game shim and then my keyboard stopped working (W, A, S, D) and still no pointer lock.

When I start the game the following error appears in the console (both locally and on your server).

Uncaught Line: 71, Uncaught Error: INVALID_STATE_ERR: DOM Exception 11 ------ q3bsp.js:55
Uncaught Error: INVALID_STATE_ERR: DOM Exception 11 ------- /q3bsp/js/q3bsp_worker.js:71

However the pointer lock described on this webpage works.
http://updates.html5rocks.com/2012/02/Pointer-Lock-API-Brings-FPS-Games-to-the-Browser

Performance

Well, it's quite not an issue, but you could update some code for performance.

in
https://github.com/toji/webgl-quake3/blob/master/js/main.js#L325
document.getElementById('viewport') in drawFrame is maybe not the best thing to do.

in
https://github.com/toji/webgl-quake3/blob/master/js/main.js#L455
Should also try to put code like 'W'.charCodeAt(0) in a more global object like

const CharCode = {
    'W': 'W'.charCodeAt(0),
    ...
};

CharCode.W

in
https://github.com/toji/webgl-quake3/blob/master/js/main.js#L283
You could put vrPosition.position in a variable too?

But your general code is easy to read and I found nice answer.

Incompatible BSP version.

Hi there,

i tried to run this code base locally but it says "Incompatible BSP version.".

Is there anything i should add before running the code?

WebXR wont work on iOS

Hi @toji,
I have tried to do my best to document and report a bug on the webxr polyfill that causes iOS not to be able to use WebXR on this demo (Im trying to make a working q3 cardboard gameplay ๐Ÿ˜ฌ)

I have seen you had previously contributed to both the examples and the polyfill repos, so maybe this is something you could be able to fix or point me in the right direction to make the view to attach to the device movement:

I made a workaround adding the above on main.js->initEvents():

window.addEventListener('deviceorientation', (event) => {
  const yPos = isXRPresenting() ? event.gamma : event.beta;
  moveLook(-event.alpha * 10, -yPos * 10);
});

which initially "works more or less", but need to figure out how properly transform event's alpha, beta, gamma values to moveLook parameters.

Thanks in advance.
Best.

missing assets

running this locally, it fails to load because of two 404's. http://localhost:9000/demo_baseq3/scripts/web_demo.shader and http://localhost:9000/demo_baseq3/maps/q3tourney2.bsp.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.