Civil, A 3D Voxel World

Civil

Firstly let me introduce myself…

I am James , I am 16 blah blah blah.

I’m sure a few of you were wondering what I have been doing stalking these forums, never showing any work, well here it is. One month in the making!

Can you believe i started here? : http://coredev.makingforum.com/f18-voxel-engine-development-blog

What is ‘Civil’?

See that is the thing… I do not know what direction this game will head, I’m hoping for it to evolve into a Voxel RTS game, but for now it is just a challenge for me to complete.

I started this project with no idea what voxel engine was and I still have alot to learn.

I punched on with pixel bleeding to release this :stuck_out_tongue:

Key features

Well so far I have achieved a few things, around 30 hours of work and around 50 of studing Marching cubes and stuff :

- Randomly Generated Voxel World (Basic)
- Digging/Placing of blocks in inventory
- Indepth inventory system including crafting recipies with multiple combinations
- Different Resources placed in the world

Who is working on it?

Myself(Coder/Crappy Texturer)

So far what I am showing to you now has been completely me.

Where to go from here?

  • Trees
  • Biomes
  • Water
  • More resources
  • HEAPS more optimisation
  • Larger world sizes
  • Indepth Combat
  • And more etc

/basically everything found here :http://coredev.makingforum.com/t52-versions-features-to-be-added

Without further adue!

Please be mindful it is laggy as I have only really optimised it approx. 1/3 of the way.

http://dl.dropbox.com/u/88282046/WebPlayer.html

Controls
W, A, S, D - Move

Space - Jump

Left/Right Click - Dig/Place Block

0-9 No Keys/Mouse Scroll - Change Inventory Slot

i - Open Inventory

What are you going to do different then minecraft? Also how did you write/create the level is it generated or made by hand? How does the voxel system work?

Well I’ll been discussing what could be different with my team, and we are sort of looking for the whole “customize everything” type.

All code in this project is my own, I did not use anyone else’s. (I picked up bits off certain wikis but rewrote them myself).

As for the voxel system, I am using Mathf.PerlinNoise in order to generate a heightmap for the entire world, then each chunk takes its own co-ords from that map and determines its own height. However I am hoping to move to a more ‘interesting’ noise function.

Currently working on trees, water and different types of terrain.

Here are some screens of what I’ve done so far (Mind my crappy Texturing):

Next up is general chunk blending and different height values of biomes, I may also be doing a re-write soon…

I also need to complete water transparency and liquid collisions + I am getting a few memory leaks that I must attend to.

Looks neat so far. However the terrain doesn’t look that interesting yet. There’s to many repetitive small hills and lakes. it would look better if there was less hills, but larger ones. And less ponds but larger lakes.

Also I’m wondering how players will be able to destroy blocks. The terrain appears to be one gameObject, so you cant necessarily call Destroy(gameObject) on a single block.

Hey thanks for the advice.

That is infact what I am doing right now, more interesting terrain. See in the birds eye screen how there is sortof an oceanic sector. Im currently working on implementing Lowlands, mountains and plains. I have not uploaded this webplayer yet.

Im looking more to tackle the very repetitive green with many different types of biomes like barren wasteland, desert, swamps and such.

As for the destroying of blocks that is all done and I do not call Destroy at all as all digging does is Update how the “chunk” is rendered.

Hey, nice start! I think you should lock the cursor on the screen center, also, are you going to use the point textures or it will be bi/trilinear filter?

Not completely sure, I’m leaning towards point textures though.

I will center the cursor when I get home from work and upload a new webplayer

Along with locking the cursor maybe make the ray distance on destroying objects smaller.

I would like to learn how destroying the blocks works. Could you forward me to the place you learned how to do it? Thanks.

Your in luck :slight_smile:

I’m writing a blog on howto

(I started as a completel n00b!)

http://coredev.makingforum.com/f18-voxel-engine-development-blog

Been working on a new biome type!

Deadlands

How did this happen? A bushfire that charred the land? A mysterious magic? Or something else?

P.S The pixel bleeding is back -_-

What you have is looking pretty cool. Just make sure you give some thought into game design not just feature design.

Yeah, Im currently just fixing bugs and optimising code.

New biome is to be made today, desert :slight_smile:

Hopefully after that I can start to make multi-biomic worlds with blended edges and height differences

New Update

Not that much right now, had a fun little twiddle with the biomes made a few more, this took so long because I was trying to make ‘arms’ on the cacti and it just was a jumbled mess, so it was a waste of a few hours. Also fixed some bugs in the texturing:

Desert

Tropics

Picture is coming, my imagehost is mucking up

This is all I have to show but ideas are brewing in my head. What do you think of a RPG/RTS, where you are either a “Overlord”, who controls an RTS style civilisation etc or a “Inhabitant” where you are part of the world in a First Person Perspective RPG playing in other peoples “Civilisations”?

Thats the idea so far.

Next up…

  1. More optimised world with optimized collision meshes(Thanks to alexzzzzzz) meaning larger worlds.
  2. Better textures! (From a real texture artist)
  3. Water Physics
  4. Water Transparancy

Lookig awesome man!

Im reading through your blog posts now to see if any of my questions are answered :slight_smile:
Keep it up!

Looking great so far, I’m big on Minecraft so this is pretty cool! I’ve read through the thread and I’d like to see this succeed as an RTS, so I’ll be sure to play the demos whenever I get the chance. Making a Minecraft-style RTS should be interesting, the only ones I really see are 2.5D (no caves inside mountains, nothing really 3D besides models) and you only have to use a few resources, so having something like this is going to be epic! Making your buildings out of any material you can find, searching for a while to get the one block you need for more weapons… :smile: :smile: :smile: :smile: :smile:

3D RTS need to be more common!

Haha thanks, a in depth demo should be soon, Late December/January hopefully. I think you will like the customization I am going to put in place :wink:

Design your race pixel by pixel, and if your bothered, design your own weapons pixel by pixel, basically every block you add has some advantage, but it may also yield a disadvantage.

EDIT:

Mesh Optimisation is 1/2 done. When it is done the whole engine will run atleast 10x faster

Well Optimisation is not even close to being done and already we are seeing a reduce in lag spikes.

Here is what the collision mesh looks like BEFORE optimisation -------> (2836 Verts, 1418 Triangles)

Here is what the collision mesh looks like AFTER optimisation -------> (244 Verts, 122 Triangles)

This is clearly not finished, half the faces have not been drawn, but over 3/4 of the optimisation has not been completed either.

PS

Omg is that a ROCK!

Why yes it is!
I have been working on different sized meshes, not sure where this will lead… Tree branches?

BIG PPS NOTE

I have another coder on the project now Alismuffin, yes him a few posts above.

He is working on voxel character optimisation! YAY!

PPPS

Next Up

  • Water physics and transparancy FINALLY
  • Different block break times
  • Polishing off the Physics mesh creation

That looks effing awesome to be honest. Maybe I should do voxels. Then I don’t have to sit up to five in the morning tweaking world machine with 10 minute renders each time. :slight_smile:

Haha thanks.

Instead you will have to tweak the texture values by 0.000001 at 5am in the morning to fix pixel bleeding.

PS

Should I make the design document readable by all or should I wait a while? Because I’m pariniod somone will use the idea haha