junhaoyap / cattac Goto Github PK
View Code? Open in Web Editor NEWCattac is a casual and cute iOS cat-themed turn based game.
Cattac is a casual and cute iOS cat-themed turn based game.
Should be able to refactor, we keep that as good to do after STePS, let's try not to break anything xD
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.
Related to #12
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.
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:
Possible to create another specific GameConnectionManager
that uses the methods of the ConnectionManager
for methods such as createTurn
/turnEnded
Do not trap cat amongst others
Tower applies modifications to range one turn too late
Graph should be a part of grid
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"
When no hp / last man standing win / lose conditions
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 as a backend so that we can store user information matchmake them
Especially walls, since the player will basically be disabled if he's on the wall
To store items for use in future
When can fart on single player le then I'll port it over to multiplayer
The default assets that you use for the mockup, can throw them into the images.xcassets?
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.
and of course add them into the game
Currently quite convoluting to find out which cat action type is what damage
We can use a graph to represent the game arena, but exactly how we should represent it should be given some thinking
To ensure that high value doodads are less likely to be generated, same for items
Pui, Fart, Poop randomiser
Through maintaining all zPosition values in a constants file, allocating proper hierarchy.
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.
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
Touch area below tile (around half tile length from border) when it is reachable to effectively touch the tile.
Cause unknown
More pwettieness
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
Play together and see how long it takes for a game to finish - might be too unengaging if we take too long
Now can move and sync on multiplayer, need to add the ability to pui
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.