Git Product home page Git Product logo

meleelight's People

Contributors

amilajack avatar clshortfuse avatar dandeto avatar jonathanpicques avatar kb18951452 avatar nl-tatatat avatar nolram88 avatar rcya1 avatar schmooblidon avatar sheaf avatar tjohnw avatar wbobeirne 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  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  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

meleelight's Issues

Shield VFX does not appear during match

Since the rafactor branch merge, the shield vfx do not appear during a match, while they work just fine in the character select screen. Note that the shield break vfx do work as expected.

shieldvfx_1

shieldvfx_2

I am not getting any errors in the console, but maybe someone adept at debugging can go through and see what is happening.

This issue is happening on both Chrome and Firefox on my end, and with both meleelight.html and meleelightikd.html.

physics game crash

was in the middle of a jab picture here of the crash. Music and background animations still playing too

Sometimes happens with the variant "Cannot read property '0' of undefined" or something like that, but it's less often in my limited experience of playing.

Uncaught TypeError: Cannot read property 'x' of undefined
    at physics (physics.js:844)
    at update (main.js:908)
    at gameTick (main.js:1055)

Incorrect quit combo checking

In main/main.js:643, we are checking to see if either player 1 or player 2 is holding down the traditional quit button combo: L+R+A+START. However, we are checking it like this:

