ZZT Ultra

Discuss how totally awesome Bang! is here.

Moderator: Terryn

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

Proof of concept finished: HTML 5

Post by Appetite4 »

After trying out the ScriptProcessorNode functionality, I think I have all the proof-of-concept work completed to start a more official HTML 5 conversion.

The sound system is kind of precarious, of course--gain works very differently on different browsers when you mix everything yourself. Latency is configurable in theory (actually more so than AS3, if you can believe it) but suffers on some browsers when set too low. And, of course, the documentation says ScriptProcessorNode will go away completely one day and get replaced by a component that no browsers currently support.

Gotta love that--calling something obsolete and then not supporting the next-gen replacement.

The long and short of what I'm saying is this: An HTML 5 version of ZZT Ultra would NOT be the same in every detail. I can make it look the same, sound about the same, and play nearly identically, but it will end up rough around the edges, no matter what.

There is no harm in trying, though.
ZZTBandit
Ordinery
Posts: 45
Joined: Wed Sep 07, 2016 6:07 pm
Location: neutral

Re: ZZT Ultra

Post by ZZTBandit »

I've been playing around with this! Can you explain how to edit a szzt world's intro screen? The instructions are rather vague.

I'm curious what other new features are available to vanilla zzt worlds? Please advise.
User avatar
Appetite4
Official Clamp School Defender
Posts: 204
Joined: Tue Nov 18, 2014 4:57 am
Contact:

GUI Editor

Post by Appetite4 »

ZZTBandit wrote:I've been playing around with this! Can you explain how to edit a szzt world's intro screen? The instructions are rather vague.
The GUI editor could stand to be improved. It was actually the first editor component I designed, when I was prototyping ZZT Ultra back in 2014. It's maybe a bit too basic. Definitely not as "art-friendly" as the world editor.

A Super ZZT world's title screen is automatically pegged to one of the following built-in GUIs, defined here:

http://www.chriskallen.com/zzt/behaviors.html#gui

A new one called CUSTOMSZT is now hard-coded to accommodate adventures not conforming to the original three; you can check it out in the source code release on the downloads page of my site. There is no straightforward way to change which shows up as the intro screen unless you use a WAD file, which can load any GUI at any time, programmatically. I suppose you could also change the configuration and replace CUSTOMSZT with something else, although this does so for all custom Super ZZT worlds, not just yours.

The zzt_objs.txt code could also be tweaked in the local installation. For example, this part of the main type code is executed when loading the intro screen to a Super ZZT world (including selection of the intro GUI):

:EVENT_PLAYGAME
#STOPSOUND 0 15
#SET $JUSTINTRO 0
#SET $MUSTRESTART 0
#IF TEST(~WORLDTYPE!=-2) ZZT_START
#GETPROPERTY THISGUI $_SZTTITLEGUI
#USEGUI SZTINTRO
#SET $PLAYERPAUSED 0
#SET $PLAYERMODE 4
#CHANGEBOARD 0
#SET ~TIME 0
#CAMERAFOCUS ($PLAYER.X),($PLAYER.Y)
#UNPAUSE
#DISSOLVEVIEWPORT -1
#END
ZZTBandit wrote:I'm curious what other new features are available to vanilla zzt worlds? Please advise.
As in, new over the past year? Or however many months? There have been a LOT of revisions. I'd need some specifics.

This might help: http://www.chriskallen.com/zzt/changelog.txt
ZZTBandit
Ordinery
Posts: 45
Joined: Wed Sep 07, 2016 6:07 pm
Location: neutral

Re: GUI Editor

Post by ZZTBandit »

Appetite4 wrote: The GUI editor could stand to be improved. It was actually the first editor component I designed, when I was prototyping ZZT Ultra back in 2014. It's maybe a bit too basic. Definitely not as "art-friendly" as the world editor.
It doesn't have to be fancy. Are you telling me that the GUI editor is not able to modify regular superz's titlescreen?
ZZTBandit wrote:I'm curious what other new features are available to vanilla zzt worlds? Please advise.
Appetite4 wrote:As in, new over the past year? Or however many months? There have been a LOT of revisions. I'd need some specifics.

This might help: http://www.chriskallen.com/zzt/changelog.txt
Like, what can be done in classic ZZT that isn't possible with other editors?
User avatar
Appetite4
Official Clamp School Defender
Posts: 204
Joined: Tue Nov 18, 2014 4:57 am
Contact:

Re: Editing

Post by Appetite4 »

