DZZT.NET revived

As a follow-up to my previous post, I think I’m going to offer an online save game storage service along with DreamZZT. Users that want to participate in the leaderboard will download the zzt game file through the client, and if they want to save their game, it will be saved to the server. That should hopefully deter casual cheating.

To make that happen, I’ve brought back the DZZT.NET in-game browser:

I ripped out my hacked-together HTTP code and replaced it with libcurl which should be more reliable, and also allows for HTTP POST and HTTP PUT methods.

Interestingly, the only other game besides Town that I had up on that site was the ZZT Tour, and it’s no longer 100% playable. It revealed a few bugs that have cropped up since the C++ rewrite that I’ll have to fix.

King of Town

I’m thinking about having an online leaderboard for DreamZZT. The only issue is that it’s too easy to cheat, both from within DreamZZT and from outside it as well. I’m thinking about adding a special value in the unused parts of the world header to indicate whether you’ve cheated or not. This value would be cleared by DreamZZT’s editor and debug console, and external editors should also ignore it.

The drawback to that is since both DreamZZT and KevEdit are both open-source, there’s nothing preventing someone from adding support for this flag to KevEdit (or ZZTAE or another ZZT editor) and creating modified game files that still pass the cheating test.

Getting the high score would be as easy as changing your score in KevEdit, saving the file, and then dying in DreamZZT. Or distributing a modified game file with a new object that simply runs:

#give score 10000000
#endgame

I’d consider running the leaderboard on the honour system, but the Z2 crowd aren’t the most mature group of people. Even if I tie the scores to the forums.c99.org accounts like DCSquares, it’s still a lot of administration work to have to determine whether a score is legitimate or not, and to go through and ban users caught cheating.

Thoughts?

Close Menu