(tempBuffer[0].a || tempBuffer[1].a) && (tempBuffer[0].l || tempBuffer[1].l) && (tempBuffer[0].r || tempBuffer[1].r) && (tempBuffer[0].s || tempBuffer[1].s) (

Is this really the intended logic? This checks either player 1 or player 2 happen to be holding any of these buttons. In actual Melee, the buttons are checked PER PLAYER as opposed to the logic being combined. With this logic, player 1 and player 2 can accidentally quit the game by playing the game legitimately, such as if player 1 were holding down A+R, and player 2 were holding down L+START.

Link to source: https://github.com/schmooblidon/meleelight/blob/master/src/main/main.js#L643

Clipped Through Wall on Target Test 9

Did a waveland onto the platform and clipped through the wall (getting a really fast record)

It was the wall to the right 2nd to last platform on the very left side of the stage

Radial lines background not resetting line stroke/colour values

The radial lines background is not properly resetting the values it is using for line stroke and line colour.

For instance, go into the credits and shoot some lasers, and then go to the target builder. If the radial lines background is chosen, one can get the following effect:
target_builder_bg_gfx

Fox Illusion is bad(not bait, just bad title)

I don't think fox's side-b correctly emulates melee's side-b.
He isn't supposed to be able to fall off the ground with his final velocity after the last point he can shorten or whatever

Crash on load in Safari

When loading in Safari, an error appears saying that the variable layers cannot be found. This problem did not occur when I used Chrome, but once in Safari, the game would not load. I managed to fix this problem by moving the declaration for layers to the top of the main file. This fixed the error, but I do not want to make a pull request, as you can choose where you want to move the variable.

gameTick optimisation

Here are the main problem points I have found:

  • the deep copy of hitboxes into old hitboxes at the start of the main physics routine (takes up about 20% of the physics routine time)
  • the showButton function used at the end of interpretInputs to display buttons, which uses jQuery (takes up about 70% of the time spent on dealing with inputs)

Game modes

King of the Match
Round robin style(1v1 stock 2 lives in case of tie sudden death) where players in the room go against a "champ". Winner becomes the champ for the next round against next player in the Queue. Example Player A vs Champ, player A wins and becomes champ for player B, in this round player A wins again and player c now faces player A, this time player A looses and player C is now the Champ for player D. Mean while the previous losers are tossed back into the queue and get to choose a new fighter.

Timed drop in
It's a match with a time limit that is free for all and the objective is to KO as many people as possible, people can join or leave at their will and people and join in if there is room. This mode is more possible vs Stock matches with drop in opponents due to no need to calculate stock lives for joining players.

Debug Menu Issue

The debug menu doesn't update until the frame after you open it. pls fix.
ALSO the debug menu doesn't show CPU inputs. pls fix

The future of Melee Light

Hey Schmooblidon, huge fan of this project, and I'm really glad you've gone the open source route. I'm extremely interested in contributing, and I wanted to get a sense of where you see this project going, and what you want to work on (first, or at all.) Some things that I think would be extremely helpful to this project are:

  • A proper dependency management / build system (I'm very fond of Webpack for this.)
  • Some amount of testing, to make accepting PRs somewhat easier.
  • A github pages page where this project can be played at.
  • Figuring out how to deal with project versions, releases, etc.
  • Setting up a slack / discord server or something, to discuss the project.
  • Implementing a linter for code standards / catch easy errors (I'm a fan of ESLint for this.)

Sorry if the title of this issue is overly grandiose.

server pvp CSS glitch

Uncaught TypeError: Cannot read property 'length' of undefined
at drawArrayPathCompress (render.js:49)
at drawCSS (css.js:752)
at renderTick (main.js:1166)

marth swings sword around seemingly randomly

Explicitly pass around input data

With the way the code is structured at the moment, routines directly access and change player input data, such as player[i].inputs.lStickAxis[0].x for the current left/right value on the left analog stick of player i.

Instead, all functions dealing with input should not change any global variables, and just pass around the input data. This is particularly important to encapsulate the AI code, as by making it strictly return input values instead of changing variables, it will ensure that nothing in the game is being modified and the AI is only submitting inputs, and not mistakenly teleporting players around etc.

This is also a prerequisite for netplay.

I am currently working on this with the interpretInputs branches. All help appreciated.

Add JSDoc for documentation

We don't currently have any part of the code that has JSDoc style comments, but when we start writing proper classes for things, we should definitely follow this style. This issue represents adding some build process for generating documentation based off of jsdoc comments.

Token Problem

When grabbed, tokens can be passed under one another, VS passing over the top. It is hierarchical based upon the player slot. for instance, P1 token passes under all other tokens, while p4's token passes over all other tokens. P3 passes over P1, and P2, but not P4's token.
token problem

Remove jQuery dependency

Right now a handful of places rely on jQuery, but not enough to warrant the library as a whole. It's currently only used for minor DOM manipulation that could easily be done with vanilla javascript, and for the $.extend deep copying, which we could have a small utility function take care of.

Character select screen has offset graphics

The character select screen can end up glitched as follows:

css_glitch

Reproduction: start the game, go into options -> audio, then go back to the main menu and go into versus. Issue happens 100% of the time on my end, on both Firefox and Chrome.

Issue #60 might be related.

Delayed Jump after Falling off ledge

(As of right now, I have been unable to figure out why this happens. Please let me know if you figure it out.)
Sometimes, if you walk/run off of a ledge, you are unable to jump until you have fallen for a while. I have seen this happen a lot, and it seems to be random. Sometimes it happens only once during a match, other times it will always happen during a match. I currently cannot do this on purpose, I will update you all if I figure it out. UPDATE: It seems like if you fall a certain distance, it won't allow you to jump. The distance at which this occurs and whether or not it delays the jump still seems inconsistent.

Lazily load animations

Animations come in at a pretty hefty ~6mb per character, and incur a pretty heavy load on the CPU when initialized. Right now we load every character's animations up front. This could be deferred until the character is selected.

Remove Howler dependency

The Web Audio API is strong enough, and support for it is wide enough, that audio code can stand on its own without needing this library to handle it.

VS mode character glitch

After going into target test and playing as a char other than marth, marth will be selected upon entering VS mode, but Fox will be played once match is started.
glitched characters

Does not build on OSX.

I believe the Electron version needs to be updated.

error /Users/andrew/Desktop/meleelight/node_modules/electron: Command failed.
Exit code: 1
Command: sh
Arguments: -c node install.js
Directory: /Users/andrew/Desktop/meleelight/node_modules/electron
Output:
/Users/andrew/Desktop/meleelight/node_modules/electron/install.js:48
  throw err
  ^

Error: Failed to find Electron v1.8.0 for darwin-x64 at https://github.com/electron/electron/releases/download/v1.8.0/electron-v1.8.0-darwin-x64.zip
    at Request.<anonymous> (/Users/andrew/Desktop/meleelight/node_modules/nugget/index.js:169:61)
    at emitOne (events.js:115:13)
    at Request.emit (events.js:210:7)

Side/Netrual B Crash

Not sure if it's just me, but Fox and Falco's Side B crashes whenever I hit Marth.

At the same time, everytime Fox or Falco shoots a laser, the entire game crashes. This also happens with laser throws.

No Tap jump while holding left

When in the air, if you are holding left on the keyboard and tap up, you don't jump.

I rely a lot (too much?) on tap jump on keyboard, esp. for Puff. And I have SD'd many times because of this.

Add unit testing framework

This issue doesn't encompass writing the full suite of tests, just laying the groundwork for being able to write tests going forward. I'm a big fan of Mocha, but we may want to look at an abstraction of tests like Karma so that we can integrate other types of testing as well.

Can't act out of respawn

When respawning on the revival platform, the only registered inputs are control stick input. Instead, it should be possible to input any action while on the revival platform to get out of it (jump, attack, etc).

Resolve circular dependencies

Now that all of the global variables have been identified by the earlier refactoring effort. It is time to incrementally rescope these variables into their respective homes. This will then allow us to restructure each major module and eventually the game loop.
below are the circles. The module on the right depends on the one to the left.


main/main -> main/ai
main/main -> main/render
main/main -> main/render -> main/vfx
main/render -> main/vfx
main/main -> main/render -> physics/actionStateShortcuts
main/main -> menus/audiomenu
main/main -> menus/audiomenu -> menus/menu
main/main -> menus/audiomenu -> menus/menu -> menus/targetselect
main/main -> menus/audiomenu -> menus/menu -> menus/targetselect -> menus/css
main/main -> menus/audiomenu -> menus/menu -> menus/targetselect -> stages/stages
main/main -> menus/audiomenu -> menus/menu -> menus/targetselect -> target/targetbuilder
main/main -> menus/audiomenu -> menus/menu -> menus/targetselect -> target/targetbuilder -> stages/stagerender
main/main -> menus/audiomenu -> menus/menu -> menus/targetselect -> target/targetbuilder -> stages/stagerender -> target/targetplay
main/main -> menus/audiomenu -> menus/menu -> menus/targetselect -> target/targetbuilder -> stages/stagerender -> target/targetplay -> physics/article
main/main -> menus/audiomenu -> menus/menu -> menus/targetselect -> target/targetbuilder -> stages/stagerender -> target/targetplay -> physics/article -> physics/hitDetection
stages/stagerender -> target/targetplay
target/targetbuilder -> stages/stagerender -> target/targetplay
main/main -> menus/credits
main/main -> menus/gameplaymenu
main/main -> menus/keyboardmenu
main/main -> menus/stageselect
main/main -> menus/startscreen
main/main -> menus/startup
main/main -> physics/physics
characters/fox/moves/index -> characters/fox/moves/ATTACKAIRB
characters/fox/moves/index -> characters/fox/moves/ATTACKAIRF
characters/fox/moves/index -> characters/fox/moves/ATTACKAIRN
characters/fox/moves/index -> characters/fox/moves/ATTACKAIRU
characters/fox/moves/index -> characters/fox/moves/ATTACKDASH
characters/fox/moves/index -> characters/fox/moves/DOWNSMASH
characters/fox/moves/DOWNSPECIALAIR -> characters/fox/moves/DOWNSPECIALGROUND
characters/fox/moves/index -> characters/fox/moves/DOWNTILT
characters/fox/moves/index -> characters/fox/moves/JAB1 -> characters/fox/moves/JAB2
characters/fox/moves/index -> characters/fox/moves/JAB1
characters/fox/moves/index -> characters/fox/moves/UPTILT

I would recommend starting at the shortest ones and work towards the larger ones. There are several cases where several globals from main are needed in other modules. depending on what's happening, we can possibly create modules to handle those. Ill fill in more detail as we make progress.

Create a base Character class

The amount of repeated code across the characters is pretty high, so we should try to move as much of the boilerplate over to a well-documented Character class. This also includes action states, as they come with a lot of boilerplate each as well.

Clean up nomenclature surrounding interpretInputs function

As pointed out by @mastermark5, some of the code surrounding the interpretInputs function is a bit confusingly named. At every step we should clearly differentiate between:

  • inputs for a single player, and 4-tuples of inputs for each separate player;
  • inputs on a single frame, versus input buffers for 8 frames.

This is something that could benefit nicely from flow type annotations.

Some additional comments about what the code is doing would also be helpful.

Document a pre-release "checklist"

All the automation in the world will never replace a human checklist of things to test before making a new release. Please add one to the wiki, ideally broken out in to sections so that we can divide and conquer.

Lazily load audio files

Right now sfx.js starts downloading all of the game's audio files immediately on execution. These should be deferred wherever possible. Stage music should only be loaded when that stage is selected, character audio files should only be loaded when that character is selected, etc.

Hurtbox doesn't move when crouching?

The hurtbox for Marth does NOT lower when crouching, as seen in the picture when the Fox CPU is short hop double lasering me. This might also affect all characters as well, making crouching to dodge pretty much useless.

image

Cursor Boundaries

Right now, (at least on the stage select screen) the cursor can go VERY far off screen, and can take a very long time to get back. If there is any way, I think it would be useful to add boundaries as to where the cursor can go.

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.