[Testing] When In Doubt, Use Brute Force


simplex

Recommended Posts

That is definitely unusual. I've never had that happen. Could you share your log again?

 

Yeah, bugs are to be expected with no testers. :razz: Me and simplex can only discover so much.

 

Edit: I fixed the cotton hat. (At least it won't crash you.)

 

I'll upload a packaged build soon, first I have to find @simplex's packaging script.

I messed up and forgot to clear my log. I'll have to try to recreate it.

 

I couldn't seem to recreate it, but I found a new bug. Floating plants. And also the balloon hounds don't float at all.

Link to comment
Share on other sites

Bugs, Bugs, Bugs, Bugs, Bugs, Bugs.

 

The cloudflower reveals spots of the map when teleporting you, pulls in inanimate objects, and after you get teleported by them, you get put in an endless sleep.

 

Occaisonally. I tried 'em a second time, and I was fine.

That is definitely unusual. I've never had that happen. Could you share your log again?

 

Yeah, bugs are to be expected with no testers. :razz: Me and simplex can only discover so much.

 

Edit: I fixed the cotton hat. (At least it won't crash you.)

 

I'll upload a packaged build soon, first I have to find @simplex's packaging script.

I messed up and forgot to clear my log. I'll have to try to recreate it.

This is a known bug, discovered by @Craig_Perry. I mentioned it earlier today, in fact:

Calculating when the hound will hit the ground is a trickier business, since how physics parameters like dampening are used (as well as their default values) are unexposed engine level stuff. In fact, I need to figure some of this out to fix the current whirlwind bug, caused by physics parameters being reset improperly (this should also go in the TODO's bug list).


 

I'll upload a packaged build soon, first I have to find @simplex's packaging script.

$ make
(just make sure to always run the game once before that with the mod enabled, to make sure the list of assets to include is up to date)
Link to comment
Share on other sites

I messed up and forgot to clear my log. I'll have to try to recreate it.

 

I couldn't seem to recreate it, but I found a new bug. Floating plants. And also the balloon hounds don't float at all.

Floating plants is a known bug, it's an issue (we think) with ktech. As well as the octocopter.

 

The balloon hounds aren't finished yet.

 

Edit: Yeah, it's in the tools folder, I just forgot. I've already got perl, but it tells me I'm missing the archive:zip module, so I'm installing that now.

 

Edit2:

 

@KidneyBeanBoy

Here's the latest packaged version.

 

Edit3:

You may want to redownload, since simple pushed while I was doing that. :p

 

 

UpAndAway-prealpha.zip

Link to comment
Share on other sites

They do float. They are just spawned at ground level by default. I'm working on the proper spawning mechanism right now.

Ah.

 

Also another bug. Clicking on the banner in the main menu crashes the game. Here's the log:

  

Reset() returning

QueryServerComplete for non-existent handle [21] ok, HTTP 200: [{"result":"OK"}

]

HttpClientWriteCallback (0x060C5EE0, 1, 500, 0x062AF6E0)

HttpClientWriteCallback READ 500 (500 total)

scripts/screens/mainscreen.lua(508,1) platform_motd    table: 303C3A38    

SimLuaProxy::QueryServer()

../mods/UpAndAway_test/code/screens/upmenuscreen.lua(96,1) This is B.    

...../mods/UpAndAway_test/code/screens/upmenuscreen.lua:99: attempt to index upvalue 'platform_modstatus' (a nil value)

LUA ERROR stack traceback:

        C:/Program Files (x86)/Steam/steamapps/common/dont_starve/data/../mods/UpAndAway_test/code/screens/upmenuscreen.lua(99,1) in function '_ctor'

        C:/Program Files (x86)/Steam/steamapps/common/dont_starve/data/scripts/class.lua(98,1) in function 'UpMenuScreen'

        C:/Program Files (x86)/Steam/steamapps/common/dont_starve/data/../mods/UpAndAway_test/code/main.lua(84,1) in function 'UpMenu'

        C:/Program Files (x86)/Steam/steamapps/common/dont_starve/data/../mods/UpAndAway_test/code/main.lua(147,1) in function 'onclick'

        C:/Program Files (x86)/Steam/steamapps/common/dont_starve/data/scripts/widgets/button.lua(37,1) in function 'OnControl'

        C:/Program Files (x86)/Steam/steamapps/common/dont_starve/data/scripts/widgets/widget.lua(112,1) in function 'OnControl'

        C:/Program Files (x86)/Steam/steamapps/common/dont_starve/data/scripts/widgets/widget.lua(112,1) in function 'OnControl'

        C:/Program Files (x86)/Steam/steamapps/common/dont_starve/data/scripts/widgets/widget.lua(112,1) in function 'OnControl'

        C:/Program Files (x86)/Steam/steamapps/common/dont_starve/data/scripts/widgets/widget.lua(112,1) in function 'OnControl'

        C:/Program Files (x86)/Steam/steamapps/common/dont_starve/data/scripts/widgets/widget.lua(112,1) in function 'OnControl'

        C:/Program Files (x86)/Steam/steamapps/common/dont_starve/data/scripts/screens/mainscreen.lua(219,1) in function 'OnControl'

        C:/Program Files (x86)/Steam/steamapps/common/dont_starve/data/scripts/frontend.lua(234,1) in function 'OnControl'

        C:/Program Files (x86)/Steam/steamapps/common/dont_starve/data/scripts/input.lua(138,1) in function 'OnControl'

        C:/Program Files (x86)/Steam/steamapps/common/dont_starve/data/scripts/input.lua(312,1)

scripts/frontend.lua(712,1) SCRIPT ERROR! Showing error screen    

HttpClientWriteCallback (0x060C5DBC, 1, 114, 0x062AF6E0)

HttpClientWriteCallback READ 114 (114 total)

../mods/UpAndAway_test/code/screens/upmenuscreen.lua(42,1) OnStatusQueryComplete    {

   "standalone":{

      "modversion":"dev-prealpha"

   },

   "steam":{

      "modversion":"dev-prealpha"

   }

}

    true    200    

../mods/UpAndAway_test/code/screens/upmenuscreen.lua(44,1) Query made successfully.    

../mods/UpAndAway_test/code/screens/upmenuscreen.lua(21,1) decode:    true    

../mods/UpAndAway_test/code/screens/upmenuscreen.lua(35,1) dev-prealpha    

Could not unload undefined prefab 0x32162aec (nite)

Could not unload undefined prefab 0x2d1c40c (deciduous_root)

Could not unload undefined prefab 0x2d1c40c (deciduous_root)

Could not unload undefined prefab 0x2d1c40c (deciduous_root)

Could not unload undefined prefab 0x2d1c40c (deciduous_root)

Could not unload undefined prefab 0x2d1c40c (deciduous_root)

Could not unload undefined prefab 0x2d1c40c (deciduous_root)

Could not unload undefined prefab 0xceffd968 (cactusflower)

Could not unload undefined prefab 0xb58fed4f (catcoon_den)

Could not unload undefined prefab 0x2d1c40c (deciduous_root)

Could not unload undefined prefab 0x2d1c40c (deciduous_root)

Could not unload undefined prefab 0x32162aec (nite)

Could not unload undefined prefab 0xbedbd850 (feathers)

Could not unload undefined prefab 0x2d1c40c (deciduous_root)

Could not unload undefined prefab 0x2d1c40c (deciduous_root)

Could not unload undefined prefab 0xbedbd850 (feathers)

Could not unload undefined prefab 0xceffd968 (cactusflower)

Could not unload undefined prefab 0x2d1c40c (deciduous_root)

Could not unload undefined prefab 0x2d1c40c (deciduous_root)

scripts/mods.lua(293,1) unloading prefabs for mod MOD_UpAndAway_test    

scripts/mods.lua(293,1) unloading prefabs for mod MOD_workshop-178103451    

scripts/mods.lua(293,1) unloading prefabs for mod MOD_workshop-191200196    

Collecting garbage...

lua_gc took 0.06 seconds

~SimLuaProxy()

lua_close took 0.04 seconds

Could not unload undefined prefab 0x32162aec (nite)

Could not unload undefined prefab 0xb58fed4f (catcoon_den)

Could not unload undefined prefab 0x2d1c40c (deciduous_root)

Could not unload undefined prefab 0x2d1c40c (deciduous_root)

Could not unload undefined prefab 0x2d1c40c (deciduous_root)

Could not unload undefined prefab 0x2d1c40c (deciduous_root)

Could not unload undefined prefab 0xbedbd850 (feathers)

Could not unload undefined prefab 0xceffd968 (cactusflower)

Could not unload undefined prefab 0x2d1c40c (deciduous_root)

Could not unload undefined prefab 0x2d1c40c (deciduous_root)

Orphaned unnamed resource. This resource must have used Add( resource ) to insert itself into the manager.

Orphaned unnamed resource. This resource must have used Add( resource ) to insert itself into the manager.

Orphaned unnamed resource. This resource must have used Add( resource ) to insert itself into the manager.

Orphaned unnamed resource. This resource must have used Add( resource ) to insert itself into the manager.

Orphaned unnamed resource. This resource must have used Add( resource ) to insert itself into the manager.

Orphaned unnamed resource. This resource must have used Add( resource ) to insert itself into the manager.

Orphaned unnamed resource. This resource must have used Add( resource ) to insert itself into the manager.

Orphaned unnamed resource. This resource must have used Add( resource ) to insert itself into the manager.

Orphaned unnamed resource. This resource must have used Add( resource ) to insert itself into the manager.

Orphaned unnamed resource. This resource must have used Add( resource ) to insert itself into the manager.

Orphaned unnamed resource. This resource must have used Add( resource ) to insert itself into the manager.

Orphaned unnamed resource. This resource must have used Add( resource ) to insert itself into the manager.

Orphaned unnamed resource. This resource must have used Add( resource ) to insert itself into the manager.

Orphaned unnamed resource. This resource must have used Add( resource ) to insert itself into the manager.

Orphaned unnamed resource. This resource must have used Add( resource ) to insert itself into the manager.

Orphaned unnamed resource. This resource must have used Add( resource ) to insert itself into the manager.

Orphaned unnamed resource. This resource must have used Add( resource ) to insert itself into the manager.

Orphaned unnamed resource. This resource must have used Add( resource ) to insert itself into the manager.

Orphaned unnamed resource. This resource must have used Add( resource ) to insert itself into the manager.

Orphaned unnamed resource. This resource must have used Add( resource ) to insert itself into the manager.

Orphaned unnamed resource. This resource must have used Add( resource ) to insert itself into the manager.

Orphaned unnamed resource. This resource must have used Add( resource ) to insert itself into the manager.

Orphaned unnamed resource. This resource must have used Add( resource ) to insert itself into the manager.

Orphaned unnamed resource. This resource must have used Add( resource ) to insert itself into the manager.

Orphaned unnamed resource. This resource must have used Add( resource ) to insert itself into the manager.

Orphaned unnamed resource. This resource must have used Add( resource ) to insert itself into the manager.

Orphaned unnamed resource. This resource must have used Add( resource ) to insert itself into the manager.

Orphaned unnamed resource. This resource must have used Add( resource ) to insert itself into the manager.

HttpClient::ClientThread::Main() complete

Shutting down

Link to comment
Share on other sites

Ah.

 

Also another bug. Clicking on the banner in the main menu crashes the game.

Now that's a new one. It works fine on my end. o.o

 

Edit: Obviously, but log.txt please? :razz:

 

Edt9ORS.png

 

Edit: That's really weird. Seems that platform_modstatus isn't becoming what it's supposed to. (See the 'This is B' line in the log; 'This is A' should appear before that, otherwise things don't work.) Which is even stranger, because it's decoding the JSON just fine.

Link to comment
Share on other sites

@KidneyBeanBoy

Could you please post the full log? (not just now, but always)

@simplex

Any idea why it's not decoding the json file until after the text is supposed to appear? I had a similar issue on my end, but I had fixed it. (That's where the 'This is A' and 'This is B' came in handy.)

I'm looking into it. I actually tried to click the banner right after reading this and got the same crash. But then I restarted the game attempting to replicate it again (without saving the old log...) and everything worked fine. And it kept working fine on every other attempt. So it looks like it's erratic.

Link to comment
Share on other sites

@KidneyBeanBoy

Could you please post the full log? (not just now, but always)

I'm looking into it. I actually tried to click the banner right after reading this and got the same crash. But then I restarted the game attempting to replicate it again (without saving the old log...) and everything worked fine. And it kept working fine on every other attempt. So it looks like it's erratic.

How weird. I haven't been able to reproduce the crash at all. :/

Link to comment
Share on other sites

How weird. I haven't been able to reproduce the crash at all. :/

I managed to consistently replicate it. First, erase the cached "modstatus" persistent string (which is preserved across game reloading):

ErasePersistentString "modstatus"
(by the way, I think we should rename it to something more U&A specific, since persistent strings are global names)

Then restart the game (exit and relaunch it). Clicking the banner will then give a crash.

The reason is that TheSim:GetPersistentString (and TheSim:QueryServer) is an asynchronous call. TheSim:GetPersistentString returns immediately and the construction of the screen resumes without the data (unless it was cached, in which case the immediate return gives the cached result). That's why these functions take a callback function as a parameter: everything that needs to run after the data was obtained needs to be handled inside the callback.

So we should at first just build the title and other parts of the screen which don't rely on any external data. Then, inside the callback, we fill the rest. I'll rework the code, don't worry (since I already started to tweak it looking for the problem it's easier that I finish it).

