z2

I agree. Take me to the spicy page.
It is currently Tue Sep 26, 2017 2:33 pm

All times are UTC




Post new topic Reply to topic  [ 223 posts ]  Go to page Previous  1, 2, 3, 4, 5 ... 15  Next
Author Message
PostPosted: Fri Jan 16, 2015 3:21 am 
Offline
Official Clamp School Defender
User avatar

Joined: Thu Mar 01, 2012 3:00 am
Posts: 328
Location: earthbound
Appetite4 wrote:
bitbot, that Lego Movie screenshot gives me an idea! A special ZZT adventure where the world is coming apart and you have to stop it.

The title would be "Fall of ZZT: The Curse of Production Quality."


Heheh. You've got a back bone with Cruz and I know you can roll with the punches.

Truth is, I like you already—you're one of us. I'm just challenging you... If you're gonna add "Ultra" to the end of Sweeney's product, you better do it right!

To hell with production quality.
:blazkowicz:

_________________
Image Image


Top
 Profile  
 
 Post subject: Re: ZZT Ultra
PostPosted: Fri Jan 16, 2015 7:59 pm 
Offline
fgsdfs
User avatar

Joined: Wed Mar 12, 2003 5:44 pm
Posts: 2418
Location: :noitacoL
BB found his attitude ;D

_________________
*POW* *CLANK* *PING*


Top
 Profile  
 
 Post subject: Save and Restore...WIP
PostPosted: Wed Jan 21, 2015 11:50 pm 
Offline
Official Clamp School Defender
User avatar

Joined: Tue Nov 18, 2014 4:57 am
Posts: 171
Okay...savegames need work. The types are stored fine, but colors are way off.

The WAD-and-JSON approach works as well as I had hoped. Even though the files generated are larger than the original savegames, the advantages we get from patching and interoperability will more than make up for it.


Attachments:
File comment: Actual save result
zzt_save_actual.gif
zzt_save_actual.gif [ 76.92 KiB | Viewed 904 times ]
File comment: Ideal save result
zzt_save_ideal.gif
zzt_save_ideal.gif [ 82.42 KiB | Viewed 904 times ]
Top
 Profile  
 
 Post subject: Re: ZZT Ultra
PostPosted: Tue Jan 27, 2015 10:18 pm 
Offline
the Gargoyle.
User avatar

Joined: Tue Jul 25, 2006 10:02 am
Posts: 601
This is a fine project! Good luck to you :)

If you've got any questions about the internal workings of either the ZZT or Super ZZT engines, please let me know. I may be more readily approachable via e-mail (saxxonpike@gmail.com) or Twitter (@SaxxonFox).


Top
 Profile  
 
PostPosted: Wed Feb 04, 2015 3:08 am 
Offline
Official Clamp School Defender
User avatar

Joined: Tue Nov 18, 2014 4:57 am
Posts: 171
http://www.chriskallen.com/zzt/ZZTUltra.html

The ZZT Ultra site has been quasi-officially launched now, although many pages are still unfinished.

There have been many updates since the original post last year. The biggest change is a file-based save feature. In its current form, ZZT Ultra does not host anything--not even savegames. Use 'Z' and 'S' to load a world file from your hard disk. If you save and reload your game, the files are stored on your own computer (not within Flash shared objects).

I should mention that even though the documentation was on the site before now, the pages are now properly linked. I'm keeping no secrets from anyone who wants to know how ZZT Ultra works, so all the specs are there. Of course, it's incomplete right now.

And no world editor yet. Sorry. One thing at a time.


Top
 Profile  
 
 Post subject: Re: ZZT Ultra
PostPosted: Thu Feb 05, 2015 10:36 pm 
Offline
fgsdfs
User avatar

Joined: Wed Mar 12, 2003 5:44 pm
Posts: 2418
Location: :noitacoL
Nice work! It seems to have some issues with player clones, like it thinks one it the actual player when it is just a clone.

_________________
*POW* *CLANK* *PING*


Top
 Profile  
 
 Post subject: Sound System Blues
PostPosted: Thu Feb 12, 2015 12:22 am 
Offline
Official Clamp School Defender
User avatar

Joined: Tue Nov 18, 2014 4:57 am
Posts: 171
Not everyone is going to care much about this post, but it's important to me. Mainly, because as part of the testing process, I have to listen to the ZZT sound effects all the time.

The ZZT Ultra sound system has turned out remarkably well. But the wave-sampling algorithm I employed is generating high harmonics for some of the frequencies. You only tend to notice it when you are at the high end of one of one of the sampled intervals. Basically, I sampled the frequencies every half octave. So you get a base sample at all C notes and all G notes. The lowest octave is an exception--it also samples E, because the internal speaker's lowest register has a unique audio profile.

For all other notes, the sound system linearly interpolates the next-lowest-frequency sample, playing it back at a higher rate. You probably won't notice high harmonics until a certain note. Actual C and G are rarely a problem, but F (just below G) or B (just below C) are a lot more grating.

