Page 2 of 2

ZZT Ultra / Hall of Music sound synthesis

Posted: Thu Apr 20, 2017 11:09 pm
by Appetite4
Some more info about the sound output by the Hall of Music. The drum samples are just one-offs with no modification, but the source note samples were carefully measured to represent anywhere between 1 and 8 wave cycles, depending on pitch. But they aren't just repeated verbatim.

My sound system wraps each note in an envelope. It's not a very noticeable envelope, but it is there: sharp attack rate, no decay, sustain is 100%, release is fast (but not as fast as attack). The output is also filtered using a simplest lowpass (every 3 samples averaged) to remove high harmonics. Chances are good that coarser emulation, like you'd find on archive.org, sounds way worse on your machine because it does none of this.

Also, beware the echo effect; it isn't as "pure" if you're straight-recording songs. I smooth out #PLAY audio by using a K40:0.3: code, which adds reverb. At least, I think it sounds better. Some people don't like it (K00:0.0: turns it off).

I can send you a ZIP of the original raw note samples if you want them.

Re: 3D ZZT tribute project

Posted: Sat Apr 22, 2017 9:44 am
by Mushy-pea2
OK. I'll do a bit of experimentation and see if I can get to a reasonable solution with what's available on your site; I may get back to you in a bit. I've little experience with dealing with audio in applications so I've set fairly modest goals. I was thinking about using OpenAL and 3D rendering the sound effects through that at one point, but with the amount of work left to do on other areas I've decided that'll have to wait to a later release version if it happens at all. Thanks though.

Re: 3D ZZT tribute project

Posted: Mon Jun 12, 2017 11:20 pm
by Mushy-pea2
Hi guys. As E3 2017 is pretty much under way, I thought I'd release my own E3 style trailer video. I had planned to wait until I'd released the alpha stage demo, but as this will only include a fairly small environment I realised a video could be a bit of a spoiler. The video speed is a bit faster than real time, due to an issue with Hypercam and my computer not being able to capture and compress enough frames per second. At this stage the engine is mostly complete, with the sound sub system being a notable exception. A large part of the remaining work (in order to produce a game worth playing) will involve adding functionality using the engine's scripting language GPLC and 3D modeling. The most recent addition is the chunky bullets you can see fired in the first map. So, queue overly dramatic cinematic musical score.

Steven

https://youtu.be/fC-l-Z1cu8c

Re: 3D ZZT tribute project

Posted: Fri Jun 16, 2017 5:37 pm
by Commodore
Getting a pretty good Freescape engine sort of vibe, interestingly that had an editor as well. What are plans for user edit ability? Like textures? I think being able to define how the player moves and how to move the camera would let you do some cool things. Of course, if you want it to be more like zzt in a philosophical sense, you make a simple editor that doesn't even need to use code if you don't want because of prefab objects and creatures, like you have a door/key, maybe those lifts are just drop in. Anyhow good work. It also reminds me of LSD for ps1.

https://youtu.be/MpWNC6tfObw A Freescape game, Castle Master 2
https://youtu.be/ol4OSIGGukA LSD: Dream Emulator

Re: 3D ZZT tribute project

Posted: Sat Jun 17, 2017 12:17 am
by Mushy-pea2
I love the links; it's impressive what developers managed to achieve on (by today's standards) very limited hardware. Did you know someone is remaking LSD on the Unity engine? As for your question about the user editor and textures... The process I use for making visual assets involves building and texture mapping (or vertex colouring) a 3D model in Blender, exporting it as an OBJ file, then using a tool chain program to transform a set of such files into a file in a format the engine can work with. The import system is modular so groups of models can be placed in each import file and the required files for a particular map loaded at initialisation. I've been using Windows Paint to make the bitmap images for textures. This somewhat technical process could be largely automated in an editor, as could the placement of the environmental lights. However, this doesn't get around the issue that 3D modeling and texturing are skills that take a fair bit of effort to develop (although changing the textures for flat objects like walls and floors would be pretty simple). As you can see, I've only progressed a few steps down that path so far. Also, the limitations of the engine mean that however much work one put into that the environment would always look rather blocky and 1990s.

Of course there are people out there that are into this kind of content development, but they would be more likely (and better advised) to combine their skills with more advanced engines like Unreal or Unity. For these reasons I am intending to pursue a "ZZT like" philosophy for the editor. This will mean a focus on ease of use through "drop in" models and devices, but with some game logic flexibility possible through scripting. To give you an idea how this can work; the torch lighting and bullet mechanics are partially implemented through GPLC scripts. So, making ZZT style gun turrets will basically be a case of writing different scripts to use the same engine functions used when the player fires a bullet. I am open to suggestions though. What kind of thing were you thinking of in terms of player and camera motion?

Re: 3D ZZT tribute project

Posted: Sat Jun 17, 2017 2:42 am
by Commodore
I guess with the camera control and player movement being editable, I was thinking you could do something top-down or isometric. Maybe a side scroller. I'm guessing you aren't doing it like zzt where the player is a special case? Just another object that input happens to control and the camera happens to follow?

With zzt you make engines and the objects become a proxy for the player, like if being surrounded by objects. I'm not sure if it's worth forcing a limitation like that though. There's got to be a balance between simplicity and editability. But, for example, could I make a pinball game in your engine? it certainlly looks like the bits and pieces could be there. Even more so if I can fix camera over the playing area. But the complexity gets pretty large pretty quickly once you can have walls Zig zagging everywhere and objects that can be any size and the collisions are no longer one cell bumping into an occupied one. Anyhow, just thinking aloud.

