DreamZZT 3.0.6b2

In celebration of the new trac sites, I’ve put together a new public beta for DreamZZT. You can grab DreamZZT 3.0.6b2 from the DreamZZT site.

I’ve also started a compatibility chart on the wiki to show how well games work with DreamZZT. I can’t test every game ever made for ZZT, so if you find a game that works or doesn’t work, feel free to update the wiki page. You need to register for an account to edit the wiki, to avoid spam.

Also, please create trac tickets for any issues encountered or features you would like to see in future versions of DreamZZT. You don’t need an account to create a ticket.

If no significant issues come up with beta2, 3.0.6 should be released next week.

Saved!

DreamZZT can now save your games to the website:

And play them through the in-game browser:

Mr. Taskman

I’ve decided I’m going to open source the server-side scripts for DreamZZT too. I’ve decided to write everything as a a Vanilla extension, so in theory all you would need to do to run a DreamZZT server would be to install Vanilla and activate the DreamZZT extension.

Here are some screenshots of the admin section:

I’m hoping to have the online tasks system finished this weekend, so I can tackle the online save storage and finally the online leaderboard.

Xbox Schmexbox

To spice up the online aspects of DreamZZT, I’m playing around with an XBox Live-style achievements system:

Aside from a score bonus, completed tasks would also be viewable on the web. Of course, the tasks will be a bit more challenging when it’s out of testing 😛

The tasks runs independent of the ZZT game, so they can be added to any game without modifying the original game file.

Some of the more realistic tasks I have in mind for Town:

  • Talk to a tree (touch the ZZT-OOP object named “tree” or whatever that tree’s name is)
  • Crack the safe (Walk into the bank vault area where the gems are, probably by defining a box the player walks through. Or collecting the purple key inside the safe.)
  • Find the combination (No more invisible walls on the board with the bank vault combination)
  • Bear Hunt (Kill x bears, need to count how many are in the game and come up with a reasonable amount to kill)
  • Treasure Hunt (same as above, but with gems. Probably more than 3.)
  • And? (touch the “Congratulations! You found an ampersand!” object)

I’m sure I’ll come up with more once I get further into it.

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?

Move over KevEdit…

I added a few more widgets to the dialog box system: NumericInput, Slider, Direction, and tweaked I RadioGroup to be more usable. The result is the ability to edit object properties in the DreamZZT editor:

You can also modify the board properties:

It’s almost to the point where you could create a new game from within DreamZZT. I still need to write a board picker widget and a text editor for editing ZZT-OOP scripts.

DreamZZT update part 2

As a followup to yesterday’s post, here’s how the new icons look on Windows:

And using the standard Windows file dialog to open a file:

DreamZZT update

I made a lot of progress on DreamZZT this weekend. First, new icons:

Next, DreamZZT now uses the OS’s file browser to select files to load / save:


Finally, you can associate DreamZZT to open .zzt and .sav files and it’ll run them for you when you double-click them.

I feel like

Woah! DreamZZT and FrotzDC are mentioned in the O’Reilly book Gaming Hacks: 100 Industrial Strength Tips & Tools by Simon Carless. Apparently it was published in 2004, but I had no idea it existed until a random google search turned up the index from the book. Anyone know where I can track down a copy? I’m curious to see what it says, but I’m not about to pay $30 for it 😛