Maybe others don't pay too much attention to high harmonics, but I do. Call it the blessing of still having high-frequency hearing potential after all these years. Or a curse, depending on how you look at it. It matters a lot to me. I hope I'm not alone in caring about something this specific!


Top
 Profile  
 
PostPosted: Sat Feb 14, 2015 9:38 pm 
Offline
Official Clamp School Defender
User avatar

Joined: Tue Nov 18, 2014 4:57 am
Posts: 171
http://www.chriskallen.com/zzt/ZZTUltra.html

We're now at 0.2 of ZZT Ultra. Thanks very much to Saxxon for the label parsing tips--I was able to get nearly all of them working perfectly.

Some other notable changes:

  • Super ZZT was VERY rough around the edges before. It's not perfect, but it's much better.
  • World flags are now accounted for with original engine limits (10 for ZZT, 16 for Super ZZT).
  • World name now shown in title.
  • Cheat box lets you enter # commands.
  • Spawning and status element destruction much improved. Previous behavior was okay but still wrong.
  • Be Quiet/Be Noisy setting works now.
  • Some status element errors in world files now automatically corrected.
  • TAKE statement wasn't working correctly before when not enough in inventory.

I need to work on fine-tuning some of the prefabs. Centipedes are really starting to piss me off, because I had the inversion code working perfectly before, and then it broke for no good reason out of the blue...


Top
 Profile  
 
 Post subject: Re: ZZT Ultra
PostPosted: Mon Feb 16, 2015 10:35 pm 
Offline
the Gargoyle.
User avatar

Joined: Tue Jul 25, 2006 10:02 am
Posts: 601
Centipedes are, with the exception of the player and OOP parser, the most complex component. Even when digging around in assembly, it was still a lot of work (and even I don't have it completely perfect- there's an extra redraw in there somewhere when it turns around.)

I'm glad to hear you were able to get things working more smoothly!


Top
 Profile  
 
PostPosted: Mon Feb 23, 2015 2:40 am 
Offline
Official Clamp School Defender
User avatar

Joined: Tue Nov 18, 2014 4:57 am
Posts: 171
http://www.chriskallen.com/zzt/ZZTUltra.html

Now we're at version 0.3. Many fixes and changes:

  • Fixed centipede inversion logic! Hopefully I've nailed it this time.
  • Implemented same-board passage navigation for Super ZZT
  • Improved FLOOR-copying algorithm when EMPTY or pushables nearby
  • Full-status-element board no longer creates spawning errors during bullet firing
  • Pushing now allows status-element pushables, such as PLAYER, to be pushed over FLOORs
  • PUSHER halts if step direction is idle
  • #GO IDLE blocks forever
  • Last-flag replacement fixed
  • Gems no longer destroyed by enemy bullets
  • Dark-color keys activate light-color inventory key
  • Player no longer "loses its one bullet forever" when only 1 shot allowed per board
  • BULLET type now squashable
  • Super ZZT "bears" now rendered as "dragons"
  • OBJECT types have equivalent instruction pointer set from original location in world file
  • OBJECT types honor previously set #BIND ID

These last two changes are important--they increase the scope of what ZZT Ultra can load. Theoretically, you could load ZZT and Super ZZT savegames now, and not just standard "t=0" ZZT and SZT world files.

I say "theoretically" because I don't put much stock in having accounted for every imaginable run-time detail that could be stored in a savegame. Anyway, it should help with loading world in a general sense.


Top
 Profile  
 
 Post subject: Finishing touches
PostPosted: Fri Feb 27, 2015 1:05 am 
Offline
Official Clamp School Defender
User avatar

Joined: Tue Nov 18, 2014 4:57 am
Posts: 171
Good news: I am reaching the end of my list of fine-tuning changes for ZZT Ultra. Many worlds are approaching full playability with minimal/nonexistent bugs.

What is on my mind now: player clones and passage-duplication nav. These undocumented features are a headache because I know they need to be supported if I want this browser-based engine to work with every game on this site. And yet...it just sucks that people ever needed them to begin with.

In particular, "Lebensraum" is a good litmus test. Clone behavior, passage nav behavior, and a whole mess of other factors all need to be aligned perfectly in order to have that game work. I've mostly gotten the menus to work, but there are still a few problems with the gameplay itself.

If I'm not mistaken, this game takes advantage of a quirk that lets you "unkill" the player if health is restored after #ENDGAME, right? It seems odd that picking up a health pack at full health ends up killing you outright!


Top
 Profile  
 
 Post subject: Re: ZZT Ultra
PostPosted: Mon Mar 02, 2015 7:09 pm 
Offline
the Gargoyle.
User avatar

Joined: Tue Jul 25, 2006 10:02 am
Posts: 601
#endgame sets your health to zero. But the check for zero health only happens when it's the Player's turn to act. So if you have an object use #endgame, then #give health 100, it essentially sets the player's health to 100 without spawning any mressages.

The odd behavior in player clones is due to the inconsistent checking of player presence in ZZT. Some code checks for "is this a player tile (id 4)" and some checks for "is this object zero?" A general rule of thumb: if it's not inside the "Attack", "Harm" or "Destroy" functions, it's likely checking for the former. The reason it needs to check for object zero in the latter is because otherwise there would be the possibility of actually eliminating the player from the board as it is considered Destructible.