ZZTBandit wrote:Are you telling me that the GUI editor is not able to modify regular superz's titlescreen?
To modify the title screen, do the following from the main menu:
  1. G: Go to GUI Editor.
  2. L: Load GUI.
  3. Select from the source code release, one of these files: proving_grounds.ZZTGUI, lost_forest.ZZTGUI, monster_zoo.ZZTGUI, or custom_szt.ZZTGUI.
  4. The text and block background layer is editable with "T". The key and mouse mappings, plus some other details, are editable with "P".
  5. After you save the GUI, there are several options for using it. I mentioned GUI swapping in the configuration earlier. If you're building a WAD file, you can also incorporate it into the WAD itself as an extra GUI, loaded programmatically.
ZZTBandit wrote:Like, what can be done in classic ZZT that isn't possible with other editors?
That's a hard bargain to strike, because ZZT Ultra was designed to accommodate next-gen. But here's a summary from what I can deduce.
  • Status element upper limit is configurable during editing. Saving in ZZT or SZT format still caps at the fundamental upper limits.
  • Possible for boards to have no PLAYER. Saving in ZZT or SZT forces a PLAYER to exist, but you aren't caged into having one always present during editing.
  • Some inventory can be set to unusual quantities (keys, score, health, etc.)
  • Possible to save "customized" types in ZZT and SZT world files, even if they aren't defined.
  • Character set editor is integrated into world editor (activate with the "=" key). Although intended to serve WAD files, you can still save binary files a la MegaZeux if desired. You would need a Banana Quest-like routine or batch file, etc. to load a custom set for a vanilla ZZT/SZT world.
  • Character set editor can save 8x8, 8x14, or 8x16 cells.
  • Ctrl+O is more helpful at revealing hidden objects than other editors.
  • Ctrl+S allows you to rearrange the order of status elements.
  • Code editor allows horizontal lines to be entered beyond original editor maxima (not sure if this is a good thing or not).
  • Blink/High-intensity BG color is configurable while editing. A vanilla ZZT/SZT world would still need this set externally in original engines.
  • Blinking is present even when editing; KevEdit treated it as high-intensity BG always.
  • Types are alphabetized and categorized according to fundamental properties, rather than obscure "Items/Enemies/Terrains/Uglies/Terrains 2" scheme.
Getting the most out of "vanilla" engine capability is increasingly hard. I really think we need better engines overall.
User avatar
Appetite4
Official Clamp School Defender
Posts: 204
Joined: Tue Nov 18, 2014 4:57 am
Contact:

Update

Post by Appetite4 »

BTW this project hasn't stalled--I just wanted to give myself a break after working on it pretty diligently for two years.

This is going to seem like an amazing confession...but I actually have a life outside of ZZT.

I'm still committed. The main reason I haven't jumped right into the next round of updates is because I desperately need some actual vacation time, something I'll get a lot of soon.

Okay. I said it. Off to Disney World, now.
User avatar
Appetite4
Official Clamp School Defender
Posts: 204
Joined: Tue Nov 18, 2014 4:57 am
Contact:

Hall of Music UPDATED!

Post by Appetite4 »

Great news! The Hall of Music now has a major upgrade.

