Amiga.org
Amiga computer related discussion => General chat about Amiga topics => Topic started by: saimo on April 14, 2019, 02:00:49 PM
-
In the past months I've been thinking of some new game concept that would finally put my dot-matrix engine for AGA Amigas to good use. Admittedly, I haven't come up with anything worthy yet, but I've been doing some technical experiments. I thought you might fancy having a look at the latest experiment:
https://www.youtube.com/watch?v=LE8FyrxEhnQ
Details:
- the parallax is not obtained by means of pre-rendered separate lines, but by applying perspective to a rectangular texture; this means that the texture can be easily modified/animated on the fly, and also that it doesn't have a size limit;
- the shadow is not made of a number of precalculated frames, but it's a single bitmap that gets cast in perspective (exploiting the parallax effect) and also with a pseudo-antialias effect;
- the scrolling is not obtained by changing bitplane pointers, but by redrawing the whole screen: while this steals quite some bandwidth, it allows for a single raster (thus making rendering operations really easy) and eliminates the need to keep/restore dirty regions;
- the character is not a bitmap, but it's made of 1200 separate dots (which is what allows it to transform into any other shape made of the same 1200 dots);
- an unexpanded A1200 runs this at full speed (i.e. 50 Hz); it would do so even if there were a second 1200 dots character, although there wouldn't be time to do much more - to gain extra time for an actual game, characters should be plain bitmaps and, if needed, the parallax area could be made a little shorter.
Note that I'm NOT going to make a beat'em up. Again, this is just an experiment.
(The graphics have been derived from assets which are the property of Capcom Co., Ltd.)
Previous video:
https://www.youtube.com/watch?v=mB6wgJbj0Gg
-
looks crazy freakish cool 8) ;D
-
Looks really good. My mind boggles at the maths that must be behind that.
-
@F1Lupo
Thank you :)
@golem
Looks really good.
Thanks!
My mind boggles at the maths that must be behind that.
Nothing particularly special, to be honest.
-
This video shows a stock Amiga 1200 running various visual effects using the dot-matrix engine. The effects are obtained by means of a system that allows every single pixel to be located anywhere in memory (regardless of the RAM type). Lately, I've started thinking again of a game that makes use of the dot-matrix engine, and I came up with this new system. I finally have a somewhat interesting game concept (not shown here), but I'm still thinking of better alternatives.
Technical note: while the dot-matrix engine doesn't require any CPU operation, this new system is entirely CPU-driven, so each screen update takes more or less 1.3 frames on a stock A1200; therefore, if the game eventually uses the system, it will run at most at 25 fps.
https://www.youtube.com/watch?v=jSvJmn0-KoE
-
Would be cool as a native video format too - movie.dmv, dot-matrix video :)
-
Would be cool as a native video format too - movie.dmv, dot-matrix video :)
Well, conceptually, the only difference with any existing format is that the depth is just 2 bits. Anyway, boooring ;D
-
Two more experiments: https://www.youtube.com/watch?v=cH20N0D5kKw
For convenience, these are the previous videos:
* https://www.youtube.com/watch?v=mB6wgJbj0Gg
* https://www.youtube.com/watch?v=LE8FyrxEhnQ
* https://www.youtube.com/watch?v=jSvJmn0-KoE
-
Reprise of the spaceship-travelling-through-tunnel idea: https://www.youtube.com/watch?v=Be94FYcr1Oc
The tunnel renders in about:
* 1.1 frames on a stock Amiga 1200 (I must say I'm quite disappointed I just can't make it take less than 1 frame);
* 0.28 frames on an Amiga 1200 + Blizzard 1230-IV with 60 ns RAM (the machine used to record the video).
Previous videos:
* https://www.youtube.com/watch?v=mB6wgJbj0Gg
* https://www.youtube.com/watch?v=LE8FyrxEhnQ
* https://www.youtube.com/watch?v=jSvJmn0-KoE
* https://www.youtube.com/watch?v=cH20N0D5kKw
-
I managed to get the effect to run in less than one frame also on a stock Amiga 1200. I was trying to be too smart, so I thought I'd try to dumb the code down... and it worked! The time needed to render the tunnel went from ~1.1 frames (~22 ms) to ~0.937 frames (~18.74 ms). On the other hand, unsurprisingly, the simplified code performs worse on expanded machines: on an Amiga 1200 with Blizzard 1230-IV with 60 ns RAM, it went from ~0.28 frames (~5.6 ms) to ~0.48 frames (~9.52 ms).
This video shows the effect running on a stock Amiga 1200. The second part shows visually the rendering time: the blue blackground represents the part of a frame (the whole screen + vertical blanking area) taken by the the tunnel rendering; in other words, the non-blue blackground represents the unused time of a frame.
https://www.youtube.com/watch?v=DCvqD-35_zE
Previous videos:
* https://www.youtube.com/watch?v=Be94FYcr1Oc
* https://www.youtube.com/watch?v=mB6wgJbj0Gg
* https://www.youtube.com/watch?v=LE8FyrxEhnQ
* https://www.youtube.com/watch?v=jSvJmn0-KoE
* https://www.youtube.com/watch?v=cH20N0D5kKw
-
crazy crazy psychedelic cool stuff Simone ! 8) ;D
-
Eventually I used the engine to make a demo. It got released at the Solskogen 2020 demoparty about 1 hour ago. Feel free to watch/download it from https://www.retream.com/THE_CURE (running it on a real Amiga is mandatory to really appreciate it, as a video, due to technical reasons, just doesn't cut it) ;)
The demo comes with a README that explains all the details, including why I dropped the idea of a making game and went for a demo, instead.
-
well done and congrats for winning the 1st place ! I watch it the demo over the net and will downlaod and try the demo on my A1200.
-
Thanks, lionstorm!
You'll definitely enjoy it more on your machine, as the visuals of the demo are unsuitable for videos.
-
Really lovely demo--looks like a marvelous technical achievement and the messaging is on point. Congrats!
I think there still must be a game somewhere in that engine... even if you haven't found it yet. Give yourself a well-deserved break and maybe the idea will come to you when you least expect it.
-
Really lovely demo--looks like a marvelous technical achievement and the messaging is on point. Congrats!
Thank you!
I think there still must be a game somewhere in that engine... even if you haven't found it yet. Give yourself a well-deserved break and maybe the idea will come to you when you least expect it.
Nope, it just isn't suitable. But I already have 2 other engines that are waiting to be made use of for games, and I'm already working on that ;)
-
@ saimo
big time congrats for a well deserved 1st place at the Solskogen 2020 demoparty ;D !!! ;D
-
I've been asked a few times to release the music separately, and finally I got around to do it! Here it is:
https://soundcloud.com/retream/the-cure
(The quality is higher than in the demo itself due to the limitations of the Amiga hardware - for details, check out the "About the music" post in the Community section of the demo page (https://retream.itch.io/the-cure).)
And sorry for the delay :P
-
I just found out that the demo earned me a nomination in the New Talent category of The Meteoriks 2021 (that's the demoscene equivalent of the Oscars) :)
Nominees presentation: https://youtube.com/watch?v=lyaTR13RxmQ
Meteoriks 2021 website: https://2021.meteoriks.org/nominees
THE CURE webpage: https://retream.itch.io/the-cure
THE CURE video: https://www.youtube.com/watch?v=qgg90MCJKok
-
Congratulations! Much deserved. :)
-
congrats & hope you win Simone :) !
-
Lately I realized I could make the startup and cleanup code of SkillGrid (https://www.retream.com/SkillGrid) more robust, so I improved it further. I decided to apply the same improvements to my other productions, and today it was THE CURE's turn...
v1.1 (20210602)
* Made startup and cleanup code more robust.
* Fixed (unlikely) memory leak in cleanup code.
* Replaced "actual" with "current" in standings graphics.
* Fixed/improved README.
The new version is available for free download from https://www.retream.com/THE_CURE (https://www.retream.com/THE_CURE).
-
Wow. Just wow. Probably the most meaningful demo I ever watched. A perfect example of technology emphasising the messages.
-
Such words are much appreciated. Thanks for the lovely feedback!
-
Just released a slightly revised version.
v1.2 (04.08.2021)
* Made startup and cleanup code more robust.
* Made a few tiny optimizations.
https://www.retream.com/THE_CURE
-
While working on the SkillGrid update, backporting to it all the improvements I recently made to my other projects, I realized that those improvements came with a couple of new bugs. THE CURE was affected by them, so here's a new bugfixed version.
https://www.retream.com/THE_CURE
v1.3 (19.08.2021)
* Fixed recently-introduced memory leak in startup code.
* Replaced unreliable CIA-access-based delay code at startup with machine-agnostic code.
* Made a couple of minor internal changes.
-
This update was not planned, but, still, it happened - and makes the demo even better. In short: it improves the music, it improves the audio-to-video sychronization, it adds a few more palette effects and brings other little improvements (for the details, check out the changelog below).
Get THE CURE v1.4 from https://retream.itch.io/the-cure and enjoy!
v1.4 (29.04.2022)
* Improved music: improved S/N ratio by eliminating a peak (caused by the "str" of "street" in the spoken part) and re-normalizing the waveform; amplified initial part a little bit; reduced greatly the noise that affected the coda (due to the 8-bit quantization) by amplifying that part of the waveform to the maximum and balancing that with a real-time volume change; increased sampling frequency to 29073 Hz (side effects: channels 2 and 3 can no longer be used, so the output volume is lower; music decoding takes a little longer as there is more data to decode each frame; the CHIP bus time taken by audio DMA is almost halved, which makes the demo less demanding).
* Added switch-off of filter to ensure music sounds as it is supposed to.
* Fixed audio-to-video synchronization: fixed drifting caused by the difference between the actual and theoretical rates (~49.92 VS 50 Hz) of the video refresh (that, by the end of the demo, caused an asynchronism of ~0.5 s); fixed 60 ms asynchronism caused by the fact that the first three frames required for music setup/buffering were ignored; fixed a few timing marks in the script (an off-by-one mark which caused a peak of operations in the specified frame; a mark that caused the following effect to execute 4 frames too late; a few marks that were off by a frame).
* Fixed a bad routine pointer (caused by a wrong letter in a label in the source code; it is quite incredible that this did not produce disastrous results).
* Added some palette effects.
* Optimized music decoding by unpacking and undeltaing data at the same time (why it was not like this right from the beginning is a mistery).
* Made some other small optimizations.
* Made startup and cleanup code more robust by shielding some critical operations from NMIs and by dealing with audio playback performed with direct hardware access by other programs concurrently.
* Added version string.
* Improved/extended README.
-
Just released a little update. This should cure (heh) the stuttering I've seen on some boards that are more than capable of running the demo at full speed.
https://retream.itch.io/the-cure
v1.5 (2.1.2024)
* Improved CPU data cache handling on 68040 and 68060.
* Ensured the system MMU setup does not affect performance.
* Ensured the 68060 susperscalar dispatch is enabled.
* Made some small optimizations.
* Made startup and cleanup code more robust.