Dig or Die

Dig or Die

檢視統計資料:
Gaddy Games  [開發人員] 2016 年 10 月 25 日 上午 1:43
Tower Building Contest
Here is a little contest for fun ! (I'll post an announcement soon)

The one who build the highest tower will win 10 keys of the game (so you can offer them to your family or friends, or do nothing with it, it's a contest for fun !).
You have one month, until the 25th of November.

EDIT: the 2nd will get 3 keys, the 3rd will get 2 keys


Rules:
- You must use this saved game: http://gaddygames.com/games/DigOrDie/divers/Tower%20Building%20Contest.zip . Unzip it in your Dig or Die save folder (something like C:\Users\<user>\AppData\LocalLow\Gaddy Games\Dig or Die)
- Your tower must only be anchored to the top of the 5 horizontal ground tiles (don't replace the lights below by walls, and don't touch the left & right big walls)
- The tower must be stable (do not fall within a few second, ok to be saved/loaded)
- When you are done, post a screenshot of the top of your tower (so we can see the height indication on the left) but you don't have to show the rest of its structure
- If several people get the same height, the first one to get it (and post the screenshot) will have won
- At the end the winner will have to upload the file in public so everybody can enjoy its brillant architecture (and check that there was no cheat !)

Also, don't hesitate to post tips and advices to other people, it's for fun :-)


Here is a view of the saved game (you have plenty of walls, peaceful difficulty, water layout so you don't die falling... don't worry about anything but building !):
http://steamcommunity.com/sharedfiles/filedetails/?id=786898702

And here is an example of my tower (height 50), this is what you should post for your own tower
http://steamcommunity.com/sharedfiles/filedetails/?id=786896066


Help to post a screenshot:
引用自 un nain bécile
@Milo In game, press F12 to take the screenshot, close the game and save it. Then, go to your profile, screenshot, click on the image you want to post. You should see an URL at the top of the page, something with "shared" in it. Copy that link and paste it in your message and voila.
最後修改者:Gaddy Games; 2016 年 11 月 7 日 下午 6:12
< >
目前顯示第 61-75 則留言,共 133
Gaddy Games  [開發人員] 2016 年 10 月 31 日 下午 5:20 
95 !! There are definitely some forces in my game i do not control ^^

This weight reduction effect i talked earlier must have a higher importance than I thought. The consequence of it (being able to build a 95 tower when it's already super hard to make one to 50) is quite fun in fact ^^

1) un nain bécile : 95
2) Aryemis: 89
3) Frost: 78
4) SquirrelsBane: 67
5) The Dovahkiin: 66
6) Milo: 65
7) Cocorico: 51


@Aryemis: definintely strange, I just rechecked my code and I can't see where the destruction of one structure could have a consequence on another one, but it seems it definitely has. If you wish you could send me your saved game (contact at gaddygames dot com) so I can check what happens with the exact forces numbers
Aryemis 2016 年 10 月 31 日 下午 5:33 
Just sent you the savefile.
I'm also quite confused at one thing in the physics, for some reason replacing 2x of the light composite blocks with one composite steel doesn't work, it makes the structure heavier as a whole... Or maybe it just focuses the forces on the center block and makes that one break faster than the others ?

@un nain bécile
Looks like I have some more work to do...
I guess I need to start from the ground up to beat that.
Though honestly I don't really have any more ideas.
Gaddy Games  [開發人員] 2016 年 10 月 31 日 下午 6:05 
Ok thanks for the file !

First as a remark, the tower is perfectly legit, no problem at all =) And really a huge congrats to both you and un nain bécile =)


Now about the bug, I finally understand why it happens. And that's not good new, it would be really hard to control and/or fix. It's due to a change of the process order of the blocks of the tower, that happens when you suddenly remove a lot of blocks from your secondary tower.

Because unlike the water simulation that runs on all the world always in the same order, for the physics blocks i actually have an array of physical blocks (as there are really few of them compared to the 1million blocks of the world). So this array has an order, and for optimization reason when I remove a block from the array, the order of the array are modified (I replace the removed value by the last value of the array and decrease its length by 1)

Now, why this change of processing order make it collapse ? In a normal situation it wouldn't change anything... but here your tower is so optimized, so almost-collapsing everywhere that it's a really really unstable state... so a tiny change make it collapse (around the location when your tower goes from 1 block width to 2).

So the only possible action to avoid such "change order" would be to avoid removing an "old" physics block. If you remove any physic block, you would have to also remove all the blocks that have been added after this one.

Anyway, it was great to better understand my physic code and its limitation thanks to this contest and your incredible towers =)

PS: Aryemis I don't understand what you mean with your sentence about the 2x replacement of light physic blocks






