Тёмный

Dread Ep 01 - making "Doom" clone for Amiga 500 

KK/Altair
Подписаться 2,8 тыс.
Просмотров 52 тыс.
50% 1

Could a "Doom" clone run on a 7MHz Amiga 500 with 1MB of RAM?
Here's a little "making of" episode for my secret project aiming for the above.
Sorry for all potential issues with voice, video, editing and stuff - I'm still learning making such videos.
Have fun!!

Опубликовано:

 

16 сен 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 321   
@Nostalgianerd
@Nostalgianerd 4 года назад
It looks bloody amazing.
@SylkaChan
@SylkaChan 3 года назад
Can you make it a tc for PC Doom? I would like to use the graphics for custom maps.
@MrSoulast
@MrSoulast 4 года назад
So now we just need a time machine that will be able to send a copy of it back to '90s.
@ctbullett300
@ctbullett300 4 года назад
@Frax Would have saved amiga
@piotrkozka9151
@piotrkozka9151 4 года назад
Winden caves will do
@adentse
@adentse 4 года назад
Exactlly my first thought :)
@trilkk
@trilkk 4 года назад
> "These two vertices do not matter, but I just had to." 100% authentic Doom level editing experience.
@guru332
@guru332 4 года назад
Absolutely amazing engine! This could have saved the Amiga back in the 90's!
@Thelemorf
@Thelemorf 4 года назад
Nah, the amiga died due to stupid business decisions..
@AmigaA-or2hj
@AmigaA-or2hj 4 года назад
I blame the penny pinching bosses at Commodore and the dominating Pee Cee market!
@tj71520
@tj71520 3 года назад
@@AmigaA-or2hj It was the Commodore douchebag management and PR people that killed Amiga and Commodore off... The technical staff was out of this world and would have handed them the entire world if they had been given just half a chance.
@NickFellows
@NickFellows Год назад
Its a nice thought, but the truth is more complicated than that. Bad management, law suits also had a part to play.
@lukassteinbrink322
@lukassteinbrink322 Год назад
The reason why everything went DOS and Windows is that those System can run on every PC you could bought.
@grongy6122
@grongy6122 4 года назад
I really like that scrolling sky effect.
@tankdriver23
@tankdriver23 4 года назад
John Carmack was wrong. Not only A4000 can do that but even a modest A500. You are a genius!
@Mixter81
@Mixter81 4 года назад
"This is a revolution. Making the impossible possible." - A500 talks with KK/Altair.
@Imgema
@Imgema 4 года назад
Except Carmack was 100% right and this is NOT a proper DOOM engine game. Just because it has the same artwork doesn't mean it has the same engine.
@boden_staendig
@boden_staendig 4 года назад
That's an emulator, though. Would it perform the same on a real A500?
@tankdriver23
@tankdriver23 4 года назад
@@boden_staendig Yes because the UAE is in the cycle exact mode, so the speed is the same as on the A500.
@Ehal256
@Ehal256 4 года назад
This is an extremely impressive project, but the geometric complexity supported at playable framerates is quite a bit lower than doom.
@ilpojaaskelainen1552
@ilpojaaskelainen1552 4 года назад
Truly breathtaking piece! A whole lot of work you've done for creating all those exporters and the actual engine.
@KKAltair
@KKAltair 4 года назад
Thanks! Actually, the exporter was first. Including the 3D preview of the map, to get a feeling how it would look on Amiga with 160x100 logical pixels, dithering and limited palette.
@dmwcashy
@dmwcashy 4 года назад
This is truly amazing work, looking forward to future updates.
@adroharv9213
@adroharv9213 4 года назад
crikey this is the most impressive work I've seen in a long time
@vwrafi
@vwrafi 4 года назад
This is great! It took my breath away. Such a nice game on stock A500.
@closedeyevisyals
@closedeyevisyals 4 года назад
Cool work KK, and I can definite see this scaling to something that's between wolf3d and doom 1 in complexity of level design, but with the extra touch of the doom-ish features like the texture offsets and non-90-degree angle-oriented geometry designs. Looking forward to seeing how this evolves :)
@KKAltair
@KKAltair 4 года назад
This is still a work in progress. The variable height floors will definitely come at some point. As soon as I got the ceilings running I focused on gameplay to avoid making just another techdemo, but that doesn't mean I forgot the engine.
@amipal24
@amipal24 4 года назад
I'm astounded by this - that framerate! Wow! Keep up the good work!
@Ryanfox1981
@Ryanfox1981 4 года назад
I'd love to try this on my A500 with 1MB chip and 4MB fast :) Technically this is damned awesome. Can't wait for a playable demo!
@thomasboisse605
@thomasboisse605 4 года назад
Awsome !!! Just Awsome! Keep up the great Work an dont listen to the critics. Most of em dont even have the knowledge to see what awsome project this is.
@tankdriver23
@tankdriver23 4 года назад
From: John Carmack Date: Sat, 3 Sep 94 11:50:23 -0600 To: G.San...@ais.gu.edu.au Subject: amiga doom The amiga is not powerfull enough to run DOOM. It takes the full speed of a 68040 to play the game properly even if you have a chunky pixel mode in hardware. Having to convert to bit planes would kill it even on the fastest amiga hardware, not to mention the effect it would have on the majority of the amiga base. John Carmack
@Corsa15DT
@Corsa15DT 3 года назад
@@nonarKitten Yes, A1200 was 386SX competitor, it was suppose to run these 3D games much better. Never did.
@Flofutz
@Flofutz 4 года назад
And it isn't even the 1st of April.... Somhow i can't belive it. I have to say thank you, and i can't wait for it
@RetroGamingMag
@RetroGamingMag 4 года назад
Awesome work here so far. Definitely one we are watching. Thank you for putting the effort into making it happen.
@piotrkozka9151
@piotrkozka9151 4 года назад
That looks amazing, given the hardware. Great job :)
@KKAltair
@KKAltair 3 года назад
Thank you very much!
@mcmussla
@mcmussla 2 года назад
Wow, very impressive work! What a cool project
@TonimanGalvez
@TonimanGalvez 4 года назад
I am really impressed with this WIP demo. May I suggest you use HW sprite for the hand with the gun? I've got a very good 16 colours palette that may be very helpful. Keep up the good work!!!
@KKAltair
@KKAltair 4 года назад
I'm seriously considering dedicating an episode just to fixing a hand (change dithering, use sprites, and see what's best for performance and quality).
@rayforceaddict
@rayforceaddict 4 года назад
This is very impressive. I wonder if the art style could be less dithered (like on the hand), but I am totally blown away by how well this runs. Comparing it to Alien Breed 3d, this looks a lot better even if it's lower color.
@KKAltair
@KKAltair 4 года назад
Hand-pixeled sprites for weapons are in the works. It's good to have supporting collaborators. :)
@RMCRetro
@RMCRetro 4 года назад
Amazing stuff
@rootbeer666
@rootbeer666 4 года назад
I have been exploring the challenges of making an FPS game on Amiga for a few years now and am quite intrigued by your effort. The striping texture rendering reminds me somewhat of the FPS efforts on the Sega Genesis. Subscribed!
@robsku1
@robsku1 4 года назад
It creates kind a cool side-effect as well :) I know that it's not intentional and the preferred method would be to draw it solid, but sometimes these side-effects of optimization result in a quirky look that some of us actually end up loving :)
@RetroDavePlunder
@RetroDavePlunder 4 года назад
This is awesome, I would have definitely bought a game like that back at the time of my beloved A500. How is a performance like that even possible?
@KKAltair
@KKAltair 4 года назад
Sum of all little optimizations I could have thought of. Including rendering algorithm that's way better than Doom - one closer to Duke Nukem 3D, with extra precomputed stuff for map drawing.
@robsku1
@robsku1 4 года назад
@@KKAltair Have you made a video explaining the rendering algorithms and optimizations you used to implement this? If you haven't, I would love it if you did - and please, if you will, open up a bit on how you came to choose them? Oh well, just a humble request :) and maybe you already did make such video... haven't checked yet :D
@tj71520
@tj71520 3 года назад
@@KKAltair I assume its all done in assembler?
@fondriesete
@fondriesete 4 года назад
Oh my god, if in 90 this thing comes out before ID Doom, Amiga's story would have changed
@pkaulf
@pkaulf 4 года назад
By the time Doom came out, Commodore's fortunes were already in terminal decline and the Amiga was completely irrelevant in the USA market.
@fondriesete
@fondriesete 4 года назад
I said, if it had been before the ID Doom
@tj71520
@tj71520 3 года назад
This is extremely impressive. Imagine having a game like this back when the Amiga 500 was new...
@electronash
@electronash 4 года назад
This is great. Not only the engine itself, but the editor. Well done. ;)
@KKAltair
@KKAltair 4 года назад
I'm using Doom Builder 2 for editing. It's a free editor for Doom, which can be easily reconfigured to work with other games. It comes with configs for all games on Doom engine, but gives no problems adding new one. I've written just the converter which offers map preview (for me to check if everything works OK), but otherwise has no editing features.
@electronash
@electronash 4 года назад
@@KKAltair Oh, I see. It's been a long time since I used a DOOM editor. Like... 25 years. How time has flown by. hehe I remember the sweet spot for a PC spec back then was a 486 DX4-100. That was often a good machine for DOOM.
@robsku1
@robsku1 4 года назад
@@electronash Hasn't been even 20 years for me - I must get back! And finish my megawad project - even if it's not going to be a megawad... Maybe a mid-size partial conversion! If I can just get myself to start I could see if I still have the same love for it... Who knows, maybe I could make it a whole 32-level thing... I would have to start by checking out the new engines, mapping, scripting and other features of them, then upgrade my original (which unfortunately possibly exists only as a demo released originally on ftp.cdrom.com/pub/idgames/ which is long gone. Unless I'll find my work files on some of my old hard drives. I'm just afraid that all of them might have been only on one HD that's broken almost as long ago. But it's still available under the name KTA for Kill Them All on doomworld.com - I prefer it simple :) - the name that is; I don't have a fantastic storyline, just some maps and stuff that is needed for a good game of DooM. There's two released versions, the latter one is for BooM engine I believe and the former was an earlier phase made for the original engine and used a DeHackEd patch to modify the executable.) I especially want to really badly do a complete remake of the MAP01, because although some gave good reviews of it back in the day, I've now come to think that it sucks. P.S. I did it again... When will I get rid of my habit of starting a short side not inside of parenthesis and make it a huge multi-sentence moster... I actually started 2nd parenthesis inside the first, but edited it away :D Really really bad habit.
@zo1dberg
@zo1dberg 4 года назад
I'd love to see this on a real 1MB 7.14Mhz Amiga 500. I've played many 3D games on my Amiga back in the day and the frame rates were horrible without texture mapping but this is as smooth as butter.
@zo1dberg
@zo1dberg 4 года назад
Having said that, this would have been a killer-app back in the 80s/early 90s. This game could have saved Commodore!
@valenrn8657
@valenrn8657 4 года назад
For CPU 7.09379 Mhz for PAL mode 7.15909 Mhz for NTSC mode. Custom chips have slightly higher clock speed with NTSC mode.
@123DarkG123
@123DarkG123 4 года назад
this is insane..... so awesome.
@lebigsquare
@lebigsquare 2 года назад
Incredible.. Excellent work !
@TemalCageman
@TemalCageman 3 года назад
This is amazing!!!
@KKAltair
@KKAltair 3 года назад
Thanks! :)
@CRG
@CRG 4 года назад
Fantastic video, the performance of the game is remarkable. Subbed!
@idadru
@idadru 4 года назад
Seeing a link to this video on /. put a smile on my face. Never had the joy of an Amiga but as a collector of retro tech I would to someday play this on some real hardware if the used goods gods smile on me and I find one in the wild!
@KKAltair
@KKAltair 4 года назад
They are relatively easy to find, at least in Europe, and A500's go for about $120 around here in Poland. Consider subscribing if you'd like to watch the progress and eventually get a binary to play yourself. :)
@idadru
@idadru 4 года назад
@@KKAltair Subb'd my friend. Actually surprised at myself for not hitting sub before commenting. I wish you the best and I'm excited to see what we can see down the road.
@lechistanskiswit320
@lechistanskiswit320 4 года назад
Amazing job! I wonder how good could be Alien Breed 3d on this engine with 2MB RAM.
@tj71520
@tj71520 3 года назад
in theory, a vastly superior alien breed 3d could be made as a megawad or iwad for this engine on the Amiga 500
@Vretrocomputing
@Vretrocomputing 3 года назад
This is brilliant.
@KKAltair
@KKAltair 3 года назад
Thanks! :)
@nessvsninten
@nessvsninten 4 года назад
A dream come true, really.
@D6team
@D6team 4 года назад
:O woooow! Ultra impressive ! :) Jak zawsze wymiatasz Krzychu :) Szacun :)
@pascalvisa4911
@pascalvisa4911 4 года назад
Very impressive.
@miked421
@miked421 4 года назад
Amazing. Absolutely great!!
@namakudamono
@namakudamono 4 года назад
Incredible work! This is like an episode of GameHut, but for the A500!
@jpsaf
@jpsaf 4 года назад
Outstanding! more man ... more....
@pacpacfujishima
@pacpacfujishima 4 года назад
Could you at some point put it on the A1200/020 to see how it fares against the Doom-type games we had back in the day? Alien Breed 3D, Gloom, etc. Because it seems that your approach somehow is better/faster than what we got back then. With all respect to Team 17 coders but Alien Breed 3D (as I remember) was half your resolution and half your frame rate in a machine at least twice as powerful!? (I know it had stairs etc, but anyway). Thanks for your great work, it looks brilliant.
@flype44
@flype44 4 года назад
Very very impressive !
@DutchRetroGuy
@DutchRetroGuy 4 года назад
Great stuff! Keep up the good work, I'm looking forward to the game :)
@ogabrielcasanova
@ogabrielcasanova 4 года назад
This looks incredible. Holy cow.
@Horrordelic
@Horrordelic 4 года назад
Amazing !!!
@danmanx2
@danmanx2 4 года назад
This is really cool. Nice job!
@DoomKid
@DoomKid 4 года назад
This is so cool, I’m very impressed!
@Revilerify
@Revilerify 4 года назад
Your voice is ASMR gold
@MrNonesuch
@MrNonesuch 4 года назад
This is amazingly well done. Good work 🙂
@valenrn8657
@valenrn8657 4 года назад
NTSC mode could yield slightly faster performance over PAL mode.
@KKAltair
@KKAltair 4 года назад
Very doubtful. NTSC means DMA has to transfer 60 frames/s instead of 50. While using 4 bitplanes mostly prevents display DMA from taking too much bus time, they still clash at the times display DMA, the Blitter and the CPU are all active at the same time (which does happen in my design).
@jcdenton4911
@jcdenton4911 4 года назад
Really cool, great work :)
@guynamederick
@guynamederick 4 года назад
Hooray Freedoom to make games!
@MrMarianoamigo
@MrMarianoamigo 3 года назад
W odbiorze bardzo "doomowate" i o to chodzi, rewelacja.
@KKAltair
@KKAltair 3 года назад
Zobaczymy jak będzie po zmianie wszystkich tekstur (soon!). :)
@KevinSaunders
@KevinSaunders 4 года назад
Thanks for the video, impressive work indeed.
@Optimus6128
@Optimus6128 4 года назад
Doom clone on Amiga and using Doom Builder for tool? Wow!!!
@nathanielguggenheim5522
@nathanielguggenheim5522 3 года назад
Niceeee! 👍
@KKAltair
@KKAltair 3 года назад
Thanks! 😁
@FinalLuigi
@FinalLuigi 4 года назад
If Doom existed for the Amiga, DOS and x86 would have never taken over the computer market.
@First_Ninja
@First_Ninja 4 года назад
@KK/Altair - amazing! This game _screams_ for network support using the Envoy networking system (tailored made for AmigaOS). If you don't have the time to implement it yourself - is there any chance you'll release the sources (GitHub?), eventually? Best of luck with the development!
@KKAltair
@KKAltair 4 года назад
Well, at some point I'd love the idea of multiplayer support, but serial cable would be easiest to implement. Especially that I plan to use custom bootloader and completely kick out the system to get as much memory from 512k+512k config as possible. Also the fact that the game is delta-based would cause some problems for making co-op modes (I'd have to sync the enemy simulation).
@First_Ninja
@First_Ninja 4 года назад
@@KKAltair - got it. Hopefully, you'll reconsider. Locking out the Amigas greatest asset - its revolutionary operating system - sounds all backwards to me. Imagine a Windows game that would only run from USB, that would also require a serial cable for multiplayer. No one would accept that. Please don't treat Amigas users any differently. Rather, see system friendly compatibility as part of the challenge! :) Best of luck!
@KKAltair
@KKAltair 4 года назад
@@First_Ninja Well, I was raised on Amiga 600 with no hard drive, so booting from disks and disk swapping was kind of standard procedure for me. Right now the game is just an exe that's OS friendly, but I'm finding myself constantly fighting against memory limit. But my main priority is a stock A500+512k and if I'm faced with a choice of keeping useless OS drivers or adding an extra monster or a few textures, the latter is a no-brainer for me. Stock A500+512k with just a floppy is king here, and all other features will have to align. But that said, I will keep in mind both HDD boot and keeping OS/drivers alive - just expect it to require some more system memory.
@First_Ninja
@First_Ninja 4 года назад
@@KKAltair Understood. Ideally, the program would adopt to the system resources it has at hand. Running in a miniscule environment (like an unexpanded A1000/A500/A600/A2000) is all in itself an acomplishment, but the year is 2020 and the reality is that most Amiga owners today have expanded systems with a lot more RAM, SSD-like hard drive storage, the latest version of AmigaOS (3.1.4.1, released last summer) and - of course - Ethernet or wifi networking capabilities. The reality is that every Amiga is pretty much unique - even within a particular model range of Amigas (like the 500, there are significant hardware differences). It would be nice if you would have all of this in mind while moving forwards, and that the program would dynamically request the system resources it needs. Again, it's an awesome project you're managing, and I hope for the very best!
@KKAltair
@KKAltair 4 года назад
@@First_Ninja I think you extrapolate what you own to others a bit too much. I don't even own an A1200, and I know a lot of people who do as well, or own it in more or less a stock configuration. But my primary reason for targeting a bare A500 is that it wasn't done before. Expanded Amigas, or even a stock A1200 already have good FPS games. It's A500 that doesn't shine in this field. I definitely will keep expanded systems in mind, and they could benefit from smoother framerate, HD loads and keeping things in RAM instead of constant loading, but everything should be playable on a stock A500+512k as well.
@madmax2069
@madmax2069 4 года назад
awesome, subbed
@Krslaurent
@Krslaurent 4 года назад
thank you for this video and very good job for a doom 500
@KKC78
@KKC78 11 месяцев назад
This is great!
@GraveUypo
@GraveUypo 4 года назад
if you hold shift you can flood-fill all adjacent walls that have the same texture with the new texture you're painting them with. no need to go around painting one by one. just saying.
@KKAltair
@KKAltair 4 года назад
I'm definitely going to use that tip!! Thanks! :)
@pocketstationman6364
@pocketstationman6364 4 года назад
Very cool!
@Tiriris
@Tiriris 4 года назад
oh my god
@per-olaeriksson2589
@per-olaeriksson2589 4 года назад
AWESOME ! work MAN !
@Kr1s68k
@Kr1s68k 4 года назад
Just wow.
@raphaelbovey5676
@raphaelbovey5676 4 года назад
Impressive
@10p6
@10p6 4 года назад
Wow, if only I could persuade you to work on the Atari Jaguar. :-)
@panagouleas
@panagouleas 4 года назад
Nice effort!
@johanvirebrand7196
@johanvirebrand7196 4 года назад
Really cool project, I will following this closely! :)
@d_vibe-swe
@d_vibe-swe 4 года назад
Awesome! Will it be this smooth on real hardware? Will there be any performance gain using an A1200?
@KKAltair
@KKAltair 4 года назад
Yes, the performance is the same. And A1200 should play it at almost 25 FPS (I haven't tested it on real A1200 because I don't own one, though).
@robsku1
@robsku1 4 года назад
@@KKAltair Wow, if I remember correctly the original DooM engine had hardcoded top-FPS limit of 24 - that's the smoothest it ever ran, before the source ports :) Even though being a much more limited engine, I haven't heard of another "doom like" game (well, basically any textured 3d game - and let's not go to the "it's not real 3d", it's not really relevant) running on Amiga that smoothly (it may be that I don't know them all or well enough, I haven't actually played any of them and I lost my A500 [as well as never had any other Amigas]). Someday I should check them all, even if just with an emulator...
@KKAltair
@KKAltair 4 года назад
@@robsku1 Original DooM ran at fixed framerate 35Hz.
@nikosidis
@nikosidis 4 года назад
I have a feeling this will be the most watched video this year :) Who would have thoght this is possible. Standard PAL resolution right?
@KKAltair
@KKAltair 4 года назад
PAL resolution, but logical in-game screen is 160x100. Extra horizontal resolution is used for dithering, and vertically lines are doubled with copper. But I don't think this video will be watched that much - not that many retro fans out there (a.k.a. "Tak niewielu nas zostało..."). ;)
@nikosidis
@nikosidis 4 года назад
@@KKAltair I'm pretty sure it will be over 1000 views in 1 week :) I for sure meant most watched Amiga video. The Amiga is getting more popular again, many are coming back. You are for sure helping with this kind of game :) What about network play. Would it be possible for people with internet connection?
@KKAltair
@KKAltair 4 года назад
@@nikosidis Looks like it's over 2000 views in under 24h. :)
@nikosidis
@nikosidis 4 года назад
@@KKAltair That is crazy man!! Gratz :D
@simonebernacchia5724
@simonebernacchia5724 4 года назад
@@KKAltair (yet)
@meanmole3212
@meanmole3212 3 года назад
In 9:29 you are leaving 2 triangle spaces as a single shared sector (the sectors in question are the left side of the left box and top side of the right box). In 9:56 all of the triangle spaces are created as individual sectors. Or that what it seems like if Doom Builder 2 behaves the same way Doom Builder 1 does and does not automatically create new sectors in this situation. Maybe this is the issue? Well anyway, it does not matter since you probably have the automatic convex shape converter ready by now.
@KKAltair
@KKAltair 3 года назад
Good catch! I do use the sector mode highlighting to check things, but it's still not as foolproof as you can image. And no - the automatic subdivision is still not in. My steam went into other features seen in other videos. :)
@meanmole3212
@meanmole3212 3 года назад
​@@KKAltair It seems the last month has left my brains over-sensitive to stuff like this. I have been banging my head against the wall while trying to implement a Quake 1 map format parser and proper occlusion culling for my demo engine so that I can load geometry from TrenchBroom editor. In a sense somewhat similar to what you are doing in this episode, except I don't need to worry about ridiculous system limits! I read about your project from a Finnish demoscene / computer magazine called Skrolli and had to come see what's up. I have not watched the other parts yet, but judging by the first episode this is going to be very cool and interesting series! Keep up the good work!
@KKAltair
@KKAltair 3 года назад
@@meanmole3212 Quake 1 BSP file format is quite fun, although as far as I remember, occlusion wasn't that bad as it was just a cluster visibility matrix. Computing lightmap UV was way more messy. :)
@meanmole3212
@meanmole3212 3 года назад
​@@KKAltair Quake uses the precalculated potentially visible sets to determine which parts of the map is visible from each location, and based on that information you can do the visibility culling alone just by figuring out where the camera's position is in the world. Is this what you refer to with "cluster visibility matrix"? Calculating the lightmaps and the potentially visible sets is beyond my understanding for now since I have not found very good resources about these topics, except the original source code of Quake. For now, I decided to do the culling in real-time based on camera frustum and a leafy BSP tree's leaf nodes containing chunks of the map's polygons. Calculating spheres and bounding boxes for these nodes allows a quick way to cull all of the geometry outside the camera frustum, but after that, every node that gets captured inside the camera frustum must be also culled based on if they are occluding each other in depth. This is what I am currently working on, and the plan is to utilize each node's bounding box and OpenGL's occlusion queries to determine which nodes are actually visible to the camera. Things get tricky when you also have to consider how to bind all of the map's textures efficiently with minimal amount of bindings. As far as I know, Quake's GL version sorts all of the visible polygons based on their textures and draws them in chunks with minimal amount texture bindings. I was able to eliminate this every frame sorting step with the aid of OpenGL's 2D array textures and a vertex attribute that supplies the index of the texture. If no sorting and reconstruction of the geometry is needed each frame, then the map's geometry can be packed inside a single static VAO whose triangles will be pre-sorted based on BSP tree's leaf nodes. This allows quick drawing of separate nodes instead of the whole VAO when index ranges are used. To be honest, I am not even sure does this kind of sliced index drawing yield any performance advantages. If the geometry is already in GPU's memory and does not change, does it make a difference to draw slices of it instead of drawing the whole thing all at once? OpenGL performs automatic clipping for the geometry that is outside the screen space anyway. I guess there's some benefit when it comes to drawing the overlapping geometry in z-direction because that geometry resides inside the screen space.
@KKAltair
@KKAltair 3 года назад
​@@meanmole3212 Yes. It's "cluster visibility matrix", because every BSP leaf has cluster ID (clusters are simply groups of BSP leaves), and matrix is just a NxN table with "1" on row/column intersections when a cluster X can ever possibly see the cluster Y. (the matrix is stored as triangular matrix, iirc, to save memory) You don't have to calculate lightmaps and visibility at all - you have it stored precomputed in the BSP file already. Even then, computing lightmaps yourself is not that hard and it's a matter of casting rays from lightsources to lightmap texels (plus some edge cases). On the other hand, precomputing visibility is haaaard. As far as frustum culling goes, you can do rough culling while parsing the BSP. At each tree node, you can check whether the camera looks away from the split plane and discard huge chunks of the BSP tree. I'd completely skip the OpenGL occlusion culling if you are to go with Quake BSP. You have perfect occlusion precomputed there, and recomputing it real-time just would make things slower. And last but not least, your last point is more than valid. Quake maps are lowpoly by all today standards. One modern character has more polygons than that. Depth complexity (overdraw) might still be a minor concern, but GPUs are really good with fill rate now. So you can scratch all the above talk, extract all triangles, batch them by texture to limit draw calls and you are good to go. You might do a z-prepass or even look up the occlusion matrix on the Compute Shader to speed things up, but why bother? Because the truth is... even 20 years ago an average computer at my university could smoothly draw Quake 2 maps without any optimizations other than drawcall batching.
@SKraus-pb1ii
@SKraus-pb1ii 4 года назад
great stuff....
@kyle8952
@kyle8952 4 года назад
this graphics and map design is better than alien breed 3d. for one, we can actually tell what the fuck we're supposed to be looking at, which in that game is impossible.
@NanNaN-jw6hl
@NanNaN-jw6hl 4 года назад
This says it is about making an engine for an Amiga-Doom -- but it is actually about making a map (not the engine). I wanted to know about the design choices and technologies of the engine. Are you going to post a video about the engine itself?
@KKAltair
@KKAltair 4 года назад
You can find my talk about technical details here: ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-a57QJAE5118.html I will try to rework this into a more organized episodes when I'm done with the map and get some more confidence with the video editing.
@madcat789
@madcat789 4 года назад
The absolute mad man.
@RabidGerry
@RabidGerry 4 года назад
I am sure the will be some very negative opinions out there about this possibly saying it's a waste of time or whatever BUT I think the work you are doing is fantastic so please keep going!!! It looks really good so far. If you get it going on the Amiga 500 that means it would work as well or better on my Amiga 1200 version when/if it come out!!
@KKAltair
@KKAltair 4 года назад
Thanks! :) And waste of time or not... what uninterested people say is completely beyond my own interest. I make it for people who *do* care. :) (still, it got my channel up to over 1200 subs, so that's probably best waste of time I did in a while :) )
@RabidGerry
@RabidGerry 4 года назад
@@KKAltair the best waste of time ever hahaha. No just keep up with the amazing work. Imagine you made a fucking incredible game for all us Amiga fans to play? It would be/Will be amazing. Totally admire you great skills, and your videos which are very complex and interesting. I can't wait for what ever the outcome will be.
@KKAltair
@KKAltair 4 года назад
@@RabidGerry Thanks again! :)
@Mithandriel
@Mithandriel 4 года назад
Impressive....
@Szymanskill
@Szymanskill 4 года назад
Very impressive, could be fun to make maps for
@amigadude6409
@amigadude6409 4 года назад
Very interesting....awesome work.
@Alexander-dt2eq
@Alexander-dt2eq 4 года назад
Could you use the engine to make a "Wing commander" clone too?
@KKAltair
@KKAltair 4 года назад
No. That would require a completely different engine feature set. This specializes in top-down maps and vertical walls.
@miguelcubellsbaeza5441
@miguelcubellsbaeza5441 4 года назад
Simply awesome.... !!!
@MrThairacer
@MrThairacer 4 года назад
YOU DO IT ! great :)
@nonamehjb
@nonamehjb 4 года назад
Awesome work, KK! Maybe you could later do the hand with sprites to remove the stripes?
@KKAltair
@KKAltair 4 года назад
Hand is just badly dithered. By adjusting skin tone and dithering settings it should look much better. I just didn't focus on that little problem and let is slip.
@Leeki85
@Leeki85 4 года назад
I wonder why this is working so much better than other 'doom clones' for Amiga? There were skilled programmers in the 90's as well, so what's the difference? Did you discovered something new? New technique to draw such 2.5D environments or just really deep optimizations. Is 16 color mode helping a lot? Other doom clones aimed for more colors and run slower on Amiga 1200 with smaller screen size. This runs about as fast as Wolfenstein 3D on 24 MHz 386SX which was clearly faster than 7MHz M68K and simple framebuffer of VGA is faster for 3D than Amiga's ECS.
@KKAltair
@KKAltair 4 года назад
Technique is much different from Wolf3D (raycasting) and Doom (BSP), and more like Duke Nukem 3D (front-to-back portal rendering). Except that I precomputed everything possible, optimized drawing routines to death and use quarter resolution (160x100 logical pixels). 16bit mode is optimal here, because more bitplanes cause display DMA to start cutting into CPU/Blitter bus time. And it's also very convenient with C2P. I might have discovered a trick or two along the way, but everything is more like a sum of a bunch of tricks and optimizations rather than a single major breakthrough.
@amcadam26
@amcadam26 4 года назад
Would Fast Ram help performance? What about on an A1200 with 4MB fast ram? That's what I had.
@KKAltair
@KKAltair 4 года назад
Fast RAM helps immensely, and A1200 provides completely smooth gameplay. I had exact stats somewhere, but can't find them at the moment.
@amcadam26
@amcadam26 4 года назад
@@KKAltair So, a playable version of doom would have been possible on a stock A1200 and then totally smooth with fast Ram? The 13 year old me is crying right now.
@KKAltair
@KKAltair 4 года назад
@@amcadam26 This is not Doom. It runs quarter the resolution and everything is ether simplified or optimized. But that's what you have to do to get such a thing running.
@robsku1
@robsku1 4 года назад
Interesting - 4MB was the minimum RAM requirement for original DooM on PC; I wonder, if this runs on A500, surely a more advanced version that's closer to original, maybe even able to use the same map format directly (although if the new one provides faster rendering, maybe a map format like the current one, but with all or most the features of DooM WAD maps remaining), could be made for A1200? I'm not talking about exact clone, but close enough to *not* be in same category as the most limited official DooM releases for consoles (SNES and GBA versions come to my mind first) but rather closer to the DooM engine than them, even if using a completely different renderer... Are you planning on developing a more advanced version for A1200, or will it be the same as A500 version? Or maybe have features that you can turn on/off if you have the machine for it? That would be neat. edit: Oh, I just realized... My response was written more for the KK/Altair than to the original posters comment... Sorry about that :)
@natwilson3133
@natwilson3133 4 года назад
Amazing work. Looking forward to playing this on a real Amiga. Really stunning. Well done. PS are you the person who did Wolf3D for Genesis?
@KKAltair
@KKAltair 4 года назад
No. I never did anything for Genesis (yet). I did some PC intros and retro stuff on the demoscene - check other videos in my channel to see exactly what. :)
@bswierko
@bswierko 3 года назад
Powodzenia! :)
@NickFellows
@NickFellows Год назад
Could some of the tricks used in this be used to make other genre of game eg flight sims or mario cart clone ?
@AmigaA-or2hj
@AmigaA-or2hj 4 года назад
Will it be available on public domain? Looks cool. Better than Gloom.
@KKAltair
@KKAltair 4 года назад
Demo (or demos) will definitely be. As for the bigger versions (or even constant updates), I was considering adding small supporter fee, or something, to help me not running out of steam with this project.
@rasz
@rasz 4 года назад
We are talking Amiga here, nothing is ever released for free, everyone thinks they will make big bucks on a dead platform.
@KKAltair
@KKAltair 4 года назад
@@rasz I don't expect any serious money from this project. And don't worry, I will be releasing free playable versions. But on the other hand, I have no obligation to release everything instantly for free and it's completely normal for people to get supporters which enjoy additional benefits (e.g. up-to-date build after each video - why not).
@robsku1
@robsku1 4 года назад
@@KKAltair More than I'm interested about whether the game itself will be available for free or not I'm interested if you will open source the engine? It's definitely something worth preserving as well as sharing with the community :)
@KKAltair
@KKAltair 4 года назад
@@robsku1 At one point - definitely open source. I'm all for preserving culture.
@kjanosch5547
@kjanosch5547 4 года назад
More !!!!!!!
@KKAltair
@KKAltair 4 года назад
Already on it! :)
@LewickiPiotr
@LewickiPiotr 4 года назад
Fcking awesome
@lincruste
@lincruste 4 года назад
What are the upper left hand corner numbers ?
@KKAltair
@KKAltair 4 года назад
Number of PAL frames (50Hz) required to render a frame.
@chrisxdeboy
@chrisxdeboy 4 года назад
Do you think this could be ported to the Sega Genesis/Mega Drive? It also runs on a 7.5mhz M68000 and there's still a lucrative market for Mega Drive games in Brazil!
@robsku1
@robsku1 4 года назад
Edit: Just a small piece of my thought, LOL :DDDD I'd love to see what could be done with it - does it have custom graphics capabilities that could be used to optimize doom-likish 3D (I know, it's actually not real 3D rendering) rendering? Because that's what was the biggest issue with different console ports, none of the 16-bit ones I remember could do it the way DooM did it and just like this project, custom engines were created specifically targetting the hardware were made for each, even going so far as adding a custom graphics chip on the game cartridge to gain performance. I believe it was the SNES version that did this but I'm not sure if it was the only one. I think it was the GBA that could have had way better gameplay if John Carmack had accepted it, which he didn't and I believe he later admitted being a wrong choice. It was because of how it used the hardware to optimize rendering created unwanted distortions and "movement" on textures; unfortunately the engine had to be scratched and rewritten at cost of making more compromises on level complexity, number of enemies visible at once, etc. etc. *and* still ending up being one of the worst console ports of DooM when it comes to FPS - horribly choppy gameplay. The big issue is that Amigas video system works differently than that of a Mega Drive/Genesis - and it's more than probable that this particular renderer written specifically to abuse ( ;) ) the graphics capabilities of A500 to achieve it will be totally infeasible on Mega Drive/Genesis. The CPU being the same only means that the CPU is theoretically powerful enough to implement a doom-like engine (with much more sever limitations) *if* there's a way to do it fast enough with the graphics chip available on the device (unless you want to make a custom cart with accelerated graphics chip within it; that could even make this more directly portable if you included the graphics chip ripped from A500 on it :D, but how on earth would you get that product to others is where it becomes close to impossible - not worth the trouble and cost). The thing is that I doubt that the Genesis/Mega Drive graphics capabilities have what it takes to do this kind of renderer - they could outperform PC's on usual 2D game graphics, but they weren't that good for 3D (except simple vector graphics) - mostly the video chips sucked for rendering any graphics pixel by pixel while VGA's 256-color mode on PC was excellent for simply plotting pixels (and that's all it was really ;) ) and DooM used raw CPU power to render the graphics. There's much more optimization techniques involved in this project than DooM had to do on PC where you could utilize the power of 32-bit 386 and 486 CPU's and without *any* acceleration available for 3D or 3D-looking graphics on the chip a less powerful PC with less capable video chip (really, with 386's PC's started to be just as good for rendering any games without the need of hardware acceleration in the loose sense including hardware sprites, which was why 8-bit machines dominated over 16-bit PC's, so can't be counted out). Unless someone found a way to create a renderer using Mega Drive/Genesis graphics chip that could run as smoothly this would be what could kill the idea... ...if it wasn't for the final and most devastating fact about 16-bit game consoles: They suck when it comes to available RAM. 72 kB of RAM, 64 kB of video RAM in case of Mega Drive/Genesis. Sure, the game can be as large as 4MB, but the RAM available is just devastating for this kind of game. I wonder how they got around this with SNES? Maybe they had extra RAM chip in the game cartridge (which is *not* as far fetched idea at all).
@KKAltair
@KKAltair 4 года назад
CPU alone does 99% of work here, so porting is only a matter of getting the result on the screen, talking with the system (kernel, input, etc) and such. If a system has 68000 7MHz or above and some sensible means of getting chunky graphics on the screen, then it probably could be ported (there is one port on the way ;) ).
@chrisxdeboy
@chrisxdeboy 4 года назад
@@KKAltair Ohh, what's the port? And yeah, it has 4 16-color palettes so each tile can do 16 colors. Also if you look up Gasega68K's port of Wolfenstein 3D to the console, he uses a similar dithering method to give the impression of more colors onscreen than the system can actually do. Also you'd probably have to make the viewport a little smaller, but who knows?
@KKAltair
@KKAltair 4 года назад
@@chrisxdeboy I don't want to reveal the port too soon, but my personal deadline for it is early December. ;) As for Genesis/MD, I would have to look up the specs, but who knows. :)
@chrisxdeboy
@chrisxdeboy 4 года назад
@@KKAltair Atari ST?
@proberush
@proberush 4 года назад
holy crap
@Corsa15DT
@Corsa15DT 3 года назад
Amiga fans in 2020 still waiting for Doom :)
@KKAltair
@KKAltair 3 года назад
And one of them is writing one. :)
@Corsa15DT
@Corsa15DT 3 года назад
@@KKAltair tired of waiting, you've become
@robsku1
@robsku1 4 года назад
I came here from another video by Modern Vintage Gamer ( ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-JqP3ZzWiul0.html ) and without viewing any of your other videos (I had to search through them, I only had a mention of TerribleFire and a port of DooM (and Quake!?), or engine like it, on unaccelerated A500 and just had to search for it!) I automatically subscribed after this video! It's way too cool! I was just wondering, it seemed like the map is incorporated as data into the game executable itself (please correct me if I'm wrong), but won't that mean keeping *all* the maps in the game in memory at the same time? I'm sure you've made an informed choice here and I really shouldn't make too much assumptions, I'm guessing that's not an issue here... What about creating custom maps for it? Wouldn't it be much easier to have maps loaded from external files? Who knows, maybe I'm totally wrong here and that's actually what you are doing... If so, how does that work exactly - from C code to loadable map? I'm just very interested - not criticizing, just want to know you're thought about this and why you chose whatever it is you chose as a map format? I think it was a genius idea to build it so that you can use a DooM level editor to create the map - although it might be easier if the map editor was modified to support your format; have you thought about it? I'm sorry, yet another question, I just meant to compliment you :D My head is filled with questions, but I'll be *very* thankful if you can spare the time to answer even these :) Every new effort to port DooM to something, especially for an older platform, is something awesome, and this tickles my fancy even more than the "doom" clones on 8-bit machines, maybe because it seems to actually be a real DooM variant, albeit with some huge limitations.
@KKAltair
@KKAltair 4 года назад
There is only one map currently, and switching the map requires recompiling the executable. This was basically the easiest way to test things at the early stage of the engine, where the map data structures tend to change daily. First published demo will work this way, but then I'll work on a proper loader. And enabling custom maps (and scripts!) is one of my main goals, because I simply won't be able to produce as much content as I would like, all by myself. Doom Builder 2 is a really great editor, even if sometimes I have to work around some limitations (e.g. the "facade height" line type). Writing custom editor would be as much pain, as using it afterwards, so I preferred not to waste time on it (at least for now). And don't worry, keep the questions flowing! :) Thanks!
@MondySpartan
@MondySpartan 3 года назад
Using the Freedoom HUD I see...
@KKAltair
@KKAltair 3 года назад
Using FreeDoom... almost all? :) Thanks for the BSD license. :)
Далее
[DOOM] John Romero's Level Design Rules
7:52
Просмотров 338 тыс.
ANYONE can make a DOOM map.
7:05
Просмотров 122 тыс.
Second Reality PC and C64 at Once!
17:14
Просмотров 11 тыс.
I Hacked Diablo II To Use Modern Graphics
13:16
Просмотров 109 тыс.
The Wrath of Cortex is Consistently Frustrating
20:31
Просмотров 873 тыс.
Amiga Tech - Copper Chunky
19:37
Просмотров 10 тыс.
Why are Half Life’s SFX SO Funny?
9:54
Просмотров 259 тыс.
The story of VFX, Commodore Amiga and Babylon 5
8:46