Jump to content

Photo

Check ZC Version (2.50.0, 2.50.1, 2.50.2) with this Header

header version

  • Please log in to reply
15 replies to this topic

#1 Timelord

Timelord

    The Timelord

  • Banned
  • Location:Prydon Academy

Posted 30 November 2015 - 01:04 AM

I am not yet ready to commit this to the script database, but for all of you who want a way to check the version Zelda Classic that a player is using, by script, to modify effects, you may try this:
 
File: FIX_CheckZC_Version_0.6.4.zs

 
Note that this is intended to be used to run if/else codeblocks, with code variations that work differently, across ZC versions. For example, using Remove(n) on a lanmola, will crash 2.50.0, but not 2.50.1 and later; so this can give you a useful method of preventing game crashes, or other serious bugs, if a player uses an older ZC player for a quest intended for a newer release.
 
The problem with bitmap drawing is clearly the prime motivation for most people to use it, so a function for that is included.
 
------------------------------------------------------------

For people who cannot update global variables, or arrays, here is a version that doesn't require any. This is ONLY intended for quests where a new save slot is not prudent, such as quests being play-tested, and support for it is even more limited.

File: FIX_CheckZC_Version_v0.6.1_2_NO_GLOBALS.zs

Edited by ZoriaRPG, 03 December 2015 - 12:37 PM.

  • Avaro and elektriktoad like this

#2 elektriktoad

elektriktoad

    Initiate

  • Members

Posted 30 November 2015 - 10:51 AM

This is just what we needed, and a clever implementation. Thanks for making this available, it'll be a huge improvement over the Version Select Menu I'm using at the start of my quest.

#3 Avaro

Avaro

    o_o

  • Members
  • Real Name:Robin
  • Location:Germany

Posted 30 November 2015 - 10:57 AM

That's not only clever, but also actually really useful. I remember doing something like this 4 years ago.


Edited by Avataro, 30 November 2015 - 10:57 AM.


#4 Timelord

Timelord

    The Timelord

  • Banned
  • Location:Prydon Academy

Posted 30 November 2015 - 08:05 PM

I should note that it is possible to integrate these checks into any quest that has at least one empty array index, so that a new save is not needed; but one empty index is the minimum requirement for that. The other values indices can be stored in Link->Misc, or a temporary eweapon, in the first frame of the game.

 

