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:

Thanks for feedback

Post by Appetite4 »

It doesn't change a whole lot, but version 0.18 is ready. I'm now pondering the direction in which to take this project (see the News Page).

First and foremost, I fixed the extra Metal Gear track in the Hall of Music. Has this game been added to Z2?

I guess the Hall of Music should have more than just an experimental user interface if people will be adding lots of custom content. The submission page is just a bare-bones enhancement of the main library page--it could stand to be revised to allow for more sophisticated editing. I need to keep this in mind for future updates.

Bitbot, your points will be taken to heart. Smilymzx wants to modernize the whole enchilada, while you want to have a carbon-copy of the original engine, almost to a perfect T. It won't be easy, but I think it's possible to satisfy everyone despite such aims being so opposite. I can't remember who mentioned a "ZDOOM" parallel, but I understand the comparison. Take a look at the "compatibility" section in that game engine sometime; it's truly jaw-dropping how many options there are.

Also, I doubt ZZT Ultra will hold people's attention indefinitely unless I finally get around to designing those advanced-engine games I talked about before, such as Smash ZZT and Fall of ZZT: The Curse of Production Quality.
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 »

The game is not on the Z2 page, however, you can find everything here viewtopic.php?f=18&t=3283

I noticed that I can go beyond 100 boards! Is there a hard limit on the amount of boards I can have in 1 file?
And while I am on the topic of hard limits, are the hard limits mostly the same as the original? Or are there some increased limits?

Great work on ZZT Ultra btw it is amazing :keen:
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 »

Appetite4 wrote:Bitbot, your points will be taken to heart. Smilymzx wants to modernize the whole enchilada, while you want to have a carbon-copy of the original engine, almost to a perfect T. It won't be easy, but I think it's possible to satisfy everyone despite such aims being so opposite. I can't remember who mentioned a "ZDOOM" parallel, but I understand the comparison. Take a look at the "compatibility" section in that game engine sometime; it's truly jaw-dropping how many options there are.

Also, I doubt ZZT Ultra will hold people's attention indefinitely unless I finally get around to designing those advanced-engine games I talked about before, such as Smash ZZT and Fall of ZZT: The Curse of Production Quality.
Having learned what mzx is not and working closely alongside wcgcs development, this is not news to me. I tried to warn you!

I like the classic and modern idea though... but yea when in doubt, just keep it moving.

With the latest news straight from The Doc, my mind has just been blown. I still love you though, man.
Image Image
User avatar
Appetite4
Official Clamp School Defender
Posts: 204
Joined: Tue Nov 18, 2014 4:57 am
Contact:

Post by Appetite4 »

q2k2k wrote:I noticed that I can go beyond 100 boards! Is there a hard limit on the amount of boards I can have in 1 file?
Most of the original limitations are removed in ZZT Ultra, but are re-imposed if you try to save in a legacy format (the editor doc page gives you a list of them).

I've been working hard getting all these points addressed. This might be the most important update yet (it covers a lot of detail):

http://www.chriskallen.com/zzt/updateLog.html
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 »

Nice RickRoll You have there!

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

Beware the Ides of March

Post by Appetite4 »

Version 0.19 is now available! Nearly everything Bitbot requested is present.

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

And this time, it is NOT a Rickroll. Check the URL if you don't believe me.

The change summary is here (not light reading): http://www.chriskallen.com/zzt/changelog.txt
User avatar
Saxxon
the Gargoyle.
Posts: 608
Joined: Tue Jul 25, 2006 10:02 am
Contact:

Re: ZZT Ultra

Post by Saxxon »

Fantastic work! Some nitpicks:

- Message colors appear to flash from colors 8-F. In ZZT, they flash 9-F only (no dark gray.)
- Messages appear to flash and disappear while paused (for example, in Town, when you get zapped.) In the original engine, message colors are not cycled while paused, and messages do not expire.
- Putting the mouse cursor at the edge of a board shows a flashy arrow, but I wasn't able to find out how to get the player to go to the edge of the board and not step across.
- Torch UI only shows remaining cycles, but doesn't give a clear indication of how much is missing. The original engine shows a faded background for consumed torch power.

Keep going~!
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 »

Hey, got some questions for ZZT Ultra:

