Search Unity

  1. Megacity Metro Demo now available. Download now.
    Dismiss Notice
  2. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

Voxel based sandbox survival: Forgotten Lands

Discussion in 'Works In Progress - Archive' started by Vanamerax, May 22, 2012.

  1. Vanamerax

    Vanamerax

    Joined:
    Jan 12, 2012
    Posts:
    938
    The goal for this game
    So I've started on a 'simple' game, my first to be exact. I started the project with the purpose to learn programming, but as I learned more and more, the project has been one of my spare time-eating hobbies. When i started this project I had no knowledge on programming at all.

    Some of the game's (planned) features:
    - Sandbox voxel world: Explore to infinity and beyond!
    - First Person perspective
    - Medieval setting, but not restricted to historical time ages
    - Survival
    - Inventory
    - Skills
    - Advanced, physics-based combat
    - Lots of weapons and tools
    - Crafting and deep technology tree
    - Resource Gathering ( ores, wood, food, etc. )
    - Animals, hostile or passive. Certain actions can make certain animals behave aggressively towards you

    Anyway, A while ago I uploaded a video of the first build (very early alpha). This video shows the basic workings of the game such as basic character customization, character skills stats, inventory and an item system. Note that the objects and models shown are just temporary placeholders. I will make some better models later, for now I just want the game mechanics to work.

    video updates:
    Update 1 - Basic Mechanics

    Update 2 - Inventory Player Stats

    Update 3 - Crafting

    Update 4 - GUI Reworked

    Update 5 - Cooking

    Update 6 - Voxel terrain Item serialisation

    Update 7 - Improved voxel terrain


    $8GItC.jpg
    $8GICe.jpg



    Progress can be seen on the trello page

    Please tell me what you think! Also if you like to see progress in this project, don't forget to subscribe! :)
     
    Last edited: Sep 8, 2014
    Kirbyrawr likes this.
  2. Vanamerax

    Vanamerax

    Joined:
    Jan 12, 2012
    Posts:
    938
    So are there any comments on this? Any wild ideas are welcome ;) I've made some progress in the meantime, will make a new video soon


    Still need a good name for it though :)
     
    KamGamesINc likes this.
  3. khanstruct

    khanstruct

    Joined:
    Feb 11, 2011
    Posts:
    2,869
    Nice work for your first run at programming.

    Since this is your first game, and primarily being used to learn, here are a few thoughts you could work into a title.

    Bokken (its a wooden sword used in asia for weapons training)
    Pell (medieval sword training)
    Quintain (medieval lance training)
     
  4. Alismuffin

    Alismuffin

    Joined:
    Oct 3, 2011
    Posts:
    100
    Looking good so far :)
     
  5. Vanamerax

    Vanamerax

    Joined:
    Jan 12, 2012
    Posts:
    938
    Thanks for the replies! I will look into your suggestions khanstruct ;) I need more 3D art to give the game a better look though, so that's what I'm going to do now I think. Could anyone tell me how to make an animated bow? I've seen something like shapekeys but I don't think they work in Unity without buying the megafiers pack? I'm using blender as my 3D application :)
     
  6. Alismuffin

    Alismuffin

    Joined:
    Oct 3, 2011
    Posts:
    100
    You'd have to rig it up mate

    Not sure how to do this in blender though. In maya you just create joints then rigid bind to the bow mesh
    After that it's a simple matter of keying where the joints are at different times
     
  7. unitywarrior

    unitywarrior

    Joined:
    Jun 9, 2012
    Posts:
    20
    Ah... you might be able to go onto BlenderCookie and ask one of the authors there to make a tut for you.
     
  8. BusterBlader

    BusterBlader

    Joined:
    Apr 23, 2012
    Posts:
    79
    This is stuff from the BurgZergArcade Hack Slash Tutorials ^^
     
  9. Vanamerax

    Vanamerax

    Joined:
    Jan 12, 2012
    Posts:
    938
    that's right ^^ I learned alot of C# programming from him :) I've extended the game from his basics and adding more to it. I found it hard to set up the basics so this was a great help to me! :D Anyway I'm trying to make the game different from his further on
     
  10. BusterBlader

    BusterBlader

    Joined:
    Apr 23, 2012
    Posts:
    79
    Yeah :D I am programming since 6 months...and haven't anything good ^^
     
  11. Adam_Tomaszewski

    Adam_Tomaszewski

    Joined:
    Nov 25, 2011
    Posts:
    58
    I like how far you've come so quickly, but a big part of game creation/design is creativity. If you want to learn 2 skills at once, program something more creative. I really like it so far though. Remember to keep it simple scripting-wise, don't overwhelm yourself. Good luck! :)
     
  12. Vanamerax

    Vanamerax

    Joined:
    Jan 12, 2012
    Posts:
    938
    Thanks! I'll try to make something different than there is already. For example, I did some searching on procedural terrain, but that goes way too far for my programming skills. Like you said, I'm not going to overwhelm myself so I want to make a simple system set up first :)
     
  13. Vanamerax

    Vanamerax

    Joined:
    Jan 12, 2012
    Posts:
    938
    So, a quick update on my progress:

    I've tried to set up some sort of basic crafting system. Currently I have a class handling the craftingstation (anvil, oven, forge and such). When you walk in reach you can click on the object and this will open a window. I'm thinking of placing buttons inside that window, which each represent an item to craft. When you would click on the button it will check your inventory for the required items and tools, and if present, will craft the corresponding item, add it to your inventory and consume the needed items. The idea is a bit like the way runescape did this. I think this might be the most simple solution for crafting, but also a bit boring.

    So, this idea brings me to 2 questions:
    - How should I handle the required items check? Right now my inventory consists of a List with types of "Item", mostly the different resource items are recognized by name, but how do I check for these items?

    - What would you guys like to see, the way of crafting I've currently in mind, or would you prefer another way of crafting in the game?
     
  14. Meltdown

    Meltdown

    Joined:
    Oct 13, 2010
    Posts:
    5,816
    Great job so far. Especially for it being your first game.

    After seeing you chop down that tree I'd call it 'Uber Wood Cutter' or something :)

    I'd strongly suggest getting NGUI and porting your GUI over to that. Unity's GUI is terrible to work with and bad for performance.
    I think it's on special now for $45.

    Once you use it you won't go back and it's got some great drag/drop/inventory example tutorials you can use.

    Other than that good job. Will be good to see some multiplayer down the line too!
     
  15. Vanamerax

    Vanamerax

    Joined:
    Jan 12, 2012
    Posts:
    938
    Thanks! Multiplayer is certainly something i want to try in the future! I have done some research in it, but i'm still confused about it. So for now I want to stick with something simpler :p

    I knew about the NGUI, but I don't have any budget for the game (yet) and it's only my hobby right now. And I don't want to invest in it when I don't even know if it will ever get finished. But if it gets to it, could be something to try out! Also, I've heard some rumors about Unity Technologies making a new GUI system?
     
  16. Vanamerax

    Vanamerax

    Joined:
    Jan 12, 2012
    Posts:
    938
    So, any respones the these questions?

     
  17. Khyrid

    Khyrid

    Joined:
    Oct 8, 2010
    Posts:
    1,790
    I got your name; Log Reaper

    p.s. looks interesting.
     
  18. Vanamerax

    Vanamerax

    Joined:
    Jan 12, 2012
    Posts:
    938
    Thanks, I might consider your name :)

    In further news, I'm now able to saw logs into planks. However, I'm a bit strugled with math. The way it is set up right now:
    - A log with x amount of quality (float)
    - A tool with y amount of quality (float)
    - And a skill used to craft the specific item, which is an int
    - A bit of randomness in the result


    Now, I want the final Plank quality (float) to be affected by these factors. The log's quality is the maximum quality the plank can have (so you can never make a higher quality plank out of a lower quality log). Then the tool quality ,skill and some luck determine what the final quality of the plank should be.

    So, could anyone make me some kind of formula to mess around with? After I implemented this I'm going to make an update #2 video ;)

    Thanks!
     
  19. Vanamerax

    Vanamerax

    Joined:
    Jan 12, 2012
    Posts:
    938
    anyone with a solution yet? I can't seem to figure it out : /
     
  20. jc_lvngstn

    jc_lvngstn

    Joined:
    Jul 19, 2006
    Posts:
    1,508
    This sounds a lot like wurm. I'm not sure what wurm uses for its calculates for item results, but here is just some idle guessing/chatter:

    Quality should depend on these factors:
    1. The quality of your components (average them all)
    2. The quality of your tool
    3. Your skill in that area

    Find the one with the least value. That is the lowest possible quality result.
    Average the three. That is the highest possible quality result.
    The result is a random number, from the least possible value to the highest possible value.

    Producing raw materials from ore or trees is a special case, you only have 2 numbers to average instead of 3. Let's say you have just started the game. Your chopping skill is 1. You have a 10 QL axe.


    The lowest value is 1 (your skill).
    Average 1 (your skill) and the axe ql (10). The result is 5.5. That is the highest possible value.
    So now, the QL you assign to the tree you chop down is a random number between 1, and 5.5. Let's say you assign it a 4.

    Ok, so let's say you want to chop a log from the fallen tree.
    Take the quality of your components and average them. You only have 1 component (the tree), it has a QL of 4.
    The quality of your tool is 10.
    Let's say chopping down that tree gave you a skill point, and your skill is now 2. This obviously isn't wurm lol. Anyway...

    The lowest possible value is 2.
    The highest possible value is the average of the three, or 10+4+2 = 16/3 = 5.3333.
    That sucks...the highest possible value is a little lower than 5.5...but the lowest value is higher. Plus...we only had to average 2 things before, from now on we use an average of three. Remember, only items created from raw materials (standing trees, ore veins) average with 2 items.

    So you will at least produce a log from the tree of QL 2 instead of maybe 1. Yes, the max possible QL is a -little- lower...but not much.

    If you just chopped down another tree, you would produce a possible fallen tree with a QL that ranged from 2 (not 1 this time) to 10 (your axe QL). That means a possible QL from 2 to 6, instead of 1 to 5.5 for your first tree.
    And so on it goes. You slowly produce better items.

    I don't recall if wurm limits the maximum QL of an item you craft to the average of its components, though. Like...if you have a skill of 100, and a tool of 100, can you produce a 66 QL board from a 1 QL log. Seems like that would be impossible...so maybe the math needs to be worked on ;)

    Anyway...this is just ramble. It may break down in some cases, I haven't planned this all out in depth (yet) :)
    Hope that is of some interest to you, and use.

    By the way...I would advise you store player skill as a float. You may just display it as an int...but with this system, every point counts.

    When players are all the way up at skill 90...if it takes three months to get to skill 91, you darn well might want to show their progress all the way down to the thousandths! It could be a huge psychological factor for them. At -least- they could see some progress!
     
  21. Vanamerax

    Vanamerax

    Joined:
    Jan 12, 2012
    Posts:
    938
    Thanks for your reply jc_lvngstn! that's something i can try to work with :D

    About the skill, I store the actual level of the skill as an int, and the total exp in that skill as an ulong. So I will probably add some sort of tooltip for each skill so you can see how much exp is left etc.


    In other news, I've implemented a simple mining mechanism to mine rocks, iron, copper and anything I want to add. It currently works with prefabs though. So I can instantiate some rock models and mine that. I need some sort of level generator first before I can make a better mining system.

    I looked into the marching cubes algorythm a bit, but I don't really understand it all. To be exact, this is what I've found : http://paulbourke.net/geometry/polygonise/ There is a source code which can be used, but how do I go into converting this to C# and using this with Unity Mesh classes? I know there's something called Voxelform in the asset store, but that's just out of my budget.
     
  22. Vanamerax

    Vanamerax

    Joined:
    Jan 12, 2012
    Posts:
    938
    Just finished the workings of the forge, also made a 3D model for it. When it's lit, it uses a particle system which comes with the standard assets for now, but I probably will make a new one for it. Here are some screenshots:







    The forge is fully interactable, contains a List of Items which it can melt when a certain heat is reached for the items. It has an internal fuel value. If there is enough fuel to keep burning, it heats up the items for a bit, depending on the current heat of the item, the heat of the forge and the quality of the item. When it runs out of fuel the forge stops burning and heating up the items.
     
  23. Vanamerax

    Vanamerax

    Joined:
    Jan 12, 2012
    Posts:
    938
    any comments on this?
     
  24. virror

    virror

    Joined:
    Feb 3, 2012
    Posts:
    2,963
    Looks nice, i guess you are a fan of Wurm as well? ; )
     
  25. Vanamerax

    Vanamerax

    Joined:
    Jan 12, 2012
    Posts:
    938

    Thanks :D
    Yes indeed! I don't like the way things are implemented though. Too much grinding and mining is a bit weak. So I hope to make some improvements right there, but I like it's concept!
     
  26. virror

    virror

    Joined:
    Feb 3, 2012
    Posts:
    2,963
    My thought as well, but i think its hard to get around the grinding part when making an mmo guess, somehow you need to make things take time : p But im sure it can be made a lot better : )
     
  27. Vanamerax

    Vanamerax

    Joined:
    Jan 12, 2012
    Posts:
    938
    Well the plan is to make the progress alot more clear when doing things. In Wurm for example, you have to mine around 50 times for half a minute to cave out 1 block. It would be more fun if everytime you mine a small bit of the terrain disappears. This way you can see your progress directly and personally I think thats more fun. I also want to implement a more complex tech tree in the gameplay (and avoid spawning with some basic tools, start out of nothing and build from the ground up)
     
  28. virror

    virror

    Joined:
    Feb 3, 2012
    Posts:
    2,963
    Seems like we have similar plans : )
    This is my latest try in mining: Mining demo
     
  29. Moraleidahgo

    Moraleidahgo

    Joined:
    Mar 3, 2012
    Posts:
    107
    Hey wasstraat65! Congrats on the game, looks cool :). Unfortunately, I don't have any title sugestions.
    Instead I have A suggestion. How about a dragging itens system? It would make your inventory more intuitive, being able to organize and drop itens more easily. And would help the crafting system too. Just a thought.
     
  30. Fallenrat

    Fallenrat

    Joined:
    Jun 11, 2012
    Posts:
    41
    Mediebox
    Medievial + Sandbox

    Or something like

    Blades in Sand.
     
  31. Vanamerax

    Vanamerax

    Joined:
    Jan 12, 2012
    Posts:
    938
    Nice, maybe we could help eachother so now and then! ;) Will try your new build in a second


    Thanks! I think a Drag&Drop GUI system would be great to solve some problems! The only problem though is that Unity's current GUI system is awfull to work with in complicated things like this and I've no Idea how to get it working. But It's definitly something I will try to rework soon!

    Thanks for the suggestions! I will add them to the list of possibilties where I will choose from ;)
     
  32. Vanamerax

    Vanamerax

    Joined:
    Jan 12, 2012
    Posts:
    938
    So UT has given us a preview of the new GUI system that's being worked on ( can be found here: http://blogs.unity3d.com/2012/06/29/the-new-gui/ )

    I have to say it's pretty amazing and I'm told this will also be available in the free version, for this reason I'll probably wait with my drag drop inventory, to avoid unnessecary struggling with the old GUI system and avoid redoing basicly the whole GUI :p

    My main focus right now is to get some sort of crafting system working. Any ideas on that?
     
  33. virror

    virror

    Joined:
    Feb 3, 2012
    Posts:
    2,963
    Looks cool! No word on the performance though, i hope its better than the current one.
    On the crafting system, i'm trying to figure out that myself, so many ways to do crafting, minecraft style, just a dropdown list, wurm style and so on. Hard to find a good balance between simplicity for the user and the "fun" factor : )
    Also there is other factors, like sub-items, timers and stuff.
    Combining minecraft-style crafting with a recipe book for easy access ones it has been "invented" could be one idea.
     
    Last edited: Jun 30, 2012
  34. Vanamerax

    Vanamerax

    Joined:
    Jan 12, 2012
    Posts:
    938
    Yeah, I'm struggling with the exact same problem. What is simple enough to understand for the player, is fun to do, but is complicated enough to have a balanced tech tree? I want to keep things as realistic as possible, so the minecraft style of "stick + stone = pickaxe" won't cut that.
     
  35. Vanamerax

    Vanamerax

    Joined:
    Jan 12, 2012
    Posts:
    938
    I have started working on a new character model. The placeholder we were using was just way too high poly ( 27.600 polygons!!! ), obviously unusable in a game, especially if there will be more characters in the screen at once (for example NPC's and other players when playing multiplayer).

    The one I'm working on right now is in very early stage, but not bad for half an hour of work (at least, that's what I think)



    That's the basic mesh. The head and face must still be made and I will add some more loop cuts for extra detail. Hopefully I will get this under 1500 faces ( about 3000 polygons). It has 700 faces as for now. I expect the head to take up alot of faces

    So yeah, that's it for now! Tell me what you think :D
     
  36. jc_lvngstn

    jc_lvngstn

    Joined:
    Jul 19, 2006
    Posts:
    1,508
    I've been round and round with my crafting system approach also, wass. I had to figure out...
    How do people gain new recipes? Find them? Increased crafting skill?
    What does the crafting UI or approach look like

    Can you build partial items like wurm, and work on them as you get resources? or is it a "gather everything together and hit craft" approach? The latter is easier to program imo, but harder on the player and less "realistic".
    How does the crafting process integrate with item weights, quantities, that sort of thing

    Have different use cases, like creating a log from a tree. Creating a board from the log. Creating a small handle from the log or board. Crafting simple items like a hammer, that only takes simple components. Crafting complex items like carts. Test these out with your system, and see if it all flows together and makes sense.
     
  37. Vanamerax

    Vanamerax

    Joined:
    Jan 12, 2012
    Posts:
    938
    Thanks for your reply! I like the realistic way of crafting, so also making partial items. I don't really care which aproach takes longer to make, if it's fun and fits my taste I'm fine with it :p

    I will try to sort things out. But the main thing I'm still doubting with is if I should make some sort of central database of available items to craft, or just store them in the partial items you can craft. Not sure yet..


    Also, I wanted to use your Minepackage for my terrain, since I will be using full dynamic terrain to dig and mine in. Would it be possible to use a marching cubes algorythm on the mesh generation? And how about terrain generation when the player moves? I guess you're the best person to ask. You made it! (awesome job btw :D )
     
  38. virror

    virror

    Joined:
    Feb 3, 2012
    Posts:
    2,963
    Model is looking good so far : )

    I think i will have some parts, not to many because i think that will only make the player confused and it will take ages to craft something : p
    The main concern is the actual GUI, if i want drag&drop, just a list and so on : /
    I want it to feel kind of realistic, but at the same time it should be very simple to use. Simplistic GUIs and controls are a main thing for me in this game.
     
  39. Vanamerax

    Vanamerax

    Joined:
    Jan 12, 2012
    Posts:
    938
    Thanks!
    Simplicity in the GUI is always a good thing. But it's hard to make right now with the current GUI system. I'll probably wait with that untill Unity 4 ;)

    It's coming along pretty nice right now. The head is done, knees and hands have been improved and added some more detail. There is still something which makes it less humanlike I think, but I don't know what's causing it. So there is some more tweaking left. After that, I will start maken the UV map and a decent rig

    Here is what it looks like right now:
     
  40. Vanamerax

    Vanamerax

    Joined:
    Jan 12, 2012
    Posts:
    938
    So, after working some more on the character, it is finally rigged! Not bad for my first-ever rigged character, if I do say so myself. :D

    Here are some pics, still have to adjust some bad-deforming parts and start UV mapping :)





     
  41. Norton084

    Norton084

    Joined:
    May 18, 2012
    Posts:
    79
    So as a sandbox game what exactly is it? what will you be able to do, as for melting, forge it reminds straight away of minecraft and wurm online, mind giving me some information what will you be able to do and not, will it be singleplayer or multiplayer
     
  42. Vanamerax

    Vanamerax

    Joined:
    Jan 12, 2012
    Posts:
    938
    Good questions,

    I hope to get some dynamic terrain working to be able to dig and mine wherever you want, like minecraft, but without the blocky-ness. If I can get it working I'll probably be using a marching cubes algorythm to make the terrain nice and smooth.

    Also, I'll implement as many crafting possibilities as possible. But don't expect to get high-tech within a day. I plan on making a pretty complex tech-tree starting from nothing but gathering some basic resources from the surrounding nature.

    Singleplayer will be my focus as for now, but if I can get some decent multiplayer working, it will certainly be implemented!

    And like you also mentioned, minecraft and wurm are probably the two main inspirations for this. I'm trying to make the game more the way I like it. For example, I won't be showing alot of GUI all the time. The player will be informed of it's conditions via sound and behaviour, but it can always be double-checked by opening your inventory and stats window ;)
     
  43. Norton084

    Norton084

    Joined:
    May 18, 2012
    Posts:
    79
    Just a little thing, skill choosing is totally going to kill a sandbox game like this, you should let players gain their skills by doing certain stuff, in real life you don't start as a Albert Einstein, you do not know much beside how to move your body and so on, make it hard and sometimes easy to gain skills.
     
  44. Vanamerax

    Vanamerax

    Joined:
    Jan 12, 2012
    Posts:
    938
    You will gain skill by doing actions, this is already implemented. At the start you will however get the opportunity to choose which fighting skill you want to start a bit higher than the others. Skills like Woodcutting, Mining, Digging etc will be leveled by actually doing these things. Therefore, these skills won't be showed when creating your character, and will only become visible when you used the skill for the first time (for example, when you cut down your first tree, woodcutting will appear in your skill window). The only reason to start with the choosing of leveling the fighting skills in the stats is to prevent using classes like archer, mage and swordman, but still keep some sort of specialization in fighting style.

    I think I will make another video soon showing my current progress ;)
     
  45. WandererOne

    WandererOne

    Joined:
    Jul 6, 2012
    Posts:
    3
    I think you're doing great.

    Is this game set on Earth or some other planet? If it is Earth, I agree with the previous posters who tried to add some sort of historical and or language context to choosing the name. And I also agree with those who honed in on the woodsman theme. On that note, maybe there could be a (female?) character that the woodsman might be able to save from some monster/bad guy he witnesses messing with her. And maybe the saved maiden could reward the woodsman in some way.

    Even if the game isn't set on Earth, you can still use Earth history, heritage and culture to help you come up with the history, heritage and culture of your own choosing. In some ways, it helps you break open the box if it isn't Earth.

    Keep up the good work. I think you're doing a great job.
     
  46. Vanamerax

    Vanamerax

    Joined:
    Jan 12, 2012
    Posts:
    938
    Thanks! I'm still not sure about the name, but something historical in it is definitly a must!

    The game will be set on earth, as realistic as possible. I hope to give the player the same freedom in playing as in real life: dynamicly change every aspect of the enviroment ( except the weather of course :p )

    Random quests like the one you mentioned is a pretty good idea! I'll save it for later, need to get more important things done first :p The terrain is currently on high priority (and could be considered a whole project on it's own), same with the crafting system. Also, the main character is almost completed so that might be the very first thing I'll finish up ;)
     
  47. Vanamerax

    Vanamerax

    Joined:
    Jan 12, 2012
    Posts:
    938
    Sorry for the long wait on an update, but I changed my mind on the plans for my GUI.

    The main reasons being:
    - I really need a better GUI to be able to work on the crafting system.
    - Unity 4 is still waiting to be released, and I think the free version will take some more time to release.
    - Unity 4 claims the have improved and optimized the GUI system, but the new GUI won't be included in the first release ( at least, from what I understood? )

    So, because of this I started working on the Drag Drop GUI. So far it's coming along nicely. I can drag Items from my inventory on the screen. Still have to do the checking when I drop the item into another screen ( or on the floor ). Will take some more time, but I hope to get it finished soon.
    When it's done I'll make a video to show the drag drop in action! :D
     
  48. jc_lvngstn

    jc_lvngstn

    Joined:
    Jul 19, 2006
    Posts:
    1,508
    Are you using something from the asset store, or Unity's? I recently switched to NGUI from iGUI.
     
  49. ATNEDev

    ATNEDev

    Joined:
    Jul 13, 2012
    Posts:
    54
    Very nice considering this is your first project! If you made the objects in this game, good job!
     
  50. Vanamerax

    Vanamerax

    Joined:
    Jan 12, 2012
    Posts:
    938
    No I'm just using the OnGUI right now. I have downloaded the NGUI free version and I liked the demo's very much. But I don't feel like to get limited by some license as for now. And I haven't looked into any of it's code yet. What was the reason for switching to iGUI? I don't know that package though.


    Thanks! Yes I made the objects myself, except for some seen in the video. But as stated these are just placeholders ;)