Giter Site home page Giter Site logo

alanszlosek / voxeling Goto Github PK

View Code? Open in Web Editor NEW
26.0 26.0 5.0 7.49 MB

Creative mode WebGL voxel game. Runs in Chrome, with multiplayer functionality and very few dependencies

License: MIT License

JavaScript 99.39% Shell 0.03% HTML 0.23% Python 0.33% Dockerfile 0.02%
games javascript webgl websockets

voxeling's People

Contributors

alanszlosek avatar deathcap 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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

voxeling's Issues

Requesting help getting this set up

This looks awesome and the game works perfectly here, but when I use the instructions here to create my own server, only the css and pictures load. No voxels.

I reckon I need to do something like 'portforwarding node', but I'm not sure what. Which ports do I forward? I see 10005 in the code but non 9966. How could I change it to use a custom port (2077)? I have access to my router settings. Can someone point me in the right direction? What should I do at the vim config.js step? Thanks!

Relevant info: Windows 7 x64 using Windows commandline, latest appropriate version of node and npm

Buffer() is deprecated

DeprecationWarning: Buffer() is deprecated due to security and usability issues. Please use the Buffer.alloc(), Buffer.allocUnsafe(), or Buffer.from() methods instead.

Commission new texture set so I can redistribute it

The textures used in the demo (testbdcraft) are free, but I'm not allowed to distribute them. This makes setup more complicated than it should be.

I want to commission an artist to create a unique set of textures with a permissive license.

Client Refactoring: Voxel Cursor

At the middle of the game screen is the "cursor". Basically just a very small dot that you point at a voxel to interact with it. If you're close enough to the voxel to interact, the voxel is outlined in red.

It's this highlight logic, starting with inputHandler.on('fire.down', function() { that should be refactored and encapsulated into a separate file. There are some tricky bits to refactor in that code, as there are globals, re-used arrays (to cut down on garbage collection), etc.

Configuration is confusing

Clarify what server, httpServer, websocketBindAddress and websocketBindPort are used for. Rename if necessary.

Cutouts are broken

Used to be able to see through gaps in leaves, and through glass blocks. Something recently broke that. I vaguely recall messing with alternative shaders so users with slow GPUs can disable haze, so maybe that had something to do with it.

Do we need to cache-bust gzipped chunks?

They're fetched via normal HTTP (not a websocket) from the node app, and it seems the browser is caching old versions. Newly created voxels aren't behaving as expected.

Texture tiling alignment off

Recently decided to try out a combined texture file to reduce number of texture binding calls during rendering. But it seems the floating point offset values are off, as the tiles don't match up seamlessly.

Choose more helpful name for shaders

Perhaps projectionViewPosition (which is meant to hint at the matrix math going on inside it) should simply be called nonScene to imply that it should be used to players as opposed to voxels. And projectionPosition might simply be called scene to imply it should be used to draw the scene/voxels, as opposed to players, the sun, etc. But first need to verify usage of those shaders.

Limit concurrent chunk fetching requests

We load chunk voxel data via gzipped AJAX. But making 10+ AJAX calls at a time can make the browser stutter. Need to queue them up and only fire off N at a time.

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.