Dynamic Asset Progress

posted in the game for project unirule
Published November 22, 2018
Advertisement

Hello,

I'm in the middle of creating what I call dynamic assets.  The hope is that when fully incorporated into the project a player will be able to create their own buildings, monuments, bridges, and city walls with this tool.  I want it to be user friendly.  Importantly, once the user has 'designed' their unique structure I want the functions to be able to pop out the needed collision geometry so that the world's Simulin can interact with it as a player would expect it to.  Examples of this would be Simulin travelling through door-ways and up stairs and walking around walls and over bridges.  

The past three weeks has been a seesaw of conflicting interests.  If I make the dynamic asset tool too user friendly where sky is pretty much the limit it would be a nightmare trying to come up with the necessary algorithms to try and generate the necessary collision geometry.  If I make the tool too rigid then the appeal I'm going for ( enticing players with this tool ) will become lost after a few sessions working with the tool because it'll be outed as a fraud tool.  The Ooooos and Ahhhhs turn into pfffts.  I'm giving it a shot because this last tool, dynamic assets, will be the icing on my framework cake and will bring together all the functionality I've been working on.  

I'll be updating my progress regarding dynamic assets in this blog post.

As of today I've been working on allowing the user to place foundation blocks, what Simulin will walk on, into the game world and have the server generate the necessary collision geometry using the same technique I'm using for navigating Simulin around the world.   Nodes and collision faces between nodes.

I'm posting a video of the progress so far, it shows two clients, one client is making the foundations, the other is strictly viewing the resulting collision geometry generation.  For the most part a user can become very creative in placing blocks where and how they please and function creates Node loops.  As of right now It seems things are working nicely.  I've been busy testing all sorts of scenarios and modifying the code accordingly.  The code is incredibly finicky and if a line is out of place or ordered wrong the whole thing crashes down.  It's like Fine China, haha.

Right now the block's are set to an arbitrary height of 5.  But users will be able to modify this at a later time.  Probably increments of 4.  The set increment thing is what I've been seesawing about, we'll see if I can just get it to work before I lower the increment value.

Anyways here is my incredibly exciting video of testing if this stuff all works :)  ( p.s what I want to see is a continuous wall that surrounds the blocks to form a loop.  Also they are only 1 sided faces so that the collision geometry can only be triggered from one direction. )

 

Previous Entry Server(s) Side
4 likes 6 comments

Comments

Rutin

The genius has re-surfaced! Welcome back!  I like what you're doing here with the dynamic approach. 

I miss seeing your posts! Keep us updated!

November 22, 2018 10:05 PM
Septopus

Sweet!  Love how this looks.  Miss the updates too, keep em comin! ;)

 

November 22, 2018 10:40 PM
DexterZ101

Cool! an export option to OBJ format will be nice man!

November 23, 2018 01:43 AM
Awoken

Thanks guys :)


@DexterZ101, Yes, the player won't have to create their own stuff they can also just select pre-made assets from a drop down list and drop them in.  That's another reason why I want to finish this part before I begin working on the actual game-game because I will need a tool to build all the predefined assets that are available to the player.

November 23, 2018 02:42 AM
DexterZ101

Awesome tools bro... can't wait to try it out when done ^_^y

November 26, 2018 05:11 AM
Awoken

Progress is coming along a little slower than the pace I've been used to.  But progress has been coming along none the less.  In the past I'd try to crack out a whole feature in a weekend or two but lately I've been tackling it piecemeal.  Hope everyone is enjoying their holidays.

On Chrome,
Every time google updates chrome I become a little nervous.  Sometimes things go badly, but lately Chrome has been ramping up performance and I can see be improvements.  So that's exciting.

On Dynamic Assets.
I'm happier with the way the user goes about interacting with the tool I've created.  It has it's limitations and creating more complex structures can be a challenge.  However, the more complex structures are possible.  I've only been focusing on what I've termed 'foundations'.  Basically they are surfaces that Simulin can walk on top of.

Next will come:
- stairs linking foundation surfaces 
- walls and pillars on top of the foundations 
- being able to place windows and doors on walls
- capping the thing off with a roof. 

The first part, foundations, are the most complicated because they directly effect the surfaces Simulin can travel on.  I expect the other parts of the asset creation to be a bit faster development time wise.

My goal is to be able to create four iconic structures from the past, they are

The Pyramids
pyramid.jpg.20485afb3638ef53251d46b6dc94b119.jpg
 
Mayan temple
inca.jpg.38540e766579c469ab7164371205e06f.jpg

Parthenon
parthenon.jpg.69e08eadf3608943c046bac7e5ffbcf2.jpg

And the one I want most...

Spoiler

