How I Made a 3D Platformer in 2D Game Engine
Vložit
- čas přidán 18. 05. 2024
- Explanation how I made 3D platformer in Scratch from 3D rendering , game design to performance issues.
➤ Crystal seeker: scratch.mit.edu/projects/4635...
➤ Faster: turbowarp.org/463553665
➤ Description:
🔍 Explore the incredible journey behind the creation of Crystal Seeker, a groundbreaking 3D platformer crafted from scratch in the limitations of the 2D game engine. Witness the challenges, triumphs, and unique solutions that make this game stand out in the world of game development.
➤ Timestamps:
0:00 - Introduction
🌟 Discover why Crystal Seeker is more than just a generic 3D platformer. Delve into the unique challenges faced when building a 3D game in Scratch, a 2D game engine.
3:03 - 3D Basics
🤔 Uncover the complexities of implementing 3D in Scratch, from projection matrices to the laws governing 3D rendering. Learn the secrets behind creating a 3D experience in a 2D environment.
6:40 - Models
🎨 Dive into the intricacies of translating manually written cubes into a 3D model. Explore the challenges of using .obj files in Scratch and witness the dedication required to bring 3D models to life.
7:49 - Physics
⚙️ Experience the journey of overcoming challenges in physics and collision detection. Learn how a chance discovery in a C++ book led to a breakthrough in creating efficient collision systems for Crystal Seeker.
9:46 - Inside the Game
🕹️ Gain insights into the game design process and the meticulous optimization required for performance. Uncover the use of the Painter's Algorithm to address CPU rendering limitations in Scratch.
15:30 - Gameplay
🏆 Explore the simplicity and charm of the gameplay, focusing on the unique aspect of Crystal Seeker designed for speedrunning. Witness how seemingly limited movements become the foundation for an engaging speedrunning experience.
17:28- Boss Battles
👾 Meet the bosses - Dull Bull, Tech Mech, and Slog Frog. Learn about their simple yet strategic mechanics and discover the role they play in adding variety to the game.
19:06 - Things I Would Change
🔄 Reflect on the project's weaknesses.
🔔 Subscribe for more game development insights and stay connected for future projects!
➤ Credits:
Music
Kevin MacLeod (incompetech.com)
• "Adventure meme" • "Investigations" • "Jaunty Gumption" • "Magic Escape Room" • "No Good Layabout",
• "One Sly Move" • "Padnaya Blokov" • "Seven March" • "Spy Glass" • "Tiny Fugue" •"Townie Loop", • "Tyrant"
Licensed under Creative Commons: By Attribution 4.0 License
creativecommons.org/licenses/b...
• Vivaldi Four Seasons -...
CC BY-SA 1.0 DEED
Intro
/ @shiftclicklearn • Top 10 Scratch 3D Games!
/ @zonxscratch • Top 5 KILLER 3D Scratc...
/ @denshi • The Most Impressive Sc...
/ @thesteamist • TOP 10 Scratch Games 🎮...
C++
/ @thebennybox • #0 3D Game Engine Tuto...
/ @pardcode • C++ 3D Game Tutorial 2...
/ @javidx9 • Code-It-Yourself! 3D G...
/ @jdh • Programming a first pe...
Bob ross:
/ @bobross_thejoyofpainting • Bob Ross - Distant Hil...
Wall of China
en.wikipedia.org/wiki/Great_W... - Hry
As someone who has done speedruns of crystal seeker, its really cool that the game was designed with speedrunning in mind. I was actually the first person to "discover" the axe climbing at 17:00, so it was crazy to see it was intended all along. It was really fun to run the game, I should really go back to it sometime, maybe try to get the Any% record
inice bro story
@@crazychicken8290☠️
he is not your bro
@@Ningumkkkmaybe he is
@@Illager_Fries_Gaming k
The person who said this is not impressive doesn't know what they are talking about. This "generic platformer" is better than anything I could make in my 2 years of using unity because like you said it has a soul. In my opinion you have something truly special here. Hats off to you 👑
It was designed for speedrunning, and there's a lot of movement tech utilizing knockback to get you through faster.
It ain’t much compared to, say, SM65 or Crash Bandicoot, but not only are those some of the best of the best (especially at the time), but they were made on platforms designed for 3D stuff, while this was made on Scratch
Yeah I don't know what the hell that guy from the beginning's problem is. It is INFINITELY more impressive if you somehow make a 3D game in an engine meant for 2D games, rather than obviously using a 3D game engine (Unity for example) to make a 3D game
@@BoiGamer124 Not only that the game is actually fun and played by many and not just a 3D tech demo
@@OhCrapI_He Doing stuff the normal way is just never as cool. It's like making tetris vs making tetris on a redstone computer.
I think he trie creating a game that look as 3d crystal run but he failed
Scratch over Unity
hell yeah
This is the first comment
Unity is Temporary Scratch Is Eternal
scratch
@@user-tq8on6by4u nothing is eternal
Bruh, you made an entire graphics engine, and then created a game on top of it! This is super impressive! And the fact you made it in scratch, means you probably had to optimize the heck out of it! I am super impressed! Well done dude! I personally don't normally watch ScratchTubers, but you are an exeption! I subscribed, and turned on the bell! And left a like! I want to see more content! Keep it up man!
Saying that this is just as impresive as making a 3D engine in C++ is like saying that athleths running is just as impresive as driving a car.
i made 3d engines in scratch its not that hard but it is still impresive
@@fugusamdifficulty is subjective :3
@@skmgeek In truth programming a 3D Engine isnt that hard when you grasp the fundamentals.
A solid understanding of anything makes doing it easy.
@@linhero797thats what he meant
I still remember when I first played this 2 years ago and wondered how the hell it's so smooth IN SCRATCH
Imagine calling something "meh" because what a single person did isn't more impressive than Unity, a program that has been developing for almost twenty years by hundreds of employees.
You should consider making an expanded version with a real 3d engine such as Godot, because this kind of lovely retro game is something I'd pay for on Steam.
When griffpatch says "wow", you've done something amazing.
Your game has a cool retro vibe to it and the level design is fun, setting aside the limitations. I remember that the games/prototypes I feel most proud of, are the ones that are not as graphically impressive but the ones in which I learned more and had to do more hard work coding.
Been watching all your videos, really like the quality of the videos, you put in so much effort and there’s so much quality! Love it!
This is amazing. Probably the coolest project on scratch. I had in fact played the game before, but I didn't know it was yours. Good work.
Amazing, cant wait for the sequel :]
This game is legendary! This is the kind of stuff I could only dream of doing in Scratch back in the day haha
This project is so crazy. Keep making more of these things!
This video was the best scratch video I have ever watched. I liked the game because it had the n64/ps1 atmosphere.
Played this in school a few years ago before they blocked scratch, love every bit of it
Bruh wtf schools block scratch???
@@anname7373that's it, I'm calling 911.
Actually they don't because it is technically educational. Idk what school this guy goes to but unlucky!@@anname7373
Idk, maybe he should try playing it at home@@anname7373
worst school ever
Wow, great video! This explanation makes your game even more impressive
I had never heard of this game before watching this, and my previous experiences with '3d' scratch weren't very impressive, so i went into this video thinking this was just another half baked 3d platformer game, but no. You dominated all competition. I was genuinely blown away when i saw some gameplay of this. Good job mate
You inspired me to create my own 3D engine in scratch, thanks for that. Could you please do a tutorial on the topic of z-clipping?
Find codingbio tutorials
Thank you
is codingbio also on CZcams or just on scratch?
@@daniloarndt3597 scratch only
I looked at the z-clipping tutorial from codingbio. The algorithm in the tutorial clips the triangles in 2 dimensions. I have now made my own z-clipping algorithm that clips the triangles in 3 dimensions. I hope my algorithm is not weaker. Or should I rather use a 2D clipping algorithm?
whoever voiced PratixYT needs to go to hollywood, the accent, the deep voice, the menacing tone, everything is just immaculate. i guess the rest of the video is cool too.
This remembers me to Spu7nix, who made a whole physics engine in Geometry Dash just to make a level. Congrats btw
If something has an editor, there will be a Spu7nix of that thing to completely push the limits. This guy is the Spu7nix of Scratch.
Update: not only did he just make a physics engine, but he also made a 3D LEVEL using it (don't forget it is a 2D game) literally called "WHAT". He also made a programming language inside Geometry Dash (Spwn), and hosted the biggest collaboration to make a level (around 14.000 participants) called "Place" that worked like the r/place subreddit.
Just search it, it's amazing.
I really like that you can see the triangles. As texture mapping would certainly be way too hard, it is a good way to bring some detail into the render.
That speedrunning segment blew my mind, holy crap
you are an absolute legend
I had always wondered who made that game and _how_
very insightful video!!
as someone who coded a 3d rendering "engine" in pygame i cant imagine the effort to make this from scratch
props for both making the game and being a goated editor
I've thought for a long time that this is the most impressive game on scratch, huge props man!
YOU MADE CYTSTLA
WAAAAA ( very excited )
i love this game thank you for making this :3
I have been using scratch for at least 5 years now, and still could never make anything as cool as this. This Is Amazing!
Thx for making a video about it (the game is realy good for secretly playing it at school)
I can't imagine what this man can do with an actual 3D game engine
See that's what I always say. Giving yourself restrictions and pushing your limits makes you far better than those who stayed in their comfort zone.
@@stickguy9109 I agree, in this case he also undesrstood some of the core principles of 3D rendering
@@aless.c064 Which is very helpful when you are writing shaders
@@stickguy9109 A friend of mine is into shaders
he added 1 to 2d, so will he had 1 to 3d and make 4d?
the engine, and the game itself even are both incredible, i feel like it would be interesting to see what other people could do with your "engine", since you've put so much work into it, there is a lot of potential for 3D scratch games made with this.
Awesome video as always :)
I still can't believe this yt channel exists, you're like... my idol. Crystal seeker is one of the best online games I have ever played, The fact that it exists is actually mind-blowing. For the sequel, I wonder if you could find a way to make 3d enemies without affecting performance.
I cannot wait for you to talk about the tower defence!
this is so impressive
This is a great video! I've always wanted to make a 3d game in scratch, and this was very interesting. I don't think I have to mental capacity to do that though. Anyways, I loved your game, and your video! It was very funny.
Incredible!
your video series is a beacon of knowledge!
Really cool to learn how this game was made
Brilliant :)
Reminds me of trying to make 3D games in Game Maker back in the day, that's what lead me to learn C++ instead XD
your work always reflects your passion and dedication!
"Z buffering vs Painter's algorithm."
I was working awhile back on something 3D and this was really a problem. I ended up going down a huge rabbithole trying to figure out how to correctly segment triangles analytically.
there is also method called BSP, which is same painter's algorithm but it splits triangles that way you never have errors, at it doesn't have to sort triangles , make it much faster , with condition that triangles aren't moving (like in doom game). But it's EXTREMELY hard to make.
Nice quality +1 subscriber
You not not only made an 3D game in scratch YOU MADE AN EDITOR IN SCRATCH AND A ENTIRE 3D ENGINE THAT IS EXTREMELY IMPRESSIVE
You need to be recognized for this
I just played it and all I have to say is "Wow" and "How is it widescreen"
Wow great video :)
I'm currently making 4D engine on Scratch, and I understand the pain you got when develop Crystal Seeker
This is crazy absolutely crazy
Amazing video!
Thanks!
This is making me mind blowing
Well done
OHHH YES, I WAITED SO LONG
Whoa whoa that's very VERY COOL
I really enjoyed this.
3:22 You mention here about a complex formula, but a formula I would use is for horizontal projection: x * (focal length / z)
for vertical projection: y * (focal length / z)
USE SIMILAR TRIANGLES TO FIND THE FORMULA, NOT A MATRIX
Plus, it's a lot less hardware intensive
also that formula at 3:51 works too
isnt that basically the same formula
@@iylun270 yes
wow this is very impressive!
bro you deserve more subscribers man,
This is a great video!
i very like your video all of them
👍
17:43 That took me quite some time to finish, a lot of which was me thinking that maybe the fences had some hidden health bar so him ramming me near one enough times would break it, which I was kind of right, except two things, firstly him doing a normal ram wasn't enough, and secondly the health bar was not in fact hidden.
So what you think of it overall. I already know how to beat it immediately because I made, so it is hard to imagine how others react. Personally I would like it, because it isn't that hard to beat, but you need to figure out how to beat it which can be fun
@@ggenije Frustrating pain in the butt. It's very impressive that it's 3d though!
Very Nice video!
You are 100% one of the best scratch creators of all time, not only did you make a 3D game on scratch, but you made it a good game at that! 🤩
I made a game tutorial for the engine
On the account thank you for 40 subs 2.0 is we're the tutorial is at
this game is awesome and the video is really funny too!!
this is so cool
This 3D engine reminds me of the doom one (IDtech) a Lot, Very Nice work
This was helpful
Very interesting!
Wow...❤
I remember first playing this and thinking how on earth did this guy make it
its incredible how scratch can run this much math and maintain a smooth framerate
You've a very wonderful mind. Compliments.
we found ourselves Dani 2, good job this is impressive btw
so much work :0
Really neat
I watched this during coding class and I'm pretty sure I learned more about scratch while watching this than I would listening to the teacher. this video was epic
You made it!!
Subscribed for the sequel!
Not even 10k Subs?! You deserve a million
wow that is so cool
Brilliant
I have nothing meaningful to add, but this is some crazy stuff
thanks you helped me with the 3d matrix! I used 3 hours
You can't call Unity game developers gods for any of this, they didn't make an entire graphics library/engine.
I just saw this video and ive been playing crystal seeker for almost a year
Bruh this guy deserves more subs
Bro insane.
This reminds me - someone is attempting to make SM64 in Scratch! This is one of their inspirations i think
I started Development on a similar project to this, however with a few major differences. A. Its a lot more buggy (lol I hardly spent any time on it) B. I compiled my collision into 1 list, and used cubes (spheres would have also worked well, but this is also simple). I Made it so that it tracked the two opposite vertices. From there, I was able to detect collision by checking if the colliding box was within any of the collision boxes. I found this to be surprisingly effective, and only took like 5 minutes :O. Maybe im dumb But I did not understand how you filled in all of the polygons. Please explain
czcams.com/video/LliaVE5i15w/video.html
didnt unity have openGL to work with? or even vulkan, CUDA?
This was such an an informative video on advanced scratch programming. I was wondering if you planned on making a video like this for your other game vectoid? I don't know if you think there's anything new worth discussing from it, but i would love to hear the ins and outs of how you made that game work. Going through its code has really inspired me and made me start considering transitioning my game from clones to pen rendering, but I still think I lack a fundamental understanding of how a pen-game like that is put together.
There's still a lot to be said for vectoid because vectoid have much better game design, and it isn't slow even on vanilla Scratch(expect if there are many turrets and enemies at once).
11:54 scratch runs on html5 canvas. If you take a specific browser (idk which one..) you can make it render using GPU. Meaning you can run scratch using GPU
you can do that using turbowarp
A tutorial would be sweet, maybe a base project to remix where you can adapt levels and models. Like designed for people to remix with comments on what does what and explanations.
PratixYT's speech has the same energy as "an a press is an a press. You can't say it's only a half".
Oh wowser!
I played this game.
Amazing work! A few things, the reason painters algorithm is not used in modern games is not because of triangle clipping(thats a solved problem) its because the algorithm becomes much slower than a depth buffer check as you add more triangles. Also a modern CPU has more than enough power to drive decent 3D graphics by itself, your main problem is scratch itself (or more so javascript and then scratch). Still amazing work as scratch really is not made for the shear amount of low level calculations you had to do.
i've been searching for so long for videos like these! how did you learn all of this? you touched on it in the video, and i was wondering how you learnt all of this and possible could you point me towards some tutorials? i've always tried breaking scratch's limitations, and making a a3d game has always been an ambition of mine! god bless!
scratch.mit.edu/studios/32152322/
Also I have a lot of gamedev experience
Just gotta learn all the math needed for making a 3d engine and you could probably make one in any coding language you want
I subscribed you im playng your
3d platformer right now
to put it simply;
YOU DID WHAT
I'm thinking of making a Doom-style 3D FPS in scratch, so I could use a few of these techniques for that (though I plan to have sprites for all the enemies instead of models)