最後修改者:Gaddy Games; 2016 年 10 月 31 日 下午 6:06
un nain bécile 2016 年 11 月 1 日 上午 5:28 
I don't know if it is because of the same reason, but saving could also destroy part of the tower. Going back to a previous save, doing the exact same thing and saving again often works.
Gaddy Games  [開發人員] 2016 年 11 月 1 日 上午 7:10 
Are you sure you didn't save too early, before the forces are well balanced ?
I can't see how the previous issue would do that (but maybe i missed something)
un nain bécile 2016 年 11 月 1 日 上午 9:37 
Yes I am. I quicksave everytime before adding one block, so I can tell you that doing the exact same thing fix it, and it wouldn't if it was just due to the stress. It don't happen often but though I have two saves that may show it
最後修改者:un nain bécile; 2016 年 11 月 1 日 下午 12:53
Frost 2016 年 11 月 1 日 上午 10:10 
the behavior of the physic is really weird:) i was in process of tower creation. everything was ok. block by block:) but my wife asked to change the music (after 5 hours of this lovely soundtrack;))... so i pressed alt+tab, oppened the player... found a music... then i oppened the game back... 2 minutes for other stuff... then in game esc-options-music off-esc... one move and tower collapsed!
Basic 2016 年 11 月 1 日 下午 4:54 
Assuming your physics calculations are good, it sounds like you're hitting a floating point precision issue[docs.oracle.com].

Are you perhaps using a 16/32-bit float? If so, switching to something wider may solve your block ordering/consistency issues fairly cheaply.
最後修改者:Basic; 2016 年 11 月 1 日 下午 4:56
Gaddy Games  [開發人員] 2016 年 11 月 1 日 下午 5:22 
@un nain bécile: ok, then... I don't know. Maybe the balance takes a really huge time to be perfectly done, so you still save before it's completely balanced. I don't know, your towers are so huge that it goes out of the scope of my usual tests ^^

@Frost: had you build a rainshield ? As water can add pressure and force on the blocks. Or maybe when you clicked in the menus you accidentally added a block on the tower (as i've some bugs with clicks on the menus that also clic on the game behind)

@Basic: the physic is in integer, not floating points


Aryemis 2016 年 11 月 2 日 上午 3:37 
Well I'm still hitting a wall at 93, despite my tower being capable of more (from my experience anyway).
I've been consistently seeing strange behaviour, with the tower breaking somewhere it's not stressed.
It's like I've somehow hit the limit of the number of light composite I can put, and the next one I put on top takes one out in the 2x light composite part. And thus it seems like it broke in a non-stressed place.

That's the only explanation I've found so far anyway.
Gaddy Games  [開發人員] 2016 年 11 月 2 日 上午 3:56 
Yep it seems that at this height more and more unpredictable physic events happens. Must be related to the black holes and the quantum physics =)
Aryemis could you post a screenshot of your 93 tower ? So it can be counted officially (even if it doesn't change the #2 rank)


More seriously, about the strange breaking location, after investigation yes it seems to happen when the tower is big enough to prevent the engine to balance it correctly enough, because the forces have so much distance to move through.
Because of that, sometimes at the end of the frame some block are in a very specific physic situation : their forces output are negative, meaning that there are more forces that goes into the block that forces that goes out from it. In a normal situation the force output is positive and equal to the block own weight.
This "negative weight" is normally the consequence of a "floating block", a block that is not linked to any ground anchor, and so cannot channel its force correctly into the ground. In this case the weight cannot balance at all, and so some blocks have a positive output, and other have a negative (the total being equal to 0, as they can't dissipate it through the ground). It's a very useful way to detect such floating group of blocks (which is not that easy to detect at all). In consequence I break the block when I detect such negative output.

Well.. sorry for the confusing text... my conclusion is that it's one more limitation of my physic engine, that happens only on huge constructions with very extreme forces.
This specific bug I think would occur more on blocks that have low forces, but close to blocks that have high forces (so for example it can happens near the place where you reduce the width of the tower, on the outside column). If those close high pressure block have a lot of balancing to do, they might make the outside block balance very hard to do, and result in a negative output at the end of the frame.
Aryemis 2016 年 11 月 2 日 上午 4:21 
I'll post a screenshot when I get to 96 or more :D

Thanks for the explanation anyway, it should help me find a way around this.
I think that it's also something to do with the very low weight of the blocks at that height, which means their self-force is extremely low.
Maybe the setting for detecting negative forces is a bit too sensitive for the low weight at this height ?
It's probably more trouble than it's worth to fix though.

We're definitely hitting the limits of the engine at those heights though. Possibly for the same reason, but since hitting 90+, I have to be slow when I bulid the spire, otherwise it just breaks randomly before even getting to 80...
Which was really not an issue even when building to 89 (on a different design admittedly).
Gaddy Games  [開發人員] 2016 年 11 月 2 日 上午 5:49 
Yep I tried to add a little margin on this negative output but in your example the negative output was in fact stronger than the one in a small floating group of 2 blocks, so nothing to do there.
I could improve the balancing in each update, before checking this layout, but it would take more CPU. Or maybe wait for several frames with a negative layout before breaking the block, but it would ask to memorize it etc, so not the priority
Ytilibail 2016 年 11 月 2 日 上午 9:37 
I was about to try and beat this challenge, too bad im already beat b4 i even started xD
< >
目前顯示第 61-75 則留言,共 133
每頁顯示: 1530 50

張貼日期: 2016 年 10 月 25 日 上午 1:43
回覆: 133