GithubHelp home page GithubHelp logo

emanzione / cropskingdom Goto Github PK

View Code? Open in Web Editor NEW
2.0 3.0 3.0 365 KB

A RTS game for GameLoop's GL-RTS class!

License: GNU General Public License v3.0

C# 98.16% ShaderLab 1.84%
rts rts-game unity3d networking netcore2 netstandard20 csharp udp ecs jobsystem

cropskingdom's Introduction

Crop's Kingdom

Crop's Kingdom is my entry for GameLoop's RTS class (GL-RTS).

Introduction

The game is a multiplayer real-time strategy battle among atleast 2 players (up to 6). Every player starts as a vegetable-faction with a king (a controllable unit), the headquarter and a worker. The objective is to kill others' kings while defending your own. If your king dies, you lose the game.

To do so, you can build your vegetable-kingdom by recruiting your army, collecting resources, creating new buildings, advancing in the technology tree faster than your opponents, etc.

Goals

  • Facing the challenge of building a RTS game
  • Improving my network programming skills
  • Creating a multiplayer, wannabe-competitive game experience (in the end)

Networking

Networking code is based on this library I am writing for this class, in order to teach people network programming basics.

Factions

I start with few factions (I think Potatoes and Tomatoes, just for testing), but of course any vegetable can be a faction. When I'll complete this project, I'll take care of adding more factions (eggplants, carrots, etc). Factions have different graphics, matching with the different vegetable they represent. They also have unique king's abilities and some differences in their units/buildings.

Units

Units are controllable entities that can perform specific tasks for you. You can't create more units than the current maximum units limit.

  • King: the most important unit. It has special faction abilities and protecting its life is your interest in order to win the game. When there are no allied buildings in its range, it starts to lose HP.
  • Worker: the unit who can create buildings by spending resources, loot resources from the environment and work in buildings if needed. Low HP, usually no special abilities.
  • Fighter: the unit who can deal damage to opponent units and buildings. There are multiple types of fighters: ranged dps, melee dps, melee tank. They can have different statistics, abilities and spells based on their faction.

Buildings

Buildings are units with fixed position and specific behaviors. They allow you to unlock some features, they can be destroyed by yourself or by the enemy units. They cannot be moved.

  • Headquarter: it produces workers and has some powerups/abilities based on the faction. From this building the water irrigation starts. If you lose it and you have no workers, you basically can't build anything anymore!
  • Garden: it produces fighters, by seeding the terrain.
  • Botanic Lab: it allows you to unlock new abilities and technologies by investing resources and time.
  • House: it allows you to increase the maximum units limit in order to create more units.
  • Resources processing: these kind of buildings allow you to process resources in a specific way. Example: they can transform wood in compost, etc.
  • Water well: it increases the water production and extends the water irrigation range.

Resources

Resources can be produced and extracted from the environment or with specific buildings/units. They allow you to build everything in your kingdom.

  • Wood: it can be extracted with a worker from surrounding trees.
  • Compost: the main currency in this world.
  • Water: the main source of energy in this world.

Constraints

GL-RTS has some constraints we have to implement for each entry:

  • camera management system: the camera should be moved with arrow keys or by moving the mouse pointer to the screen's borders. It also has to focus the selected unit or (if no units selected) your king.
  • grid management system: for building, pathfinding, etc.
  • building management system: for buildings creation and management. Buildings creation is contrained to the grid system. Building something requires resources and time (both requirements can be "0" for no-cost, instantly building).
  • resources management system: for resources management.
  • units management system: for units management.

Milestones

TODO

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.