1. Is there a way I can dynamically create active bombs on the fly? eg. #change red fake -> active bomb with like 1 second left
2. Is there a way I can dynamically create objects via #change or something similar? (not through "#bind"). Example of what I can use this for can be some weapon system like #change bullet custombullet where custombullet is an object somewhere on the board named @custombullet, then execute a piece of code on just that one that has been #changed
3. Can I change board variables dynamically in game? eg. Can't shoot. Pick up "pistol". Change max bullets on board from 0 to 1.
4. Does ZZT Ultra support some form of randomizer? (So i don't have to do things like have an object randomly travel east/west and check for blocking to do something for example)
5. How do I make doors that use dark colored keys?
6. Can I change direction of an object on screen dynamically? eg. Press space to fire bullet while facing north, bullet travels north, code happens which change the direction of the bullet to now travel east.

And some problems I have found so far:
Pressing B to toggle sound does not stop any currently playing sound immediately
Increasing board size for ZZT mode will cause the display to break
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 »

Also, I have these questions that are left unanswered:

1- When will commands or variables for changing Player Color and Character (in all 4 directions if possible) be implented?
2- Will there be some way to change any of the colors for default Scroll/OOP messages and stuff (colorization support for 1-line, 2-line, scrolls, pointers, etc. like in MZX)?
3- Is there a way to edit ZZT Ultra's element OOP code, masks and sounds internally*, without hacking the code files included with the GUI folder?

*: Only for ZZT ultra's WAD files, not for ZZT or SZZT compatibility

EDIT: Also:

4- Is there some way to disable the Player's Pause animation?
5- Will there be a chance to include an better Energizer animation for the player? - A new animation could use a range for the color to animate randomly from 0 to 255, so no need for changes to the player character during invincibility!
User avatar
Appetite4
Official Clamp School Defender
Posts: 204
Joined: Tue Nov 18, 2014 4:57 am
Contact:

Laundry list of requests

Post by Appetite4 »

I'll try to answer as many questions as possible. I'm definitely not trying to avoid anyone intentionally. As huge as the changelog has become, there is a far greater list of "to-dos" that I have collected from forum comments.

First, stuff you can do now in the current version:

Q: Dynamically create active bombs on the fly?
A: Set P1 to a number other than 0, e.g. #CHANGE RED FAKE BOMB;P1=2

Q: Can change board variables dynamically?
A: Yes: #SET ~MAXPLAYERSHOTS 1

Q: Random number support?
A: Yes: This example sets LValue to a number between 3 and 9: #RANDOM LValue 3 9

Q: Doors that use dark colored keys?
A: WAD files support all key colors implicitly. You can make any vanilla ZZT or SZT world support them also by setting the ALLCOLORKEYS property to 1.

Q: Changing object's direction dynamically?
A: There are multiple ways to change direction:

#SET (ObjPtr.DIR) E

-or-

#SET (ObjPtr.STEPX) 1
#SET (ObjPtr.STEPY) 0

Q: Increasing board size for ZZT mode causes the display to break?
A: Not sure what you are trying to do, or how the display breaks. If you are creating a board larger than the viewport and it isn't an SZT configuration, you have to program the camera control manually. See the DEMO.WAD "Large Board" for an example of how to do this.

Q: Commands or variables for changing Player Color and Character?
A: #SETTYPEINFO PLAYER "CHAR" 2
#SETTYPEINFO PLAYER "COLOR" 31

The $CUSTOMDRAW routine for the PLAYER type renders this somewhat moot; you would need to override the PLAYER type to take full control of the routine. A better solution would be something I could deploy in the next release, which would support property-oriented control of character and color (with directions accounted for).

FYI: There is a command, #CHAR4DIR, which sets the character based on direction.

Q: Edit ZZT Ultra's element OOP code, masks, and sounds internally?
A: The type editor is a fundamental part of ZZT Ultra. You can edit types, masks, and sound effects in a general sense from the "World" menu in the editor, adding your own or overriding existing ones.

If you want to create a new type or override an existing type, the F1/F2/F3 menu has New Type/Edit Type options, which lead to the type editor with a "fresh" type selected. Mind you, type editing can be kind of tricky because you are accounting for literally everything that the type is expected to do within the world. Not so hard for a wall. Significantly more challenging for something like FAN, a custom type in DEMO.WAD.

Next, stuff you can't do now, but I'll work on soon:

Q: Create OBJECT automatically #BIND'ed to code?
A: There is no straightforward way to do this now; I could rig something up with keyword arguments in the next version, like #PUT E GREEN OBJECT;BIND="CUSTOMBULLET"

Q: How to stop current sound from playing after "B" pressed?
A: I'll fix this soon: I just need to call #STOPSOUND 0 15 when the event is handled.

Q: Complete scroll interface color control?
A: Already on the list of TODOs--just need to get started on it.

Q: Is there some way to disable the Player's Pause animation?
A: No mechanism exists now--I'll keep this in mind.

Q: Full control over player's energizer animation?
A: Currently, this can only be done by overriding the PLAYER type. I could offer an easier way to do this with the next release by providing a hook routine into the main type code (the EMPTY type) that fetches the color and character.
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 »

You sir, are a Legend!
:whole: :keen:

Got some more questions:

1. How do I make ZZT Ultra Wads run in Super ZZT Mode?

2. How do I get ?dir to work? I keep getting "Bad Direction"

3. Is there a maximum limit on objects on the board at any time? I made border walls objects and that prevented me from creating new objects via #PUT and shooting = no bullets come out (From what I have noticed so far)

4. How do I output a variable in text for display?

5. Is there a way I can set the name of inventory elements? eg. change "AMMO" to "BOMBS", kinda like setting the name of Z. (I only noticed this "ZSTONELABEL":"Stone" but none for other labels such as ammo and health)

I hope I am not bombarding you with too many questions but this is very useful information to have XD
User avatar
Commodore
fgsdfs
Posts: 2471
Joined: Wed Mar 12, 2003 5:44 pm
Location: :noitacoL
Contact:

Re: ZZT Ultra

Post by Commodore »

q2k please make Metal Gear in ZZT Ultra. You are? Good, carry on.
*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 »

Hey Commodore! I like how you read my mind perfectly! :agh:
User avatar
Appetite4
Official Clamp School Defender
Posts: 204
Joined: Tue Nov 18, 2014 4:57 am
Contact:

Next version coming soon

Post by Appetite4 »

Hi All,

I'm working on version 0.20. This addresses a lot of the requests you guys keep shoveling on me (not complaining too loud; I like working on them).

The juggernaut that is giving me a lot of trouble is generic high score posting functionality. The difficult bit is that it has to remember the location from which the world was loaded--client OR server. It saves scores server-side for a deployed (site) configuration, and client-side for a loaded-from-local file.

You will be able to reference object names in #PUT and #CHANGE in the new version...a change I'm sure will be quite welcome.
User avatar
Appetite4
Official Clamp School Defender
Posts: 204
Joined: Tue Nov 18, 2014 4:57 am
Contact:

Version 0.20 is here

Post by Appetite4 »

Okay, now we have even more new features. But seriously, folks. You're making me lose a lot of sleep working on all of it. :ssj:

Here's the full list: http://www.chriskallen.com/zzt/changelog.txt

Concerning recent requests, here's the updates in a nutshell: auto-bound OBJECT creation to names, option for disabling pause animation, options for configuring player character and color (normal, hurt, and energized), FREESCROLLING and SENDALLENTER properties for Super ZZT-like WAD file behavior, more sensible max status elements in default editor, legacy torch bar support, master channel volume control, and high score entry support (this last one was a huge undertaking).

I'll address the troubleshooting points now, as well.

If you are using a variable when specifying a direction, you MUST put the variable in parentheses. ?(dir) is okay; ?dir is not. There needs to be a way to distinguish the classic direction namespace from the calculated expression namespace; the syntax would get out of hand otherwise.

You can tweak the number of status elements per board for the world by changing the property MAXSTATELEMCOUNT. This defaulted to 151 earlier, so I changed the editor's default to 9999. I believe it will get reset to 151 if you load a legacy .ZZT file, though, so you might have to change it back if you're mixing content from different world sources.

Variable text output is established by using #DYNTEXT.

If you want to re-label an existing inventory counter in the GUI, you can use #MODGUILABEL to establish the location. The AMMO example could be done like this:

#MODGUILABEL AMMOTEXTLABEL 7 8 6 30 0

To change the label, you'd do something like this:

#SETGUILABEL AMMOTEXTLABEL "Bombs:"
#SETGUILABEL AMMOTEXTLABEL "Shell:"

I am not ignoring scroll interface color control--it's just harder to do now that multiple scroll frames exist in the engine.

Enjoy.
Post Reply