The first enemy that I created was the purple trapezoid. Adding custom scripts to GameMaker objects is fairly simple, and the GameMaker API is well documented. To differentiate it from the other world objects, I made it spin and flash between cyan and white. I made a simple cyan diamond as a crystal. Now that I had everything necessary to create a level, there needed to be a goal. Now, the movement controls felt much more accurate and responsive. This method keeps track of a horizontal a vertical movement speed, and the speed values are modified based on which keys are held down. To resolve this, I found a tutorial on making a platformer in GameMaker, so I just modified that method to work with a game in overhead view with no jumping. First it adds the character, then pauses, then repeatedly adds the character multiple times. This is similar to typing into a text document, when a key is held down. Also, with the default GameMaker movements, the chacter would move when the key was initial pressed, and would pause for a moment before it would continue moving. For instance, the character would expect to keep walking right if the up key was released. So the player could be holding two movement keys (such as up and right arrows), but the player would completely stop whenever either of those keys are released. The problem with this method, is that the character is stopped whenever one of the movement keys is released. When I first started designing the movement of the playable character, I used the default GameMaker actions. I also had the idea of making the heroes parallelograms with sides of equal length, while the enemies would have sides of unequal length. I created a purplish trapezoid as the first enemy. I abandoned that idea, since a yellow circle looked much better like an emoji. I had originally envisioned the heroes to use an additive color model, while the enemies used a subtractive color model (magenta, yellow, and cyan). I created other obstacles such as rocks (rounded gray rectangles) and water (curved blue bezier lines) I created a red square, green circle, and blue triangle characters, which all had two frames of walk animation. I made a simple tree, which was composed of the union of three circles for the leaves, and a simple path for the trunk. The GameMaker development environment is very similar to Stencyl, which I used to create Dream World for Ludum Dare 30.Īll of the graphics were created with Inkscape. I had worked through some GameMaker tutorials before, but this was my first time creating a full original GameMaker game. Although, I have been impressed with some games that I've played recently, such as Crashlands, which was created in GameMaker.įortunately, most of my initial development was creating the vector graphics for the game characters, so switching to GameMaker didn't sacrifice too much work. I had heard a lot of bad things about how GameMaker handles things like collisions. Therefore, I fell to my backup plan which was to make a GameMaker game. It was very confusing, especially with the bounding boxes, and it just never did work correctly for me.Īfter about four hours into development, I knew I wasn't going to have the time to successfully make a game in Godot. Your object has to have a CollisionShape or CollisionPolygon as well, and everything has to be parented correctly under your main object. In Godot, there are three types of physics objects (KinematicBody, RigidBody, and StaticBody). You attach a RigidBody component and one (or more) colliders to your GameObject, and then you are good to go. Unfortunately, I wasn't ever able to fully understand the physics system. It has a scripting language that is very similar to Python, where tabs and spaces are significant. Godot can be used to make either 2D or 3D games. In Godot, instead of GameObjects, it has Nodes which have similar properties such as position, rotation, and scale. Before the weekend, I worked through some Godot tutorials, so I was able to move a simple sprite around on the screen. Godot is a free and open source game engine that is very similar to Unity. I had heard a lot about Godot, so I planned to use that engine for this competition. I wanted to take a break from Unity and create a game in some other engine this time. The gameplay was going to be similar to Trine, where the player would need to switch between the three to solve puzzles. I had envisioned having three playable shapes, which were the square, triangle, and circle. My original idea was to have three shapes that you could switch between, and each shape would have a unique ability or power. I knew fairly early that I wanted to make a game with controllable shape characters. Ludum Dare 35 was my tenth time participating in the full Ludum Dare 48 hour game development competition.