🎉 Celebrating 25 Years of GameDev.net! 🎉

Not many can claim 25 years on the Internet! Join us in celebrating this milestone. Learn more about our history, and thank you for being a part of our community!

Update #1 - Compound Clouds and Shells

Published April 06, 2018
Advertisement

Once again we have a new entry to this devblog.

First of all some logistics: We will post new updates every other week from now on because we just don't make enough breakthroughs to justify wasting your time every week. And we decided to categorize these entries. So far we got "Update" and "Feature".

Updates will deal with the current state of the game while Features are more theoretical and will explain certain features we are planning on implementing or are currently implementing.

So let's jump right in, shall we?

The cell stage is coming along nicely. You can see the current state in this video on our ... Could that be? On our brand new YouTube channel!

There are still two minor bugs with the compound clouds:

#1 Vertices only move until they are in the center then stop there;

Solution: Move the cloud end reorient the vertices as soon as one hits the center

#2 You can basically swim through the cloud and as long as you don't get too close to any vertex it won't deform;

Solution: If you are between a vertex and the center move that verteg towards the center of the mesh

One feature we wan't to add that isn't in the code yet: Calculate the value of the clouds (the amound of the compound you can extract from it) based on the mesh's volume. So far it's a static value and the mesh simply disappears once it's zero.

Also you don't gain any compounds from consuming the clouds yet. But that will change within the next week. During that time we will also implement the different types of clouds.

So far there is no solution in sight on how we will generate the cloud representation so we can finally make the mesh invisible. This is our main hurdle at the moment.

 

There is now a Logging function that writes important messages into a log file, e.g. if the connection to the database failed. That's right: We now got a database connected to Lyfe. There will be a separate DevBlog on its structure once it's fully planned out. We decided on SQLite. Mostly because it does everything we need and is easy to use.

 

Another thing that's currently being discussed is how we should save your creations. The first idea was to use XML:


<Creature name="" stage="creature">
    <Backbone count="6">
        <!-- starting at 0
        then move in one direction and note all vertebrae
        then the other direction
        alignment in the degree varying from horizontal -->
        <vertebra id="0" parent="" alignment=""/>
        <vertebra id="1" parent="0" alignment=""/>
        <vertebra id="2" parent="1" alignment=""/>
        <vertebra id="3" parent="0" alignment=""/>
        <vertebra id="4" parent="3" alignment=""/>
        <vertebra id="5" parent="4" alignment=""/>
    </Backbone>
    <Limbs count="2">
        <!-- type are the prefabs you pull into the creator
        x and y position on parent body mesh or something 
        Limb set as tail/one central leg etc are symmetrical but not split -->
        <limb id="0" parenttype="body" type="" positionX="" positionY="" symmetry="y" split="y"/>
        <limb id="1" parenttype="body" type="" positionX="" positionY="" symmetry="y" split="n"/>
    </Limbs>
    <Extremities count="2">
        <!-- Extremities can also be put onto the last vertebra-->
        <extremity id="0" parenttype="limb" parent="0" type="" scale=""/>
        <extremity id="1" parenttype="limb" parent="1" type="" scale=""/>
        <extremity id="2" parenttype="vert" parent="5" type="" scale=""/>
    </Extremities>
    <!-- ...
        ...
        ...
        ...
        ... -->
</Creature>

But one of the problems was finding a proper way to parse it while directly constructing your creation after each parsed node. Also XML files are gerenally constructed in scripts like C# or JS (from my experience; correct me if I'm wrong). This would create some additional steps while storing your creation so we decided against it.

The next thing is a quite simple text file that looks pretty much like a config file and our programmer came up with:


#CREATURE creature
#BACKBONE 6
#VERTEBRA 0 -1 0
#VERTEBRA 1 0 0
#VERTEBRA 2 1 0
#VERTEBRA 3 0 0
#VERTEBRA 4 3 0
#VERTEBRA 5 4 0
#LIMBS 2
#LIMB 0 body -1 -1 -1 y y
#LIMB 1 body -1 -1 -1 y n
#EXTREMITIES 2
#EXTREMITY 0 limb 0 -1 1
#EXTREMITY 1 limb 1 -1 1
#EXTREMITY 2 vert 5 -1 1

As you can see the structure is preserved so all parent objects are listed before their children so the creature can be built line by line. All the stats are missing a defining name now and this is the only let down with kind of structure: it's not that easy on the eye and probably hard to understand. But it's easy to write, easy to parse and a lot smaller. The second one only is a third the size of the first one (after you remove the comments).

 

I guess that's it for this week. And as always we would appreciate if you shared your thoughts with us.

Keep on evolving!

3 likes 0 comments

Comments

Nobody has left a comment. You can be the first!
You must log in to join the conversation.
Don't have a GameDev.net account? Sign up!
Profile
Author
Advertisement
Advertisement