Link to comment
Share on other sites

I managed to consistently replicate it. First, erase the cached "modstatus" persistent string (which is preserved across game reloading):

ErasePersistentString "modstatus"
(by the way, I think we should rename it to something more U&A specific, since persistent strings are global names)

Then restart the game (exit and relaunch it). Clicking the banner will then give a crash.

The reason is that TheSim:GetPersistentString (and TheSim:QueryServer) is an asynchronous call. TheSim:GetPersistentString returns immediately and the construction of the screen resumes without the data (unless it was cached, in which case the immediate return gives the cached result). That's why these functions take a callback function as a parameter: everything that needs to run after the data was obtained needs to be handled inside the callback.

So we should at first just build the title and other parts of the screen which don't rely on any external data. Then, inside the callback, we fill the rest. I'll rework the code, don't worry (since I already started to tweak it looking for the problem it's easier that I finish it).

 

Alright, that makes sense.

 

I implemented the art for the skytrap, found through the search tool. :razz: I've been working some on the gnomes, owls, and misc things. I think if we can keep things going at or around this pace we should make good progress, at least code-wise. I think I need to make a visit to the art subforum, though, and fish for a new artist. We're getting to the point where alpha is on the horizon, but we're using a lot of placeholder stuff.

 

Edit: Shot down by Maximum. So far his art is the closest to fitting into vanilla. Hmm, does anybody have any artist suggestions?

