This is the final part of the 2d/3d(game/engine) conversion used in my puzzle game: Ladder Box, which is available on Steam:

You can find all the textures, scripts in this GitHub repo: https://github.com/fengjiongmax/3D_iso_in_2D

Godot 3.2.x is used in this project, you can check the commits for what’s new in each part of this series.

Limit user input

In the last 5 part of this series, we’ve made all the states working, but we did not limit user input when the movable are moving, so this could happen:

I’m hitting a,z,x,s randomly

We should be processing user input when all movables are in idle state, let’s do…


This is part 5 of the 2d/3d(game/engine) conversion used in my puzzle game: Ladder Box, which is available on Steam:

You can find all the textures, scripts in this GitHub repo: https://github.com/fengjiongmax/3D_iso_in_2D

Godot 3.2.x is used in this project, you can check the commits for what’s new in each part of this series.

In the last 4 tutorials, we’ve built a working mechanic that lets a movable move freely on an empty board, even the board has some unmovable here and there.

The problem

If you set the board like this:

new_movable(0,1,0)
new_movable(0,0,0)
new_movable(0,0,1)
new_movable(1,0,0)

run the game and hit ‘Z’…


This is part 4 of the 2d/3d(game/engine) conversion used in my puzzle game: Ladder Box, which is available on Steam:

You can find all the textures, scripts in this GitHub repo: https://github.com/fengjiongmax/3D_iso_in_2D

Godot 3.2.x is used in this project, you can check the commits for what’s new in each part of this series.

Jump state

When a movable has a block at its same height in its moving direction, that movable will switch to the jump state.

Of course, before actually make the jump, the block needs to know if the way of jumping is clear or not, we write such…


This is part 3 of the 2d/3d(game/engine) conversion used in my puzzle game: Ladder Box, which is available on Steam:

You can find all the textures, scripts in this GitHub repo: https://github.com/fengjiongmax/3D_iso_in_2D

Godot 3.2.x is used in this project, you can check the commits for what’s new in each part of this series.

===

Before we make more changes to movable and unmovable scripts:

name movable Movable and add every movable to group “movable”:

class_name Movable
extends BlockBase
func _ready():
add_to_group("movable")
pass

name unmovable Unmovable:

class_name Unmovable
extends BlockBase
func _ready():
pass

Store the grid content

We need to know what’s on our…


This is part 2 of the 2d/3d(game/engine) conversion used in my puzzle game: Ladder Box, which is available on Steam:

You can find all the textures, scripts in this GitHub repo: https://github.com/fengjiongmax/3D_iso_in_2D

Godot 3.2.x is used in this project, you can check the commits for what’s new in each part of this series.

Problem

In the first article, we know that we must create new blocks in order, otherwise it’ll have some weird render like this:

weird render

What can we do if we want to create blocks however we want, without worrying about the order we create those blocks?

The key…


I’ve released a game called Ladder Box, it’s a 3D puzzle game that is all programmed in a 2D environment.

Folks on Reddit curious how I make this, I tried to briefly describe the overall idea of how to make this happen but did not dive deep, and now I’m gonna tell you guys how I make this work.

I’m using Godot Engine in this series, but you can skip the engine-specific part (scripting, scene building) and do it in other engines/frameworks, and I highly encourage you to do so.

You can find all the textures, scripts in this…

Fj max

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store