alanszlosek / voxeling Goto Github PK
View Code? Open in Web Editor NEWCreative mode WebGL voxel game. Runs in Chrome, with multiplayer functionality and very few dependencies
License: MIT License
Creative mode WebGL voxel game. Runs in Chrome, with multiplayer functionality and very few dependencies
License: MIT License
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
New mesher is likely the culprit. Chrome crashes after a few minutes at a draw distance of 6.
Move code dealing with inputHandler
and left-side overlay DOM elements into a separate file.
Mainly as a nice touch for multiplayer
DeprecationWarning: Buffer() is deprecated due to security and usability issues. Please use the Buffer.alloc(), Buffer.allocUnsafe(), or Buffer.from() methods instead.
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.
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.
Likely broken by the refactoring of individual texture PNGs into one sprite
Clarify what server
, httpServer
, websocketBindAddress
and websocketBindPort
are used for. Rename if necessary.
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.
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.
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.
Specifically, refactor client.on('players', function(others) {
out of src/client.js
into a file concerned with multiplayer stuff.
Pretty sure I broke it when I moved to a texture atlas setup.
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.
Currently it's PHP based (scripts/textures.php
) because I had issues getting image generation to work from node. Maybe that situation has improved.
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.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.