Code Monkey home page Code Monkey logo

terminus's People

Contributors

adi64 avatar fidge123 avatar lw0 avatar naskyd avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

terminus's Issues

Load 3D Models

  • Create Dummy 3D Model
  • Load and display 3D Models in the game world

Game crashes when loading faulty .OBJ

The game crashes without an error message when loading a faulty .obj (in this case an obj without a single "o" line). The crash could also be caused by trying to load a model that is not available.

Expect behavior would be not loading any geometry for this object and displaying an error message.

Load and play background music

  • Check which file extension are supported
  • Load the file for the background music
  • Play file while being ingame
  • Loop background music

Sound

A more silent soundFX causes the other ones + background music to be played at the same level.

->Engine wagons sound disturbes backgroundmusic in general.

Add loading screen

With great loading times come great responsibilities. These responsibilities include an awesome entertaining loading screen.

Create basic enemy AI

  • create and use basic AI train layout
  • AI can use weapons (aim to center of player train)
  • AI can use repair
  • AI alternates between using a weapon and repairing
  • Play by the rules (i.e. use primaryAction() etc.)

Improve touch interaction

  • Animate and smoothen the change of position of the camera after flicking
  • Fine tune values to distinguish flicking, pinching and the multiplier for other interactions
  • Restrict gestures to certain areas/modes

Create advanced AI

improves #10

  • randomize train layout (different layouts every game)
  • use priority system to choose next interaction
  • use priority system to find next target wagon to attack
  • AI takes into account the length of the level/track
  • Recognize difficult terrain and change priorities accordingly

Fix Camera

Camera does not return the right matricies yet.

Load and play SFX

  • Check supported file extensions (performance?)
  • Load SFX files (manager class?)
  • Play SFX sounds at appropriate moments
  • Adjust volume according to distance to camera

Calculate bounding box of Geometry

We need to know the extent of a Geometry object in order to do collision detection and other things. As long as our models are more or less quboids, an axis-aligned bounding box / AABB will do the job.

Implement event / schedule queue

In order to properly synchronize game state changes (i.e. deleting nodes), a queue of events should be implemented that will be processed before Scene::update(). This way, events can be safely scheduled asynchronically (e.g. deleting a node in response to a key press while rendering nodes).
This means that our game loop will essentially consist of

  • process scheduled events
  • update every node
  • render every node

AbstractGraphicsObject members for referenced geometry, materials and programs

At the moment, needed geometry is only referenced while rendering. I think AbstractGraphicsObject should have members that list used geometry, materials and programs. I think of something along the lines of std::vector<std::string> m_usedPrograms (and m_usedGeometry and m_usedMaterials).

Also, while we're at it: I don't know how bad it really is, but referencing geometry etc. by string makes every render() call of every object cause about three hash-map lookups. If we really know all resources at compile-time, maybe enums make sense?

Commit to or remove glm

Using both QVector/QMatrix and glm::vec and glm::matrix all over the place wont work in the long run. Which one should we keep.

  • Make a decision
  • Create guidelines on usage of when to use glm or Qt Containers
  • Adopt guidelines in existing code

Create basic game UI

Possibly as non functioning mockup overlay for Early Access Convention but preferably actually implemented

  • Own train and enemy train status bar
  • Aiming reticle if weaponwagon
  • Primary Action Button
  • Wagon Switch Buttons
  • Force Bar
  • Health Bar
  • Map?

Lock camera to wagon

Camera should be able to be locked to a certain object (mostly AbstractWagonObjects) and follow its movements.
When locked to a wagon, camera center should be fixed a little above the center of wagon's top plane and movement should be limited so that the camera eye moves along the x axis of the wagon.

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.