lux-vacuos / voxel Goto Github PK
View Code? Open in Web Editor NEWSandbox survival game created with Light Engine (Development halted due to other projects)
Home Page: https://luxvacuos.net/projects
License: GNU General Public License v3.0
Sandbox survival game created with Light Engine (Development halted due to other projects)
Home Page: https://luxvacuos.net/projects
License: GNU General Public License v3.0
As the title says, since I think enchantments are a really uninspired way of upgrading weapons and armour (and enchantment tables in a smithy look ridiculous), I want to suggest replacements for most of them:
To summarize it, instead of using enchantments, I vote for a more advanced metallurgy system, where it is possible to craft weapons and armour with better properties and a wider variety of weapons and armour. Maybe even make advanced metallurgy+mineralogy+mechanics a magical domain or something similar.
Also, some enchantments can be replaced by more sophisticated magic, while others would become obsolete by changing related mechanics.
Re Add Simplex Noise world generation.
NanoVG rendering crashes at least the 80% of the time. There multiple type of crash:
With the update to the rendering methods i found a heavy memory leak in the chunks unloading process, this leaves chunks loaded in RAM and VRAM causing OutOfMemory. The Dimension isn't unloading chunks far away from the generation limit. The error can be see in the next image. The chunks that are partially rendered are loaded in the HashMap but are far that the generation limit, so they are left loaded but can't be updated. EDIT: Priority HIGH, this bug affects every version after the 3D infinity world.
Hello!, i just found your project and when i tried to run it from your snapshot launcher got an exception.
Voxel has crashed, please report this in the Forum or GitHub Repo
## System Info
Voxel Version: 0.0.10-develop-d9a920b
Molten API Version: 0.0.2
Build: 6
Running on: Windows 10 AMD64
LWJGL Version: 3.0.0 build 90
GLFW Version: 3.2.0 Win32 WGL EGL VisualC DLL
OpenGL Version: 3.3.0 NVIDIA 368.22
Vulkan Version: No Available
Vendor: NVIDIA Corporation
Renderer: GeForce GTX 570/PCIe/SSE2
## StackTrace
net.luxvacuos.voxel.client.core.exception.CompileShaderException: 0(22) : error C0204: version directive must be first statement and may not be repeated
at net.luxvacuos.voxel.client.rendering.api.opengl.shaders.ShaderProgram.loadShader(ShaderProgram.java:329)
at net.luxvacuos.voxel.client.rendering.api.opengl.shaders.ShaderProgram.<init>(ShaderProgram.java:105)
at net.luxvacuos.voxel.client.rendering.api.opengl.shaders.EntityBasicShader.<init>(EntityBasicShader.java:36)
at net.luxvacuos.voxel.client.rendering.api.opengl.MasterShadowRenderer.<init>(MasterShadowRenderer.java:52)
at net.luxvacuos.voxel.client.resources.GameResources.init(GameResources.java:135)
at net.luxvacuos.voxel.client.core.Voxel.init(Voxel.java:107)
at net.luxvacuos.voxel.client.core.Voxel.mainLoop(Voxel.java:125)
at net.luxvacuos.voxel.client.core.Voxel.<init>(Voxel.java:63)
at net.luxvacuos.voxel.client.bootstrap.Bootstrap.main(Bootstrap.java:119)
Caused by the bad implementation of OpenGL in OSX.
A massive sky graphical glitch caused by an Intel HD... Confirmed on Linux. OSX and Windows don't confirmed. Discovered by @TheOnlySilverClaw .
EDIT: This error cannot be reproduced in OSX. So its related to some issues with Linux and Intel HD, mostly from the poor OpenGL 3.x support on Intel HD.
The world seed saving isn't working causing errors in world generation.
Add support to Vulkan shaders.
Actually all the coordinates system (collisions, position, physics) uses floats, this is causing round errors in large positions. Also the vertex positioning uses floats put here i cant do anything because OpenGL 3.3 don't have doubles support by hardware, it can be done by software but the performance will be reduced. So for coordinates system will be using doubles, in the errors caused by this are the map size, the collision system can't allow the player to move far (1,000,000+) due of this.
GameResources has to be initialized in the preInit loop. It has a lot of things that are accesed via get. Since only one possible instance of those things can be, why not use Singleton instead?
I could already do that but since some people has strong arguments against singleton I wanna ask before heading to that.
Create the distrotion caused by the water.
If the player is in negative "Y" will enter in a corrupted area, random blocks will apear and are not renderer, the player can interact with it, place, move and all efects are aplied, example: distrotion under water.
The water physics moves water to not loaded chunks causing it to disappear,
The NanoVG UI system has errors in scaling into multiple resolutions.
Display try to load icon from .jar file.
java.io.FileNotFoundException: file:\C:\..\..\Voxel-0.0.4-ALPHA\lib\Voxel-0.0.4-ALPHA.jar!\assets\icon\icon32.png (The filename, directory name, or volume label syntax is incorrect)
at java.io.FileInputStream.open0(Native Method)
at java.io.FileInputStream.open(Unknown Source)
at java.io.FileInputStream.<init>(Unknown Source)
at java.io.FileInputStream.<init>(Unknown Source)
at io.github.guerra24.voxel.client.kernel.graphics.opengl.Display.loadIcon(Display.java:413)
at io.github.guerra24.voxel.client.kernel.graphics.opengl.Display.startUp(Display.java:341)
at io.github.guerra24.voxel.client.kernel.core.Kernel.init(Kernel.java:85)
at io.github.guerra24.voxel.client.kernel.core.Kernel.mainLoop(Kernel.java:125)
at io.github.guerra24.voxel.client.kernel.core.Kernel.<init>(Kernel.java:77)
at io.github.guerra24.voxel.client.kernel.bootstrap.Bootstrap.main(Bootstrap.java:119)
En vez de usar la carpeta en donde se encuentre el Launcher, se crea una carpeta ~/voxel, en donde se colocan todos los archivos.
OS: Ubuntu 14.04.3 LTS
...
The textures are loaded correctly but are not drawn. No why.
Add support to convert assets to Vulkan textures, models, etc.
Implement a basic block Ray Picking.
Optimize and re factor the chunks rebuild system.
The game internal screen have 1/4 of the real window size.
Now instead of only an one "*Renderer" will be an abstract and then depending of the api (OpenGL or Vulkan) will use the specific rendering pipeline.
Add Vulkan API support, this includes a new rendering engine.
For a good handling of 3D Chunk generation and position, to remove the generation lag and high cpu usage and fast chunk loading.
Optimize the world thread by add chunk ticks per frame.
Can confirm FragmentTesselator is also broken on Windows.
What happened:
Fragment shader failed to compile with the following errors:
ERROR: 0:74: error(#160) Cannot convert from: "2-component vector of vec2" to: "highp float"
ERROR: error(#273) 1 compilation errors. No code generated
Exception in thread "Voxel Main" java.lang.IllegalStateException: Syntax Error in FragmentTessellator.glsl
at net.guerra24.voxel.client.graphics.shaders.ShaderProgram.loadShader(ShaderProgram.java:309)
at net.guerra24.voxel.client.graphics.shaders.ShaderProgram.<init>(ShaderProgram.java:105)
at net.guerra24.voxel.client.graphics.shaders.TessellatorShader.<init>(TessellatorShader.java:60)
at net.guerra24.voxel.client.graphics.shaders.TessellatorShader.getInstance(TessellatorShader.java:39)
at net.guerra24.voxel.client.resources.GameResources.init(GameResources.java:129)
at net.guerra24.voxel.client.core.Voxel.init(Voxel.java:117)
at net.guerra24.voxel.client.core.Voxel.mainLoop(Voxel.java:156)
at net.guerra24.voxel.client.core.Voxel.<init>(Voxel.java:70)
at net.guerra24.voxel.client.bootstrap.Bootstrap.main(Bootstrap.java:111)
FAILED
What should happen:
The game should open.
System specs:
Develop a new save system for chunks, to have less size and better loading from file.
Let's fill this world with some live by adding a bunch of animals.
At this stage of development, we have to figure out how complex the animals should be and what roles they should play.
This issue is for collecting and discussing ideas about animals in general.
What determines where animals show up and how many?
Should they just spawn randomly?
Do they mate by themselves (might cause overpopulation and lag if not handled properly!) or do they rely on player interaction?
Do animals only spawn on chunk generation or can they appear later, too?
Are animals just decoration or do they provide resources for players?
Do animals require food?
Can they eat grass, fruits, crops, etc.?
Can animals hunt each other?
Can animals attack or defend against players or hostile creatures?
What are animals good for? Can they be tamed?
Can they be ridden? Do they require a saddle or special skills?
Can animals assist in combat? Can they wear armour or other upgrades?
Can they pull wagons or carry items?
Issue to keep track of the Voxel rewrite.
Status | Change | Priority |
---|---|---|
finished | Optimize Game Loop | High |
finished | Deferred Shading | High |
finished | Singleton #42 | Medium |
finished | Change Chunk Rendering | Medium |
finished | Separate entities rendering of the world rendering | Medium |
finished | Change Chunk Mesh Creation | Medium |
finished | Change Physics System | Medium |
finished | Change Player movement | Medium |
for next release | glViewport #33 | Medium |
finished | Change World System | Low |
finished | Bind Player and Camera in one object | Low |
finished | New Mod System | Low |
Any other changes or suggestions please write a comment
Build-156 92a0c9e :
Changes
@Guerra24: Add ModStateLoop for mods
@Guerra24: Mods are now instanced one time
@Guerra24: New PCF Shadow Mapping
BugFixes
@Guerra24: Fixed Volumetric Light sun position
Build-155 70d2f3f :
Changes
@Guerra24: Better Parallax Texture
@Guerra24: Add an extra pass to Deferred Shading (Final1)
@Guerra24: NoMoreRabbitPhysics, a new physics movement and speed calculation
@Guerra24: VelocityComponent now uses Vector3f instead of 3 floats
BugFixes
Display incorrectly setting "Resizable" option.
Build-154 8bd8890 :
Changes
@Guerra24: NoMoreStaticDisplay, now display is like any other object
@Guerra24: Display now uses a ContextFormat for OpenGL context
@Guerra24: Display is now a sub-object of Window
@Guerra24: Moved a lot of Display objects to Window object
@Guerra24: Now can create multiple Displays
@Guerra24: Removed a lot of old files
Build 153 f6cc1b6 :
Changes
@Guerra24: All the assets now are stored in the jar, so the external assets folder only stores generated data like worlds, configuration, mods, etc
@Guerra24: Some changes to Sound System code
BugFixes
@Guerra24: Quick fix to Parallax Mapping not compiling in non NVIDIA graphic cards (issue #47)
Build 152-2 547a68a :
@Guerra24: Removed Deprecated Objects
@Guerra24: Better Block Face Culling.
Notes:
GUI Renderer, TextHandler and any OpenGL text system where replaced by NanoVG Rendering System.
Blocks now has a "isTransparent" boolean to check face culling.
Build 152-1 9bd9a2b :
Changes
@Guerra24: Reduced effect of parallax mapping.
@Guerra24: Testing wet surface in blocks.
@Guerra24: Add JavaDoc task to build.gradle.
@Guerra24: Player velocity now are clamped to 2.
@Guerra24: Ice now has lower velocity reduction.
@Guerra24: Entities now slide on ice.
BugFixes
@Guerra24: Fixed JUnit Tests.
@Guerra24: Fixed game settings not saving the correct version of the file.
@Guerra24: Fixed player unable to jump inside water or swim.
Build 151 9a9dc90 :
@danirod: Finally GameResources is a Singleton. Only a single instance of GameResources can exist at the same time in the game (fixes #42)
@danirod: Some multithreading issues related to non-concurrent ArrayLists have been fixed
Build 150 ed094b3 :
@Guerra24: More JUnit Test
@Guerra24: Better Debug Screen
Build 149 2fc7224 :
@Guerra24: Debug Screen In Game
Build 148 b33425f :
@Guerra24: JUnit test with OpenGL and some changes
@Guerra24: Now shadow is more darker
@Guerra24: GUIRenderer marked as Deprecated
@Guerra24: TextHandler marked as Deprecated
Build 147 49af74e :
@Guerra24: Add Normal Mapping
@Guerra24: Parallax Mapping support
@Guerra24: New options
Build 146 4e00e8c :
@Guerra24: Removed NitroNet
@Guerra24: New World Selection Screen (WIP)
Build 145:
@Guerra24: Fixed Friction Based Physics 168e41a
@Guerra24: New HDR b3c576b
@Guerra24: Color Correction b3c576b
Build 144 6f265e0 :
@Guerra24: Better Glow
@Guerra24: Updated Year in License.
Build 143 8a8dc2e :
@Guerra24: Particle rendering now uses glDrawArraysInstanced
@Guerra24: Fixed bug in GlobalStates in case of setting an already set state.
Build 142 815e709 :
@Guerra24: New Options Menu Background
@Guerra24: New Slider for Menus
@Guerra24: New Draw Distance Selector
@Guerra24: New Collision and Physics System.
Build 141 01dfcf3 :
@Guerra24: Fixed NanoVG crash #46
@Guerra24: New WebRenderer to Main Menu news
@Guerra24: New Custom Mouse Cursor
@Guerra24: Water now are 4 quads instead of 1
@Guerra24: New Options Menu.
Build 140 b8b66af :
@Guerra24: Add Ashley as ECS
@Guerra24: Add Log4J as new logger
@Guerra24: New Velocity Based Physics system
@Guerra24: Fixes in entity rendering.
Build 139:
@Guerra24: Fixed caves generation 7828a19
@Guerra24: Merged more features from Infinity 3f851e5
@Guerra24: Fixed torch light 3f851e5
@Guerra24: Fixed Volumetric Light 3f851e5
@Guerra24: Fixed Options button in pause menu 3f851e5
@Guerra24: Biomes test in progress c58ac8f
@Guerra24: Add License to a lot of files c58ac8f
@Guerra24: Add options menu In Game c58ac8f
Build 138 f2d4730 :
@Guerra24: Fixed NanoVG Crash
@Guerra24: New Buttons
@Guerra24: Merged features from Infinity
Build 137:
@Guerra24: Add NanoVG Support 5ce0652
@Guerra24: Now water receives shadows 392da72
@Guerra24: Some Fixes with Occlusion Culling 392da72
@Guerra24: Fixed Projection Matrix on Tessellator shadow rendering e8fef92
@Guerra24: Add Occlusion Culling 3755621
@Guerra24: Chunk Sort from distance 3755621
Build 136 d599700 :
@Guerra24: Particles now supports alpha blending
Build 135:
@Guerra24: Pre Release 1 b81fe1a
@Guerra24: Bloom FX b9fee81
Build 134 91ff130 :
@Guerra24: New Procedurally Generated Waves
Build 133:
@Guerra24: Add Final pass to Deferred Shading/Lighting 7c9fbe4
@Guerra24: Fixes in shadows 355e196
@Guerra24: Changes to game states 355e196
@Guerra24: Changes in Game Settings 355e196
@Guerra24: Fixes in main loop 4c88c6d
@Guerra24: Shadows fully implemented in Tessellator 4c88c6d
@Guerra24: Updated readme and version bump abda0d8
Build 132:
@Guerra24: Block light is now loaded to shaders efede9d
@Guerra24: Tessellator now supports Specular and Screen Space Reflections efede9d
@Guerra24: Possible HDPI Fix efede9d
@Guerra24: Block system re-write b60de24
@Guerra24: Now block textures are only in one file b60de24
@Guerra24: Add Tessellator Texture Atlas System b60de24
@Guerra24: Fixed Tessellator Face Up b60de24
@Guerra24: Now Chunk blocks use Tessellator on all faces b60de24
@Guerra24: Fixed Tessellator vertex instability on large positions 6d82535
@Guerra24: Modding system based on annotations and refletions 4ab2093
Build 131 17c3f7e :
@Guerra24: Now runs only in one thread
@Guerra24: TextMasterRenderer are now singleton
@Guerra24: Tessellator default cube are broken in top and bottom face, disabled for now
@Guerra24: Chunk top and bottom blocks face still uses the old fixed object mesh, the other faces uses the new Tessellator dynamic mesh generation
@Guerra24: Fixed Crash in case of data updated in the Tessellator
Build 130 04d9e9a :
@Guerra24: Tessellator, a dynamic mesh generator
Build 129:
@danirod: Gradle: automatically add XstartOnFirstThread argument if is running on OS X #45
@Guerra24: Now game settings are saved to a file 9ffde84
Build 128 66229ba :
@Guerra24: Fixed FOG
@Guerra24: In case of Shader Syntax Error Throws an IllegalStateException
Build 127:
@Guerra24: Fixed OpenAL Issue related to latest LWJGL3 Build 1028c39
@Guerra24: Fixed Transparency 5d71d44
@Guerra24: Fixed Sun position in screen space 5d71d44
@Guerra24: Block Picking working e041669
@Guerra24: New gData texture e041669
@Guerra24: Fixed Block Light e041669
@Guerra24: New Particle System 495d0df
Build 126 9b75642 :
@Guerra24: New Multi-Pass Deferred Shading
@Guerra24: Started the new Mod System
Build 125:
@Guerra24: New Sun/Moon b23419f
@Guerra24: Add 2D Volumetric Light b23419f
@Guerra24: Removed Unused files b23419f
@Guerra24: Re factor Main Menu and Options Menu b23419f
@Guerra24: Fixed LWJGL Version 297708b
@Guerra24: New Composite pass to Deferred Shading e8e2128
Build 124 b08bd42 :
@Guerra24: New Ice Block
@Guerra24: Better Screen Space Reflections
@Guerra24: Now BlockID is loaded to shaders
@Guerra24: New Sun/Moon fully generated in GPU
Build 123 f346f81 :
@Guerra24: Screen Space Reflections
Build 122 455fd1d :
@Guerra24: Fixes in Deferred Shading/Rendering
@Guerra24: Dof working
Build 121 05e07ca :
@Guerra24: Deferred Shading/Rendering
Build 120 dc5b5a6 :
@Guerra24: Add Motion Blur and Bloom
Build 119 437ff86 :
@Guerra24: Slick2d is removed due to new texture loading system
@Guerra24: LWJGL now is downloaded by Gradle
@Guerra24: Removed LWJGL Natives
@Guerra24: Fixed the depth texture in post processing
@Guerra24: FXDOF modified
Build 118 ee35740 :
@Guerra24: Disabled HQWater and Shadows in OSX devices
@Guerra24: Can enable or disable the HQWater, Shadows, FXAA and DOF
Build 117 009b79f :
@danirod: Fixed Fragment Shader
There are low fps when the camera is close to the block of grass, the other blocks do not cause.
The lights are full disabled.
Place the block opposite the face of the block to which it points
Complete the player collisions in all coords
Random NullPointerException in the switch from "Loading Screen" to "GameSP", Causes by the "-autostart" flag.
Exception in thread "Voxel Main" java.lang.NullPointerException
at net.guerra24.voxel.client.graphics.shaders.ShaderProgram.loadVector(ShaderProgram.java:218)
at net.guerra24.voxel.client.graphics.shaders.EntityShader.loadLightPosition(EntityShader.java:125)
at net.guerra24.voxel.client.graphics.MasterRenderer.begin(MasterRenderer.java:164)
at net.guerra24.voxel.client.core.states.GameSPState.render(GameSPState.java:64)
at net.guerra24.voxel.client.core.GlobalStates.doRender(GlobalStates.java:55)
at net.guerra24.voxel.client.core.Voxel.render(Voxel.java:166)
at net.guerra24.voxel.client.core.Voxel.mainLoop(Voxel.java:153)
at net.guerra24.voxel.client.core.Voxel.<init>(Voxel.java:72)
at net.guerra24.voxel.client.bootstrap.Bootstrap.main(Bootstrap.java:119)
Now that I know the mechanics, let's collect some ideas for animals to fill the world with. I will try to update the state of ideas in the first post. Feel free to comment, add ideas or tell me why mine suck aren't so good. I might try to include some ridiculous ideas, just to see where the borders are. ;)
Status: in progress
Finish the torch light, actually you can place torch and light updates but if you remove that torch the light still making objects bright.
In random moment the "Voxel Thread" gets a NullPointerException
Exception in thread "Voxel Main" java.lang.NullPointerException
at io.github.guerra24.voxel.client.kernel.world.DimensionalWorld.updateChunksRender(DimensionalWorld.java:247)
at io.github.guerra24.voxel.client.kernel.core.Kernel.render(Kernel.java:172)
at io.github.guerra24.voxel.client.kernel.core.Kernel.mainLoop(Kernel.java:151)
at io.github.guerra24.voxel.client.kernel.core.Kernel.<init>(Kernel.java:88)
at io.github.guerra24.voxel.client.kernel.bootstrap.Bootstrap.main(Bootstrap.java:119)
Shadows Maps is unable to create because the size is more that the GPU supports.
By default shadows maps has a resolution of 4K.
In the next image you can see that everything is black, that is because the shader can't read the shadow map, here the shadow map is 8,196, my GPU only supports 8K (8,192).
Here you can see the working shadow map running at 4K.
Create the water physics for the player.
The chunks are not moved to the coordinates were assigned.
Light maps are fully broken with the 3D World System.
The world generator fails to decorate chunks if the draw distance is more that 2. The basic terrain will be generated but the decoration like trees will not generate.
Edit:
Disabled due to changes in the way that chunks loads.
All lights are poiting to 0,0,0 XYZ Coords. Posible shader code bug.
Voxel has crashed, please report this in the Forum or GitHub Repo
Voxel Version: 0.0.10-develop-88799b6
Molten API Version: 0.0.1
Build: 5
Running on: Linux AMD64
LWJGL Version: 3.0.0 build 90
GLFW Version: 3.2.0 X11 GLX EGL clock_gettime /dev/js Xf86vm shared
OpenGL Version: 3.3 (Core Profile) Mesa 11.2.0
Vulkan Version: No Available
Vendor: Intel Open Source Technology Center
Renderer: Mesa DRI Intel(R) Haswell Desktop
java.util.concurrent.RejectedExecutionException
at java.util.concurrent.ForkJoinPool.externalSubmit(ForkJoinPool.java:2328)
at java.util.concurrent.ForkJoinPool.externalPush(ForkJoinPool.java:2419)
at java.util.concurrent.ForkJoinPool.execute(ForkJoinPool.java:2648)
at net.luxvacuos.voxel.client.world.DimensionService.add_worker(DimensionService.java:34)
at net.luxvacuos.voxel.client.world.chunks.Chunk.update(Chunk.java:129)
at net.luxvacuos.voxel.client.world.Dimension.updateChunksGeneration(Dimension.java:152)
at net.luxvacuos.voxel.client.core.states.GameSPState.update(GameSPState.java:71)
at net.luxvacuos.voxel.client.core.GlobalStates.doUpdate(GlobalStates.java:72)
at net.luxvacuos.voxel.client.core.Voxel.update(Voxel.java:196)
at net.luxvacuos.voxel.client.core.Voxel.mainLoop(Voxel.java:160)
at net.luxvacuos.voxel.client.core.Voxel.(Voxel.java:70)
at net.luxvacuos.voxel.client.bootstrap.Bootstrap.main(Bootstrap.java:119)
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.