GithubHelp home page GithubHelp logo

cattac's People

Contributors

junhaoyap avatar justwudi avatar stevenkhong avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

cattac's Issues

GameLevel interface data structure

Current Implementation
Array of string, indicating doodad name, or blank if no doodad/wall, implemented in a dictionary as such

[
    1: "",
    2: "wall",
    ...
]

Problems: limited to node, does not indicate other game level properties, inefficient empty nodes being sent around

Proposed Implementation
This implementation allows for more flexible transfer of data. Main driving force for this change is that now wormhole is broken! :(

[
    "rows": 10,
    "cols": 10,
    "type": "basic"
    "entities": [
        [
            "row": 1,
            "col": 6,
            "name": wall
        ],
        [
            "row": 5,
            "col": 5,
            "name": wormhole,
            "destNodeRow": 8,
            "destNodeCol": 1
        ],
        ...
    ]
]

Refer to commit below for my shameful half done work.

Still receiving information after dismissing VC

Ok so I'm not sure why we're still receiving information after we've already dismissed the view controller but initial investigations point to the fact that we are not removing the firebase references listeners, I'll check this out.

Connection Manager

Using a facade pattern, wraps all the specific implementations of firebase/parse/DIY servers so that everything can be called with one ConnectionManager.

Enforce all servers to implement a Server protocol that the ConnectionManager can call.

Basic functionality are those that firebase have:

  • reading given a path
  • writing values/dictionary to a path
  • watching for changes

Possible to create another specific GameConnectionManager that uses the methods of the ConnectionManager for methods such as createTurn/turnEnded

Tower Bug

Tower applies modifications to range one turn too late

Feedback: Can't tell which cat I am

Real scenarios:

Scenario 1:

Before even moving,

Player X: Which cat am I ah?

Scenario 2:

After making some turns,

Player Y -> Tried to move a cat that is not the player's cat and then -> says: Eh, how come I cannot move my cat?

Happened when said cat was in the middle of many cats and multiple cats were within the "highlighted zone"

AI engine

This AI engine is meant for single player mode.

Instead of connecting to the server to retrieve the moves and actions of other players, the AI engine will generate the moves and actions.

Integrate Firebase

Integrate Firebase as a backend so that we can store user information matchmake them

Refactor GameScene

Currently game scene has a lot of methods just for animations, these should be extracted to utility classes. For example, rotating of sprites to the correct direction.

Tag values to doodad

To ensure that high value doodads are less likely to be generated, same for items

Multiplayer Turn Synchronization

Currently game turns aren't sync. A device can be at 1s from turn end while another at 9s from turn end. This could cause game state mismatches like catA's 10th movement is executed on catB's 11th turn. This is critical. But I guess we are going to implement a sync or ready-variable check soon.

Feedback: Can't tell whether to move / action

Got feedback, can't tell whether we should move -> action, or action -> move.

Few scenarios:

Move -> After clicking pui not enough feedback as to which direction cat is going to pui

Move -> Pui -> Move -> Didn't know that doing this removes the Pui action

Move -> Fart -> No visual feedback from game telling user that Fart is going to be executed

Refactor game engine

It might be nice to have sub components that manages the moves/actions/players instead of lumping all those logic in the game engine class

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.