Link to comment
Share on other sites

Alright, that makes sense.

I fixed the U&A screen implementation and pushed it to the repo. I also changed a few things about it.

I dropped the use of modstatus.json and erased it from the repo, using modinfo.lua instead. The information we need is already in modinfo, and it's easier to manage (and less error prone) to keep it in just one place. Furthermore, modinfo.lua can store arbitrary information besides the standard entries, so we can just extend it if we want to store more info. With respect to Steam vs. standalone, if we ever need to split versions (which I doubt) we will have to split the master branch, so different information can be gathered by simply loading the modinfo.lua from different branches.

I made all widget positioning be relative to the background size. This way, if we need to increase the screen size to fit more text we can just increase the scale of the background and the whole screen will resize itself accordingly.

I implemented the asynchronous information gathering through coroutines. This adds some conceptual complexity, but allows for a much cleaner and more flexible implementation, since coroutines are meant precisely for this kind of application. Through coroutines, the screen building was implemented as a single function which pauses when it's waiting for external input (in this case, fetching information from the cache and the internet), resuming execution when it receives it. Let me know if you have any doubts about the implementation.

Finally, I'm storing metadata together with the modinfo table when caching it. At the moment, the only metadata is the last time the cached information was synced with the one in GitHub, used to show the user how up to date the information shown is.

