Git Product home page Git Product logo

gmh-code / quake-wasm Goto Github PK

View Code? Open in Web Editor NEW
14.0 2.0 3.0 2.77 MB

Play the Quake first-person shooter in your browser! True to the original. Supports GLQuake, software-rendered mode, mods, and mission packs.

Home Page: https://quake.m-h.org.uk

Batchfile 0.05% C 83.16% Assembly 11.73% Makefile 4.46% Shell 0.35% M4 0.10% HTML 0.15%
3d-game 3d-game-engine browser-fps browser-game emscripten emscripten-game emscripten-port first-person-game first-person-shooter fps

quake-wasm's People

Contributors

gmh-code avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

quake-wasm's Issues

Escape key not available on some devices

This web port is decently playable using my iPad with the keyboard case accessory, apart from the lack of an escape key. I don't know why Apple would make such a decision, but it makes exiting any menus in this port impossible, and means that I can't change any settings, making the game largely awkward to play. Some way to rebind the main keys before loading the game would be useful to fix this, or just providing some other keybind that does an escape.

This isnt an issue, I just don't know how else to reach you

I gotta say, you adding widescreen was probably one of my favorite changes. So I gotta say, I'm impressed with how much work you've put into the website in such a short time. That's all i really wanted to say. Have a good day and I hope you enjoy working on this project!

failure to build glquake on raspberry pi

receiving the error:

emcc chase.o cl_demo.o cl_input.o cl_main.o cl_parse.o cl_tent.o cmd.o common.o console.o crc.o cvar.o host.o host_cmd.o keys.o mathlib.o menu.o net_bsd.o net_dgrm.o net_loop.o net_main.o net_udp.o net_vcr.o pr_cmds.o pr_edict.o pr_exec.o r_part.o sbar.o snd_dma.o snd_mem.o snd_mix.o sv_main.o sv_move.o sv_phys.o sv_user.o view.o wad.o world.o zone.o gl_draw.o gl_mesh.o gl_model.o gl_refrag.o gl_rlight.o gl_rmain.o gl_rmisc.o gl_rsurf.o gl_screen.o gl_test.o gl_warp.o cd_null.o snd_sdl.o sys_sdl.o vid_sdl.o -O3 -sUSE_SDL=2 -sINITIAL_MEMORY=64MB -sTOTAL_STACK=2MB -sALLOW_MEMORY_GROWTH --preload-file=id1 --shell-file shell.html -lidbfs.js /home/kjw/gl4es/lib/libGL.a -sFULL_ES2=1 -o index.html
wasm-ld: error: gl_draw.o: undefined symbol: glTexCoord2f
wasm-ld: error: gl_draw.o: undefined symbol: glVertex2f
wasm-ld: error: gl_draw.o: undefined symbol: glTexCoord2f
wasm-ld: error: gl_draw.o: undefined symbol: glVertex2f
wasm-ld: error: gl_draw.o: undefined symbol: glTexCoord2f
wasm-ld: error: gl_draw.o: undefined symbol: glVertex2f
wasm-ld: error: gl_draw.o: undefined symbol: glTexCoord2f
wasm-ld: error: gl_draw.o: undefined symbol: glVertex2f
wasm-ld: error: gl_draw.o: undefined symbol: glEnd
wasm-ld: error: gl_draw.o: undefined symbol: glColor4f
wasm-ld: error: gl_draw.o: undefined symbol: glTexCoord2f
wasm-ld: error: gl_draw.o: undefined symbol: glVertex2f
wasm-ld: error: gl_draw.o: undefined symbol: glTexCoord2f
wasm-ld: error: gl_draw.o: undefined symbol: glVertex2f
wasm-ld: error: gl_draw.o: undefined symbol: glTexCoord2f
wasm-ld: error: gl_draw.o: undefined symbol: glVertex2f
wasm-ld: error: gl_draw.o: undefined symbol: glTexCoord2f
wasm-ld: error: gl_draw.o: undefined symbol: glVertex2f
wasm-ld: error: gl_draw.o: undefined symbol: glEnd
wasm-ld: error: gl_draw.o: undefined symbol: glColor4f
wasm-ld: error: too many errors emitted, stopping now (use -error-limit=0 to see all errors)
emcc: error: '/home/kjw/emsdk/upstream/bin/wasm-ld -o index.wasm chase.o cl_demo.o cl_input.o cl_main.o cl_parse.o cl_tent.o cmd.o common.o console.o crc.o cvar.o host.o host_cmd.o keys.o mathlib.o menu.o net_bsd.o net_dgrm.o net_loop.o net_main.o net_udp.o net_vcr.o pr_cmds.o pr_edict.o pr_exec.o r_part.o sbar.o snd_dma.o snd_mem.o snd_mix.o sv_main.o sv_move.o sv_phys.o sv_user.o view.o wad.o world.o zone.o gl_draw.o gl_mesh.o gl_model.o gl_refrag.o gl_rlight.o gl_rmain.o gl_rmisc.o gl_rsurf.o gl_screen.o gl_test.o gl_warp.o cd_null.o snd_sdl.o sys_sdl.o vid_sdl.o /home/kjw/gl4es/lib/libGL.a -L/home/kjw/emsdk/upstream/emscripten/cache/sysroot/lib/wasm32-emscripten /home/kjw/emsdk/upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libSDL2.a -lGL -lal -lhtml5 -lstubs -lnoexit -lc -ldlmalloc -lcompiler_rt -lc++-noexcept -lc++abi-noexcept -lsockets -mllvm -combiner-global-alias-analysis=false -mllvm -enable-emscripten-sjlj -mllvm -disable-lsr /tmp/tmpz_0hxip1libemscripten_js_symbols.so --strip-debug --export-if-defined=main --export-if-defined=__start_em_asm --export-if-defined=__stop_em_asm --export-if-defined=__start_em_lib_deps --export-if-defined=__stop_em_lib_deps --export-if-defined=__start_em_js --export-if-defined=__stop_em_js --export-if-defined=__main_argc_argv --export=stackSave --export=stackRestore --export=stackAlloc --export=__errno_location --export=__get_temp_ret --export=__set_temp_ret --export=malloc --export=free --export=__wasm_call_ctors --export-table -z stack-size=2097152 --initial-memory=67108864 --max-memory=2147483648 --no-entry --global-base=1024' failed (returned 1)

