Breaking Geometry Dash


Hello everyone. I’ve spent the past 6 days attempting to code Geometry Dash from scratch, which is what you’re currently seeing on screen. What’s interesting about this is because I’m the person who coded this, I can manipulate that code in whatever way I like. I’m sure you guys have lots of ideas for what I can do with this, so please leave them in the comments. *boom* Back in June, I asked you guys what I should
do with this Geometry Dash clone I made. I received no shortage of suggestions, and
today I’ll be showcasing my favorites as well as some of my own ideas. It seemed like a lot of people wanted 2.2
features, so I saved those until the end. But without further ado… *drumroll* Sticky fingers suggests: add weapons to Geometry
Dash. I added three types of weapons: a sword, a
gun, and a bomb. All three weapons destroy blocks and spikes,
but they function in different ways. The sword destroys blocks in front of the
player, the gun shoots a bullet towards the player’s cursor, which then destroys any objects
it contacts, and bombs are thrown in front of the player and have a chance to destroy
any objects within the radius of the explosion. Here they are in action: Chen Qiyang Jason suggests: allow objects
to be placed while playing a level. This suggestion ended up being a lot of fun
to play around with; you can make a staircase out of blocks, spam jump pads everywhere, or just hold a block below the player. AlexLord suggests: make a portal that increases
the player’s size. I have an idea for how this could be done
in the vanilla game, which I’ll probably make a video on in the future, but for now, this
is all you get. In addition to increasing the player’s size, the
large portal also increases the player’s jump height. I felt that this made sense due to the fact
that being small decreases the player’s jump height. Danforce42 suggests: Make the progress bar
act like a video bar, controlling time as it’s dragged. I only allowed time to be dragged backwards
due to there being no physical way for me to predict the player’s path in the future,
but yeah, here it is. It doesn’t have much practical purpose,
but it’s still fun to use nonetheless. Singularity suggests: allow the cursor to
move objects. Acxiion suggests: fix the hitboxes. mk panda and Derpario suggest: allow the cursor
to destroy blocks. This can either be used to create an interesting
obstacle course, or you could just put your cursor in front of the player and automatically
win the game. Parker Isaiah suggests: dynamic blocks that
can be moved by the environment. I made it so that the blocks are affected
by gravity and can be moved around by either the player or other dynamic blocks. I also
added dynamic spikes that are functionally identical to dynamic blocks aside from the
fact that they can’t be pushed directly by the player and must be moved by another dynamic
object. Here’s a short level I made with them. Also, if you arrange them in a rectangle, it creates something fun to watch when the player collides with it. atain suggests: make it so that clicking
on an object will make that object jump. This feature allows you to set up levels in
a way that some objects need to be clicked in order to be within the player’s reach. That’s the only practical application
this really has though. This next change is something I came up with
myself, and it’s actually something I’ve wanted to do for a long time. You usually make the player jump by clicking
anywhere on the screen, but I was curious what gameplay would be like if you had to
click on your player to jump. It definitely makes gameplay more challenging. Following the player with your cursor might
not seem that hard, but it definitely is difficult, especially while also trying to concentrate
on the level. I was also curious if I would be able to straight-fly
using this mechanic. I actually ended up implementing the ship
gamemode to test it, and the answer is sadly: no. Danforce42 suggests: make the cursor attract
objects when a specific button is held. This creates a wave-like effect that’s really
fun to look at. This is also one of my own ideas. In Geometry Dash, you don’t have that many
options when it comes to slopes. You’re limited to using these two angles,
which doesn’t give you that much freedom. Soooo, I added custom block rotation. do i really need to subtitle this part? Basically everybody suggests: implement 2.2
features. These are the features I chose to replicate. I don’t really have anything interesting to
say about reverse mode. There are already places you can use it, but
I still wanted to include it since it’s a pretty important feature in the update. Also, since I made this statement in another video, I allowed reverse mode to be
enabled for dash orbs as well. The first platformer-mode-related thing I
have to show you is me playing through a normal platformer-mode level. However, that’s not all. RobTop mentioned that platformer mode will
have an ice block that’s basically a block with low friction, which is what I’ve made here. Lastly, there’s one more platformer
mode block I want to show you, but it would be more convenient if I
waited until later in the video to do so. This is a level I made that’s only beatable
by teleporting the player across the x axis. Similar to reverse mode, there are already
ways to play around with random triggers yourself and even ways to replicate them in Geometry Dash 2.1. However, the random trigger is another pretty
important feature in the update, so I felt inclined to include it here. This is a level that uses randomization in
a few areas, and this is a level that you only have
a 1/4096 chance of completing. RobTop’s mentioned the idea of a block that
pushes the player in a specific direction. He said that it pushes the player vertically
in normal mode and can push the player in any direction in platformer mode, which
is what I’ve replicated here. I was relunctant to keep the time warp trigger
in this video because I find it pretty uninteresting, but here it is. Challenge mode is possibly the biggest feature
that’s been confirmed for update 2.2. RobTop has revealed a lot about it to us, but
what I find most interesting about it is the possibility of random level generation,
which is what I’ve built here. In order to do this, I made a system that
chooses premade level templates at random and distributes them across the level. Although it’s not truly random, it
worked well for my purposes. Here is some footage of my playing a few random
levels. Also, here is some sped-up footage of a random level. Those were all the submissions I
took the time to replicate. This is something I’ve been wanting to do
for some time now, and although it cost me a sizable portion of my sanity, I’m
happy with the way it turned out. This definitely was a different type of video,
so I hope you still enjoyed it. It’s unlikely that I’ll make a part two to this
video, but so long as this video is well-received, I do plan on making more coding-related
content in the future. Anyway, that concludes this video, so queue
the end screen.

About the author

Comments

  1. So I went ahead and uploaded the game files to MediaFire. They can be downloaded here: mediafire.com/file/5nfnbvlf762kiwh/GD_Clone.zip/file
    Other important information is included in the "read me" document.

    Also, I want to address a mistake I made. At 8:49, I said that challenge mode will include randomly-generated levels. This claim was based off a statement by RobTop that said there would be "random levels." However, it's been pointed out to me that this likely isn't referring to randomly-generated levels as much as it's referring to the ability to choose a random already-existing level.

  2. 3:21 this would actually be awesome in the main game if u could make objects that can and can’t be destroyed by the mouse, current objects can’t, but new ones in the future could… it would add more reason to actually use your mouse apart from clicking to jump, it would make the game much more investing and fun

  3. You should remove any GD branding, make new assets, etc. and make an actual game. I've essentially given up with RobTop now.

  4. So both the GD community and SRB2 communities have been waiting so long for version 2.2 to release… interesting.

  5. Hey Macro if you mske another one of these, make it so you can hold down jump while doing jump orbs, so that you dont have to tap every time.

  6. I think you deserve more recognition the quality of your videos is great and they are a lots of fun i am looking forward for more

  7. you should make a math trigger that takes in an object id (multiple?) and outputs the output values into other object ids like for example (o is output in is input)

    o=in₁*sin(in₂)

    you could use this for more accurate physics simulation like here this would find the y component of a vector

  8. Add a canon or shift = Boost I just want something to speed the game up maybe something that could pause the game when you stand on it

  9. Next time some indie dev or worse yet, some AAA dev says that adding some minor new feature into a game is to haaaaaard just remember this video.

  10. Try h*'ll mode which makes levels insanely harder and only allows insane and demon levels In user levels (basically h*'ll mode from super meat boy)

  11. I have a suggestion. The Spam Click trigger. What you use it for is if you're making an auto version of a level with spam, use this trigger.

Leave a Reply

Your email address will not be published. Required fields are marked *