Jump to content

Tyron

VS Team (Lead)
  • Posts

    1,942
  • Joined

  • Last visited

  • Days Won

    765

Posts posted by Tyron

    • I've began a complete rewrite of the player movement and collision detection system. This is necessary because the previous one was buggy in several cases and not very flexible. Working on collision detection was a slow, tedious and an unrewarding experience :D
      Therefore we now have a solid collision detection system and the player is able to walk, swim, fly, sneak and sprint without glitches.

       
    • I also started working on player health, fall damage, death and respawn. We now have a sarcastic death dialog \o/

      deathscreen.png

      The health system is still buggy at this point but will be improved very soon.

      Unfortunately no other fancy pictures to show this update, but we can rest assured that some critical parts of the game received much needed progress.

    View full record

    • Added some new blocks moved over from Vintagecraft. Done with fairly little effort, thanks to similarities of the json model format. Currently only the blocks themselves are there, you can't use them for anything yet, other than for decorative purposes.

      2016-05-24_12-46-39.png
       
    • Added blocks dropping from breaking blocks and everything required to make that possible. Which means a basic entity system is now in place that will also handle animals, mobs and in the future other players. 

      2016-05-27_20-14-39.png
       
    • Added 2 new settings to control mouse sensivity and mouse movement smoothing
       
    • Did a bit if work on the tree-in-world-generator. It now spawns trees based on the climate, forest and elevation values.
       
    • Recorded and edited a bunch of sounds for the game, which was a lot of fun ^_^
       
    • Lots of internal updates (improved particle spawning system, begin work on making dropped items collectible) 

    View full record

    • Like 2
    • The new block renderer is now integrated into the Inventory GUIs and the World renderer, so any 3d models from a json file can be added and used inside the game.
       
    • I've begun adding custom collision and selection boxes for blocks
       
    • Completed one significant part of the lighting system: Block light. 
      Block light is seperate from sunlight because the sunlight varies during a day/night cycle but block light always remains.
      The last missing part of the lighting system now is coloured lights. The engine already supports it, but it's untested and various places in the engine probably need some tweaking to get it working Here is a video demonstrating block light:

       
    • I've begun adding custom block behavior, and it's already working for torches \o/
      Now you can place torches on walls and they attach themselfes properly. In above video you can still see that feature missing. Here's a screenshot of it:
      torches.png


    And finally, here's your weekly fix of the Vintagestory Terrain Generator and various glitches

    Pictures: https://imgur.com/a/QksfQ


    View full record

  1. Recently I was thinking about what should happen when you die. I will probably go the usual way and make the player loose all items and some exp (not all levels), but I'm still interested in other ideas.

    Examples:

    - Drop all items but inside a grave that doesn't respawn and can be reclaimed 
    - Drop all items except the ones in the hotbar?
    - Don't drop any items but loose money?
    - All of the above depending on the game difficulty?

    Or something else completely?

  2. After having already spent significant time on preparing for the universal block rendering system I was now able to complete it, this means the game can now take in a json model file and turn it into a ingame block, in fact, almost the same json model files that I made for Vintagecraft.

    Pictures: https://imgur.com/a/uYMer

    What I still have to do however is to integrate the custom block shape generation when drawing the world and when showing the players inventory. Above screenshots are made using just a quickly hacked together test renderer for a single block. 

    Nonetheless, having this system in place is a significant milestone as it will let me add game content more quickly. 

     


    View full record

  3. Was busy with real life, so little progress since last Update. Low activity will continue for some more days. Nonetheless I 

    • began work on a universal block rendering system that can take in block models in json format (practically the same as minecrafts format) and process the file into a renderable mesh in the game.
       
    • added a final render pass which can apply any kind of post processing effects to the world via shader. With that I added some slight sepia effect to the scene.


    As always, some screenshots of the terrain are also included in the slideshow.

    Pictures: https://imgur.com/a/Pnnd9

     

     


    View full record

    • Like 1
  4. No new completed features this time, I had to fix up a lot of things and prepare the ground on which to base on the next features

    • Continued working on implementing items (= anything that can go into an inventory and is not a block)
    • Began implementing survivval inventory, before there was only a creative inventory
    • A few major internal refactors and bugfixing sessions
    • Fixed some block facing inconsistencies in preparation for a universal block tesselator from json files

    However since the game has gotten more stable now, I could spend more time exploring the Vintagestory terrain, have a look.

    Pictures: https://imgur.com/a/gtpmC
     

    Here's also a video of me taking a short hike and playing with the particle system, hope the background music is not too obnoxious.

     


    View full record

    • Like 1
  5. Let's break some blocks...

    • Added slow block breaking and block breaking system (through a universally coded decal system which can also handle other overlays). 
    • Added cubic particles and a way to color them according to a block texture


    View full record

    • Like 1
  6. What's new this time? Let's see....

    • Water got a new texture, is now animated and I also played around with waves. I probably won't keep the waves, it feels kinda discomforting when a large part of your screen is wobbling around.


       
    • When starting a single player world, the game window shows the current server log entries, so you know what currently takes so long ;-)

      serverlog.png

       
    • Added collision detection for particles. Nothing super complicated or super fancy but quite neat to observe :)


       
    • Sunlight has now a range of 24 blocks, which looks really neat when you are about to exit a dark cave as you can see the sunlight already several blocks earlier.
       
    • Continue some more on the lighting system, various fixes, tweaks, cleanups as always

     


    View full record

    • Like 1
  7. News for this Update, again mostly internal updates:

    - Spent a lot of time stabilizing the Multithreaded systems on the client and server. Which is like balancing on a rope 😉

    - Had to do some rewriting on how chunks are generating, which makes lighting easier

    - Completed Sunlight calculations, which means the terrain generator finally generates shadows in caves and und overhangs again

    Here's how the terrain now looks like with shadows. Some shadows are still glitchy.

    Pictures: https://imgur.com/a/ry7Fl


    View full record

    • Like 1
  8. No big update this time, spent the majority of time working on internal systems and struggling with a decent lighting system.

    • Played around a bit with fake volumetric fog, will probably be added permanently to the game. 
       
    • A bit more progress on the player hotbar, it now shows the health bar, food bar and 4 backpack inventories. Currently only the display is working, the health/food system and backpacks are not implemented yet.hotbar.png
       
    • Added climate tinting of liquids, so now we can have murky green waters in a swampland and crystal clear water in cold areas.
       
    • Did a lot of behind the scenes improvements (e.g. rewrite of the chunk render queue, consolidation of all vector classes, etc.) and bugfixes

     


    View full record

    • Like 1
  9. New since last update:

    • Added Lake generator (produces small lakes randomly)
       
    • Improved Landform generation (landform specific terrain noise octaves)
       
    • Preparing new Lighting system: All loaded chunks on the server and on the client are now compressed in-memory. The loaded chunks account for 60-90% of all memory consumption of the game, and the compression ratio for this kind of data is 95-99% which basically means the memory usage is 3-5 times less. The big challenge herin lies to do it efficiently so the game doesn't lag. I chose to run compression in a seperate thread (= runs in parallel), which is however known as a nightmare topic for many programmers to get it bug free.
       
    • Preparing new Lighting system: Added data fields for each chunk to be able to store 32 block player light, 32 block sun light as well as about one more byte for storing color values (e.g. blue glowing mushrooms! 🙂
      This causes chunks to use more than twice the memory, so in-memory chunk compression was the solution that should hopefully get us there without loosing view distance.

      All in all quite the challenging task to juggle around with more than double the data, but that's what this project is here for - to push boundaries.


    This time I spent some extra time exploring the world, I start to quite like what it produces by now. Have a look!

    Pictures: https://imgur.com/a/0YXrO

    Up next: Bugfixing, Cleanup, Tweaking, Continue work on new lighting system


    View full record

    • Like 1
  10. - The Chunk Renderer has been rewritten. This is a big thing because the old system did not allow (what i am aware of) to use shaders on chunks and at the same time I used a very efficient system that collects up to 1000 chunks and draws them in one go (graphics cards are much faster when drawing a lot in one go). 

    - The terrain is now permeated with long windy caves! These caves also branch off and produce caverns. In the long term there is a lot I still want to add to the cave system.

    - The underground now also has Vintagecraft-Style deposits or copper, iron ore, tin ore, bismuth ore and so on.

    - We've added the basics for an efficient particle system using a technique called instanced rendering. On my Laptop (Dell Inspiron 15Z) it currently can draw over 20.000 Particles without lagging the game.

    - The grass block sides are now smoothly tinted, which looks pretty nice

    Pictures: https://imgur.com/a/4DR9S

    Up next: Some more work on Terrain gen, preparing for new lighting system


    View full record

    • Like 2
  11. Since last update I've:

    - Added the Landform generator to terraingen, which a little bit similar to minecraft biomes, but it only defines the terrain and not the climate. This finally allows for some decent looking terrain!! \o/

    - Rewritten the Texture Atlas composer which allows any size texture to be used while still packing the most amount of texture into the smallest space. This is needed so that Tallgrass can have a 48x48 texture to still have the same pixel density (because it is drawn diagonally) as other textures.

    - I've added basic support for tallgrass

    Pictures: https://imgur.com/a/pLthQ


    - I also played around with doubling (512 blocks) and quadrupling (1024 blocks) the worldheight, both are working fine, but the default terrain generator takes very much time to build the terrain. I could limit the terrain generator to 256 blocks and leave the remaining space for builders, then it should be fast again. I definitely am interested in breaking minecrafts old limits just for the heck of it ;-)
    It also looked super impressive to stand on top of a 200-300 block tall mountain, so still might be worth considering to get it running efficiently. In any case, the worldheight is freely configurable to any value as it already was in ManicDigger. The worldgenerator generates chunks in columns, but everything else is done in cubic chunks of 32x32x32

    Pictures: https://imgur.com/a/fHJln

    Up next: Rewrite of the ChunkRenderer, Cave generation, Ore generation, Particle system


    View full record

    • Like 1
  12. I had some extra Time between the updates shown in the last articles and this one, so we got several new features:

    - A lot of code cleanups, tweaks, rewrites, fixes and also finished some incomplete features (finalized clouds, clouds move with the wind, refactor client commands, game window now remembers the window size, etc..)

    - A square moon and a new night sky!

    - Major push towards world generation (about 1000 lines of code added), which now generates the first component: Rock Layers!

    - Another worldgen component, at least a super basic version: Tree generation. Currently it generates 3 kinds of trees (birch, pine, oak) anywhere according to a forest map, using the tree generator from Vintagecraft. It is still missing a bunch more features.

    - To help me make sure that the climate is calculated correctly I added biome/climate colouring of blocks which now works for tallgrass blocks

     

    Pictures on https://imgur.com/a/3ZVpr

     

    Up next: Finally some decent terrain

     


    View full record

    • Like 1
  13. A shiny sky needs clouds too! Clouds are quite tough to implement due to the fact that graphics cards were not designed to draw half transparent objects, so you have to use various tricks to make it work, like sorting all objects every frame or implementing order independent transparency. Thankfully there's a lot of research on that - I chose to implement "Weighted Blended Order Indenpendent Transparency" invented by Morgan McGuire because its fast, comparatively easy to implement and delievers good enough results. 

    1. First working clouds with variable density (no WBOIT)

    It uses efficient rendering methods so it can render over a kilometer of clouds quite easily (at least at this stage of the game)

     

    2. Less ugly clouds after implementing correct transparency rendering using WBOIT

    As you can see, the density and color of the clouds is just a value that can be changed anytime. This is important as I want to create different cloud patterns depending on the weather.

    The cloud system is also using Shaders, so i can easily color them according to the sky colors during sunset (they are also vertically offseted here just for testing, I might make it a permanent feature):

    2016-03-16_08-14-27.png

    Up next: More cleanup/refactoring and the beginnings of proper terrain generation.

     


    View full record

    • Like 2
  14. New since last update:

    • I've added an ambient/fog system that works by layering ambient/fog colors on top of each other. This will come in extremly handy when there are several factors influencing the range and color of the fog. Examples: Air Humidity, Day/Evening, Underwater, Deep underwater, Potion effects, etc.
      This system is already helping a lot in improving the look&feel when you jump into the water:

      2016-03-09_09-13-17.png

       
    • After lots and lots of studying OpenGL the game engine now supports GLSL Shaders. It's first use: A shiny new implementation of the Sky, including sunrise and sunset. Here, witness the very first sunset in Vintage story youself ;-)
       

      In the video you can also see how the whole ambient and the fog is colored according to the suns color shift during sunset. This is also only possible due to the new ambient/fog system. 
      I also added dithering to the sky renderer to reduce color banding, which makes the sky look almost silky smooth. In the video the color banding is very visible probably due to compression.

      dither2.png

      Up next: Clouds

     


    View full record

    • Like 2
  15. TLDR: Screenshots below 
    Since I have full freedom on what I want to work on next, I often just focus on area for a short amount of time and then continue with something else. It keeps my daily coding on the game a bit more colorful!

    • The entity system got a complete rewrite, including some basic implementations of attribute trees and entity property system. These two system will allow to attach/detach behaviors and attributes to any entity which makes it a lot easier to add different entities in the future.
       
    • The Vintagecraft tree generator is now migrated to Vintagestory, which is a very flexible piece of code to generate a large variety of trees. It took some extra efforts to make it load the various tree types from external json files, instead of being hardcoded like it was in Vintagecraft
       
    • I'm a strong advocate for using a good toolset to achieve good results, so I am often spending time on adding stuff that help me spend less time on adding stuff ;-) 
      Since last update I added automatic reloading of server mods, you just save the changes, the server immediately recognizes the change and reloads all mods. This speeds up development when I have to do many small changes.
       
    • The creative inventory now shows an item tooltip when you hover over a slot, also I implemented moving items between slots using the mouse.
       
    • I also added a new sun texture to replace the one from manic digger. I spent quite some time on getting the glow around the sun just right.
       
    • I continued working on components required for worldgeneration. Before worldgen works as planned, many components have to be in place and working. 
       
    • I did some playing around with fog, which will be a big part of the game as part of a weather system. 
       

    Pictures on https://imgur.com/a/5R4IS


    View full record

    • Like 2
  16. After some massive refactoring work of various Manic Digger Components a new gui system has sprung to life \o/
    The refactoring included consistent use of xyz axes, threaded server components, new chunk loader, terraingen rewrite, refactor server api system, inventory rewrite, embedding of a new graphics libary and more.

    While programming the gui system I drew inspiration from two main sources: World of Warcraft and HTML+Cascading Stylesheets, the latter is used to neatly format what you are looking at right now ;-)

    The main idea is that the player can have any quantity of dialogs opened simultaneously. Just like in WoW where you can open up your character screen seperatly from your inventory. These dialogs consist of individual elements that can be either freely or automatically placed using alignments, paddings and margins. This allows me to quickly cobble together many different guis from a fairly small set of elements, because I really can't be bothered fiddling around with positioning everything by hand if I don't have to. All of the GUI System is coded from scratch using just a basic drawing library named Cairo. I generally shy away from using large libraries/frameworks (like Unity) and try to code as much as I can myself. 

    Below screenshot show the very first version of the creative inventory. Already complete with scrollbar and search function. In the background you can also the first few steps towards terrain generation have been made already.

    Beyond that, it can also render fancy switches (please ignore the messy element positioning ^_^;)

     

    Up next: Trees, Fog and Water

     

     

    guis.png

    guis2.png


    View full record

    • Like 1
  17. "If I have seen further, it is by standing on the shoulders of giants." - Isaac Newton

    Vintage Story will not begin from Zero, there is no need for that. Instead it will use an existing game named Manic Digger as a basis. While being pretty basic content wise, it hides a few unpolished gems in its source code. It is extremly forthcoming by the authors of Manic Digger to release source code into the public domain, which allows everybody to use it for any purpose they desire, for which I am very thankful. It allows me to kickstart Vintage Story without the need to implement the basics first.

    Hence, my primary goals at first were to strip down the game engine to it's most esssential parts and massively clean up, simplify and reorganize the remaining code. This is still an ongoing process and will probably continue for several more months to come. Once this is done, it is likely that less than a few percent of the original code remains untouched.

    Here is the very first screenshot after I added a new block loader system to have the very first blocks from Vintagecraft in our new game. Please be aware that nothing in these screenshots is final and there's many textures that need to be replaced still.

    vc blocks.png

    Up next: A brand new GUI System


    View full record

    • Like 1
  18. [Edit 9.Aug.2016] Seems like I accidently deleted this entry and no possibility to restore it ?

    The Text I still remember that I wrote:

    Vintage Story will not be written from Scratch, there is no need for that. Instead it will be based on the game Manic Digger whose Authors graciously have placed the entire game source under public domain, for which I am extremly thankful because it will let me kickstart my game and not worry about implementing the very essentials first. The game itself looks, let's say, very rough, but it hides a few unpolished gems in it's source code.

    Below Screenshot is the very first visible progress on the game, as I have written a new block loading system that loads blocktypes from external json files. The line of blocks you see there are directly taken from my mod Vintagecraft. I've also already managed to render blocks as 3D models within manic diggers gui system

    2016-02-02_18-36-08.png


    View full record

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.