Giter Site home page Giter Site logo

sopra18-07 / singularity Goto Github PK

View Code? Open in Web Editor NEW
11.0 11.0 1.0 30.13 MB

A game being created as part of our university study plan. Look forward to it!

License: GNU General Public License v3.0

C# 98.12% TeX 1.88%
creativity csharp game game-2d game-development gamedev player realtime scrum singularity strategy-game university university-project visual-studio xna xna-framework xna-game

singularity's People

Contributors

ativelox avatar confectio avatar eciaf avatar fkarg avatar fkarg-work avatar hufflepuff79 avatar no-diehl avatar yvan674 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

Forkers

curioustauseef

singularity's Issues

Create Resource classes

Derive the IResource interace and implement all the other resources except 'Stone' as described by the Architecture

Map and Camera Creation

A map should be somehow internally be represented and shown

The map consists of three layers: the Terrain Map, the Resource Map, and the Collision Map.

The Terrain Map is an object that can load specific textures - might also be a single picture right now.

Implemented should be:

  • Terrain Map Object, loading a texture
  • Collision Map - Just a 2-dimensional Array (or Vector) with the size of the map containing Option-types with ID's of the objects on them.

Start implementing the UI

There should be Windows of sorts available (with default sizes is ok), that can be moved around, as well as some WindowItems as specified from the Architecture.

Additionally, the Event Log should exist (can be moved around, and new Event messages can be sent to it - the story manager will do that later on).

The Event log behaves as if it's several labels with the content moving upwards, the newest being at the bottom.

Military Path finding

Specify exactly how A* is using the Collision map and is doing the path planning, specifically how the military units are interacting with the PathManager and the MilitaryManager. Look into how Jump point search would improve stuff.

requires #164

Specialized Platforms

Create objects for specialized platforms according to architecture

When finished, the following platform-types should exist:

requires #9, requires #72, requires #73, requires #74, requires #75, requires #76, requires #82, requires #83, requires #84, requires #85, requires #86, requires #87, requires #88, requires #89

Create Screen Manager

Methods:
Update(GameTime):
Draw():
AddScreen(IScreen):
RemoveScreen(IScreen):

Member-variables:
Stack mScreenStack

Creation of Platform Object

Create Object for blank Platform placed on the map using the texture specified for it

Platform has coordinates (on map) and moves with it when the camera is moved

requires #6, requires #8

Create Input Manager

List keyListeners
List mouseListeners
add/removeMouseListener(IMouseListener)
add/removeKeyListener(IMouseListener)
Update(GameTime)

The Input manager has two Lists to manage. Every Object that is waiting for a MouseEvent, can be put into the MouseListener List(add/remove ...Listener method), and the same with KeyListeners. Depending on what input he gets (f. ex. someone presses the left mouseclick), he has to create the corresponding Event (see Classes KeyEvent, MouseEvent) and evoke the methods of the interfaces IKeyListener or IMouseListener (in the example it would be mousePressed(MouseEvent)) for every object in the corresponding List.

Add Comments to the Game Screen Manager

@Ativelox könntest du noch mal mehr Kommentare für den Screenmanager machen? Also ja es ist klar was der Code jeweils tut, aber nur nachdem wir in der VL saßen. Beschreib doch jeweils warum was vererbt wird und was der Gedanke dahinter war :)

Implement the Well (specialized Platform)

Communicating with the resource map to look for Well-Based Resources underneath and getting them up. - no wait that's for the PlatformAction to handle .... so it's actually just a blank platform with a special texture?

Implement the Mine (specialized Platform)

Communicating with the resource map to look for Mine-Based Resources underneath and getting them up. - no wait that's for the PlatformAction to handle .... so it's actually just a blank platform with a special texture?

Create IResource interface

Add the functionality as described by the Architecture.

Create Example-Resource Object 'Stone' deriving the interface.

Create GameScreen

Create the GameScreen to further ease the showcasing of features and to establish the basis of the game.

Implement the Quarry (specialized Platform)

Communicating with the resource map to look for Quarry-Based Resources underneath and getting them up. - no wait that's for the PlatformAction to handle .... so it's actually just a blank platform with a special texture?

Create start menu

Sollte beinhalten:

'Spiel Starten'-Button der zur map übergeht sollte diese vorhanden sein

(depends upon #6)

Create and do presentation on 2018-05-16

Create slides
think about what we want to present our game, what we already can present, maybe include some screenshots from Achikaps or sth, some concept arts or whatever.

Create Platform Interface

Abstract interface. Names are subject to change.

methods:

  • draw()
  • update(GameTime)
  • getAssignedUnits()
  • getPosition()
  • getSpecialActions()
  • doSpecialAction(action)
  • resourcesRequired() // list of resources required with numbers
  • getResourcesOnPlatform()

attributes:

  • special actions (datatype, has: Blueprint build, Unit creation, settler creation) -- create the datatype for that
  • int health;
  • int id;
  • List of Resources required (asked for, and can be stored on the platform)
  • List of Resources on Platform
  • Position

Enemy Military units

Update the goTo(coordinates) function so that the internal path is not just a straight line, but the first 2 points of an A*, and regularly gets updated (every 2 seconds or so). Use the passability map for pathfinding, and allow getting close to structures (which tiles would have been unpassable).

requires #77

Background Music

find some cool background open source music, add it to the github and let it play continuously as soon as the program is started

Create Unit Interface

methods:

  • getId()
  • getPosition()
  • draw()
  • update(GameTime)
  • move

attributes:

  • ID
  • assignment (job, like walk over there)
  • position (coordinates)

(as specified in the Architecture)

Create map textures

Start creation of the different map textures. Textures should be the size of the maximum size of the map or tile-able in a way that doesn't look like it is tiled. Textures should include:

  • Dirt
  • Grass
  • Water (rough)
  • Water (calm)
  • Stone
  • Mountain
  • Sand

Add the ReSharper to Travis

extend the .travis.yml so that before building, the ReSharper is being run with the SoPra configuration, and the build fails if the ReSharper finds errors.

Create PlatformActions

implement the PlatformActions Interface and implement the BuildBlueprint PlatformAction as specified.

Also implement the PlatformActions for Extracting resources - generalized or specialized?

Camera movement

Camera should be moving in the representing direction of 'WASD', or moving of a clicked mouse

depends upon #6

Create Architecture

Create a UML

Specify Interfaces, Classes, relevant member variables, no internal or helper stuff, hierarchies, instanciations, control flow

with detailled descriptions if necessary

Create Military Unit Class

Inherits from Unit Interface, additionally:

attributes:

  • health
  • goal
  • path

methods:

  • goTo(coordinates) // create path, direct line. (might be tile on the map)
  • health getter
  • damage setter

Create SoundManager Class

Methods:

  • PlayMusic(array listOfSoundnames / string soundname) -> depends on whether we have several background-songs or just one.
  • PlaySound(string soundname)
  • StopMusic()
  • StopAllSound()
  • LoadContent(Resourcemanager resourcemanager)
  • UnloadContent()

Automatic PR build

Add a Buildserver, and a travis.yaml for automatically building projects with Tracis CI

Create Classes KeyEvent, MouseEvent

KeyEvent:
Keys[] getKeys()

Create Enumeration for MouseButtonstates (called EMouseButton).
MouseType:
EMouseButton getMouseButton()
Vector2 getPosition()

Create General Unit Class

derives the Unit Inferface. Additionally:

attributes:

  • carrying resource (which one, ID)
  • goal position (platform) (for resource, for next job)
  • position (platform, road)

methods:

  • drop() (resource)
  • getCurrentPosition()
  • goTo(platform id)

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.