(That stresses one of my previous points about always including one global array of a decent size in any quest codebase, for later expansion. I'm still finishing that tutorial.)



#5 SUCCESSOR

SUCCESSOR

    Apprentice

  • Banned
  • Real Name:TJ

Posted 30 November 2015 - 11:57 PM

Honestly this is a little silly. It is easier and makes more sense to just ensure your quest is properly debugged for the latest version of ZC. The version all players should be using anyway.

#6 Deedee

Deedee

    Bug Frog Dragon Girl

  • Moderators
  • Real Name:Deedee
  • Pronouns:She / Her, They / Them
  • Location:Canada

Posted 01 December 2015 - 12:00 AM

Not all players want to use the latest version. Most people don't update, they play the quest, and then give it a bad rating because "it was buggy". Bad ratings are bad.


  • elektriktoad likes this

#7 Timelord

Timelord

    The Timelord

  • Banned
  • Location:Prydon Academy

Posted 01 December 2015 - 12:05 AM

Honestly this is a little silly. It is easier and makes more sense to just ensure your quest is properly debugged for the latest version of ZC. The version all players should be using anyway.

 

That would be great, if this was an ideal world where you always know that the user has updated. I can guarantee that far fewer people updated to 2.50.2, than 2.50.1, which is also a release that caused rifts. I know users who are still developing in RCs, which is silly. I'd rather ensure cross-compatibility, than rely on the user to do something.

 

It's like expecting a Windows user to upgrade to Win 10, or an OSX user to upgrade to Lion--two things that I will never do... Only a certain percentage will always upgrade, and if they run into  game breaking bug, such as the bitmap drawing issue, they will fall back to their previous version, and probably never again use the latest.

 

Of course, you can also cause the quest not to run in an earlier version with this, and push a Screen->Message 'Please update ZC to Version 2.50.2 before playing', at the start of the game, by checking these attributes. Making multi-layered code to support multiple version fo ZC isn't a requirement for this to have any usefulness.

 

That brings us back to the world of 'use this quest in release n', which is what I know you want to prevent. IMO, it's better to ensure that the game runs in any release, than require users to use a specific release. Most commercial developers do exactly that, to ensure product compatibility across a market.

 

P.S. I should note that I asked both Gleeok, and Saffith, how to ensure that a bitmap isn't offset in 2.50.0/1; and neither actually knew. I believe there may be a way, but it is even more hackish than this; and that is only one engine change to consider for cross-compatibility.


Edited by ZoriaRPG, 01 December 2015 - 12:24 AM.

  • elektriktoad likes this

#8 SUCCESSOR

SUCCESSOR

    Apprentice

  • Banned
  • Real Name:TJ

Posted 01 December 2015 - 12:34 AM

Not all players want to use the latest version. Most people don't update, they play the quest, and then give it a bad rating because "it was buggy". Bad ratings are bad.


Do you have a source on this? Did we take a census that I don't know about? The majority of quests don't have any issues across all 3 versions of 2.5. Any issues that arise the first question should be, 'are you using the latest version of 2.5?' If your greatest concern is 'he gave me a bad rating on my quest' then i'm sorry but, ha!
 
Most users update. All users should update. All quests should be developed and debugged for the latest version of ZC. Anything else is just stupid and inhibits the development of ZC.We could use less of, 'use this version for this quest' and more bug reporting.
 

That would be great, if this was an ideal world where you always know that the user has updated. I can guarantee that far fewer people updated to 2.50.2, than 2.50.1, which is also a release that caused rifts. I know users who are still developing in RCs, which is silly. I'd rather ensure cross-compatibility, than rely on the user to do something.

It's like expecting a Windows user to upgrade to Win 10, or an OSX user to upgrade to Lion--two things that I will never do... Only a certain percentage will always upgrade, and if they run into game breaking bug, such as the bitmap drawing issue, they will fall back to their previous version, and probably never again use the latest.

Of course, you can also cause the quest not to run in an earlier version with this, and push a Screen->Message 'Please update ZC to Version 2.50.2 before playing', at the start of the game, by checking these attributes. Making multi-layered code to support multiple version fo ZC isn't a requirement for this to have any usefulness.

That brings us back to the world of 'use this quest in release n', which is what I know you want to prevent. IMO, it's better to ensure that the game runs in any release, than require users to use a specific release. Most commercial developers do exactly that, to ensure product compatibility across a market.

P.S. I should note that I asked both Gleeok, and Saffith, how to ensure that a bitmap isn't offset in 2.50.0/1; and neither actually knew. I believe there may be a way, but it is even more hackish than this; and that is only one engine change to consider for cross-compatibility.


I'm sorry but these concerns are so laughably insignificant that it really makes it all moot. The best solution is always develop for the latest version and encourage everyone to always update. ZC is nothing like an operating system. The things the newest version breaks far outweigh the things it adds an fixes. Any attempt to maintain support for past version does more harm than any good. Considering bugs have gone unreported for 2+ years, we have enough development problems.


Edited by SUCCESSOR, 01 December 2015 - 12:40 AM.


#9 grayswandir

grayswandir

    semi-genius

  • ZC Developers

Posted 01 December 2015 - 02:20 AM

Do you have a source on this? Did we take a census that I don't know about? 

You don't really offer any evidence for your claims, either.

 

 

If your greatest concern is 'he gave me a bad rating on my quest' then i'm sorry but, ha!

If I'm releasing a quest, I'd like people to be able to play it, yes. I'm not saying it's necessary, but I don't see why trying to accommodate the largest number of users is worthy of ridicule.

 

 

Most users update. All users should update. All quests should be developed and debugged for the latest version of ZC. Anything else is just stupid and inhibits the development of ZC.

I'd like to point out that the main download page still doesn't have the latest version, and you have to dig around in the forums to find it. I highly doubt that "most users" are fully updated. Complaining about people having the wrong version under these circumstances is silly.


  • elektriktoad likes this

#10 SUCCESSOR

SUCCESSOR

    Apprentice

  • Banned
  • Real Name:TJ

Posted 01 December 2015 - 03:00 AM

You don't really offer any evidence for your claims, either.

 

 

If I'm releasing a quest, I'd like people to be able to play it, yes. I'm not saying it's necessary, but I don't see why trying to accommodate the largest number of users is worthy of ridicule.

 

 

I'd like to point out that the main download page still doesn't have the latest version, and you have to dig around in the forums to find it. I highly doubt that "most users" are fully updated. Complaining about people having the wrong version under these circumstances is silly.

Evidence for what? The fact that people aren't reporting bugs and instead asking people to revert to 2.50? Have you read the forums at all since 2.50.1? I hardly do and I know about this. Evidence that most people update? No, but it is the LOGICAL choice. People not updating impeding ZC's development? You need proof of that? ZC has no official testers. It relies on user supplied bug reports. Less people using the relevant version means less potential bug reports. Does it not?

 

I didn't ridicule anyone wanting to release a quest and have it played. Allow me to elaborate. "He gave me a bad rating based on a small issue that arose from me designing around a bug that was eventually fixed and all of my whining didn't amount to anything."

 

Yes the Main download page hasn't been updated because of the fact that I have been out all but AFK for well over a month and hadn't even noticed the new version was out really and it seems no one else with FTP access has had the time to get around to it either. Would you like to help us maintain ZC.com? All active members of PZC and AGN usually come to the ZC forums to stay up to date. It makes sense if they are coming in to get custom quests they will likely find the newest version.

 

Supporting multiple versions of ZC would be something if there were more than one versions that truly had something exclusive to offer. Each version trumps the last. The only thing so far that I have heard that 2.50.1 has that 2.50.2 doesn't is a bug that people have become accustom to. I'm sorry for them that ZC's ongoing development has become a hardship.



#11 Timelord

Timelord

    The Timelord

  • Banned
  • Location:Prydon Academy

Posted 01 December 2015 - 03:40 AM

Would you like to help us maintain ZC.com?


Is that a general invitation?
 

Supporting multiple versions of ZC would be something if there were more than one versions that truly had something exclusive to offer. Each version trumps the last. The only thing so far that I have heard that 2.50.1 has that 2.50.2 doesn't is a bug that people have become accustom to. I'm sorry for them that ZC's ongoing development has become a hardship.


This is a valid reason that I feel that PZC should have a bug report board, but this seems to be nay-say'd by AGN staff. People here don't have a legitimate place to report bugs, and few are going to sign up for ANG just to do that.

To be fair, it wasn't evident that the drawing offset was a bug. The logical position of '0' on the screen, would be the u/l corner for a bitmap, which is likely why it was overlooked, aside from the devs noticing it. The problem it presents, is a library of games that can't run on the latest version, that likely won't be updated to correct the problem. This header doesn't fix that, either.

All I'm doing, is anticipating laziness, not encouraging it.

Also..
 

const int UPDATE_ZC = 0; //Set to ID of message reading 'Please update to Zelda Classic v2.50.2 before playing.'
const int UPDATE_ZC_DMAP_MUSIC_ID = 0; //Set to an music file to play for the loading screen error. 
const int UPDATE_ZC_SFX = 0; //Set to an error noise to play before displaying the UPDATE_ZC string, or changing the music. 

//Call after Waitdraw();
void ForceUpdate(){
	if ( Version() != 250.2 ) {
		if ( UPDATE_ZC_SFX ) Game->PlaySound(UPDATE_ZC_SFX);
		if ( UPDATE_ZC_DMAP_MUSIC_ID ) Game->PlayMIDI(UPDATE_ZC_DMAP_MUSIC_ID);
		Screen->Message(UPDATE_ZC);
		Game->End();
	}
}
That alone validates some of this: Force-updating, if you want it; meaning, if you want to ensure that people run the new version, that is a way to do it.

Edited by ZoriaRPG, 01 December 2015 - 03:53 AM.


#12 grayswandir

grayswandir

    semi-genius

  • ZC Developers

Posted 01 December 2015 - 04:48 AM

Evidence for what? The fact that people aren't reporting bugs and instead asking people to revert to 2.50? Have you read the forums at all since 2.50.1? I hardly do and I know about this. Evidence that most people update? No, but it is the LOGICAL choice. People not updating impeding ZC's development? You need proof of that? ZC has no official testers. It relies on user supplied bug reports. Less people using the relevant version means less potential bug reports. Does it not?

The second one, yes. If you ask for evidence and then immediately turn around and say that you don't need it because LOGIC, it makes me really suspicious. And frankly, any greater group of people acting logically is something that I'd ask evidence for, not something I'd take as evidence.
 

It makes sense if they are coming in to get custom quests they will likely find the newest version.

Not really. At least, over here you don't even have to touch the forums to get custom quests.
 

Supporting multiple versions of ZC would be something if there were more than one versions that truly had something exclusive to offer. Each version trumps the last. The only thing so far that I have heard that 2.50.1 has that 2.50.2 doesn't is a bug that people have become accustom to. I'm sorry for them that ZC's ongoing development has become a hardship.

Well, from a player's perspective, the only thing that the update really changes is that a couple of random quests are now unplayable. I'd hardly call that "trumping".

#13 SUCCESSOR

SUCCESSOR

    Apprentice

  • Banned
  • Real Name:TJ

Posted 01 December 2015 - 05:31 AM

The second one, yes. If you ask for evidence and then immediately turn around and say that you don't need it because LOGIC, it makes me really suspicious. And frankly, any greater group of people acting logically is something that I'd ask evidence for, not something I'd take as evidence.
 
Not really. At least, over here you don't even have to touch the forums to get custom quests.
 
Well, from a player's perspective, the only thing that the update really changes is that a couple of random quests are now unplayable. I'd hardly call that "trumping".

I didn't ask for evidence. It was more of a snarky inquiry into how Dimentio came to that conclusion. I think you are taking this bit a little to far. *I BELIEVE* that when faced with a choice most users will choose to update ZC. *I BELIEVE* that the newest versions are as visible and accessible to active users as can be expected. Since active users are the only ones that rate quests I see that as the significant pool.

 

The new version fixes bugs and adds features. There is no good reason for anyone to not update. Most players won't run into an issue if they update or not. These couple quests should fix their issues with the new version and the small amount of players that run into these couple quests with the wrong version should be encouraged to update ZC. Either way the problem is pretty insignificant on both ends.

 

Zoria, when i first saw your version check script my first thought was to use it, like your force update function, by alerting the player, "Until you update your shit the A button will be disabled".



#14 Timelord

Timelord

    The Timelord

  • Banned
  • Location:Prydon Academy

Posted 01 December 2015 - 06:42 AM

These couple quests should fix their issues with the new version and the small amount of players that run into these couple quests with the wrong version should be encouraged to update ZC. Either way the problem is pretty insignificant on both ends.


It's more than a couple, probably in the neighbourhood of a dozen or so, and all of them are heavily scripted. I agree that updaing them is wise, but that's a topic for another day...

An interesting anecdote, is that when 2.50.1 was still in development, I suggested some things that would necessitate minor changes in the quest format, and save format. The reason behind rejecting them, is that the developers want all version of ZC 2.50 to be cross-compatible. That meaning, that any quest made in 2.50.0, should play in 2.50.0, 2.50.1, and 2.50.2, and conversely any quest made in one of the other versions, should play in all three; meaning that a quest made in 2.50.2 should play in the older 2.5 versions of the client.

I actually argued that it would be best to cut that kind of backward-compatibility, again when 2.50.2 was being made, and ensure that quests from 2.50.0/1 play in 2.50.2, but that it was not necessary for 2.50.2 quests to run in older versions. This was dismissed by the developers, as going against how they wanted the 2.50.x releases to work; i.e. that a user should not be forced to update for an incremental release update.

I'm hoping that 2.55 changes this, and many other things, but that's a long way off, and in the meanwhile, people are stuck trying to decide if they want to ensure that a quest works in 2.50.2, or if they want to maintain compatibility for a player-base not using that version.

 

That is actually stifling migration to 2.50.2, as people don;t know how to proceed, and many questmakers are still using 2.50.0 or 2.50.1 to make things. Even I was stuck using 2.50.0, because of two engine changes in 2.50.1 that broke my game models (that are now rectified in 2.50.2).

 

At the least, this header offers a way out, and might promote updating, in a way. Fingers crossed, that it'll remove some of the fears of questmakers, and players alike, if used properly.
 

Zoria, when i first saw your version check script my first thought was to use it, like your force update function, by alerting the player, "Until you update your shit the A button will be disabled".

 

Right, I wasn't sure if I should add in any library functions to automate that, but hell, it's pretty much one of the intended uses of the header.

 

I'm not sure about the 'A' button being practical, but it could be amusing.

 

For the purposes of this file, just displaying a message, and causing the game to quit after it closes is, IMO, the best way to handle it; but in the long-run , it's a decision of whether the questmaker wants to support legacy stuff, or not.

 

In other words, some players will update after seeing that, and some will jst move on to a different game, because it's only one game out of a vast library, telling them what to do; which is why I personally opt for cross-version support, which is in the spirit of the developer intentions. I won't tell anyone else how to handle this though, and it does at least help prevent some issues that cause crashes, and other serious bugs.

 

I mentioned the bug with Remove() above, as I recall. That only affects 2.50.0, and as there was previously no way to prevent people from using a quest that might try to do that in 2.50.0, and causing ZC to crash--whicj can result in data loss--it's generally nice to have a few ways to circumvent that, whether it's by refusing to allow the quest to load in 2.50.0, or making a special statement pair to handle removal differently. Oh, lanmolas in 2.50.0 didn't like to obey repositioning, either.

 

Z1 bosses do as they please.

 

I updated the header above, to 0.6.1. This adds in the functions to require a forced update, with a bit more polish. I also added a sub-version that should work for quests where it is not possible to add in global variables, and there are no free array indices. This is untested, but should work. It utilises a Screen->D register for holding the version ID, and it uses a Screen->D register, and some Link->Misc[] registers when making the initial checks.

 

Technically it works in an identical manner, but I will support the primary version far better than that sub-version. This means that if you can use the main release, please do that. if you have a game that was already released, or that you have people play-testing, and wish to silently update it in a way that won't invalidate their saved games, you may try the alternative version.

 

Regarding support for these files:

 

I marked it, in the code, as something that the developers of Zelda Classic will never support. That is my intent, not theirs; as I do not want to make more work for them. Further, I'm ever going to contribute to the ZC engine in any fundamental way, I'd be making more work for myself. That's what I mean by 'limited support',

 

If you are curious. I'll provide LTS (long-term-support) for the main version of this package, for use with ZC versions 2.50.0, 2.50.1, and 2.50.2, but I won't commit to any support for future client versions, nor will I support its use in any RC/Gamma build. I will support the 'non-global' sub-release only as much as is absolutely necessary, and only for projects completed before this was made available, or for games that are currently being play-tested. 

 

I will not support it for games that are in a play-testing phase, in their final released form. (Questmakers, or scripters can recompile with the global version, and distribute that as a final / public release.)

 

I hope that all makes sense, but LTS for two different versions of what is essentially the same package, is insane. In the meanwhile, if people find this helpful, or useful, that's fantastic. If not, I have my own goals for it, as do a handful of other people who produce large volumes of ZScript code.

 

Please report any errors, problems, concerns, or other ruminations related thereto,



#15 SUCCESSOR

SUCCESSOR

    Apprentice

  • Banned
  • Real Name:TJ

Posted 01 December 2015 - 02:31 PM

Well there is a major difference between some minor issues arising between 2.5 versions and not being able to play 2.50.2 quests at all on previous ZC versions. Also I never said individual quest makers shouldnt support more than one version of ZC. I said going to extremes like scripting out variations for each version is a little ridiculous. Also choosing to recommend playing your quest in a previous version instead of updating the quest for the newest version is, I think, a bad idea. If it were my quest with issues I would fix the problem for the newest version and recommend all players update but keep an old quest file around for those for haven't yet. The difference is that the quest stays up to date and doesn't contribute to users thinking they have to keep old versions to play certain quests.

 

Also the thing about the A button being disabled for not updating was a joke. I personally would just completely avoid things that cause compatibility issues.





Also tagged with one or more of these keywords: header, version

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users