Code Monkey home page Code Monkey logo

game-design-capstone's People

Contributors

jordan-cottle avatar

Stargazers

 avatar

Watchers

 avatar

game-design-capstone's Issues

Fix logout not being handled consistently

Sometimes when the game ends, player instances aren't being cleaned up.

This is likely just an issue with the server side logic for detecting players who haven't sent a logout event.

Players seem to share balance.

Using two client running side by side, they seemed to share their balance. When one ship would sell resources, both clients would end up with the money from the transaction.

Set up flask views

Events are great for asynchronous communication between client and server, but if the client needs to send a request and expect a reply, normal web requests are better suited.

Things like logging in and requesting data from the world would be better handled using normal http calls to a REST style endpoint.

For this issue, implement the "/login" endpoint to authenticate a user and create a session.

Implement game ticks

Autonomous actions in the game that take time should be controlled by server tracked game ticks

Implement basic combat

The combat should be turn based to keep simulation simple and easily configurable by players

Make server port configurable

Now that there is technically a published version of the client, development shouldn't involve updating/restarting the running server.

Splitting the development server from the production one will be easier with a configurable port since I've only got one device/ip to host on.

Allow players to found cities

Players should be able to use the money they've earned and resources they've collected to found a new city. Player created cities should be maintained by the players. If they end up without enough resources to sustain themselves, they should disappear.

Implement a simple chat system

The server should be capable of sending messages to players, and players should be able to communicate with each other.

Update City UI

It should have a trading menu that allows for individual items to be bought/sold in various quantities.

Cities should also have an upgrade menu that provides access to player upgrades.

Implement player character parameters

Players should have things like inventory size, movement speed(cost), mining power, and attack/defense parameters. These values should be tracked per player and determined by upgrades and other details.

Add networking

This will be a multiplayer. Client side networking will need to be set up.

Obviously for this to work, a server must also be implemented.

Set up proper server logging

Right now everything is just printed to the console. Using the python loggers to put the logged events into files for easier parsing would help with debugging and tracking of statistics.

Add structures to the game

Structures should be player owned, take up a space in the game world, and perform some function on each game tick.

Formalize GameSystem

The GameController has a lot of components that control different subsystems of the game. This pattern could be nicely mapped to a common GameSystem interface with the GameController acting as the bridge between them.

Add configuration for server

Right now a lot of the aspects of the server are hard coded. Things like what kinds of resources are available, and their different parameters, should be read from a config file that can be easily extended/updated.

Implement path finding

For the character to move around, we want an intelligent pathfinding algorithm

This will require;

  • World structure to contain useful pathfinding information
  • An A* implementation that can be called by units that need to move to a destination

Investigate using docker for the server

Docker containers would make packaging and deploying instances of the server easy. Setting up a long running server without screen would also be easier.

Docker containers would allow for separating the development server from the production server easily without needing to add extra config options for in mentioned in #41

Implement turn timer

The server should control the timer and push new events to clients when it ticks

Add raiders to the game

Raiders should attack players and attempt to steal resources from cities.

They should take resources gathered back to raider bases.

Over time the raider base converts resources into new raider units.

Implement action points

Player triggered manual actions in the game should have an action point cost.

Each player should generate a set number of action points per game tick that can be spent on actions throughout the game like movement and gathering.

License ?

Hello, under what license is this project released under ? I would like to study it to learn from it. Thank you.

Push city updates to client

While the ui displaying city data is open (as of right now it is always open) the ui should respond to changes to the city made by other players.

Add combat UI

When a player engages in combat, a special UI that allows for the player to make decisions should be presented.

Combat should take place within a single tile in the game world.

Add unit tests for server

In the rush to get things done for the deadline, proper unit tests have been skipped over. Now that there's a little more time to breathe, testing should be brought up to speed with the server.

Implement basic resource nodes

To start, we only need a few.

Food, metal, fuel

visuals go into client.

Server side representation will need to come after map data is stored

Login error reporting

The login page currently doesn't report errors when a password or email is invalid.

For a quality user experience it should let the user know what happened and why their request wasn't accepted.

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.