Re: 3D ZZT tribute project

Posted: Sun Jun 18, 2017 3:46 am
by Mushy-pea2
Actually, the player is a special case but this was something I decided on before I decided to theme the game's content around ZZT. You could think of the game logic in terms of the player with his (or her) stateit's too limitedinteracting with a map formed of cubes, each of which has its own local state. This local state consists of the map geometry of that region and potentially a script, which may be triggered by a player collision or a signal from another script or itself. These scripts can modify various aspects of the map and player states. The signalling system is multithreaded so several updates can happen between two frames.

This may be starting to sound a bit like the ZZT-OOP model, but again this wasn't done to try to mimick that. Rather it seemed like a reasonable model to achieve what I was aiming to. I can see that if one was designing a more general engine they'd probably do what you suggested and allow a set of interacting objects, of which the player is one (if any). However, I realised at an early stage I needed to keep the project goals fairly moderate so the difficulty was manageable for me. In other words so I wasn't here until 2022 trying to finish the thing :) .

I think your idea of allowing more developer control over camera placement is good though; it shouldn't be too hard to implement in a later version either. Oh yeah, about the pinball game. Basically no, I think it's too limited for that. You can give it try though...That can be your homework!

Re: 3D ZZT tribute project

Posted: Sat Sep 02, 2017 7:47 pm
by Mushy-pea2
Hello everyone; I hope you are as well or better then me on this particular day. After over 20 months of part time work and my brain nearly turning to treacle on several occasions, I can finally report that an alpha stage demo of this project is now available for download here: https://github.com/Mushy-pea/Game-Dange ... es/tag/0.7 . At the moment there is only a release for Windows 64 - bit; I intend to add 32 bit Windows and Linux releases shortly. I won't say much more at this stage to avoid it being a spoiler, but the following points are worth making.

1. At the moment only in memory game saving is present. You can save the game at any point in the pause menu and load this state from the main menu, but exiting the application will cause the state to be lost.

2. The game is configured to run at 1024 x 1024 resolution (target 40 FPS). If you'd like to change this (perhaps because your monitor isn't big enough), you just need to edit the config.txt file. You'll see lines that say "resolution_x=1024" and "resolution_y=1024". You can set these to what you like, but keep them equal or the aspect ratio will be wrong.

3. If / when you find an object that looks like a cardboard cut out with a circle in the centre and four arrows pointing to it, don't touch it until you have some torches. It will teleport smiley guy to a dark area. I didn't want to be mean and leave this un - signposted.

4. If you choose to play it, you will then never play it for the first time again.

As it is still in alpha stage you may run into some issues. Feel free to raise this on the thread or e - mail me (address is in the readme.txt file with the release).

Non-functional

Posted: Sat Sep 02, 2017 10:00 pm
by Appetite4
The game does not work. Menu items are selectable using WASD, but there is no way to choose them (no other keys work), the mouse does not work, and there is no way to quit. Closing the window does not close the command window used to initialize the game.

Re: 3D ZZT tribute project

Posted: Sat Sep 02, 2017 10:15 pm
by Mushy-pea2
OK. What happens if you press X? This should select the highlighted menu option. Once the game is in progress you can then press X to pause it and from the pause menu select "exit" in the same way. There is no mouse input at this stage; the controls listed in the readme file are the only things that work. Let me know how you get on. Oh, cheers for being possibly the first to download.

Edit: I forgot to ask; what version of Windows are you using?

Re: 3D ZZT tribute project

Posted: Sat Sep 02, 2017 11:49 pm
by Appetite4
Discovered the key mapping in the README. I never would have thought to press X to select a menu item. No SPACE or ENTER for this, which is kind of puzzling.

Actually, most of the key bindings (not configurable?) are non-intuitive. WASD is fine, but K and L for turning? Huh? Q and E, or cursor direction keys, are to be expected for turning in FPSes. It seems like you had made a conscientious effort to avoid binding keys without ASCII mappings.

I have to be honest. In its current form, this is not a good tech demo. Clipping and shearing are out of control, the player moves like he's on an ice rink, turning is far too slow, and movement processing is limited to teletype character input instead of held-down-key input. It doesn't feel quite "ready" yet.

Back when I was a much younger man (a boy, to be precise), I made the following tech demo. It was mostly an excuse to see if I could make a 16-bit engine prototype similar to Wolf3D. You might want to compare how this "plays" to see what I mean.

http://www.angelfire.com/space/debrischris/raycast.zip

I still have the source code, believe it or not. But that stuff spells "spaghetti" with capital letters.

Re: 3D ZZT tribute project

Posted: Sun Sep 03, 2017 12:35 am
by Mushy-pea2
I appreciate your honesty. As far as the points you made about the key bindings and the graphics go, I won't argue. The keys should be configurable and perhaps I should have done that in this version. Graphically, there are certainly issues to address. However, you might be surprised to hear that the ice rink physics is actually deliberate. It could be made more conventional by just changing the physics constants in the config.txt file. It is possible to move around the level with some speed; the trick is to use the fact you can accelerate in each of the four directions with equal force (I.e. regardless of the direction you're facing). The challenge of the map (finding the red key) is possible within a few minutes if you know what to do. I'd be interested to hear how you get on trying to finish it, if the weird physics and glitchy graphics don't drive you to distraction first :) .