Ziggurats of Ur

Great-Ziggurat-of-Ur.jpg.29be67ca6b1094ce08a53a3bc11adc1d.jpg


Here a picture of what is possible so far.
1765744453_Screenshotfrom2018-12-2216-15-12.thumb.png.b86621fe4539ae93126ed373c976e77c.png

as you can see the Parthenon has a ways to go yet.

One last thing...
Simulin scientists have recently discovered the first ever witnessed glacier.  They are pretty certain that the fabric of their universe wasn't suppose to cause such an effect.  They are over-joyed. :) 
2093064062_Screenshotfrom2018-12-2207-27-16.thumb.png.7432a165ef30ad531090c3a9364ec4b8.png

December 22, 2018 10:20 PM
Septopus

Dude! I love the glacier!!  That looks great!  Really completes the look of the mountains.  Construction is coming along nicely for sure, yeah, the Parthenon does need some help though..  ahhahaha :D  Happy holidays to you as well!

 

 

December 22, 2018 10:42 PM
Awoken

the juice is good...

January 03, 2019 01:34 AM
Septopus
4 minutes ago, Awoken said:

the juice is good...

Hell yeah it is! :D  That looks awesome!

January 03, 2019 01:38 AM
Awoken

Quick update:

Progress is coming along.  Almost every night after work I've been dedicated to weeding out errors in the functions.  I'm still working on foundation blocks.  Since these blocks can be arranged in an infinite number of ways it's always a trial an error putting blocks together in various orders and staking them every-which way.  Hasn't taken me long to find an error pop up.  In fact just today I was pretty confident I had weeded out all the major ones and was ready to report on that status, but alas I found an error that crashes the server out-right.  It doesn't even freeze anymore it just stops.  So I guess there is at least ONE more I'll have to flesh out.  

here are some pictures showing the blocks, and then the resulting collision geometry that is generated.  Nodes and Node Loops have successfully been incorporated as well. 

1490673159_Screenshotfrom2019-01-2318-45-41.thumb.png.96e7eb46642e322e57e4dc8aaa221fa5.png

1428562949_Screenshotfrom2019-01-2318-46-37.thumb.png.fa0ba9719f7d6cad40ba695022757f96.png

I have the ends of the collision geometry slightly overlap one another so that a ray doesn't slide through the crack.

So once I get ride of this ( newest ) error I can begin devoting my attention to tying it in with path-finding.
Then come stairs, archway tunnels through blocks, walls & pillars, doors, windows and then roofs.  Oh and also a model-asset placer.  This way you can add models to the game world such as statues, monuments or special pillars like an obelisk.

I'm pretty confident getting the code to work for these foundation blocks will be the most convoluted part to this whole process.  I'm expecting the rest to be much speedier.  fingers crossed.  

Thanks for keeping up to date :)    

[ edit: 24/01/19, server crashing error fixed :D.  On to path-finding ]

January 24, 2019 01:04 AM
Septopus

Sweet!!  Keep up the good work! :D

January 24, 2019 04:38 AM
Awoken

A very exciting moment for the development of this project.
Early example of Simulin movement around dynamic Assets:

Sure.. there are errors and I've got some work to do tomorrow, but tonight was well spent. 
Celebrations galore!!!

[ edit: 

 

February 02, 2019 03:31 AM
Septopus

Very awesome, Congrats!!  Why are the "simple" things so complicated sometimes? haha  :D  Nice job!

February 02, 2019 04:07 AM
Awoken
9 hours ago, Septopus said:

Why are the "simple" things so complicated sometimes?

right?!  I think the worst of it is behind me now.  I'm sure it's all down-hill from here on out.  phew.

February 02, 2019 01:46 PM
Septopus

Ohh!! and a MAZE!!  NICE!!  :D

 

February 02, 2019 04:47 PM
Awoken

Stairs...

185529356_Screenshotfrom2019-02-1011-05-45.thumb.png.75fd703bb167646cb03b76b32425b033.png

Though they can't walk up them yet.  

I've made the stair function so that it can support different styles of stairs.  This is a one version.  Another version will have no wall strings. 

[ edit: 12/02/19

The four structures as of today... Oooooo 913985661_Screenshotfrom2019-02-1220-46-53.thumb.png.b2be7077624ae73ea427064b560be81c.png

I made the ?pyramid? last.  I kinda screwed up and made it a tent.  haha

February 10, 2019 05:14 PM
Awoken

Had a terrific evening of programming tonight.  I took the previous week off work and off programming, I think that help ignite the desire.

Slowly weaving the different level collision geometry together via stairs.  Many new bugs to solve, should keep me busy for a couple nights. 

The picture below show's the structure

245122266_Screenshotfrom2019-02-2520-42-01.thumb.png.2783a91ab06b0e94e7b7cf9ccb26ff26.png

And the next picture shows the resulting collision geometry.  I've included Arrow helpers so that I can see the order of the nodes.

119316821_Screenshotfrom2019-02-2520-41-02.thumb.png.0dbd5b4d48b97b1e91b7888fca18c94a.png

Already I noticed one section of collision wall missing.

After I get these bugs dealt with I will focus on integrating the path-finding.  Looking forward to it big time.

This will be my last post within this particular blog topic.

Thanks for staying up to date and I'll have a new blog topic in due time.

February 26, 2019 02:55 AM
DexterZ101

Awesome progress man! I want the export to OBJ  : - D

February 26, 2019 10:04 AM
Awoken

Thank you very much Dexter :)

February 26, 2019 10:30 PM
Awoken

I had yet another fantastic night of programming.  Ironed out all the hiccups and am one evening away from having all the little Simulin walking on structures :).  If I didn't have to work tomorrow morning I'd keep going.  I've learned some secrets to motivation that help me, I'll be sure to share in my next blog.

