ZZT Ultra

Discuss how totally awesome Bang! is here.

Moderator: Terryn

User avatar
Smilymzx
I hope she made lotsa spaghetti!
Posts: 182
Joined: Sat May 20, 2006 2:58 am
Location: LocacoLocacoL :LoL!

Re: ZZT Ultra

Post by Smilymzx »

Features that I would suggest for completion:

-Multicolored Text for Scrolls/Programs, ala MegaZeux
-Palette Editor
-Editor for Default ZZT Sound Effects
-Editor for Element Code (as in the source code of the elements, not Stats or the other Element Stuff.)
-New commands:
#IDCHAR [char] [element]
#PLAYERCOLOR [color]
#PLAYERCHAR [char] (direction)
#SCROLLCOLOR [scroll_inside_color] [scroll_edge_color] [scroll_arrow_color]

In the PlayerChar Command, Direction is an option, not a requirement for it to work.

If these get implented, Then I'd consider it final.
User avatar
Commodore
fgsdfs
Posts: 2471
Joined: Wed Mar 12, 2003 5:44 pm
Location: :noitacoL
Contact:

Re: ZZT Ultra

Post by Commodore »

Smilymzx wrote:-Editor for Element Code (as in the source code of the elements, not Stats or the other Element Stuff.)
Don't know about uzzt's implementation, but aren't these hard-coded?

Maybe instead empty templates for new pickups, built-in enemies etc, but perhaps the extended commands can already create objects that act like pickups? I.E. using the ghost mode and using the relative co-od commands to check if the player is directly over the object, then manipulate the variables.

Also in larger resolutions, the line-wall border that surrounds the display stays the same size which looks a little odd.
*POW* *CLANK* *PING*
User avatar
Appetite4
Official Clamp School Defender
Posts: 204
Joined: Tue Nov 18, 2014 4:57 am
Contact:

Re: ZZT Ultra

Post by Appetite4 »

