How I made a 3D Level in a 2D Game

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
what you're watching right now is a custom level entirely within the 2D mobile game Geometry Dash now you might think this is a weird mod or something but no this is just the most complex Geometry Dash level ever made everything in this level is made entirely out of 2D Geometry Dash objects and they all become 3D through their own little Illusions and magic tricks like look at this tunnel in the background for example this looks completely impossible to make out of just gomad Dash objects but when you understand how it works it's actually quite simple see if you've ever looked into a spinning spiral like this one you'll notice that it kind of looks like everything is getting smaller and moving towards the center which is also what happens when you move away from something in 3D space everything gets smaller as it gets further away from you now this spiral doesn't look 3D yet but that's just because the points in this spiral are moving at a constant speed while in 3D things going away move slower and slower if we change the curvature of the Spiral arms we can actually make them move in the same way things do in 3D space and if we now make a second spiral flip it and make it rotate the other way and put the two spirals on top of each other we get a quite convincing 3D tunnel illusion this is pretty cool but let's take it a few steps further we can make the spiral arm solid by creating them out of slope and square objects but this of course hides the second spiral and we can't really make it transparent arent because that'll ruin the effect except if we use colors that max out one or more of the RGB channels of the color and then set them to blending the overlaps between the objects will be hidden and if we combine this with some clever layering and some shading we get a pretty cool looking realistic threedimensional tunnel made entirely out of spinning Geometry Dash objects wow that's pretty neat I said two years ago and it could have ended there should have ended there but no because I'm a level Creator and nothing I make has any value unless it ends up as a 60c level on the job to that serers now I could just use this tunnel thing in the background of a normal level but wouldn't it be pretty cool if I just kept making these kinds of 3D illusions until I get a whole level that's entirely 3D surely it can't be that hard of course to convince your brain that you're looking at something truly three-dimensional everything in the level has to be a convincing 3D illusion like even the player look at the player in this part it's actually completely fake the real player is actually squished strangely up at the top here in an entirely different game mode see we can't really use the buil-in Geometry Dash game modes for this level because well they're in the wrong number of Dimensions so instead we have to hide the Real Player and construct a fake player from the ground up programmed using triggers and visualized using illus iions to behave exactly like the player usually does in the game except one dimension higher this fake player is made up of two components The Head and the trail the head is actually pretty simple it just goes through seven frames of rotation every time the wave changes Direction which it does every time this touch trigger detects that the player is pressing a button and each one of those rotation frames also has 10 different perspective variations which just means I had to handmake 70 different precise pyramid shapes out of slopes and squares this was not the part that started my descent into madness this is the trail it's made out of hundreds of layers of ellipses which all mimic the movement of the head but with more and more delay making the movements appear to Cascade through them now this doesn't sound too bad but to make it look three-dimensional we obviously have to make the ellipses and their movement bigger as they get closer to you but to make the way they get bigger fit in with all the other 3D illusions in this part this has to be done in a really mathematically specific way so to figure that out I recreated the camera angle in the 3D modeling software so that I could render out 14 different realizations of ellipses which I can then overlap on top of each other and measure before putting all the values into an exponential regression model so that it could get a continuous function for the amplification of the movement at the position of each ellipse that's the easy part the hard part is to actually make these ellipses move with the correct delay at all see the normal way to do this is with a spawn trigger but its delay is actually based on the frame rate of the game which makes it way too imprecise to make a smooth Trail luckily we have the follow player white trigger whose delay is not based on frame rate and it was almost perfect but for some ungodly reason Rob up decided to arbitrarily hard limit this delay to 0.01 seconds which is still too imprecise so instead I had to invent an entirely new technique where the ellipses are grouped into 0.01 second interval segments and each group has two copies where one copy slopes up and one copy slopes down at very specific inclinations so that I could switch between them based on the slope of the curve at that group's position which made it barely possible to make a smooth looking Trail at the cost of taking literally a month to figure out and build which is already a frankly unreasonable amount of time to spend on a geometry dash level let alone a single element of it it is all because of these stupid arbitrary limitations but hey you did it me I mean at this point you might as well send R up a video of the level just to say fuck your stupid arbitrary dumb stupid limitations but don't actually say that of course that would be mean and I guess it's not really his fault you were compelled by some mysterious Force to attempt to make a 3D version of his 2D mobile game inside itself he's also spent the last 5 years working on this gigantic update to the game one that will change everything so fundamentally that it'll basically just make it a different game entirely which really puts a hard deadline on this whole level you're making since if you take too long suddenly the game you're making in it will just stop existing and this update seems to be just a few months away so actually you probably won't be able to finish level in time anyways I mean it's been almost 2 months and all you have is a sperm cell on an LSD trip it's sad but sometimes sometimes you just have to let things go and wait wait hold on he he actually [Music] replied man your 11-year-old self sure would be extremely excited right now he seems kind of impressed as well I guess seeing stuff like this might be one of the things that motivates him to keep developing this singular update for 5 years man imagine spending multiple years on a single project why would you put yourself through that anyways it doesn't even really matter cuz again you're definitely not continuing this project there's no way you'll even get close to finishing it before the update and even if you did it would just be an enormous waste of take a look at these 3D mountains to make them I first designed them in the 3D modeling software and then I wrote a script that takes each triangle in the mountain mesh and finds the intersection between the triangle and a vertical plane which gives us a line we can attach a geometry dash object too if we run this script for every triangle in the mesh adding one object where ever there's an overlap we can now build any 2D slice of these fountains out of just the aradh objects if we now make 300 of these 2D slices on top of each other and scale the slices in the back down and the ones in the front up we suddenly have a projection of this 3D model made entirely out of moving 2D objects now let's add the player to this part faking the physics of this game mode with just triggers is actually surprisingly complicated so the first thing I did was that I made a programming language that lets me write code that turns into Geometry Dash triggers which means I could write all the complicated physics in my abstracted language and have my compiler compile it into actual geometer Dash triggers in the level to make the cube look three-dimensional I split it into six layers where the layers in the back are a tiny bit smaller and a tiny bit slower than the layers in the front making it look like the player shifts in perspective as it jumps up and down now our player is currently jumping in midair which is a sign that it might be time to add some platforms and obstacles and it's at this point things start to get kind of crazy because to anyone who's ever made something in the geometer Dash editor these obstacles look just completely impossible on several levels like these cubes are scaling and warping as they move closer to you but there is no scale trigger in Geometry Dash at least not until the giant update DRT up is making which is still just a few months away somehow now in the preview I released for this level I did sort of imply that these cubes were made by using thousands of rotat move triggers to sort of Puppeteer a bunch of objects around and this led to some people trying and failing to recreate this effect effect themselves what they didn't realize was that it actually employed this clever tactic called lying look most of these triggers are spawn triggered with no group they do nothing the technique I actually use is one that I think is much more fascinating and unique and is actually pretty similar to how real computers render 3D objects see in computer Graphics everything in the 3D world is made out of triangles but unfortunately it turns out to be impossible to make an arbitrary triangle out of Geometry Dash objects since the thinnest angle we can create with them is this 26.6 de slope no matter how we arrange any of these thousands of types of objects you cannot make a shape with a smaller clean angle than 26.6 de and an arbitrary triangle could of course have as small angles as it pleases we could try and make a thin angle with some lines or by using a fractal pattern but as you'll see in a bit it's also really important that this uses the absolute minimum amount of objects possible so instead of making a triangle let's make a cube the this might seem even more impossible at first but the added complexity actually turns out to make a cube possible to create even if a triangle is not see if you think about it no matter how you move or spin it around you can only ever see three sides of a cube at once and if we look at these three faces on a 2D image there will almost always be at least one face where all four of its angles are above 26.6 de let's call this the front face since it's usually the side of the cube that's pointing towards you so since the front face only has legal angles we can pretty easily construct it out of Geometry Dash objects by putting one slope on each Edge and then filling in the Middle with squares or something now the other two phases probably have some illegal angles but with a little trick we can actually construct them correctly anyways if we look at the angles that are touching the front face we can fill them in by hiding the excess of the slope under the face we already made the other angles of the face will still have to be above 26.6 de but again almost always at least one of the two remaining faces will have these two angles legal which means we can construct it the last remaining face will almost definitely have a lot of illegal angles but that doesn't really matter because three of its four angles are guaranteed to touch either the front phase or the second phase and the last angle is actually guaranteed to be above 90° because it's on the corner of the cube by following this algorithm we can build any cube in any orientation with just 11 objects now now a still image of a cube is nice but what we really want is a cube that can move around and rotate in 3D one that is animated luckily now that we have a generalized precise method for making them we can just program our computer to generate as many cubes as we want at lightning speed which means we can just generate one Cube for every single frame of the animation and then show each Cube one by one in quick succession using triggers except this doesn't actually work because even though each cube is only a few objects having tens of them on each frame over thousands of frames still adds up to a lot of objects like hundreds of thousands no matter how you do it trying to move through all of these objects in one animation will either be impossible or just crash the game instead we have to do something a little more clever so to make this work I first had to write the 3D engine to calculate the projected positions of the Cubes but I mean at this point that's really neither here nor there anyways I first sketched out all the cubes and they're movement in a 3D animation program and then I wrote a python script that gets a position and rotation of every Cube on each frame of the animation and saves it all into my own little file format that the 3D engine can read and process and that data then goes into 5,000 lines of rust code I rot which uses it to construct each Cube on each frame out of geomety Dash objects with the method from earlier which is then put into the level by injecting it into the geomety dash save file instead of putting all the cubes into one big frame by frame animation the code divides them into thousands of tiny animations so that each one only contains a small number of objects and then I developed an intricate system to make sure the game only ever loads in the single current animation so that all the other hundreds of thousands of objects are not included in the calculation practically eliminating all lag this animation would otherwise cause I used the cubes as obstacles in both parts and then to transition between them I recreated every other illusion in the level as 3D object in a 3D animation program so that I could just animate the transition I then rendered each frame of the transition as an image and recreated each image out of object in the game by running a genetic algorithm that simulates Evolution on Geometry Dash object to optimize them to look like a given frame of the animation and wow it looks so cool and now that they're connected both of these parts are finished and and it only took 1 and 1/2 years it took you 1 and 1/2 years to finish a total of 20 seconds of a geometry dash level the funny thing about spending this much time on one project is that at the start you were driven by this deep enthusiastic interest for the things you are making but now the only thing keeping you going is pure willpower like it's gotten to the point where you're learning time management strategies and developing good working habits to make a goddamn Geometry Dash level but it still took you 1 and A2 years to finish just 20 seconds I mean let's admit it you're never finishing this especially not before Rob up fundamentally changes the game with this giant update which is somehow still just a couple of months away this is over trying to continue this would just be a waste of time but I guess now that you have a completed section of the level you can at least upload that to the internet just so that all the thousands of hours you spent making it don't go entirely to waste I mean it would be a shame if nobody other than you and robtop were to ever see this let's call it a level preview just to keep our doors open you know and now that you're making it public the name you give the level will be really set in stone so make sure you pick a really really stupid one that you'll really regret oh and uh also go like super overly dramatic with it uh kind of like [Music] [Music] well I guess it's finally over one and a half years of work wasted at least people seem to like it really like it I mean most people are still just asking you to recreate Doom but some people seem really enthusiastically interested in it and they really want you to finish it too which is too bad because again you're never finishing this even trying to do that would just be a ginormous waste of take a look at this 3D rocket ship to make it I first used that programming language I made earlier again to make the controls and physics work and then I modeled the ship in 3D so that I could use it as a reference for 50 handmade ship frames five frames per rotation with 10 perspective variations for each the trail of the ship is a bit more interesting and while it may look complex it's actually made entirely from this one strange little dotted decoration object see if you've ever spun around something Helix shaped like this spring you'll notice that it kind of looks like it's actually moving up or down now this is just an illusion but we can use this illusion to make it look like there's a 3D gri moving out of our rocket if we stack this quirky little object on top of itself hundreds of times and rotate it a tiny bit for each layer we get something that looks suspiciously like a helix and if we now spin every individual object at the same time it looks like the whole thing is moving towards you and just like with the spiral we can make this even more convincing by just putting two on top of each other we can now use the same Technique we used in the wave Trail to make the movement of the player Cascade through all the objects making the whole thing look like a solid jet of sci-fi plasma Goose streaming out of rocket rather than just a bunch of weird little Doss moving and spinning around anyways I then built a rotating nebula thing for the background and after that I 3D modeled the huge common field and wrote a program that tracks every Edge on every comment and star on each frame and renders them out of Geometry Dash lines and glow objects which is then fed into the animation system for the cubes in the previous parts from which I also reused the spirals to create these cool flashes that the ship approaches warp speed or whatever it's doing wow that part actually went pretty fast that's half the level done if you continue at this rate you could finish the level in just one more year surely that will go totally fine and nothing will come up that will totally ruin that dream for you forever [Music] [Music] [Applause] uhoh that's just a few months away I mean it's been just a few months away for seven years but now it's actually for sure exactly 2 and 1/2 months away you took 2 years to finish the first half of this level and now you have to finish the whole second half in Just 2 and 1/2 months L the whole game practically stops existing and you can't rush it because you'll disappoint the literal 1 and a half million people who've already seen the start of it I mean okay I know this is hard to swallow but let's admit it this is never happening trying to finish this would either be a huge waste of time or a terrible impact on your health it's a fucking Geometry Dash level it's just not worth it but you don't care about that do you Sputnik you don't care about my physical or mental well-being all you care about is having a stupid level up on the geom dash servers whatever it takes huh you know we can stop right you know we can just do other things to forget about this you know that right so let's start by simulating huge explosion using our Cube generator which will transition us into a giant over-the-top title sequence which will look really stupid because of the name you picked but we don't have time to think about that let's first build each letter in five different fonts and then write a script to extract them from the game and animate them by tracking the lines of this 3D animation and then that the drop there you'll start switching fonts and go really crazy and look really cool but before that let's use our line tracker thing again to track this crazy animated floor pattern and then put all the frames on top of each other and make them all slowly fade in and out and then add some particles some random cubes yeah sure oh great there's just 30 days left I'm not even super extremely worried about that let's just I don't know precisely recreate the standard geometry Das Cube and use the thing we made for the letters to make them float into a precisely recreated empty gty Dash level which then turns sance into a sick Montage of precise Recreations of 23 cool levels you like which isn't really 3D but it still kind of has some depth I guess I don't know but even if it looks cool why would you choose to recreate 23 different levels which are all the screen for a fraction of a second if you only have three weeks left the funny thing about sleep schedules is and then the cube jumps into 3D again before jumping into 4D which you made by programming a 4D hyper cube in 3D software and putting that into the 2D game by using your line tracker thing and after that just I don't know simulate another big explosion of cubes in the background you have five days left oh God do a cool spinning thing into the GD logo which is mostly just there to make sure future people know you made it in this update and then animate your own logo and I I don't know simulate some birds and AD them after you upload your level a couple of unfortunate things happen the first thing that happens is that the entire GE that server shuts down because apparently thousands of people trying to load one of the most object dense levels ever made at the same time is not something it was buil to handle the second thing that happens is that due to a weird implementation detail on the Windows version of the game every PC user instantly crashes when trying to load the level which means that ironically the level runs completely fine on an old mobile phone but crashes your $5,000 gaming PC either way this means that the level can't be officially featured or endorsed in game in any way and will basically not be considered a real level great but for the people who have been able to play the level they seem to really like it videos of your level gain hundreds of thousands of views and it even shoots to the top of Reddit aside from the 3D effects some people seem to see it as a sort of conclusion to this era of the game these are the sort of things that used to make you really excited but now it feels as if that excitement is hidden behind a 100 layers of dread I mean it went okay I guess but it sure would be better if it was perfect but maybe if you just optimize it a bit you could shave of enough objects to make it load on every platform you would need to somehow remove 200,000 objects but maybe if you significantly lower the frame rate of the animation Parts you could interpolate the movement of each Cube between each frame using move triggers and it kind of works except it looks horrible but maybe if you just keep adjusting it and then you realize that what's actually happening is that you've forgotten what it's like not to work on the stupid thing so you stop and soon this whole Endeavor starts to feel more and more like just a series of restoration you had and have overcome getting smaller as it gets further away from you and eventually the update will come out and eventually people will expect you to make something even bigger and even better as if the limitations of the previous update Were Somehow holding your stuff back and not what made it interesting in the first place but you're not here to learn about me are you you probably think you already know me one thing you don't know however is what there even is to do here on the the other side well I'll tell you right now you have a couple of options you could either write a 24-minute video complaining to your past self about their stupid choices or you could just lay down close your eyes and think about something else for once in your life maybe then I'll figure it out what what the hell is this
Info
Channel: Spu7Nix
Views: 2,421,661
Rating: undefined out of 5
Keywords: spu7nix, sputnix, spunix, spu7nik, sput7nix, Geometry Dash, How I made WHAT, WHAT, How I made WHAT in Geometry Dash
Id: Qvlb-Yo6Rqo
Channel Id: undefined
Length: 24min 27sec (1467 seconds)
Published: Sat Apr 20 2024
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.