Cubicverse: reborn!
Posted: Fri Apr 04, 2014 9:29 am
I promised I would show something this week... and I will maintain it. However don't expect to be able to try it yourself as it's still too early to be really playable:
So what is it? Well, we decided to change the whole "renderer" from isometric to full 3D first person view. It's a HUGE change, as the art needs to be mostly redone or reworked at least. I also must admit this is my first 3D game ever, so I had to test things and do some work to make it even usable. However currently we are able to run at 60 FPS (not yet with all the objects nor the monsters, NPC and other players). There is also quite a few open issues, and I'm far from being happy with the textures I used so far (some are ok, some not so much).
The world will also be "smoothed" out later on, to be less minecraft like and the trees replaced with 3D objects instead of blocks.
On what works currently:
- The world is fully drawn in 3D (the blocks not the objects yet)
- Lamps are the first and only working objects
- You can walk, object collisions is the same as before so it works as well.
- You can rotate freely (too freely even) the camera
- Going down in the mines or up, or even change the map area all, work and the world is a continuous infinite 3D world
- I'm able to load textures, 3D objects and even create some via code (like the fences and the roof)
- Windows do have a glass with transparency
- There is a little fog
- There is a full spherical sky
What needs to be done:
- Finish to make all the 3D blocks (roads, rivers etc...)
- Rework all the objects and make then 3D models (with textures)
- Make the NPC and monsters visible and animated.
- Fix a couple of issues like the minimap
- Make the game engine react to clicks on the map (and detect the right position of course)
How it works:
The game code is mostly the same, I just replaced the rendering with a couple of new modules which transforms our map into 3D objects. The map is optimized (in near real time) to make it as fast as possible. The 3D is then handled by the Three.js library as I didn't wanted to write all the WebGL myself. I tried Babylon.js but found issues with it, and therefore changed to Three.js which seems a lot more stable and usable (even if it's a bit more complex to work with at start).
So what is it? Well, we decided to change the whole "renderer" from isometric to full 3D first person view. It's a HUGE change, as the art needs to be mostly redone or reworked at least. I also must admit this is my first 3D game ever, so I had to test things and do some work to make it even usable. However currently we are able to run at 60 FPS (not yet with all the objects nor the monsters, NPC and other players). There is also quite a few open issues, and I'm far from being happy with the textures I used so far (some are ok, some not so much).
The world will also be "smoothed" out later on, to be less minecraft like and the trees replaced with 3D objects instead of blocks.
On what works currently:
- The world is fully drawn in 3D (the blocks not the objects yet)
- Lamps are the first and only working objects
- You can walk, object collisions is the same as before so it works as well.
- You can rotate freely (too freely even) the camera
- Going down in the mines or up, or even change the map area all, work and the world is a continuous infinite 3D world
- I'm able to load textures, 3D objects and even create some via code (like the fences and the roof)
- Windows do have a glass with transparency
- There is a little fog
- There is a full spherical sky
What needs to be done:
- Finish to make all the 3D blocks (roads, rivers etc...)
- Rework all the objects and make then 3D models (with textures)
- Make the NPC and monsters visible and animated.
- Fix a couple of issues like the minimap
- Make the game engine react to clicks on the map (and detect the right position of course)
How it works:
The game code is mostly the same, I just replaced the rendering with a couple of new modules which transforms our map into 3D objects. The map is optimized (in near real time) to make it as fast as possible. The 3D is then handled by the Three.js library as I didn't wanted to write all the WebGL myself. I tried Babylon.js but found issues with it, and therefore changed to Three.js which seems a lot more stable and usable (even if it's a bit more complex to work with at start).