Link to comment
Share on other sites

There is no second level yet. :razz: We're trying to finish the first one first.

Oh. I guess that explains a lot about the octocopter then.

Edit: And another bug. The Dark Geese and living gnomes are mysteriously flickery and transparent. I'll get the log up in a while.

Link to comment
Share on other sites

Oh. I guess that explains a lot about the octocopter then.

Edit: And another bug. The Dark Geese and living gnomes are mysteriously flickery and transparent. I'll get the log up in a while.

No need; the duckraptors are transparent because they are essentially sanity monsters; that can be adjusted. The gnomes flicker because they need custom animations.

Link to comment
Share on other sites

No need; the duckraptors are transparent because they are essentially sanity monsters. The gnomes flicker because they need custom animations.

Okay, then.

 

There is also a bug where the Dev Grave spawns up in the cloud realm. I'll get that grave- I mean log up in a while, unless that was planned/inadvertable as well.

Link to comment
Share on other sites

Okay, then.

 

There is also a bug where the Dev Grave spawns up in the cloud realm. I'll get that grave- I mean log up in a while, unless that was planned/inadvertable as well.

Actually, a number of vanilla setpieces spawn in the cloud realm. This is a known bug, and I'm really not sure how to fix it. Hopefully once we've added enough of our own setpieces, that won't happen.

 

