New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

The Great Refactoring #74

Open
HACKhalo2 opened this Issue Aug 8, 2016 · 42 comments

Comments

4 participants
@HACKhalo2
Contributor

HACKhalo2 commented Aug 8, 2016

Progress Report:

  • Core
    • Settings (PR #75) - v0.0.10
    • Resources
    • Scripting
  • World (PR #77) (In progress, Mostly implemented by @Guerra24)
    • Client Side render implementations - v0.0.10
    • Dimension (PR #77) - v0.0.10
    • Chunk (PR #77) (Currently debugging) - v0.0.10
    • Block (PR #77) - v0.0.10
  • ECS
    • Entities
    • Components (Partially Done) (PR #76 ...)
    • Systems
  • Utilities

@Guerra24 Guerra24 added this to the Voxel-0.0.10 milestone Aug 8, 2016

@Guerra24

This comment has been minimized.

Show comment
Hide comment
@Guerra24

Guerra24 Aug 8, 2016

Member

I think that doing multiples PR's is the best way. Right now i'm finishing the UI so i need to modify some code but I'm not going to work with the rest of the engine.

Member

Guerra24 commented Aug 8, 2016

I think that doing multiples PR's is the best way. Right now i'm finishing the UI so i need to modify some code but I'm not going to work with the rest of the engine.

@HACKhalo2

This comment has been minimized.

Show comment
Hide comment
@HACKhalo2

HACKhalo2 Aug 8, 2016

Contributor

Alright, I'll start working on some of the simpler parts tonight and maybe spend the better chunk of the week rewriting the world, dimension, chunk, and block code, since that's not as easy to abstract in it's current form. Is there a way to get a simple world zip, since I can't for the life of me figure out how to generate a world? Or should I spin up a server locally and connect to that?

Contributor

HACKhalo2 commented Aug 8, 2016

Alright, I'll start working on some of the simpler parts tonight and maybe spend the better chunk of the week rewriting the world, dimension, chunk, and block code, since that's not as easy to abstract in it's current form. Is there a way to get a simple world zip, since I can't for the life of me figure out how to generate a world? Or should I spin up a server locally and connect to that?

@Guerra24

This comment has been minimized.

Show comment
Hide comment
@Guerra24

Guerra24 Aug 8, 2016

Member

In the latest code I add the world creation screen, use that to generate a world. Edit: Singleplayer -> Create World.

Member

Guerra24 commented Aug 8, 2016

In the latest code I add the world creation screen, use that to generate a world. Edit: Singleplayer -> Create World.

@HACKhalo2

This comment has been minimized.

Show comment
Hide comment
@HACKhalo2

HACKhalo2 Aug 8, 2016

Contributor

oh sweet, will do. I'll update my local and get to work then

Contributor

HACKhalo2 commented Aug 8, 2016

oh sweet, will do. I'll update my local and get to work then

@Guerra24

This comment has been minimized.

Show comment
Hide comment
@Guerra24

Guerra24 Aug 8, 2016

Member

And a recommendation, use the client code for abstraction because is more updated than the server ones.

Member

Guerra24 commented Aug 8, 2016

And a recommendation, use the client code for abstraction because is more updated than the server ones.

@Guerra24 Guerra24 referenced this issue Aug 8, 2016

Merged

Voxel 0.0.10 #60

@HACKhalo2

This comment has been minimized.

Show comment
Hide comment
@HACKhalo2

HACKhalo2 Aug 9, 2016

Contributor

I'm currently rewriting the ECS system, which is a bit bigger than I thought it was. I am also going to bring in some code from some of my other projects that dealt with the Ashley ECS to help.

Contributor

HACKhalo2 commented Aug 9, 2016

I'm currently rewriting the ECS system, which is a bit bigger than I thought it was. I am also going to bring in some code from some of my other projects that dealt with the Ashley ECS to help.

@HACKhalo2

This comment has been minimized.

Show comment
Hide comment
@HACKhalo2

HACKhalo2 Aug 13, 2016

Contributor

Okay @Guerra24, I'm going to need your input on this. How would you like to store/register/initialize Blocks? I was thinking something along the lines of Minecraft's BlockRegistry with Forge's OreDictionary.

Like, BlockBase.registerBlock("stone", new BlockStone())

I haven't really thought out how to implement this, but it would make things easier down the road if there was a dynamic way to register blocks instead of hardcoding them, you know?

Contributor

HACKhalo2 commented Aug 13, 2016

Okay @Guerra24, I'm going to need your input on this. How would you like to store/register/initialize Blocks? I was thinking something along the lines of Minecraft's BlockRegistry with Forge's OreDictionary.

Like, BlockBase.registerBlock("stone", new BlockStone())

I haven't really thought out how to implement this, but it would make things easier down the road if there was a dynamic way to register blocks instead of hardcoding them, you know?

@Guerra24

This comment has been minimized.

Show comment
Hide comment
@Guerra24

Guerra24 Aug 13, 2016

Member

I already have implemented this time ago but I dropped the system (I don't remember why) but I think that using this with the API will make things easier for modders and everyone who wants to contribute. Edit: To be simple yes.

Member

Guerra24 commented Aug 13, 2016

I already have implemented this time ago but I dropped the system (I don't remember why) but I think that using this with the API will make things easier for modders and everyone who wants to contribute. Edit: To be simple yes.

@HACKhalo2

This comment has been minimized.

Show comment
Hide comment
@HACKhalo2

HACKhalo2 Aug 13, 2016

Contributor

Alright. I'm working on the chunk code, so I wanted to try and address this before I got too far into that project.

Speaking of the chunk code, there is a good chance the old chunk format will not work with the new code. I'm going to try and keep it as similar as possible

Contributor

HACKhalo2 commented Aug 13, 2016

Alright. I'm working on the chunk code, so I wanted to try and address this before I got too far into that project.

Speaking of the chunk code, there is a good chance the old chunk format will not work with the new code. I'm going to try and keep it as similar as possible

@Guerra24

This comment has been minimized.

Show comment
Hide comment
@Guerra24

Guerra24 Aug 14, 2016

Member

I see an error with the removeChunk in the reworked Dimension class, due to the queues are processed in a secondary thread, the chunk's dispose is causing exceptions due to no OpenGL context on that thread and therefore creates a vram memory leak. Edit: to fix this before the rework I made a workaround by marking the chunk unloaded and toRemove, in the render pass unload the 3D model and finally remove it from the Map.

Member

Guerra24 commented Aug 14, 2016

I see an error with the removeChunk in the reworked Dimension class, due to the queues are processed in a secondary thread, the chunk's dispose is causing exceptions due to no OpenGL context on that thread and therefore creates a vram memory leak. Edit: to fix this before the rework I made a workaround by marking the chunk unloaded and toRemove, in the render pass unload the 3D model and finally remove it from the Map.

@HACKhalo2

This comment has been minimized.

Show comment
Hide comment
@HACKhalo2

HACKhalo2 Aug 14, 2016

Contributor

The Dimension Class in Universal? That shouldn't be in use yet, unless one of the patches I did moving some things to Universal caused it. Anyway I can get a line number so I can add it to the bug I plan to squash with my next round of commits?

Contributor

HACKhalo2 commented Aug 14, 2016

The Dimension Class in Universal? That shouldn't be in use yet, unless one of the patches I did moving some things to Universal caused it. Anyway I can get a line number so I can add it to the bug I plan to squash with my next round of commits?

@Guerra24

This comment has been minimized.

Show comment
Hide comment
@Guerra24

Guerra24 Aug 14, 2016

Member

In client's Dimension class. Line 450, the if(old !=null) call the removeChunk but this code is running inside the queue thread so when removeChunk calls chunk.dipose(); starts to throw exceptions.

Member

Guerra24 commented Aug 14, 2016

In client's Dimension class. Line 450, the if(old !=null) call the removeChunk but this code is running inside the queue thread so when removeChunk calls chunk.dipose(); starts to throw exceptions.

@HACKhalo2

This comment has been minimized.

Show comment
Hide comment
@HACKhalo2

HACKhalo2 Aug 14, 2016

Contributor

ah, alright, I see now. I'll throw a workaround in for now. I'm hoping with the reworked Dimension/World/Chunk/Block classes I can separate the render logic so issues like this don't happen anymore. I'll fix the Kryo issue while I'm at it

Contributor

HACKhalo2 commented Aug 14, 2016

ah, alright, I see now. I'll throw a workaround in for now. I'm hoping with the reworked Dimension/World/Chunk/Block classes I can separate the render logic so issues like this don't happen anymore. I'll fix the Kryo issue while I'm at it

@HACKhalo2

This comment has been minimized.

Show comment
Hide comment
@HACKhalo2

HACKhalo2 Aug 14, 2016

Contributor

Wouldn't adding chunk.disposeGraphics() before line 265 of Dimension.java fix the issue above?

Contributor

HACKhalo2 commented Aug 14, 2016

Wouldn't adding chunk.disposeGraphics() before line 265 of Dimension.java fix the issue above?

@Guerra24

This comment has been minimized.

Show comment
Hide comment
@Guerra24

Guerra24 Aug 14, 2016

Member

No, because removeChunk is called from addChunk when replacing an existing one.

Member

Guerra24 commented Aug 14, 2016

No, because removeChunk is called from addChunk when replacing an existing one.

@HACKhalo2

This comment has been minimized.

Show comment
Hide comment
@HACKhalo2

HACKhalo2 Aug 25, 2016

Contributor

I'm not sure if you've been watching my fork, but I'm working on the above issue by completely rewriting the multithread code to use Callables and Executors. Hell, I'm rewriting all the code that touches the World class to lay it out better and try to prevent issues like the above from happening again. Which brings me to my current issue of Kyro; is it needed, or can I just directly play with files and bitstreams? I like kyro because it's smart enough to be forward compatible, but holy mother of holy it gets cranky if you don't set things up right.

Contributor

HACKhalo2 commented Aug 25, 2016

I'm not sure if you've been watching my fork, but I'm working on the above issue by completely rewriting the multithread code to use Callables and Executors. Hell, I'm rewriting all the code that touches the World class to lay it out better and try to prevent issues like the above from happening again. Which brings me to my current issue of Kyro; is it needed, or can I just directly play with files and bitstreams? I like kyro because it's smart enough to be forward compatible, but holy mother of holy it gets cranky if you don't set things up right.

@Guerra24

This comment has been minimized.

Show comment
Hide comment
@Guerra24

Guerra24 Aug 25, 2016

Member

Yes, I'm busy but at least see one time by day the fork and looks really good. Yea, the biggest issue of Kryo is that needs an instance per thread and only works in that thread.

Member

Guerra24 commented Aug 25, 2016

Yes, I'm busy but at least see one time by day the fork and looks really good. Yea, the biggest issue of Kryo is that needs an instance per thread and only works in that thread.

@HACKhalo2

This comment has been minimized.

Show comment
Hide comment
@HACKhalo2

HACKhalo2 Aug 25, 2016

Contributor

So it might be easier to just drop Kryo and just manually do everything, since having an instance of Kryo on each of the Callable threads would be a huge resource sink. Plus I can document the file structure for modders if needed. Or I can pull my NBT implementation from my game jam entry and we could use that, since there are infinity tools to read that file structure

Contributor

HACKhalo2 commented Aug 25, 2016

So it might be easier to just drop Kryo and just manually do everything, since having an instance of Kryo on each of the Callable threads would be a huge resource sink. Plus I can document the file structure for modders if needed. Or I can pull my NBT implementation from my game jam entry and we could use that, since there are infinity tools to read that file structure

@Guerra24

This comment has been minimized.

Show comment
Hide comment
@Guerra24

Guerra24 Aug 25, 2016

Member

Mmm... Let's drop Kryo, if you want pull the NBT implementation, when the PR is ready I will start rewriting the networking (uses Kryonet, like Kryo but for networking). Edit: probably use Netty for this.

Member

Guerra24 commented Aug 25, 2016

Mmm... Let's drop Kryo, if you want pull the NBT implementation, when the PR is ready I will start rewriting the networking (uses Kryonet, like Kryo but for networking). Edit: probably use Netty for this.

@HACKhalo2

This comment has been minimized.

Show comment
Hide comment
@HACKhalo2

HACKhalo2 Aug 25, 2016

Contributor

alright. I'll implement it in my rendering refactoring branch and submit a PR with all the changes in that. I'm not sure how much will break with it though, but I haven't really touched any of the current main classes. I'm hoping to finally get that stuff done here soon, but the more I refactor and move things, the more needs to be changed.

Speaking of the renderer, have you looked into Greedy meshing for voxel worlds?

Contributor

HACKhalo2 commented Aug 25, 2016

alright. I'll implement it in my rendering refactoring branch and submit a PR with all the changes in that. I'm not sure how much will break with it though, but I haven't really touched any of the current main classes. I'm hoping to finally get that stuff done here soon, but the more I refactor and move things, the more needs to be changed.

Speaking of the renderer, have you looked into Greedy meshing for voxel worlds?

@Guerra24

This comment has been minimized.

Show comment
Hide comment
@Guerra24

Guerra24 Aug 25, 2016

Member

Read about it but never tested, the Tessellator is very flexible so I think that will be easy to implement. In performance test I did with the Deferred Shading disabled the performance compared with Minecraft is close with more chunks loaded (the old world uses a 3D grid of chunks) and a lot of slow code.

Member

Guerra24 commented Aug 25, 2016

Read about it but never tested, the Tessellator is very flexible so I think that will be easy to implement. In performance test I did with the Deferred Shading disabled the performance compared with Minecraft is close with more chunks loaded (the old world uses a 3D grid of chunks) and a lot of slow code.

@HACKhalo2

This comment has been minimized.

Show comment
Hide comment
@HACKhalo2

HACKhalo2 Aug 25, 2016

Contributor

the way I wrote the new chunk class is it's cut up into slices, and my thought was to only render the slices that can be seen plus the one above/below that one. The data will still be in memory, but it would free up a little bit of render time since it's not rendering the full chunk. and the slices are smart enough to know when they are empty or if they have light data. I still haven't worked out how cross chunk light data will be applied, but hopefully it'll come to me once I start working on the dimension classes.

Speaking of the Tessellator, how flexible is it? is it flexible enough to use VBO's if the client chunk managed it? I saw that you used a VAO and a couple of VBO's, but I really haven't looked into how it works yet because that'll be another can of worms for another day.

Contributor

HACKhalo2 commented Aug 25, 2016

the way I wrote the new chunk class is it's cut up into slices, and my thought was to only render the slices that can be seen plus the one above/below that one. The data will still be in memory, but it would free up a little bit of render time since it's not rendering the full chunk. and the slices are smart enough to know when they are empty or if they have light data. I still haven't worked out how cross chunk light data will be applied, but hopefully it'll come to me once I start working on the dimension classes.

Speaking of the Tessellator, how flexible is it? is it flexible enough to use VBO's if the client chunk managed it? I saw that you used a VAO and a couple of VBO's, but I really haven't looked into how it works yet because that'll be another can of worms for another day.

@Guerra24

This comment has been minimized.

Show comment
Hide comment
@Guerra24

Guerra24 Aug 25, 2016

Member

To be simple, the Tessellator is used to create 3D meshes, from a simple cube to practically anything. It provides a simple API to define vertices, normals, texture coords, etc... mimics the old OpenGL 1.1 mesh systems but using modern stuff. By example you can have a big Tessellator per dimension and chunks will share the mesh with others, have one per chunks or per slice, use it to create a character, a tool, etc.

Member

Guerra24 commented Aug 25, 2016

To be simple, the Tessellator is used to create 3D meshes, from a simple cube to practically anything. It provides a simple API to define vertices, normals, texture coords, etc... mimics the old OpenGL 1.1 mesh systems but using modern stuff. By example you can have a big Tessellator per dimension and chunks will share the mesh with others, have one per chunks or per slice, use it to create a character, a tool, etc.

@HACKhalo2

This comment has been minimized.

Show comment
Hide comment
@HACKhalo2

HACKhalo2 Aug 25, 2016

Contributor

right, I was just wondering if it would play nicely if it was fed a VBO that chunks managed instead of vertices, but that's just a nit pick from me. Both ways work. I was also thinking of having one Tessellator for the world instance optimized for rendering static objects, like blocks, and one Tessellator optimized for rendering dynamic objects, like entities, would be the best. The static Tessellator wouldn't have to rebuild or modify meshes nearly as often as the dynamic one, so that should free up some render cycles as well

Contributor

HACKhalo2 commented Aug 25, 2016

right, I was just wondering if it would play nicely if it was fed a VBO that chunks managed instead of vertices, but that's just a nit pick from me. Both ways work. I was also thinking of having one Tessellator for the world instance optimized for rendering static objects, like blocks, and one Tessellator optimized for rendering dynamic objects, like entities, would be the best. The static Tessellator wouldn't have to rebuild or modify meshes nearly as often as the dynamic one, so that should free up some render cycles as well

@Guerra24

This comment has been minimized.

Show comment
Hide comment
@Guerra24

Guerra24 Aug 25, 2016

Member

That might require some changes but nothing complex, just add some stuff when render occurs (load translation, rotation and scale) and allow to change the type of VBO (Static or Dynamic) first one renders faster but updates slower and the other is the inverse.

Member

Guerra24 commented Aug 25, 2016

That might require some changes but nothing complex, just add some stuff when render occurs (load translation, rotation and scale) and allow to change the type of VBO (Static or Dynamic) first one renders faster but updates slower and the other is the inverse.

@TheOnlySilverClaw

This comment has been minimized.

Show comment
Hide comment
@TheOnlySilverClaw

TheOnlySilverClaw Aug 25, 2016

Since you're talking about NBT: I've been tinkering around with my own little mini-serialization library. The next steps would be to optimize the size of "letters" for certain classes and/or make a stream implementation. I'm currently not working on it, since I have no time for coding games right now, but if anyone wants to use it, I could try to add some more features.

TheOnlySilverClaw commented Aug 25, 2016

Since you're talking about NBT: I've been tinkering around with my own little mini-serialization library. The next steps would be to optimize the size of "letters" for certain classes and/or make a stream implementation. I'm currently not working on it, since I have no time for coding games right now, but if anyone wants to use it, I could try to add some more features.

@HACKhalo2

This comment has been minimized.

Show comment
Hide comment
@HACKhalo2

HACKhalo2 Aug 25, 2016

Contributor

Neat, Thanks for that @TheOnlySilverClaw. It might be better than just pushing data into a stream like I was planning to do.

Contributor

HACKhalo2 commented Aug 25, 2016

Neat, Thanks for that @TheOnlySilverClaw. It might be better than just pushing data into a stream like I was planning to do.

@TheOnlySilverClaw

This comment has been minimized.

Show comment
Hide comment
@TheOnlySilverClaw

TheOnlySilverClaw Aug 25, 2016

Alternatively, you could try MessagePack or any of the Jackson Binary Data Formats, those might be a little more mature and high-level, but might have some overhead.

TheOnlySilverClaw commented Aug 25, 2016

Alternatively, you could try MessagePack or any of the Jackson Binary Data Formats, those might be a little more mature and high-level, but might have some overhead.

@HACKhalo2

This comment has been minimized.

Show comment
Hide comment
@HACKhalo2

HACKhalo2 Aug 26, 2016

Contributor

MessagePack actually looks really neat. I could see using that for stuff like chunk and network data. Maybe even as a NBT replacement down the line if MessagePack's performance outweighs NBT's massive library of readers and writers

Contributor

HACKhalo2 commented Aug 26, 2016

MessagePack actually looks really neat. I could see using that for stuff like chunk and network data. Maybe even as a NBT replacement down the line if MessagePack's performance outweighs NBT's massive library of readers and writers

@Guerra24

This comment has been minimized.

Show comment
Hide comment
@Guerra24

Guerra24 Aug 31, 2016

Member

I decided to rollback the Chunk class to a state before the start of the refactor and now loads and generates the map again, is playable using the old world api.

javaw_2016-08-30_22-42-13

Member

Guerra24 commented Aug 31, 2016

I decided to rollback the Chunk class to a state before the start of the refactor and now loads and generates the map again, is playable using the old world api.

javaw_2016-08-30_22-42-13

@HACKhalo2

This comment has been minimized.

Show comment
Hide comment
@HACKhalo2

HACKhalo2 Aug 31, 2016

Contributor

Alright, sweet. Gives me a benchmark to test against with the new code. Might be interesting to see the stats between the two once the rewritten code can run and produce things.

EDIT:
Have you seen this? https://github.com/NovaMods/nova-renderer

Contributor

HACKhalo2 commented Aug 31, 2016

Alright, sweet. Gives me a benchmark to test against with the new code. Might be interesting to see the stats between the two once the rewritten code can run and produce things.

EDIT:
Have you seen this? https://github.com/NovaMods/nova-renderer

@Guerra24

This comment has been minimized.

Show comment
Hide comment
@Guerra24

Guerra24 Aug 31, 2016

Member

No, but the rendering systems is builded on top of OpenGL 3.3 so its supports modern stuff and works on OS X with no changes.

Member

Guerra24 commented Aug 31, 2016

No, but the rendering systems is builded on top of OpenGL 3.3 so its supports modern stuff and works on OS X with no changes.

@danirod

This comment has been minimized.

Show comment
Hide comment
@danirod

danirod Aug 31, 2016

Contributor

I feel like if I had been alluded or hinted 😅

So I gave a try tonight to the code that is at the moment on HEAD of develop branch (7ea337c). MacOS X has always been a pain in the ass for debugging Voxel because OpenGL support is ages behind current standards (thanks, Apple) and Intel Iris cards don't help at all (as exposed on screenshots at #33, it glitches even when booting via MS Windows).

As a quick report, at the moment the water implementation looks nice here. Game runs at a slow FPS (probably because it's running on HiDPI mode), but glitches are less visible. Water looks correct here. I only see glitches when looking directly to the ceiling, the screen just becomes noisy like if it was an old TV or something.

screen shot 2016-08-31 at 22 43 17

I'm running behind the current state of the project, although I keep the project in 'Watching' so I can receive notifications and do some follow up. However, if at some point my laptop comes useful for testing support for things on Intel Iris / MacOS, I can take lots of screenshots 📷📷

Contributor

danirod commented Aug 31, 2016

I feel like if I had been alluded or hinted 😅

So I gave a try tonight to the code that is at the moment on HEAD of develop branch (7ea337c). MacOS X has always been a pain in the ass for debugging Voxel because OpenGL support is ages behind current standards (thanks, Apple) and Intel Iris cards don't help at all (as exposed on screenshots at #33, it glitches even when booting via MS Windows).

As a quick report, at the moment the water implementation looks nice here. Game runs at a slow FPS (probably because it's running on HiDPI mode), but glitches are less visible. Water looks correct here. I only see glitches when looking directly to the ceiling, the screen just becomes noisy like if it was an old TV or something.

screen shot 2016-08-31 at 22 43 17

I'm running behind the current state of the project, although I keep the project in 'Watching' so I can receive notifications and do some follow up. However, if at some point my laptop comes useful for testing support for things on Intel Iris / MacOS, I can take lots of screenshots 📷📷

@HACKhalo2

This comment has been minimized.

Show comment
Hide comment
@HACKhalo2

HACKhalo2 Sep 1, 2016

Contributor

@Guerra24 That link was a minecraft mod rewriting the OpenGl 2.x renderer to a C++ Vulkan renderer. It might be useful to watch it so when we are able to, we can implement Vulkan here (either via LWJGL or a port of the Nova codebase). I'm working on abstracting the rendering code a bit so hopefully it'll be a plug and play solution (plus I need to work on figuring out how the rendering code works so I can start implementing it with the new code).

@danirod nice! My main development computer is running Mac OS X, and one of my main goal is to try and get it running as well as my desktop. That screenshot also looks amazing

Contributor

HACKhalo2 commented Sep 1, 2016

@Guerra24 That link was a minecraft mod rewriting the OpenGl 2.x renderer to a C++ Vulkan renderer. It might be useful to watch it so when we are able to, we can implement Vulkan here (either via LWJGL or a port of the Nova codebase). I'm working on abstracting the rendering code a bit so hopefully it'll be a plug and play solution (plus I need to work on figuring out how the rendering code works so I can start implementing it with the new code).

@danirod nice! My main development computer is running Mac OS X, and one of my main goal is to try and get it running as well as my desktop. That screenshot also looks amazing

@Guerra24

This comment has been minimized.

Show comment
Hide comment
@Guerra24

Guerra24 Sep 1, 2016

Member

@HACKhalo2 My plan was do it but my graphics card doesn't support Vulkan so I can't test if works.

Member

Guerra24 commented Sep 1, 2016

@HACKhalo2 My plan was do it but my graphics card doesn't support Vulkan so I can't test if works.

@HACKhalo2

This comment has been minimized.

Show comment
Hide comment
@HACKhalo2

HACKhalo2 Sep 1, 2016

Contributor

Lucky for you, mine does. I guess that'll be my next project after the rewrite

Contributor

HACKhalo2 commented Sep 1, 2016

Lucky for you, mine does. I guess that'll be my next project after the rewrite

@HACKhalo2 HACKhalo2 self-assigned this Sep 5, 2016

@HACKhalo2

This comment has been minimized.

Show comment
Hide comment
@HACKhalo2

HACKhalo2 Jan 11, 2017

Contributor

screenshot_voxel_1

Contributor

HACKhalo2 commented Jan 11, 2017

screenshot_voxel_1

@TheOnlySilverClaw

This comment has been minimized.

Show comment
Hide comment
@TheOnlySilverClaw

TheOnlySilverClaw Jan 11, 2017

Looks nice and I like that you actually dropped Kryo. :)
If I ever have the time in the future, I'd love to mod some stuff into this. :D

TheOnlySilverClaw commented Jan 11, 2017

Looks nice and I like that you actually dropped Kryo. :)
If I ever have the time in the future, I'd love to mod some stuff into this. :D

@HACKhalo2

This comment has been minimized.

Show comment
Hide comment
@HACKhalo2

HACKhalo2 Jan 29, 2017

Contributor

Currently working on getting the ECS system fleshed out and used. It's going to require basically modifying all the existing code that manages the player camera and move it into an Entity and Systems, so things might break for a while here and there as the growing pains happen. However, this will push Voxel one step closer to it's 0.0.10 release, plus it'll rough out the API's needed to enable modders to add their own Entities down the line.

Contributor

HACKhalo2 commented Jan 29, 2017

Currently working on getting the ECS system fleshed out and used. It's going to require basically modifying all the existing code that manages the player camera and move it into an Entity and Systems, so things might break for a while here and there as the growing pains happen. However, this will push Voxel one step closer to it's 0.0.10 release, plus it'll rough out the API's needed to enable modders to add their own Entities down the line.

@Guerra24

This comment has been minimized.

Show comment
Hide comment
@Guerra24

Guerra24 Feb 2, 2017

Member

Status of the new UI system (#90), this are all windows that can be created (to date), it uses a stacking window manager to manage the windows.

WM
WM-Inv

Member

Guerra24 commented Feb 2, 2017

Status of the new UI system (#90), this are all windows that can be created (to date), it uses a stacking window manager to manage the windows.

WM
WM-Inv

@Guerra24

This comment has been minimized.

Show comment
Hide comment
@Guerra24

Guerra24 Apr 13, 2017

Member

This is the current state of the WM, all major features are implemented.

img

Member

Guerra24 commented Apr 13, 2017

This is the current state of the WM, all major features are implemented.

img

@Guerra24

This comment has been minimized.

Show comment
Hide comment
@Guerra24

Guerra24 Apr 21, 2017

Member

Some rework in the options area and the window decorations.
img

Member

Guerra24 commented Apr 21, 2017

Some rework in the options area and the window decorations.
img

@Guerra24 Guerra24 removed this from the Voxel-0.0.10 milestone Aug 21, 2017

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment