[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 112: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 112: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 4688: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3823)
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 4690: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3823)
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 4691: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3823)
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 4692: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3823)
IceBlinkEngine.com • View topic - Engine Bugs

Engine Bugs

Report any bugs or ideas/suggestions that arise during testing of the Alpha Build Version 4

Re: Engine Bugs

Postby slowdive » Fri Jul 19, 2013 4:37 pm

I'm at work now, but I quickly had a look at the prop rendering code (I keep backups on thumb drive) and I think I may have found the culprit. I'll make the change then send you an update to test out...after work, of course :D
User avatar
slowdive
Site Admin
Site Admin
 
Posts: 3174
Joined: Wed Nov 21, 2012 11:58 pm

Re: Engine Bugs

Postby youngneil1 » Fri Jul 19, 2013 10:41 pm

Just tried it... and it worked, great job :D One more bug to delete from the list. This will be a hell of a polished 8-) beta
User avatar
youngneil1
Backer
Backer
 
Posts: 5078
Joined: Sat Dec 08, 2012 7:51 am

Re: Engine Bugs

Postby youngneil1 » Sat Jul 20, 2013 5:29 am

The "show" property of props seems to be hardcoded in a savegame. If e.g. I begin a game with treasure chests whose show property is set to false, those chests are invisible (which is correct). When I then save and change their show property to true and then reload the savegame, the chests are still invisible. Somehow the "toolset changes override savegames mechanism" fails here, which is an especially nasty kind of bug as it has the potential to screw up longer running games without an option to repair them/upgrade them. Not certain if this affects only chests/only the show property or if it somehow roots deeper...
User avatar
youngneil1
Backer
Backer
 
Posts: 5078
Joined: Sat Dec 08, 2012 7:51 am

Re: Engine Bugs

Postby slowdive » Sat Jul 20, 2013 6:10 am

User avatar
slowdive
Site Admin
Site Admin
 
Posts: 3174
Joined: Wed Nov 21, 2012 11:58 pm

Re: Engine Bugs

Postby youngneil1 » Sat Jul 20, 2013 6:45 am

Good point. This touches really tricky conceptual details, I guess:

Indeed a purposeful ingame change should not be reversed on each reload. Then again, a previous design mistake should be correctable even for existing savegames. But how to differentiate between these two scenarios?

I wonder if the "toolset overrides savegame" switch has to be an absolute one for each property (in the sense of: either or). Perhaps it could actually depend on whether an ingame change has been done to the property. If there was an ingame change, then this overrides later toolset changes. If not, then the newest toolset setting is dominant.

In the treasure chest example those chests that had turned show to off during the game (e.g. via script) would keep show turned to off even if they would be declared as show to true later on in the toolset. Other instances of these chests though, who weren't changed during the game itself, would have their show state overwritten.

But still, how to recognize a purposeful ingame change from a design mistake though? Maybe a save game could store different versions of the very same property for each object:
(1) newest toolset data for that property that is older than the savegame though
(2) savegame data for that property

Upon loading the engine would compare (1) and (2):

If (1) and (2) are identical, it would read the property straight away from the actual toolset data in the module folder (not the savegame). When saving later on, (1) would be replaced with the new toolset data and (2) would just get current state when saving (which might be identical to new (1) or not).

If (1) and (2) are different, the engine would use just (2), ignoring any actual toolset data in the module folder. When saving later on, (1) will remain unchanged and (2) will just get the current state.

I will have to think more about this approach - it might very well have deep logic problems. Generally, the current system of updating savegames is working very well. So, perhaps it's indeed best to leave it as it is. Just trying to get a better understanding of the concept here... In any case transparency on how this system works will be crucial to campaign authors. Perhaps publish some list/rules on what can be changed via toolset later on (and what not, because the savegame data is dominant)?
User avatar
youngneil1
Backer
Backer
 
Posts: 5078
Joined: Sat Dec 08, 2012 7:51 am

Re: Engine Bugs

Postby youngneil1 » Sat Jul 20, 2013 7:26 am

Maybe this is more elegant - just the savegame data and an additional boolean would be stored:

(1) savegame data for each property
(2) a boolean for each property named hasBeenChangedDuringRuntime (false as default)

I. Upon first save the engine would compare the current state with toolset's module data. If those should be different, hasBeenChangedDuringRuntime would be set to true for this property and (1), i.e. the savegame data for this property, would be stored. If the same, actually the engine would not even need to store (1), i.e. the savegame data for this property. Note: Some properties will likely be stored with their whole objects which might complicate things here I guess as the object will contain lots of other unchanged properties.

II. Upon loading the engine would check hasBeenChangedDuringRuntime for each property:

1. If false, the engine would read the property straight away from the actual toolset data in the module folder (not the savegame). When saving later on, it would again compare the current state of the property with toolset's module data. If those should be different, hasBeenChangedDuringRuntime would be set to true for this property and (1), i.e. the savegame data for this property, would be stored.

2. If true, the engine would use the savegame data for the property and ignore the current toolset's module data.

Edit: This might also allow a nice way of editing even blocked properties/objects again for toolset changes by switching hasBeenChangedDuringRuntime purposefully via e.g. text editor to false. This way, logically dangerous, but maybe sometimes necessary corrections even to objects/properties changed during runtime could be easily made. Later on the toolset might contain somesuch as savegame wizard in which the author could flag properties for whom hasBeenChangedDuringRuntime shall be set to false in any case in the user savegame, allowing to have full precedence of the toolset data for the flagged properties/objects.
User avatar
youngneil1
Backer
Backer
 
Posts: 5078
Joined: Sat Dec 08, 2012 7:51 am

Re: Engine Bugs

Postby youngneil1 » Sat Jul 20, 2013 12:02 pm

Just tried to add an additional script to an existing conversation and also changed conditions in another conversation - unfortunately looks like both changes actually are not carried over into an existing savegame. I guess that atleast adding new scripts to conversations in existing savegames is something that is intended to be possible? Otherwise it will be hard to e.g. have contact NPC (friends, nobles, guildmasters...) give additional missions to the party during a long running campaign, i.e. in monthly updates for players that use their old savegames on and on.
User avatar
youngneil1
Backer
Backer
 
Posts: 5078
Joined: Sat Dec 08, 2012 7:51 am

Re: Engine Bugs

Postby slowdive » Sat Jul 20, 2013 6:36 pm

User avatar
slowdive
Site Admin
Site Admin
 
Posts: 3174
Joined: Wed Nov 21, 2012 11:58 pm

Re: Engine Bugs

Postby youngneil1 » Sun Jul 21, 2013 12:54 am

Might be my bad indeed, sorry. Just did a check with alpha5 and some test scripts. They behave as you describe when loading savegames (independent). Perhaps I did my savegame on a 4.7 version and edited convos and scripts on the 4.9 version. This way, of course, my edits would show no results when loading the savegame. So, please don't let that slow you down. This alpha tester is just getting old it seems ;) .
User avatar
youngneil1
Backer
Backer
 
Posts: 5078
Joined: Sat Dec 08, 2012 7:51 am

Previous

Return to Alpha Build 4 Bugs and Ideas Reporting

Who is online

Users browsing this forum: No registered users and 1 guest

cron