Code Monkey home page Code Monkey logo

shadersoccer's Issues

Add goal areas to playing field

Goal areas need to be added to each side of the playing field.

The areas can simply be rectangular, but any visual distinction should be fine.

The goal areas must be bigger than the height of the players. This may mean shrinking the height of the players.

When the ball enters into a goal area, the goal area should increment its internal score, and the ball should return to the center of the playing field to begin moving again.

Add winning screen

A winning screen needs to be created when a match is over (this can happen after a certain number of points or after a time period for whoever has the most points).

The winning screen should clearly indicate the winner, scores of both teams, and provide a way to return to the game setup screen.

Add scoreboard to gameplay state

A scoreboard should be added to the main gameplay state. It simply needs to display the number of points scored by each side. It can retrieve the scores by requesting them from the goal areas.

Add team color selection

The game setup screen (and by extension, the main gameplay screen) need to be enhanced to allow humans to select the color for their teams. The color would then be modified in the basic diffuse shader for each player on a given team.

Add initial game setup screen

An initial game setup screen needs to be created. This should be the screen that the game transitions to after selecting the "start" option on the title screen.

The initial implementation can simply have a button to transition to the main gameplay state using default settings. Additional enhancements will be made to this setup screen in future issues.

Add player model selection

Different 3D models contributed by Chris DeLeon need to be selectable on the game setup screen for use during gameplay for each team.

Add support for multiple lines of players

To differentiate this game and make it more like "table soccer" than "table tennis", the main gameplay mode needs to support multiple vertical "lines" or "columns" of players.

The desired formation would probably be 1 3 2 for each side, but it could be 1 3 1 if needed.

Pressing A/D or left/right arrow keys should allow a human player to switch between the line/column of players currently being controlled. W/S or up/down arrow keys would move the current line of players vertically.

Add CPU player AI

To allow the game to be more fun for single players, CPU AI needs to be added to control a player on either side of the playing field.

It should be possible to configure a player to be controlled by the CPU AI or human keyboard input.

The initial AI implementation doesn't have to be really fancy - it can be improved later.

Add score-based and time-based gameplay modes

The game setup screen needs to be enhanced to support selection of one of the following different gameplay modes:

  • Score-based - The game ends when one team has scored a certain number of points.
  • Time-based - The game ends after a certain amount of time. The team with the most points wins.

This task also includes enhancing the main gameplay state to support both of these modes.

Add title screen

A basic title screen needs to be added to the game. The initial implementation just needs to display the game's title and have menu options to start a game or view the credits screen.

Add stage configuration

The game setup screen needs to be enhanced to allow selection of different "stages" for playing the matches on.

A stage is defined by a background image/color and background music. For simplicity, we can allow these two properties of stages to be chosen independent of each other by humans.

This task also includes enhancing the gameplay state to support different background images/colors and music.

Add credits screen

A basic credits screen needs to be added.

It should display real/screen names for each contributor (it is up to each contributor to decide which name he/she would like) and provide a way to return to the title screen.

Add ball color selection

The game setup screen (and by extension, the main gameplay screen) need to be enhanced to allow selection of the ball's color. The color would then be modified in the basic diffuse shader for the ball.

Add time clock to gameplay state

A clock displaying time for the game needs to be added to the gameplay state. It can be shown in the center between the scores for each team.

Initially, the clock only needs to count up (MINUTES:SECONDS). However, it will need to also need to be able to count down for a mode that will be added to the game later, so it would probably be nice to go ahead and implement this functionality and make it configurable.

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.