Git Product home page Git Product logo

project-sokoban's People

Contributors

berbmorais avatar brunom24 avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar

project-sokoban's Issues

S3 > Weird collision boxes

The player and the box have weird collision boxes. Check if we still have the 2 pixel issue and if not, make it properly aligned

B2 - UI-Schema

We require a UI schema so that the developer knows the possible navigations from within the app.

Provide a mockup, paint is fine as long as we can understand what's going on

B1 - Visuals

As stated in the epic, the assets to use will be

image

This task contemplates the setting up of the cursor, and UI theme in Godot

Crate Object (A2B)

We require a create object that can be pushed around. It can:

Be moved
Be destroyed
Be interacted with

Asset:
image

When the player is in an adjacent tile, and presses a key in the direction of the crate, the crate shall move exactly 1 tile in that direction.
Teleport is ok for now, in the second iteration, we shall change it to a smooth movement. If you feel like it, you can do the movement now

S4 > Input issue

If you leave a direction key pressed, the player will not keep moving forward

S2 > Win Game Condition

When the final box enters the win platform, the popup appears instantly.
This should be fixed and extracted to a generic method that later can be improved to contain multiple conditions to win. And should only appear when everything has finished it's animation

  • Win only appears when box is finished animation
  • Player can no longer move

Character Moving (A1B)

  • The character should move in the world, with the keys: Up, Down, Left, Right
  • The character should move in tiles of 64 pixels

In-game Menu

Create a In-Game menu that pauses the game and the timer, and with the options to go back to the level selection, go back to the main menu, and restart the level

Player Assets (A1A)

  • The entire game assets should be from kenney's sokoban pack
  • The player should play the correct animations when walking up,down,left,right

image
We shall use the ones with the outline

Character Moving (A)

A basic player is required to play the game.

  • Basic 4 way movement with assets (make it so that it can be adapted to mobile in the future)
  • Animations of the player are working properly
  • Player moves in tiles (no teleport) (no map is needed yet)
  • Player collides with the wall object (? map tile?)

B4 - Quit

A simple button that will simply close the app

B3 - Play

The play functionality should allow the player to pick from:

  • New Game
  • Continue

This is dependant on #27

Create test level (A3)

After all of the objects and player are done, we need to create a test level to ensure that all of the features are working properly

C1 - Introduce 3 types of maps

We will introduce 3 different types of maps that the player can play on. These are:

Outdoors dirt:
image
Outdoors stone: Currently used as test
image
Outdoors grass:
image

As for the walls, we shall have:
Brick wall: Currently used as test
image
Wooden wall:
image
Stone wall:
image

C2 - Introduce new types of boxes

With the complexity requirements increasing, we should also introduce more boxes for the player to interact with. And so, 3 different types of boxes will be introduced:

Plastic box:
image
Deliver at:
image

Wooden box:
image
Deliver at:
image

Metal box:
image
Deliver at:
image

Implement Save/Load System

Implement the system to Save and Load.

The game should be loaded on startup and saved each time the player completes a level

S8 > EventBus

Replace current implementation of the events with the EventBus pattern to be easy to scale later on

C - Basic 10 levels

We need some kind of levels to give a sense of progression. And so, we need to introduce 10 different levels just to start. To accomplish this, we should introduce:

  • 3 Different types of levels
  • 3 Different types of draggable boxes

Wall Object (A2A)

We require a wall object that is special. It cannot:

  • Be moved
  • Be destroyed
  • Be changed
  • Be interacted with
  • Let any object pass through it

Asset:
image

Player Collisions (A2)

The player should collide with certain game objects. While some allow movement, others prevent it.

  • If the player tries to walk to a wall, prevent it
  • If the player tries to walk to a box, allow it if the player is allowed to do it (in the future)

Door/Stairs Object (A2C)

We require a door/stairs object. It cannot:

Be moved
Be destroyed
Be changed
Let almost any object pass through it (allow the player)

Asset:
[Asset pending]

When the player passes through, trigger the win phase.

4-way player movement (A1)

  • The player is required to move in the 4 directions (Up, Down, Left, Right), with enough scalabity to add mobile support in the future
  • In the meantime, WASD is fine

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.