Not that it prevents you from actually doing it, and I can show you how to kill the player permanently, making the game engine not recognize any keyboard input. Not that it's useful :)

Passage duplication bugs occur because here's how the code runs:
* Let's just say the duplicator is Object #2, there's a player clone on the target side, and a passage on the source side.
1) First half of the duplicator code looks at what it's duplicating and determines if it's something it can duplicate.
2) The target tile is a player, so it will attempt to run the Interact code on the source before pushing. (This is why if you stand in front of a duplicator that duplicates ammo, that ammo will disappear)
3) Interact code for a Passage is run, switching the board.
4) The board is faded in, control returns to the Duplicator code.
5) The duplicator's object information has been overwritten with new values- whatever is Object #2 on the new board- but it continues to do its further checks (can Object #2 do a duplicator push operation, etc...)

Now, if you change that to be like... object #100, and the new board doesn't have 100 objects, the behavior is undefined, but I believe the object data doesn't get overwritten. There can only be one board loaded on the screen at a time, and if a passage changes this in the middle of other element's code, you get some really weird situations like this.

The only two elements that can change the board without user interaction are Board Edge and Duplicator, I believe.


Top
 Profile  
 
 Post subject: Major Update!
PostPosted: Tue Mar 03, 2015 12:05 am 
Offline
Official Clamp School Defender
User avatar

Joined: Tue Nov 18, 2014 4:57 am
Posts: 171
Now we're at version 0.4! This is a huge update:

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

I have started a page to track the individual worlds for "working/not working" status. It's somewhat tedious to do full playthroughs, but that is what counts. The page features the status of the built-in episodes plus all the "featured games" on Z2 I could find. Especially nice is the fact that Lebensraum now seems to work nearly flawlessly.

http://www.chriskallen.com/zzt/worlds.php#worlds

Summary of changes:

  • Player clones and passage-duplicator hack implemented!
  • Board edge-motion tests conducted, allowing item collection, player damage, and pushing from adjacent board.
  • Push behavior is different for player and pushers/stars/etc. Non-player objects don't like to squash the target immediately in front of them for some reason.
  • Overall timing is much improved. Slimes, duplicators, objects, and more.
  • Intel calculations improved. Ruffians, lions, tigers, and more.
  • Tigers were firing far too often! Used to be 1/2 chance for max-rate; it's now 1/3 chance (the correct probability).
  • Duplicators kill source if player is on other side.
  • Some spawns were creating "black-on-black" enemies. Tweaked #PUT, etc. to change color to white.
  • Bad #BIND is no longer reported as an error.
  • THUD message was being handled incorrectly at times; should be better now.
  • #CHANGE of non-stat to stat no longer keeps the non-stat underneath.
  • Player can be "unkilled" by health restore following zero-health change or #ENDGAME.
  • Super ZZT "#WALK" allows for push.
  • Super ZZT (I)ntroduction key now works.
  • ZZT / Super ZZT (W)orld selector key now works. Note this only loads a world of the same type--you need to exit to the ZZT Ultra main menu to get the "universal" choice.
  • "Overloaded" status elements on a single square no longer cause unexpected duplication.
  • Space bar shoots in last fire direction.
  • Bomb blasts now destroy gems.
  • Torch aura and camera updated when player is pushed around.


Top
 Profile  
 
 Post subject: Re: ZZT Ultra
PostPosted: Tue Mar 03, 2015 6:01 pm 
Offline
OH YES! USE VINE WHIP! <3
User avatar

Joined: Tue Sep 11, 2001 9:11 am
Posts: 1735
Location: scabsboro
Saxxon wrote:
Not that it prevents you from actually doing it, and I can show you how to kill the player permanently, making the game engine not recognize any keyboard input. Not that it's useful :)


I remember somebody finding out a way to do this years ago and now I'm curious if it's the same method that I know of.

https://www.youtube.com/watch?v=_NRwNx3 ... e=youtu.be

_________________
<asgromo> Dr Dos; What is this monstrocity?
<Spectere> Aura 2
<asgromo> This thread is useless... I'll just... read the Featured Games article.
<asgromo> ... I'll just look for boners.


Top
 Profile  
 
 Post subject: too many clones
PostPosted: Tue Mar 03, 2015 8:04 pm 
Offline
Official Clamp School Defender
User avatar

Joined: Thu Mar 01, 2012 3:00 am
Posts: 328
Location: earthbound
The Original ZZT
superzzt
megazeux
corndog
plastic
bang!
zig
zztexperience
enhancedzzt
ohrrpgce
z++
zzt4.0
dreamzzt
npzzt
rememberzzt
pazzt
ultrazzt
zz3
glzzt
zztx
jzt
zer
zpro
tyger
lyon
superwad
zztultra
?????????


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 223 posts ]  Go to page Previous  1, 2, 3, 4, 5 ... 15  Next

All times are UTC


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB® Forum Software © phpBB Group