Falling Puzzle

Project Information

  1. Dev team & Development Process
  2. Gameplay
  3. Post Mortem

Game mechanics showcase

  1. Blocks
  2. Button

Project Information

This gamejam we only got 3-4 days for the project and me and a classmate wanted to participate in the game jam, i already participated in another game jam but it was SUPER buggy and went for a big scope so it failed, this time we also had a theme that our game had to include: "Rising and falling" other then that we were free to do anything

We worked with trello, git and Unity 2D, we wanted to make a simple 2d platformer game so we didnt do anything fancy I worked with 1 other person on this project, here is their website if you are interested in their work: Menno weerman

Overal we worked pretty good, we wanted to have a platformer game with blocks that would go up and down, we got that to work smoothly very quickly and made buttons that could trigger the blocks going up and down, after that i worked on level design as my friend worked on the player charachter and some other stuff we got most levels done fairly quickly altough we wanted it to be more complex, we finished the game with 1 day to spare, which we could have used to tidy up the graphics or something else but we decided to chill

Here you can see some concept images that were made in paint.

Here you can see a video of how the gameplay looks, the goal of the game is to avoid spikes and use buttons to trigger the blocks. There are also temporary buttons which are green. When you walk on it the blocks will activate then after a certain amount of time will deactivate

we got to do alot in a short amount of time and overal it went pretty smoothly, we eventually won the game jam with 6 votes, and this time were was a small price that we got: 12 euro's and 50 cents. after i got the money i instantly bought a kebab to celebrate

Game Mechanics

The blocks have a boolean checking if its activated or not, if its activated it will go up and if not it will go down, then it will make sure it will stay in that position until its told to move

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

public class Blocks : MonoBehaviour { public Color RisingColor, FallingColor; public GameObject visual; public bool isActivated; private bool isCooldown = false; private bool canMove = false; private bool ReachedDestination = false; public float Speed = 2; public float startValue = 0; public float endValue = 10; void Update() { if (isActivated) { visual.GetComponent<SpriteRenderer>().color = RisingColor; } else { visual.GetComponent<SpriteRenderer>().color = FallingColor; } float step = Speed * Time.deltaTime; if (canMove) { if (isActivated) { if (transform.position.y == endValue) { ReachedDestination = true; } transform.position = Vector2.MoveTowards(transform.position, new Vector2(transform.position.x, endValue), step); } else { if (transform.position.y == startValue) { ReachedDestination = true; } transform.position = Vector2.MoveTowards(transform.position, new Vector2(transform.position.x, startValue), step); } } IEnumerator Lerp() { isCooldown = true; canMove = true; yield return new WaitUntil(() => ReachedDestination); canMove = false; isCooldown = false; ReachedDestination = false; } public void MovePos() { if (!isCooldown) { StartCoroutine(Lerp()); if (isActivated) { isActivated = false; } else { isActivated = true; } } } }

The button works by finding all the blocks in the scene and switching their state, the block will then know what to do and what position to go in