Mouse weirdness

Recently, I have encountered an EXTREMELY common bug that causes locking the mouse to disable the ability to turn. I experienced this on a chromebook model 3100. If you are able to fix it, I would appreciate it. Thanks!

Issue with gfx files on local run

Hey @GMH-Code ,

Not sure this is an issue as such, but didn't want to bother you with email.

So firstly thanks for making this port possible! Big fan of the original, and all that.

My issue is that once the build has run and the necessary .html, .js and .wasm files have been generated, upon entering the browser on localhost, errors are thrown regarding gfx files:

Waiting for data to be restored... Data restoration complete. FindFile: can't find gfx/pop.lmp Playing shareware version. FindFile: can't find gfx.wad Error: W_LoadWadFile: couldn't load gfx.wad

this is with a shareware version (PAK0.PAK) added to the id1 dir.

also added a gfx folder with empty gfx.wad and pop.lmp. Placed in WinQuake dir, data dir and even the id1 dir all to no avail. Will later purchase the full version of the game and use the PAK1.PAK from there.

running on wsl and linux ubuntu has same issue. I guess I'm missing something super simple here..?

One more issue to be fixed until perfection

For some reason, the website doesn't take multiple files like pak0.pak and pak1.pak. This is the only other problem I've encountered other than the resolution, but at that point, the resolution is just pointless complaints. Thanks for at least reading this and fixing the other issue and I hope you have good day! ๐Ÿ‘

WebSocket multiplayer

Hi mate,

I managed to get WebSocket multiplayer working (I ended up implementing a new net_landriver_t because I couldn't get the magic Emscripten BSD-to-WebSocket thing working (but thats not to say it shouldn't be possible, I was learning a bunch of stuff about the Quake network protocol at the same time).

The code is here but I'm not a C programmer by any stretch- plus its a bit messy, I had to make a special WebSocket to UDP proxy and then I had to make some tweaks to the Quake dedicated server here because out of the box it assumes that all connections from the same IP (but a different port) are essentially the same player trying to reconnect (which didn't really blend well with running the proxy next to the Quake server as containers, where you get multiple "players" connecting from the same IP).

Anyway- it's sort of workable but its a bit messy; do you want a PR back in to this repo to kick the tyres on or anything?

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.