Giter Club home page Giter Club logo

weasel's People

Contributors

trisfald avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

weasel's Issues

Statistics/abilities for teams.

We want to support the following use cases:

  • Assign, update and remove statistics to a team.
  • Activation of special abilities initiated by a team, not an actor.

However there are some constraints we should keep in mind:

  • It would be better to conceptually separate existing Statistic and Ability from the ones of a team.
  • Keep it as simple as possible. The fewer new associated types and functions in TeamRules, the better.

An initial idea is to merge both statistic and abilities of teams into a single object (team's Power?).

The goal of this task is to propose a design for this feature.

Discover graveyard for defeated creatures / objects.

Evaluate if having a graveyard to store dead but not removed entities would be an useful addition to weasel.

Provide sound reasons to justify the choice.

If the outcome is positive, an high level design should be provided to prove the feasibility of the feature.

Create a 'Span' event

Create a new type of event, 'Span'. Its purpose is to simply contain one or more events so that all of them can be processed atomically.

Example for reactive actions.

Small example to show how to implement reactive actions.
For instance, the example could be a small program (not interactive is fine) with:

  • Two teams
  • One creature per team
  • Creature 1 starts a round.
  • Creature 1 performs an ability (attack) on Creature 2.
  • Creature 2 does a counter attack.
  • Creature 1 ends its round.

Support for StartRound of an entire team and/or multiple creatures

In some games you can start a round for an entire team or, more generically, for a set of actors. This is currently not supported in weasel, as the only workflow is:

StartRound (actor A) -> ActivateAbility (actor A) or similar events -> EndRound

Instead we want to support also:

StartRound (actor A, actor B) -> ActivateAbility (actor A) -> ActivateAbility (actor B) -> EndRound

The objective of this task is to come up with a solution to support this new feature while having the minimal impact on the current API.

Add RemoveEntity

Add a way to remove an entity starting from an entity id. Currently, in order to achieve this the user must do a match and use RemoveCreature or RemoveObject.

One way could be to introduce a RemoveEntityTrigger struct (the solution is to be validated).

An example featuring play over network with a server and a client.

Evaluate if it should be added as an example, as a subcrate or as a standalone project into its own repository.

It might be worth to expand a little the scope and create a proper terminal multiplayer game. Chess or checkers are a possibility, but a completely original game would be fine as well.

Write an user guide

Write an user guide to explain the basic concepts of weasel.

The book should be available online in a similar manner as the official Rust book.

[Benchmark] Number of events processed per second

Could be useful to have a benchmark to measure how many events can be fired per second.

We could think of running one bench with only DummyEvent and another bench with StartRound and EndRound in sequence.

Keep in mind all events end up in the in-memory timeline and we shouldn't allocate too much for a benchmark.

Generalize entropy

Make generalize function work for any type of number N.
Expose a function similar to generalize that accepts a profile used to choose a distribution type at runtime.

More system metrics.

Expand the available list of system metrics. Around 10-15 new metrics (the most useful we can think of) is a good start.

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.