somewhere between 4.4.0.5 and 4.4.2.2 something changed; previously the max score in this level with optimal play was 148, but now it's 158 (and indeed playing back tapes marked as scoring 148 now score 158).
i suspect the "lenses" collectible was set to have a score of 0 before, and then something changed in the level loading code and now they're treated as having a score of 10.
scoring somehow changed for level 006 of ncrtorial
Moderators: Flumminator, Zomis
Re: scoring somehow changed for level 006 of ncrtorial
Yes, indeed. In version 4.4.2.0, I fixed not adding scores for collecting lenses and magnifiers and for killing enemies using the spring in the R'n'D game engine. (See commit "1cf3d629".)
As all three game elements come from the EMC game engine, I assume that they are probably not used by too many levels that are using the R'n'D game engine (but I may be wrong).
A solution to fix existing scores would be to identify and replay all affected tapes on the high score server (resulting in higher scores for all affected tapes). Another possible solution to keep things consistent would be to just set the score for these three game elements to zero when loading a level that was created by version older than 4.4.2.0; this would also survive later changes to the level (like small cosmetic changes etc.).
Not sure at the moment what would be the less worse solution...
What do you think?
As all three game elements come from the EMC game engine, I assume that they are probably not used by too many levels that are using the R'n'D game engine (but I may be wrong).
A solution to fix existing scores would be to identify and replay all affected tapes on the high score server (resulting in higher scores for all affected tapes). Another possible solution to keep things consistent would be to just set the score for these three game elements to zero when loading a level that was created by version older than 4.4.2.0; this would also survive later changes to the level (like small cosmetic changes etc.).
Not sure at the moment what would be the less worse solution...
What do you think?
Re: scoring somehow changed for level 006 of ncrtorial
I'll vote for the 'rerun all the tapes' solution, ridiculous as it may be.
Potential problem: now the server copies differ from the originals; what happens if/when one of the tape-creating players connects to the server? Will it push-notify them that their scores have been updated on the server, give them the opportunity to receive updated copies? Do it silently? Ignore all that and let them just mysteriously have lower scores 'at home'?
I don't like the other solution because then if you copy a level file and make major mods, it still carries along mysterious properties like 'some random elements score zero'.
Potential problem: now the server copies differ from the originals; what happens if/when one of the tape-creating players connects to the server? Will it push-notify them that their scores have been updated on the server, give them the opportunity to receive updated copies? Do it silently? Ignore all that and let them just mysteriously have lower scores 'at home'?
I don't like the other solution because then if you copy a level file and make major mods, it still carries along mysterious properties like 'some random elements score zero'.
Re: scoring somehow changed for level 006 of ncrtorial
Could server-side tapes have dual score metadata -- 'as recorded' and 'corrected'?
Re: scoring somehow changed for level 006 of ncrtorial
this seems like the most canonical/backwards-compatible solution, and probably what should've been done in the first placeHolger wrote: ↑Wed Sep 30, 2026 10:38 am Another possible solution to keep things consistent would be to just set the score for these three game elements to zero when loading a level that was created by version older than 4.4.2.0; this would also survive later changes to the level (like small cosmetic changes etc.).
Re: scoring somehow changed for level 006 of ncrtorial
This is definitely true! Unfortunately, I only thought about if this change could break existing tapes (which it does not, as only the resulting score is affected), but not what this means to the high score list!ncrecc wrote: ↑Wed Sep 30, 2026 1:20 pmthis seems like the most canonical/backwards-compatible solution, and probably what should've been done in the first placeHolger wrote: ↑Wed Sep 30, 2026 10:38 am Another possible solution to keep things consistent would be to just set the score for these three game elements to zero when loading a level that was created by version older than 4.4.2.0; this would also survive later changes to the level (like small cosmetic changes etc.).
Even worse: As this change was done already a few versions ago, there are already a number of higher scores out there that mix with the lower scores now (which might be superior solutions for this level nevertheless), so I will be forced to replay some tapes in any case to clean up the mess.
That said, it seems to be better to just fix the (probably many) old scores (and keep R'n'D as it is) instead of changing R'n'D to load affected old levels with a score of zero for those game elements and fix all scores played between version 4.4.2.0 and the next version (which feels like making things worse).
Additionally, I also have to care about scores uploaded to the score server that were recorded with an older R'n'D version. Currently, R'n'D uploads both the solution tape and the score, and the score server rejects the tape if it succeeds, but results in a different score (to detect and prevent attempts to submit fake scores). This could be changed, of course, by being less strict and just take the score as played by the tape. For the above solution, it would even be sufficient to allow higher scores played by the tape than was submitted by the upload (as the older versions will submit lower scores), so higher scores than finally played by the tapes on the server could still be rejected.
To find out how big the problem really is, I added some code to check *all* levels in *all* level sets for a given condition (checking the level for those affected game elements in this case -- on the playfield, inside yams, inside custom elements, and so on). (This functionaly might be very useful to answer other questions about the level base...)
I ran this check for all levels and level sets on the high score server, and to my surprise only a few levels are affected:
Code: Select all
LEVELDIR [ MATCH ] 'rnd_tutorial_ncrecc', MATCHED 3/8 (37%), MATCHED: 003 004 006
LEVELDIR [ MATCH ] 'snake_bite', MATCHED 1/31 (3%), MATCHED: 031
LEVELDIR [ MATCH ] 'alaias', MATCHED 1/45 (2%), MATCHED: 001
LEVELDIR [ MATCH ] 'Equinox_4', MATCHED 1/95 (1%), MATCHED: 044
LEVELDIR [ MATCH ] 'Trial_of_the_Emerald', MATCHED 1/1 (100%), MATCHED: 001
LEVELTREE [ MATCH ] MATCHED LEVELS 7/161207 (0%), MATCHED LEVELSETS 5/3818 (0%)
I also checked how many entries on the high score server are affected:
- 224 for rnd_tutorial_ncrecc, level 003
- 132 for rnd_tutorial_ncrecc, level 004
- 134 for rnd_tutorial_ncrecc, level 006
- 4 for alaias, level 001
- 0 for Equinox_4, level 044
- 8 for Trial_of_the_Emerald, 001
- (snake_bite level 031 is not affected, as it does not really use these game elements)
So I will fix these tape scores and change the score server code so that it accepts higher scores than submitted.
Fortunately, nothing has to be done here: Every time you enter the "hall of fame", the game fetches the current high score list for this level anyway (to always show updated scores) -- this includes your own scores that were uploaded to the server (unless you choose to only display your own, local scores).Potential problem: now the server copies differ from the originals; what happens if/when one of the tape-creating players connects to the server? Will it push-notify them that their scores have been updated on the server, give them the opportunity to receive updated copies? Do it silently? Ignore all that and let them just mysteriously have lower scores 'at home'?
Re: scoring somehow changed for level 006 of ncrtorial
indeed this gives me a pretty fair estimate as to how many rnd-engine levels actually use emc elements... so much for the brave completionist impulse of making a tutorial for everythingTo find out how big the problem really is, I added some code to check *all* levels in *all* level sets for a given condition (checking the level for those affected game elements in this case -- on the playfield, inside yams, inside custom elements, and so on). (This functionaly might be very useful to answer other questions about the level base...)
Re: scoring somehow changed for level 006 of ncrtorial
Please note that this check only checked for exactly two game elements: The EMC style magnifier and the EMC style lenses (as these two elements were affected by the score change as mentioned above -- the "spring kills robot" score is not used at all in the R'n'D engine, as the spring does not kill robots in that engine at all, which is still a missing feature).
All other EMC style elements may or may not occur in all those levels.
Another (maybe interesting) observation regarding the planned correction of scores for the affected levels as detected above (after some score tape re-runs on a non-production clone of the current productive high score server):
There a some scores (by yourself, for example) that were very near the top because of not collecting the magnifiers or lenses, but by just knowing where which invisible elements are, resulting in a very short level completion time. After the score correction re-run, these scores are still the same, of course (no elements collected, no score given), while other (lesser) scores improved by some 10 score points for collecting those elements (which did not give a score before).
I found this worth mentioning because very minor changes (giving a score for collecting an element or not) can change playing a level more than expected (not collecting useful items that give no score, to be faster after some previous "training" with these items, to finally get a better overall score for a faster solution).
Re: scoring somehow changed for level 006 of ncrtorial
If there is a poll or something where we get to vote on what missing feature to add to the R'n'D engine, I vote for this!!!