New features include...
  • Larger work area (800x600)
  • Full timeline control: can move song playback position anywhere using scrollbar
  • Time and max time readouts
  • Ability to pause and resume playback
  • Ability to auto-loop playback
  • Prefix text now sets volume and tempo defaults
  • Filter-list combo box (in upper left corner) is now operational
  • Upload interface has a separate slot for "new" songs (text no longer overwritten by selecting library)
  • Backend storage format uses numeric UIDs as primary keys instead of song title, allowing one to edit song titles
  • Smarter handling of inconsistent line break formats in song text
  • Inconsequential ZZT-OOP commands (#CYCLE, etc.) are removed automatically during playback
I also added a few new GET variables so that you can easily send auto-playing links of songs to others. These variables include SONG, LOOP, TIME, and FILTER. Here's an example.

http://www.chriskallen.com/zzt/hallofmu ... 1&TIME=0.0

Needless to say, introducing an adjustable timeline and pause/resume capability was hard. It required measuring song lengths of parallel channels and re-editing the note sequences to keep everything synchronized!
User avatar
Commodore
fgsdfs
Posts: 2471
Joined: Wed Mar 12, 2003 5:44 pm
Location: :noitacoL
Contact:

Re: ZZT Ultra

Post by Commodore »

Lots of new stuff there since I last looked. BTW. The echo effect doesn't really work with the drums IMO, (i.e. ZZT victory rap sounds a little weird) is this a engine or are they pre-recorded notes (sry if you answered this before)? If the former, it would be nice for a little check box to toggle the echo effect.

BTW Ezanya's title music is Solfeggietto in C minor by the "other" Bach
*POW* *CLANK* *PING*
User avatar
Appetite4
Official Clamp School Defender
Posts: 204
Joined: Tue Nov 18, 2014 4:57 am
Contact:

Bach?

Post by Appetite4 »

I've updated the Bach credits (and the song title).

Now that I think about it, didn't Todd Replogle create a complete version of this song for Caves of Thor? It was an impressive "arpeggio" sound system for the time that unfortunately never went anywhere (MIDI and wave synthesis stole the show afterwards).

Echo effect is from the engine--not from the recording. If you want to remove the echo effect, change the Prefix field from this...

Z01@U137V40K40:0.3:

...to this...

Z01@U137V40K40:0.0:

I think reverb enhances most songs, actually. But I understand why people wouldn't always want it.
User avatar
Commodore
fgsdfs
Posts: 2471
Joined: Wed Mar 12, 2003 5:44 pm
Location: :noitacoL
Contact:

Re: ZZT Ultra

Post by Commodore »

Sorry, should have been more clear, when I said the "other bach" i meant Carl Philipp Emanuel Bach not J.S.

Is the tempo working right or am I doing it wrong? For example, try doubling the tempo for zzt rap (I am deleting the line inside and just using the prefix) and the run-time changes, but not accurately. Also it does not seem to like or even try to do tempos like U20?

Also just only now got around to playing smash zzt (properly on a machine than can run it), and it's really something. My only complaint, in the continue yes/no dialogue it not very clear which option is selected. I had a bad ass score and then accidentally cleared it :(
*POW* *CLANK* *PING*
User avatar
Appetite4
Official Clamp School Defender
Posts: 204
Joined: Tue Nov 18, 2014 4:57 am
Contact:

More Credits

Post by Appetite4 »

Changed the "Bach" credit. It was his son, so close enough.

Inserting U274 instead of U137 would double the tempo. It wouldn't work if the prefix is the only part changed, though--you'll note that the song itself overrides it because it also has a tempo spec there. The latest tempo code in the overall sequence is the one that matters.

If you want to make it SUPER slow, use U020. U20 does not work because it's only 2 characters in the number--it must be 3.

Smash ZZT continue message Yes/No isn't clear? I'll have to think about improving the general Yes/No confirmation buttons. This is really just an extrapolation of the original "Y/N" keyboard choice you used to get in the original ZZT engine. Y/N keys still work, and mouse clicks also do.

Incidentally, I went ahead and posted a more public-facing version of Smash ZZT if you're interested in giving it an upvote:

http://www.newgrounds.com/portal/view/686160
User avatar
Commodore
fgsdfs
Posts: 2471
Joined: Wed Mar 12, 2003 5:44 pm
Location: :noitacoL
Contact:

Re: ZZT Ultra

Post by Commodore »

Can't call it an upvote, it actually deserves a 5.

I see it better now how the red and green highlights work for y/n, but in general it's not good UI design to use highlighting when you only have two options, it's hard to tell at the first glance which is selected.
*POW* *CLANK* *PING*
ZZTBandit
Ordinery
Posts: 45
Joined: Wed Sep 07, 2016 6:07 pm
Location: neutral

Re: ZZT Ultra

Post by ZZTBandit »

Appetite4 wrote:Getting the most out of "vanilla" engine capability is increasingly hard. I really think we need better engines overall.
On the contrary, ZZT is easier than ever. The editor might not have aged well but the engine is perfect just the way it is. We need tools to make things easier, yes. These Flash, 3D/VR ZZT gimmicks are a disservice to the community for personal gain.
Last edited by ZZTBandit on Thu Dec 22, 2016 8:32 pm, edited 1 time in total.
User avatar
Commodore
fgsdfs
Posts: 2471
Joined: Wed Mar 12, 2003 5:44 pm
Location: :noitacoL
Contact:

Re: ZZT Ultra

Post by Commodore »

ZZTBandit wrote:These Flash, 3D/VR ZZT gimmicks are a disservice to the community for personal gain.
Get off it BB, what's up your craw anyway? All "improvements" to ZZT eventually point back to ZZT itself. There's nothing to lose and everything to gain.
*POW* *CLANK* *PING*
ZZTBandit
Ordinery
Posts: 45
Joined: Wed Sep 07, 2016 6:07 pm
Location: neutral

Re: ZZT Ultra

Post by ZZTBandit »

Name one? This is meagzeux in sheep's clothing and an insult to those who are trying to preserve the real thing.

I'll drop it, sorry.
Post Reply