Keep up the bug reporting, even if some of these are known, the odds of you or somebody else finding something simplex and I missed are pretty high.

Link to comment
Share on other sites

This is not really a bug but some feedback, but there should really be a limit on to how far mobs chase you for. I had pretty much every hostile mob in the game chasing me, and when I teleported to the other end of the map, each and every one of them ended up finding me. And killing me.

Link to comment
Share on other sites

This is not really a bug but some feedback, but there should really be a limit on to how far mobs chase you for. I had pretty much every hostile mob in the game chasing me, and when I teleported to the other end of the map, each and every one of them ended up finding me. And killing me.

Feedback is fine! So you think the follow range for hostile mobs should be brought down a bit? That can be easily arranged. Some of them won't be changed much, though. The vines, for instance, are pretty easy to kill, so them following you in more of an annoyance than an actual threat. I'm going to be tweaking spawns as well, but that'll happen when I implement more setpieces. On that subject, suggestions for setpieces are welcome.

Link to comment
Share on other sites

Feedback is fine! So you think the follow range for hostile mobs should be brought down a bit? That can be easily arranged. Some of them won't be changed much, though. The vines, for instance, are pretty easy to kill, so them following you in more of an annoyance than an actual threat. I'm going to be tweaking spawns as well, but that'll happen when I implement more setpieces. On that subject, suggestions for setpieces are welcome.

Ehhrmm...

Mod Developer Grave? Kind of like what klei did at the end of adventure mode. I would make a in-game model, but I can't get cloud turf in the game.

And the auroras should probably stay the same. I can take them out easily with two hits, unarmed.

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

Please be aware that the content of this thread may be outdated and no longer applicable.