Here we are, some more screen shots from tonight's progress.
2036425834_Screenshotfrom2019-02-2819-47-17.thumb.png.bf5d6367a6f8fd42273ea55721d77c3a.png
In the picture above you see all sorts of layers with steps going from one to the next.  When I debug I turn off all shadows and minimise all detail, including trees.  This makes for faster generation times.  Once the Simulin properly interact with the structures I'll be sure to up the detail for presentation.

1399421339_Screenshotfrom2019-02-2819-47-25.thumb.png.49aef8e9fb22bdcfb34dc116da82f614.png

In the screen shot above there are the ramps which the Simulin will travel up from level to level.  Along with all the nodes and their node loops displayed as arrows.

I'm very happy with the progress right now.  Past month has been exciting.  

March 01, 2019 01:55 AM
Septopus

Awesome man!!  Nice progress!

March 02, 2019 04:01 AM
Rutin

Great work! :) I almost miss these updates as I keep looking for new blog posts. :D 

March 02, 2019 02:02 PM
Awoken

Yesterday I decided to finish the job and get the simulin walking up structures.  I had a inkling of the direction I was to take.  I figured it wouldn't take me to long to do and I had secretly hoped that the strength of my path-finding algorithm and linear-path algorithm would more than compensate.  My half stitched Frankenstein code was just that, a beastly creation that took 10 hrs to get working and it didn't even produce the results I wanted.  Once I weaved it together with my path-finding code the simulin seemed to move in all sorts of funky directions defying all sorts of rules.  So yesterday is a complete right off.  

But I had two other ideas for how to tackle this.  I could either create a modified invisible terrain that mimics the contours and levels of the structures or I could simply project the nodes onto the dynamic-structures base plane, this is an extremely simple solution and will allow me to fully utilise existing functions.  I'll create ramp-collision walls that will tell the path-writer of any altitude offsets.  This way all path-finding will take place on the same level and it will be an illusion that allows it to seem as thought the simulin are walking up and down the steps. 

It was a long day at work though and I'm not going to finish it tonight.  So hopefully within the next couple nights.  Too bad I didn't spend all day yesterday using this approach instead.

March 05, 2019 02:38 AM
Awoken

Here I have my video showing Simulin successfully interacting with a dynamic structure :) 

Now if you've been paying attention you'll notice that my simulin does a little inspection of the upper level.  That's right, an "inspection".

Actually, quick blurb about that.  Since I want this game to be this that and the other thing I realised I best simplify stuff a lot. A note about simulin attributes, experience and levelling them up.  There are going to be 5 levels of ability for each attribute that a simulin can achieve, and or obtain.  Only 5.  One of them is going to be intuitive direction or something called similar.  Right now there is a function in my path-finding algorithm that if i choose to run recursively until the input equals the output, the simulin will indeed walk the shortest path and not inspect.  But since not running the function recursively saves on computing time I figure i'll make it an individual attribute for each simulin.  If they have an intuitive gift for direction ( level 5 ) they will always know where to go and the best route to take.  If maybe only level 3 then the function maybe only runs two or three times.

Back to dynamic structures.  It's been a race over the past week to hurry up and get to this point and I've made a lot of loose ends that need tying up and general function cleaning up and to do that's going to take me some time.  So until everything is fully integrated and running without a hitch I won't have anything else to post.  Hopefully by the end of the month I'll have a new blog.

Cheers!

March 07, 2019 09:22 PM
You must log in to join the conversation.
Don't have a GameDev.net account? Sign up!
Profile
Author
Advertisement
Advertisement