Difference between revisions of "UNX511 Winter2012 TeamB"

From CDOT Wiki
Jump to: navigation, search
(// my IRC name)
 
(7 intermediate revisions by 3 users not shown)
Line 1: Line 1:
== Introduction ==
+
== Project Platypus - Introduction ==
This semester we are developing a co-operative multiplayer game in UNX511. the project will include: a Unix-based server written in C/C++, and multiple clients running on different platforms.
+
This semester we are developing a co-operative multiplayer game in UNX511. The project will include: a Unix-based server written in C and multiple clients running on different platforms.
  
Players will explore dead city, while searching for safe houses, building barricades or repairing city infrastructure and fighting against aggressive zombies. Game will be based on rounds, where players will have to reach goals. When goal is reached, server will reset map and round starts again.
+
This is tile based defense zombie survival. Players will explore dead city, while searching for safe houses, building barricades or repairing city infrastructure and fighting against aggressive zombies. Game will be based on rounds, where players will have to reach goals. When goal is reached, server will reset map and round starts again, while players will get points for a round.
  
  
 
== Version History ==
 
== Version History ==
 
Project is in the planning phase.
 
Project is in the planning phase.
 
  
 
== Platforms ==
 
== Platforms ==
Line 15: Line 14:
 
* Web interface
 
* Web interface
  
== Ideas List ==
+
== General Ideas ==
*All logged in players need to defend off hordes of zombies using weapons, barricades etc. which can be purchased from an in game menu. Money is earned by each player for zombie kills.
+
Players work together to defend a building from increasingly difficult waves of zombies. In between waves, players can buy items (traps, obstacles, placeable weapons) and place them on the game map. Players are awarded points and money for kills. Players with the most points at the end of the game  "win". But everyone else wins too.. unless they all lose.
*If no players are logged in, game will be paused, and difficulty and scale will be based on the number of logged in players.
+
 
*Game doesn't necessarily have to be real time. Could be based on action timers/cool-downs.
+
If no players are logged in, game will be paused. Difficulty and scale will be based on the number of logged in players, so building will be expanded automatically.
*Add simple AI for NPC characters (zombies, for example)
+
 
 +
The building can consist of several floors. Game begins on the ground level, but players can purchase "keys" to the next level, unlocking more space to place defensive items and create paths for enemies.
 +
 
 +
Game doesn't necessarily have to be real time. Could be based on action timers/cool-downs.
 +
 
 +
(If time permits) Points collected during play spendable in cosmetic shop.
 +
 
 +
== Technical Ideas ==
 +
=== Features ===
 +
 
 +
Server creates instances of games that can contain up to ( 16 or 32 ) number of players. When instance is full, it automatically creates a new instance (fork).
 +
 
 +
Server settings (diffictuly, port number, player limit) will be stored in separate file.
 +
 
 +
We should implement pathfinding algorithm and AI for zombies.
 +
 
 +
MySQL database that will store accounts, players statistics and game data.
 +
 
 +
=== Roadmap ===
 +
 
 +
==== Basics ====
 +
* Client connections handling
 +
* Basic clients (Web, Android, terminal)
 +
* Develop basic data protocol
 +
* Chat
 +
* Static maps
 +
* Player Movement
 +
* Server forking
 +
* Zombies & damage (basic punching)
 +
* Collision detection
 +
 
 +
==== Advanced ====
 +
* Zombie AI and pathfinding
 +
* Map generation
 +
* Database implementation
 +
* Improved client interfaces
 +
* Item placement
 +
* Weapons, inventory
 +
 
 +
==== Additional Features ====
 +
* Auto-scaling
 +
* Difficulty levels, server config
 +
* Interaction with map (picking items, etc)
 +
* Items crafting
 +
* Highscores system
  
 
== Contributors==
 
== Contributors==
 
*[http://zenit.senecac.on.ca/wiki/index.php/User:Idshibanov Ivan Shibanov]
 
*[http://zenit.senecac.on.ca/wiki/index.php/User:Idshibanov Ivan Shibanov]
**role: Will focus on C/C++ Server, assist with Web client
+
**Role: C++ Server
**email: [mailto:idshibanov@learn.senecac.on.ca?subject=UNX511 idshibanov]
+
**Email: [mailto:idshibanov@learn.senecac.on.ca?subject=UNX511 idshibanov]
**irc:
+
**IRC: idshibanov
 +
**Git: [https://github.com/idshibanov/project-platypus idshibanov]
  
 
* [http://zenit.senecac.on.ca/wiki/index.php/User:cadecairos Christopher De Cairos]
 
* [http://zenit.senecac.on.ca/wiki/index.php/User:cadecairos Christopher De Cairos]
**role: Will contribute code to the Server, Web client, terminal client.
+
**Role: ncurses client.
**email: [mailto:cadecairos@learn.senecac.on.ca?subject=UNX511 cadecairos]
+
**Email: [mailto:cadecairos@learn.senecac.on.ca?subject=UNX511 cadecairos]
**irc: cadecairos
+
**IRC: cadecairos
  
 
* [http://zenit.senecac.on.ca/wiki/index.php/User:sbrooks4 Stephen Brooks]
 
* [http://zenit.senecac.on.ca/wiki/index.php/User:sbrooks4 Stephen Brooks]
**role: My primary task is the Android User Interface, but would like to contribute C++ code to the server once I figure things out.
+
**Role: Android User Interface
**email: [mailto:sbrooks4@learn.senecac.on.ca?subject=UNX511 sbrooks]
+
**Email: [mailto:sbrooks4@learn.senecac.on.ca?subject=UNX511 sbrooks]
**irc: sbrooks
+
**IRC: sbrooks
  
* Vlad
+
* Vladimir Steiman
**role:  
+
**Role: Database, Android?
**email:  
+
**Email: [mailto:vsteiman@learn.senecac.on.ca?subject=UNX511 vsteiman]
**irc:
+
**IRC: vlad_
  
 
* [http://zenit.senecac.on.ca/wiki/index.php/User:pbrown9 Paul Brown]
 
* [http://zenit.senecac.on.ca/wiki/index.php/User:pbrown9 Paul Brown]
**role: will discuss
+
**Role: Browser Client
**email: [mailto:pbrown9@learn.senecac.on.ca?subject=UNX511 pbrown9]
+
**Email: [mailto:pbrown9@learn.senecac.on.ca?subject=UNX511 pbrown9]
**irc:
+
**IRC: pbrown9
  
 
== IRC ==
 
== IRC ==
Line 55: Line 99:
  
 
Here's some help for getting started with [http://zenit.senecac.on.ca/wiki/index.php/Irc IRC]
 
Here's some help for getting started with [http://zenit.senecac.on.ca/wiki/index.php/Irc IRC]
 +
 +
== Links ==
 +
* [https://github.com/cadecairos/project-platypus  GitHub Repository]
 +
* [https://etherpad.mozilla.org/unx511-teamB  Etherpad Note] <- SCROLL TO BOTTOM
 +
* [http://help.github.com/win-set-up-git/ How to Set Up Git]
 +
 +
* [http://zenit.senecac.on.ca/wiki/index.php/UNX511_Winter2012_TeamB_Network_Protocol Network Protocol Details]
 +
* [http://warmcat.com/_wp/2010/11/01/libwebsockets-html5-websocket-server-library-in-c HTML5 WebSockets] ([http://git.warmcat.com/cgi-bin/cgit/libwebsockets/tree/ GIT])

Latest revision as of 00:49, 5 April 2012

Project Platypus - Introduction

This semester we are developing a co-operative multiplayer game in UNX511. The project will include: a Unix-based server written in C and multiple clients running on different platforms.

This is tile based defense zombie survival. Players will explore dead city, while searching for safe houses, building barricades or repairing city infrastructure and fighting against aggressive zombies. Game will be based on rounds, where players will have to reach goals. When goal is reached, server will reset map and round starts again, while players will get points for a round.


Version History

Project is in the planning phase.

Platforms

We are planning to develop 3 interfaces for different platforms:

  • Android application
  • Linux client
  • Web interface

General Ideas

Players work together to defend a building from increasingly difficult waves of zombies. In between waves, players can buy items (traps, obstacles, placeable weapons) and place them on the game map. Players are awarded points and money for kills. Players with the most points at the end of the game "win". But everyone else wins too.. unless they all lose.

If no players are logged in, game will be paused. Difficulty and scale will be based on the number of logged in players, so building will be expanded automatically.

The building can consist of several floors. Game begins on the ground level, but players can purchase "keys" to the next level, unlocking more space to place defensive items and create paths for enemies.

Game doesn't necessarily have to be real time. Could be based on action timers/cool-downs.

(If time permits) Points collected during play spendable in cosmetic shop.

Technical Ideas

Features

Server creates instances of games that can contain up to ( 16 or 32 ) number of players. When instance is full, it automatically creates a new instance (fork).

Server settings (diffictuly, port number, player limit) will be stored in separate file.

We should implement pathfinding algorithm and AI for zombies.

MySQL database that will store accounts, players statistics and game data.

Roadmap

Basics

  • Client connections handling
  • Basic clients (Web, Android, terminal)
  • Develop basic data protocol
  • Chat
  • Static maps
  • Player Movement
  • Server forking
  • Zombies & damage (basic punching)
  • Collision detection

Advanced

  • Zombie AI and pathfinding
  • Map generation
  • Database implementation
  • Improved client interfaces
  • Item placement
  • Weapons, inventory

Additional Features

  • Auto-scaling
  • Difficulty levels, server config
  • Interaction with map (picking items, etc)
  • Items crafting
  • Highscores system

Contributors

  • Vladimir Steiman
    • Role: Database, Android?
    • Email: vsteiman
    • IRC: vlad_

IRC

We will be using irc to communicate.

Server: irc.freenode.net
Channel: #UNX511TeamB

Here's some help for getting started with IRC

Links