Whirlybirds - C64 Fullscreen 3D Engine Demo -
Вставка
- Опубліковано 25 гру 2022
- C64 version of our Christmas 2022 (Plus/4 / C64) 3D engine in fullscreen mode. Music by c0zmo...
You can find the complete 7z file (C64 / Plus/4) here: puls4r.de/downloads/whirlybir...
Plus4World: plus4world.powweb.com/softwar...
CSDB: csdb.dk/release/?id=227159
GitHub: github.com/kosmonautdnb/Whirl...
(Actually the whole "famous" ID-Software game would be possible, I think, on a stock C64 with the disc drive as supportive factor regarding "memory". This is just an around 64kb big single file (not a "multiloader") program to demonstrate the possibility of such an endavour in 8bit.)
This here is a normal stock C64 it could have even been loading the program via a tape drive. It's without special hardware like this: www.c64-wiki.de/wiki/SuperCPU or similar or more potent stuff. Just a C64. Dunno how it would work out in a final with 20 Mhz (instead here with around 1Mhz) and 16MB of Ram (instead of 64KB here). - Ігри
Same framerate as the unfilled wireframe "3d" titles of yesteryear! Amazing!
Very impressive! It's definitely too slow for an action game, but might make a great RPG or something more slow-paced.
A mechsim would totally rock on this.
Unbelieavable! Hats off to you sir.
Really incredible! Congratulations and thank you for sharing
Simply amazing!!! Beautifull 💚
This frame rate is very impressive considering this is a C64 with a slow 6502-based CPU.
Why, when the update rate of those other 3D-based demos (the ones that came more from the copy-protection-crack community) are so much faster with more colors?
Talk is cheap show a link
How should they do that, @@thek3743, when these days YT prevents it from showing up except when the channel owner posts it?
@@HelloKittyFanMan. its much easyer to spin a smaller 3d object in the middle of the screen than doing a fullscreen doom like engine...
Nice tune as well!
Fantastic work!
Stefan you are the Bill Harding (Bill Paxton in Twister) of the plus 4 game dev community ie you're THE EXTREME 🤩😍🤩😍incredible work wow
Wow, this is truly amazing. I’m going to have to buckle down in the coming weeks to look closer to what you’ve done here because it’s simply mind-blowing. Thank you so much for pushing the envelope with your great work and creativity. Because it’s not clear to me, is this a screenCapture of you playing through your creation (demonstrating user input and interaction) or, is this a demo?
Thank you!
It's possible to walk through this level. Actually it's more some sort of an early game engine than a demo. All the best!
cool stuff
Oh my god those friggin gnomes have infiltrated C64 demos too wtf
Crazy!
Nice
Dreams come true
Thanx!
Remake 'Lords of Midnight' with this engine
I LOVE C64 👍🥂🎩
Next: DOOM on C64. It is possible to make it run faster, using sprites as 3D background
There's a VIC-20 doom, I've tried it... but the image quality is not great.
Wow, like demoscene hackers this is amazing
insane coding!
I'm impressed. The c64 is just 1Mhz and has no MUL instruction, I cannot begin to comprehend how complex 3D math will be in 6510 asm. Then you have texture mapping too... Great work. Is source available?
In fact, you don't need a mul instruction as long as table lookups and bit shifts are working. As 4*x*y = (x+y)^2-(x-y)^2, it can be done in one addition, two subtractions and two table lookups (initialize a table of square numbers, then right-shift the results to any scale you need). Still, it would be tricky to mupliply/divide large numbers on a slow 8-bit chip.
Arent MULs just multiple ADDs?
@@PhreakDarkSoul Conceptually, yes, but if you implement it that way, the performance will be all over the place. A common approach is the "shift and add" method, which requires at most N ADDs, where N is the number of bits in the multiplier. But even that can be too slow for real-time 3D stuff like this, so something involving lookup tables is much more appropriate.
I think I Open Sourced the source already. But maybe you know a propper location to put it on?
@@punpcklbw good thinking, fastest c64 mul routine used this, but spares the x+y x-y calculations with clever adressing, its a little addressing setup and 2 substraction for 8x8 = 16bit mul
Really cool. Is there any chance to improve framerate to at least 3-4 fps?
Yes of course. This is a general implementation of the "Doom Engine" (BSP Tree).. If you limit the possibilities it can reach a lot more fps. Reducing the visible area alone gives more fps like in the plus/4 video.
Is it a vanilla c64?
Same speed like old vector graphic!
Jawdropping. I've seen several 3d engines for C64 but this is most promising. It's impossible to make full-featured Doom-like 3d engine for an 0.9 MhZ 6502 64kb - with textured walls, floor heights (animated!), sprites with alpha-channel and skyboxes... but you somehow managed to do it and I'm shocked.
Maybe if you make viewport smaller (by adding HUD art at the sides and top/bottom) and squeese another couple FPS?
Would an ASCII render speed it up? It would make the pre-rendered sprites take up more space...
2 fps? C64 rul3z 4e4! =)
Looks like raymarcher, but your frame rate is very high for bitmap - is this somehow using chars? Super cool code dude, if U can get to game logic and keep the frame rate this will be an awesome engine. Looks like you're mostly there.
It's single-buffered bitmap, with what appears to be double-height pixels (so effectively 160x100)
@@vytah Internally it's 160x100 in fullscreen version.. I don't remember why I did that.. Actually it's all based on eor filling and y resolution is no problem at all (except for memory and speed). But anyhow.. It's a doom engine on C64 and Plus4.
@joecincotta5805: No Raymarching involved and no chars (in this version) just 160x200 bitmap mode.
Double Pixels where because I intended dithering at start to have more colors (and it was charmode). But it looked much worse with dithering.
@@strictions Interesting. I wonder what an 160x200 version would look like (and how well it would run)
@strictions, eor filling? So you've no overdraw? How you get rid of overdraw? And what about clipping, is it performed in screen or world space?
@@agpxnet doom is zero overdraw, check up on how it does it. eor filling here is used to plot less pixels in the texturing phase.
How does it work?
It was coded in assembly language?
Yes!
No in phyton
Oh, I thought it was an Electron app. @@thek3743
Link download page not found?!.
Corrected! Sorry for the inconvenience!
Fullscreen as in no borders?
No it was meant as 320x200 (so to say)
Is it better than Castle Master though?
I love castle master! Thanks for the hint!
Especially the music of castle master is a master piece!
Use a Supercpu, it'll run faster and smoother.
Not stock is no fun you do it homie or just playback this at 2x for real time simulation
C128 mode at 2 MHz
There was a SuperCPU version (c64) actually just LAX and others (illegal opcodes) where removed.
The rendering is good, but it doesn't manage to calculate in real time. This can't be refreshed more or less on every 8th frame, possibly every 4th? What about a REU and pre-render movies? I get you won't be able to control the motion yourself, but the output would not differ much as one tend to want a good tracked movement.
Trippy as fuck weird virtual world on a computer that can barely do sprites
Even if this is technologically impressive, it is not going to dazzle many people. I don't really see the point. With modern tools, algorithms and dev tools we can do almost anything with old hardware. There is no comparison to the situation developers had in the 1980's. I was part of the demo scene myself back in the day, and I enjoy watching demos on old retro hardware, but this is just a very bad fit.
Nice view, thanks!
whats the point climbing mountains? collecting old cars? same point here.