Giter Club home page Giter Club logo

spacegame's People

Contributors

ecdavis avatar

Watchers

 avatar

spacegame's Issues

Active warp scanner should be a fittable item

In-scope:

  • Fittable slots on Mobiles.
  • Cargo holds on Mobiles.
  • Fittable Items.
  • Command to fit an item.
  • Command to unfit an item.
  • Active warp scan command must only work if an active warp scanner is fitted on the Mobile.

Out-of-scope:

  • Item area.
  • Item stats.
  • Item restricted types.
  • Fittable slot types.
  • Cargo hold area.

Move within a celestial.

Players should be able to move in 3D space within a celestial with adjustable speed and direction.

Integration tests should use a sophisticated client.

As integration tests become more complex and it becomes increasingly necessary to set up state prior to carrying out a test, a more sophisticated integration test client will be required.

Consider the example of testing that warping to a celestial sets the player's position to (0,0,0). First you need to move the player away from (0,0,0) in the origin celestial, then you need to do an active warp scan, then you need to warp, then you need to retrieve the player's position and only after all of this can you confirm that the post-warp position is (0,0,0).

Once we add notifications to the server it will become even more complex.

Change warp to account for a Celestials relative positions.

Currently when a Mobile warps from one Celestial to another, its position within the Celestial stays the same. I.e. if the Mobile is at (10, 20, 30) in Celestial A, after warp they will be in (10, 20, 30) in Celestial B.

Celestials should have a position within the containing Star System. Draw a straight line from the center of A to B, we can call that line the "base warp path" (i.e. the path taken by a Mobile warping from A(0, 0, 0) to B(0, 0, 0). Draw a second line from the Mobile's position in A that runs parallel to the base warp path, we can call that line the "real warp path".

The Mobile's position in B after warp must be the same distance from B(0, 0, 0) as its position in A. There are two positions on the real warp path with this property -- the Mobile's position in B must be the closer of those two positions to its original position.

Add position/velocity notifications for entities.

For now, just add a timer that notifies all entities of the position/velocity of all other entities in the same celestial.

Optional: have a "has_moved" flag on entities which changes when an entity's position gets changed. Only include entities that have moved in the position/velocity notifications.

Implement basic active warp scanning

In scope:

  • Use a command to calculate warp paths from the current celestial to all other celestials in the star system.
  • Warp paths are cleared after warping.
  • Warp paths are cleared after jumping.
  • Change warp command to only allow warp if a warp path has been scanned.

Out of scope:

  • Storing scanned warp paths between warps.
  • Storing scanned warp paths between jumps (we may never do this).
  • Active warp scanner as a fittable item. Right now it's just a command.

Log in and chat.

Players should be able to connect, log in with a persistent identity, and chat with other players.

Implement a basic ship frame.

Ships are distinct from mobiles. Per the design doc, they are pilotable entities. Implement a basic ship frame (and, by extension, simple entity model) and have movement commands control the ship frame rather than the mobile.

Develop basic passive warp scanning

In-scope:

  • Passive warp scanner should contain warp paths to all warp beacons by default.
  • Passive warp scanner should be populated with other warp paths when active scanner is run.
  • Passive warp scanner should retain warp paths even after the Mobile warps.
  • Passive warp scanner should be cleared when the Mobile jumps.

Rethink session/mobile/entity division.

Currently the session is both a brain and an actor, the mobile is an actor with a brain, and the entity is a piece of content with an optional pilot. This may be unnecessarily complex and an artificial abstraction born of the division between PantsMUD and spacegame.

Integration tests should use a pre-populated data directory.

As integration tests become more complex they will need a more predictable game environment to operate in (see warp unit tests in PR #52). Change the integration tests so that they copy an existing game environment to the temp data directory that they run against.

Warp beacon should be a deployable item

This isn't covered in the design doc, but it should be possible to have an item which can then be deployed to create an entity. The warp beacon should be first deployable item. It should create an anchorable entity.

Commands involved are probably deploy and anchor. This needs to be specced out before it's developed.

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.