Giter VIP home page Giter VIP logo

boom's People

Contributors

waffle-iron avatar

Watchers

 avatar  avatar

boom's Issues

Fix animation bug

All animations are now removed when a new animation is triggered - this should only be true if it is a local animation (on the same object)

Bug: When alien animates, the weapon animation freezes

Add checks for x,z bounding boxes for entities

GridCollision should check entire bounding box for valid collision (now only if its rounded to the x,z location and within the y-bounding.

Should do this for all collision_components to make it more precise.

This could also be implemented for neighbourchecks to have a less constrained movement-space (e.g. instead of grid-size it checks for bounding-size and position in grid)

Add a simple HUD

Should be based on player-components and display current values of e.g. health, weapons and ammo.

PoC - First Steps

  • Create 'world' with a textured floor, fog
  • Add FPS Camera so user can move and look around using mouse/keyboard
  • Add walls surrounding the floor
  • Implement simple skybox surrounding the world
  • Add Physijs and make the world collideable, gravity etc.
  • Add basic debug, and a debug toggle
    • Axis displayed on 'players'
    • Display world-grid
    • Toggle FPS/MS
    • Toggle World Axis / Coordinate indicator (0,0 and X, Y , Z from there )
  • Extend movement
    • Accelerate, Decelerate when moving
    • Jump
    • Sprint
  • Add simple weapon model
  • Implement rudimentary shot from model
  • Add simple procedural map generation
    • Map: Create the basis for a external map definition (symbols, enums generating certain terrain)
    • Integrate Tiled with Boom (generate map and import to boom)

Add HIT-Component type

Create hit-component type and make the current hit-result between entities a bit more complex

Fix Input-lockdown

Right now the input locks down when e.g. space and a movement key is pressed (only 1 is allowed to process).

This is not a problem for multiple movement-keys and/or mouse-clicks.

  • This was solved by aggregating the input in the movement-component on each update (from data received from input-component).
    • Might have to do something similiar (aggregate the data from the jump-component and combine with other data in the movement-component)

Implement 3D Sound

Right now howlerjs is playing the sound directly on canvas (?) - but I need it to be played at the actual 3d-location so it is reduced the further away the player is - to avoid flooding the player with all sounds on the map at once!

Three looks to have implemented a WebKitAudioAPI-wrapper so will try and replace howler with this..

Implement Sprint

Add features needed to make the player sprint.

Should be an action-component like jump

Add Entity/Enemy-Factory

Need to be able to generate different enemies/entities based on the information provided by the 'entities'-layer in the tiled-map.

First thought is to have a factory that receives a set of parameters from the world-builder from the layer

  • Right now there is a unique identifier for each entitiy, and a position is generated by the world-builder.

    -> Use this ID to specify what type of entity to produce with the given parameters and call this from the world-loader

Add entity-collisions/registrations to CollisionGrid

The Collision grid should have support for detecting collisions with non-static entities.

Right now it only registers static entities in the collisiongrid.
Should probably have an additionl grid-layout with non-static entities that are specified by entity-id to generate different results based on the entities colliding.

E.g. if a bullet collides with an enemy in the new grid - this should trigger a -health on the given entity and whatever follows from that (death, hurt etc..)

Should probably rename the current grid-array in collisiongrid to reflect this

  • Not sure if best to combine the two grids, or have separate (might be easier with separate so I might start with this)

Implement lights - defined in tiled-layer

Implement a basic light-type that can be added on the tile-layer.

Lights are loaded in the same manner as other static entities (walls, floor etc.) in world.load()

Start with a basic light to PoC and make sure it works, make it easy to implement different lights (either a configurable entity - or several entities (one per light-type)

Implement basic power-ups

Add basic power-upps

  • Add layer in map
  • Create entity for a pickup
  • Implement 'pickup-collision' (Mark entitiy as available for pickup, and entity as available to pickup - components ?)

Implemnt simple health-pack as PoC/Test

Implement DEATH-action component

A death action-component should be triggered when health is 0 or entity is destroyed.

This should trigger a sound, animation(later?) and disposing the entity.

Implement Skybox Entity

Skybox should be improved and moved to its own entity.

Skybox-information should be defined on the tiled-map, and loaded when other entities from map are loaded (world.load)

Should be direct property on map

Implement AI-Input component

Implement a new input-component to be used with AI.

Should have an AI-script that performs all 'user-input' instead of mouse/keyboard (current).

Combining this with the current basic movement component should be enough to have movable enemies. Will start very simple - with random movement / attacks to test the concept.

Improve / re-invent the jump-component

Jump action needs to be reimplemented. Was last fixed to work with new design after physijs was removed from the solution.

Need to make it 'smoother' and more controllable

Implement specific collision component

The specific collision component should only collide when the position of the entity its part of is directly on top of another entity.
Useful for e.g. bullet/projectile hits.

  • The current collisioncomponent should be renamed to reflect that it collides/slows down/prevents movement when a neighbouring position is collidable

Add music to map

Implement a musical track to be played specified by the map selected.

First iteration:
One track to be played on map load

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.