Giter VIP home page Giter VIP logo

streamnesia's Introduction

YT

W

I also make tutorials ๐ŸŽ“

video

streamnesia's People

Contributors

oddstuffcs avatar petrspelos avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar

streamnesia's Issues

Prevent Poll duplication

Summary

If the poll website is refreshed multiple times. There will be many polls running at the same time causing unexpected behavior.

Make Streamnesia pull payloads from the repo

Summary

This will make sure that people playing Streamnesia will always get the latest payloads and fixes to payloads in this repo.

Implementation

Any front-end C# application (ConsoleApp & WebApp) should first call a module that will sync payloads with this repository.
This will most likely require another configuration JSON file which will contain GitHub raw file URLs to individual payloads. The Application can then decide to either download missing payloads, or overwrite existing ones.

If there is no Internet connection, Streamnesia should simply skip this step. That's also why the payloads are downloaded and stored locally.

A reset mechanism

Summary

For now, some payloads are not properly scheduled or get lost during execution. This means the player can frequently get into states from which there is no escape (eg. blind, unable to move, tiny, mega jump...)

This could be potentially fixed with a Streamer sided command for resetting his player. OR a way for a payload to say it is going to cause such state and thus needs to be cleared afterwards.

In-game config

Summary

The .NET check rate is currently hard-coded in Amnesia.exe. It would be useful to extract it into an in-game settings menu, where the user would be able to change the frequency of checks.

This should help people on lower-end devices increase performance.

Concurrent execution seems to halt the application

Summary

While this is very difficult to reproduce, when the command queue is accessed concurrently, the application seems to halt. The voting continues, however, commands are no longer executed. This hints at a concurrency problem that could be fixed by rewriting the command queue using concurrent collections.

Better grunt spawning

Improve the "Spawn Grunt Randomly" spawning, since it currently picks the first area it finds which is going the be the same one every time.

Support for payload sequencing

A number of times a payload would like to perform something, wait for a while, and then do something else. Maybe multiple times, maybe even depending on an in-game variable.

The simple script execution is implicitly in a method scope so any attempt at this from within a payload would just freeze the game.

However, anti-payloads are already managed by the C# script queue.
Payloads should have a way to tell the Script Queue that parts of it need to be executed at different times.

Add alive indicator

an optional on-screen indicator whether the application is still processing requests

this could potentially be a DEV mode with more information

Spawning doesn't work when maps lack areas

Summary

Spawning of entities is handled by the CreateEntityAtFirstArea function which iterates through existing entities and creates a new entity at the first ScriptArea it finds. This, however, will not work if the map doesn't have any.

Upgrade to .NET 5

Summary

It would be really nice to move to .NET 5 to get some of the C# 9 features as well as the performance upgrade.

Implement stacking prevention

Summary

The twitch poll system can wait for Amnesia to process an instruction before creating a poll for a possible next one. This will prevent stacking situations where all previous votes happen at once when the game starts.

Payload management

Summary

Some users have their own payloads and the new feature, that pulls the vanilla payloads overrides the payload list on runtime.
Ideally, users would be able to configure their own local payloads, as well as their own online sources.
This will also require the ability to either not force the update of payloads, or addition of the ability to disable it.

Card number readability

Summary

The number of the voted card is not very readable, since it's dark red on dark background. This needs to be changed.

Streamer/Mod commands

Summary

Add the ability for the Streamer (or their moderators) to control Streamnesia through chat.

Commands to implement

  • !pause to completely pause Twitch Poll processing
  • !unpause or !continue or !start to unpause Twitch Poll processing
  • !banvote @user make votes by a specific user not count
  • !unbanvote @user make votes by a specific user count

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.