Coder Social home page Coder Social logo

ouija's People

Contributors

anders-e avatar dependabot[bot] avatar emilppp avatar miht avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

Forkers

anarcypher

ouija's Issues

Lower server side FPS

There is no need to run the simulation on the server side 60 times per second; we're wasting a lot of CPU time. ~20 fps seems more reasonable.

Marker movement must still appear smooth in the client.

Proper game update logic

  • Use all player inputs
  • All players exert a force on the marker
  • The sum of these forces are applied to the marker

[Main menu] Private séance

Upon clicking this button, the player will be able to either

  • Enter an invitation key, proceeding to join an existing game
    or
  • Create a new session, which may only be accessed using an invitation key and an optional password.

Break down main.ts into smaller files

main.ts (no class)

Sets up all classes and connects the pieces.

OuijaScene

Contains everything regarding non-UI graphics.

Network

Contains everything regarding network (communication w/ server)

UI

Contains everything regarding the DOM UI.

EventSystem

Basically the current class but extended. Includes all references to assets used for events.

Lazy load modules

Current webpack warnings:

WARNING in asset size limit: The following asset(s) exceed the recommended size limit (244 KiB).
This can impact web performance.
Assets: 
  bundle.js (787 KiB)

WARNING in entrypoint size limit: The following entrypoint(s) combined asset size exceeds the recommended limit (244 KiB). This can impact web performance.
Entrypoints:
  main (787 KiB)
      bundle.js


WARNING in webpack performance recommendations: 
You can limit the size of your bundles by using import() or require.ensure to lazy load some parts of your application.
For more info visit https://webpack.js.org/guides/code-splitting/

Implement Settings

  • What settings to include?
    • Graphics
      • Anti-aliasing
      • Shadow quality
      • Effect quality
    • Volume
      • Master volume
      • Ambient volume
      • Effect volume

Furthermore, should the settings be accessed both from the main menu and/or the game view?

Implement game session logic

  • Players should be able to join random games automatically.
  • Players should be able to copy invite links which automatically adds players who use it to the game session.

Investigate Marker Speed

Marker speed should remain consistent independently of the number of players in a game. The marker should also not be able to move to fast as an effect of multiple players dragging it towards the same direction.

Implement a simple UI

Main menu

  • Join random session
  • Join specific session
  • Create private session

In-game

  • Copy invite link
  • Exit game session

Notice: no logic needed, only buttons and associated onClicks

Illuminated characters

Idea - illuminate the characters based on the distance from the marker.

Approach #1: Multiple textures, no need for light source:

  • One plane with a texture for masking out the letters (making the letters 100% transparent)
  • One texture beneath the previous, white diffuse
  • A plane with an emissive radial gradient texture, following the marker around the field and placed in between the two previous textures.

Config file for server

Some simple configuration file that is read by the server at startup.

  • Max players per game
  • Max number of games
  • Port no.
  • Environment (production, development ...)

Optimize scene

Scene needs further optimizing. The current model is approx. 24 MB large, and can be cut down.

This optimization will include removing the camera room panning animation. The center of view will thus only consist of the desk, the items on the desk as well as some objects seen in the background.

If a camera animation will be used, it will at most be a zoom-in from a close distance, only showing the desk.

Objectives:

  • Remove backfaces and faces that will not be rendered.
  • Clean up and redo UV unwrapping with optimization in mind.
  • Remove all items that won't be visible in the view.
  • Textures should at most be 2048x2048. For smaller items (comparable to a wine bottle or lamp), use 1024x1024.
  • Rebake lighting for all textures in the room. The scene will rely heavily on natural and properly baked lighting.

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.