Commodore wrote:Can you help me through the process in UZZT of having an object create another object (one that isn't necessarily already on the board?)
Fisto:  With Pleasure!
Fisto: With Pleasure!
With pleasure. You can use any of the original creation commands to specify a type (#PUT, #CHANGE, #BECOME), but it's easiest to use the new and powerful command, #SPAWN. Keep in mind that #SPAWN is only available from files saved as WADs--ZZT Ultra manipulates the compiler namespace so that the language syntax reacts to the type of world it is trying to process (ZZT and SZT are different).

#SPAWN documentation
#PUT and #CHANGE documentation
How ZZT Ultra processes types in ZZT-OOP

That last link, regarding types, shows some enhanced syntax for specifying types with optional kwargs (keyword arguments).

If you want to see some more substantial examples, I recommend DEMO.WAD. The "Object Movement" and "Basic ZZT-OOP" boards demonstrate how to place types in the board using #SPAWN with or without kwargs.

Additionally, ZZT Ultra gives you three different syntaxes for coordinate pairs. A simple comma-pair like 4, 5 means grid position (4, 5). If it's +4, -5, it means, (CurrentX + 4, CurrentY - 5). If it's [4, W] (or [4, 2]), it means 4 west of (CurrentX, CurrentY). IOW a choice of absolute, relative rectangular, or relative polar.

In principle, using kwargs isn't even all that necessary. You can pull a pointer to the created object immediately afterwards and use the pointer to reference its members.
User avatar
Appetite4
Official Clamp School Defender
Posts: 204
Joined: Tue Nov 18, 2014 4:57 am
Contact:

PWADs

Post by Appetite4 »

Over the holidays, I have done some aggressive testing of the featured games on zzt.org. A lot more of them have been moved into the GREEN status, indicating full playability.

Support Worlds: Progress

Adding support for these worlds comes with an increasing number of caveats, such as which configuration settings need to be set to what, etc. This has prompted me to work on another feature to support: PWADs.

Part of the rationale for selecting the WAD file format all along was that it supports patching. While experimental now, I have developed an integrated patching system that lets you set up PWAD files for patching any Ultra, ZZT or Super ZZT file immediately upon load.

POINTBLANKFIRING can be set implicitly, without user modification. Banana Quest character sets can be loaded instantly, without modifying the world files. You could even create an "achievement" system for any world ever created, without requiring the original files to be modified--the PWAD would provide the code sensitive to the action.

How does one create a PWAD? The aforementioned experimental tool is called PWADdler and it takes a whole-world delta of two WAD files. Curiously, it has the ability to patch ZZT or SZT file formats too, if the file is re-saved as WAD.

Imagine the day when you load BQUEST.ZZT, BQUEST-B.ZZT, or BQUEST-C.ZZT, and have everything work as it was originally intended, without any batch files, TSRs, manual character set mods, etc. That day is coming soon.
User avatar
Appetite4
Official Clamp School Defender
Posts: 204
Joined: Tue Nov 18, 2014 4:57 am
Contact:

Brutal Testing!

Post by Appetite4 »

Finally rolled up my sleeves and got to work testing Banana Quest.

You'll know from my previous writings on the perils of hacking the executable that this is the big one. The whole enchilada. The giant chunk of fiber in your diet.

And there is absolutely no skimping in getting it to work. Even after success in designing my Banana Quest PWAD patch file, there is still massive work to do. Complete re-evaluation of text processing, timing alignment fixes, overhaul of duplication hacks and clone navigation, and even modification to coloration strategies when given unspecified color placement.

WiL, you are making my life a living hell. What a Bov.
User avatar
Saxxon
the Gargoyle.
Posts: 608
Joined: Tue Jul 25, 2006 10:02 am
Contact:

Re: ZZT Ultra

Post by Saxxon »

Banana Quest will try your patience. :)
User avatar
bitbot
Official Clamp School Defender
Posts: 328
Joined: Thu Mar 01, 2012 3:00 am
Location: earthbound
Contact:

Re: ZZT Ultra

Post by bitbot »

I tested this again and must say, its pretty solid w only a few minor glitches.
tell u what, I'll test my latest adventure in ultra and send you the bug report.

ur welcome.
Image Image
User avatar
Appetite4
Official Clamp School Defender
Posts: 204
Joined: Tue Nov 18, 2014 4:57 am
Contact:

Encyclopedia ZZTeedia

Post by Appetite4 »

Exhaustively testing the ZZT Encyclopedia, I have encountered some really exotic bugs/features that need to be supported. Some of these are super weird:
  • Initial PLAYER movement after pause state must be the only movement to occur for the whole frame
  • Duplicators do not simply re-bind OBJECT code--they make a complete, unique copy of it, including the zap history
  • EMPTY types with stats cause a strange "wind tunnel" effect on the player when passing right or down, and a single-square skip when passing left or up
It will take some work to get these supported. In the meantime, I have been able to support these:
  • More comprehensive #CHANGE/#PUT/#BECOME policies when given unspecified color placement
  • Proper toast message centering and background (Super ZZT)
  • Duplication science supported almost completely (except for silly stuff like the game crashing when a boulder is duplicated towards the player)
  • Quite a few odds and ends, especially to support Banana Quest
User avatar
Appetite4
Official Clamp School Defender
Posts: 204
Joined: Tue Nov 18, 2014 4:57 am
Contact:

Version 0.16...and partial Banana Quest support

Post by Appetite4 »

Laboring away, I managed to come up with the latest version of ZZT Ultra. The change log got a lot longer this time around: http://www.chriskallen.com/zzt/changelog.txt

You will be pleasantly surprised (probably) to see that BQUEST.ZZT as well as the other episodes in the series should now load and play correctly.

Notice I didn't say play COMPLETELY from start to end. Still working on that goal.
User avatar
Appetite4
Official Clamp School Defender
Posts: 204
Joined: Tue Nov 18, 2014 4:57 am
Contact:

More polish, more support

Post by Appetite4 »

It hasn't been long since the last version, but that means nothing if there's tons of stuff to update. Version 0.17 is here:

http://www.chriskallen.com/zzt/ZZTUltra.php

The ZZT and Super ZZT Encyclopedias should work completely now, except for several oddities that are kind of useless outside of quit-and-reload quirks and display glitches. One especially weird feature is supported now that had never been properly named, which zipped the player instantly when a stat'ed EMPTY was crossed. I'm coining this feature "wind tunnels."

The Hall of Music has seen a major expansion of the library. Now it covers Banana Quest, Burger Joint, Dragon Woods, Eli's House, Exanya, Frost Part 1, Jacky T, Lebensraum, Merbotia, and Ned the Knight.

I appreciate Bitbot's offer of play tests and bug reports. I really appreciate any such reports, from everyone. Full playthroughs are necessary to check if a game has a specific problem (which might not develop until the very last board in the game).

When I have low confidence that a world will work properly in ZZT Ultra, I have to do a double playthrough of the world, having to go through each feature of each world twice, once in DosBox and again in ZZT Ultra. This can get unimaginably tedious, and it's the main reason I haven't green-listed more games despite a year's progress.

Of course, calling something complete prematurely just isn't in the cards for me. No--that's for triple-A developers to do, before they remove the product from the store after 100 GB of patches and refunding everyone's money.
User avatar
Commodore
fgsdfs
Posts: 2471
Joined: Wed Mar 12, 2003 5:44 pm
Location: :noitacoL
Contact:

Re: ZZT Ultra

Post by Commodore »

I've always thought the stat-less empties were called black holes.
*POW* *CLANK* *PING*
User avatar
q2k2k
1 full minit uv 1 secend mesiges
Posts: 74
Joined: Thu Apr 24, 2008 4:19 am

Re: ZZT Ultra

Post by q2k2k »

Regarding the hall of music, How do I edit my uploaded entry? I made a mistake and would like to correct it.

EDIT: I left the page and came back and all my entries are gone.
User avatar
Appetite4
Official Clamp School Defender
Posts: 204
Joined: Tue Nov 18, 2014 4:57 am
Contact:

Re: ZZT Ultra

Post by Appetite4 »

q2k2k wrote:Regarding the hall of music, How do I edit my uploaded entry? I made a mistake and would like to correct it.

EDIT: I left the page and came back and all my entries are gone.
You have identified a weakness of the Hall of Music. I just checked, and you had uploaded three entries--they are all in the backend storage file, but browser caching prevents reloads unless you reload the actual backend text file itself (just reloading the page won't work). FYI it's at http://www.chriskallen.com/zzt/guis/song_library.txt.

I need to engineer a fix for this--I'll do it sometime this week. I could have the requested resource change each time, which would head off the caching problem.

You can edit an entry by logging in and just re-submitting the song after selecting an existing title from the list. Aforementioned caching problem seems to make this difficult now.
User avatar
q2k2k
1 full minit uv 1 secend mesiges
Posts: 74
Joined: Thu Apr 24, 2008 4:19 am

Re: ZZT Ultra

Post by q2k2k »

Thanks!

I have managed to fix one of my entries (As that one was a music change)

However, the second one was a title change and now i saw 2 entries ( the new one and the old one) and cannot find a way to delete my old entry.

The one that should no longer exist is "Metal Gear: Ghost Babel OST - 07. Game Over" as that is actually track 08. The new Track 07 is called "Mission Failed" ( even though I use that music for stage clear hah )

EDIT: After looking at your link to the TXT file, It looks like you are using the title as the key to the Object/Dictionary variable which is why when I attempt to correct the title, it created a new entry.
User avatar
bitbot
Official Clamp School Defender
Posts: 328
Joined: Thu Mar 01, 2012 3:00 am
Location: earthbound
Contact:

Re: ZZT Ultra

Post by bitbot »

Hi Chris, I just want to say that you're doing a great job keeping this true to ZZT yet making it your own. Playing with the mouse/touchscreen is a treat— but it's that music engine that won me over. FYI— Ultra is running effortlessly on my new chromebook verses the DOSBox/JavaScript alternatives.

I took some quick notes. more to come..

•PLEASE ditch that “you are blocked by water” message and noise (by popular demand)
•ditch that "Fake wall - secret passage" message too
•colors and/or character set seems off (see dosbox)
•should be 8x14 character set by default
•make touching/clicking board edges more responsive
•no flashing pointer when touching/clicking board edges
•make the “console” optional via cfg file or something (keep interface as pure as possible)
•work on that text scroll animation and glitches (very important)
•give the text scroll box the proper white on black border
•disable overdubbing sound by default (optional)
•make quit game yes/no look like original
•move world filename slightly to match original
•? menu length should keep to the original size
•? +I should be mapped to just "I"
•no scrolling effect when using board edges/clones
•world loader should be like original instead of opening local file browser
•bundle most the original titles (town,caves,city,dungeon, best of zzt 1&2, zzts revenge)
•bundle the zzt ultra demo and a new tour?
•”Pick a Command” should be cyan
•”Speed” text and pointer should be white when activated
•Bring back Sweeney’s cool “Loading…” animation
•”Pausing...” not “Paused…” and move it accordingly
•2 players during scrolling effect?
•the torch, be quiet, help, etc. cyan/gray menu option colors are inverted
•ditch the restore game option from menu during play (keep things more original w subtle improvements)


P.S— Now that I'm on chrome os, superz editing with zap is not really practical so I've begun experimenting with your editor as well.
Image Image
Post Reply