Git Product home page Git Product logo

leatherengine's Introduction

Leather Engine

Logo

This is the repository for Leather Engine, an engine created for making and playing mods for Friday Night Funkin'.

Links

Build Instructions

IMPORTANT:

Use the latest stable Polymod (NOT git) as it's the version that the engine is currently designed for.

For build instructions go to Build.md

Features

1-21+ Key Support

What does this mean? Well, now if you want, you can choose a different amount of arrows / keys! (Aka different from 4), this feature goes up to 21 by default, but can be increased with mods (no source code required).

Full mod support with Polymod (with a mod loader)!

Support for custom songs, characters, stages, weeks, cutscenes (dialogue, and video), all without modifying the source code! All you have to do is follow a guide that I will be making in the future and then you can make as many mods as you want!

Custom Cutscenes

Dialogue and video cutscenes can now be used without coding them in! (Although, in the future you will have the option to manually code them)

Custom Note Types

You can have different note types that give different amounts of health or give damage on hit. They can be more advanced if you want however, since modcharts can access what note type the last note hit was.

Replay System

You can load, share, and play replays of songs you've played! They can even be included in mods in the mods folder to make them easier to share!

More to come...

Credits

  • KadeDev - Code for downscroll & Modcharts

  • SrPerez - Original 9 Key and 6 Key Designs

  • larsiusprime - Scrollable Drop Down Menu

  • PolybiusProxy - hxCodec

  • Video LAN Team - People who made VLC Media Player (the thing the game uses to play videos)

  • Ronezkj15 - Some Ideas + New Leather Engine Logo

  • ShadowMario - Color Swap Shader (for notes and stuffs) + some really weird modchart stuff that im too stupid to know lol

  • Smokey555 - Adobe Animate Spritemap -> FlxFramesCollection Support

  • larsiusprime + Polymod Contributors - polymod (funny cool mod loader!!!)

  • TheZoroForce240 + FNF-Modcharting-Tools Contributors - fnf-modcharting-tools (cool modchart shits, check them out!!!)

leatherengine's People

Contributors

actuallyasmartname avatar actualmandm avatar bdidk235 avatar brandybuizel avatar dinkley avatar enter-a-nickname16 avatar geokureli avatar injourn avatar ipluxteamx avatar jakkzero avatar jan200101 avatar kade-github avatar leather128 avatar lotusotho avatar madguyxd avatar ninjamuffin99 avatar pkpenguin321 avatar portilizenhub avatar princessmth avatar regulad avatar ronezkj15 avatar sayofthelor avatar sqirradotdev avatar tentarj avatar thedrawingcoder-gamer avatar treacherousfiend avatar voltrexkeyva avatar vortex2oblivion avatar waviestballoon avatar worstaquaplayer 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

Watchers

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

leatherengine's Issues

Enhancement: Option for Camellia's Marvelous judgements

I'm not sure what the default timing window is from the Camellia mod itself, but I presume it's 22.5 ms, half of the Sick window.
A Marvelous is 400 points in Vs Camellia, and an "Epic" (same thing?) is 550 points in Times & Tribulations.
This could be turned off either by an on/off option in the Gameplay section of Settings or by simply setting the timing window to 0 ms (default) after selecting Judgement Timings.
The Marvelous rating image could just be the rainbow "Sick!!" from old versions of Kade Engine, shown below. This would be a nice reference to osu!mania's rainbow 300s.

sick

Enhancement: Player and Opponent has different Key counts

Another suggestion regarding charting, perhaps people making charts could give the opponent a different number of keys than the player (not unlike how Triple Trouble has 4 keys for the opponent and technically 5 keys for the player).

For example, opponent has 3 keys while player has, I dunno, 18.

Enhancement(s): Charter improvements + arrows colored by timing

Charter improvements

Basically, allowing arrows to snap to units other than 16ths, so you don't need to hold Shift and guess.

Arrows colored by timing

Instead of simply having one color per direction, arrows are colored based on their place on the chart.
Colors from StepMania are as follows:

  • 4ths: red
  • 8ths: blue
  • 16ths: yellow
  • 32nds: orange
  • 64ths: green
  • 12ths: purple
  • 24ths: pink
  • 48ths: light blue
  • 192nds: white but I doubt you can see them since 192nds are the definition of a rhythm game joke
  • Others: gray

Bug Report: Senpai's Portrait doesn't show up in Roses

What version of the game are you using? Look in the bottom left corner of the main menu.

Version 0.2 | 8b07177.

Have you identified any steps to reproduce the bug? If so, please describe them below. Use images if possible.

Just open Roses in freeplay or story mode (because right now cutscenes play in freeplay and you'll see the error lol.

Please describe your issue. Provide extensive detail and images if possible.

The Title

Enhancement: Unhardcode mania arangements + infinite mania

Make it so there is a text file with the mania arrow arrangements, like 9k being
LEFT DOWN UP RIGHT DIAMOND LEFT DOWN UP RIGHT
or 10k being
LEFT DOWN UP RIGHT UP2 DOWN2 LEFT DOWN UP RIGHT.
or if the modder wanted to add more mania, like 21 keys, they could specify the mania arrangement as well as the keybinds in the songs data folder.
This suggestion is bloated with lots of logistical problems, but i think unhardcoding one of the main features of the engine would be fun

Bug Report: Dialogue / Cutscenes play in Freeplay

What version of the game are you using? Look in the bottom left corner of the main menu.

Version 0.2 | 8b07177.

Have you identified any steps to reproduce the bug? If so, please describe them below. Use images if possible.

Just load into Senpai, Roses, or Thorns in Freeplay and you should see dialogue.

Fix this by making a cutscene option to allow you to play cutscenes (like dialogue) only when you want to.

Please describe your issue. Provide extensive detail and images if possible.

The Title

Bug Report: Stages are just all black unless you have 'Old Title' enabled in options

If you are playing the game in a browser, what browser are you using?

Chrome (or a Chromium based browser, i.e. Edge, Opera, etc.), Firefox, or Safari? Specify blow.
Brave Browser

If you are playing a downloaded version of the game, what operating system are you using?

Windows (x86), Windows (x86_64), Linux, or macOS? Specify below.
I'm using Windows x86_64 but y'know HTML5

What version of the game are you using? Look in the bottom left corner of the main menu.

v0.1 (build as of 6/17/2021 at 11:43 pm)

Have you identified any steps to reproduce the bug? If so, please describe them below. Use images if possible.

Just don't have old title on in options and load into any song.

Please describe your issue. Provide extensive detail and images if possible.

Stages are just all black unless you have 'Old Title' enabled in options

Enhancement: Rearrange the new arrows in 16k to match 18k?

image
image
The new, sharper arrows used in 16k are in a different formation than 18k, which might be a bit confusing to most. (Especially with the order of arrow directions being different than the usual "left down up right.") I think it'd be a good idea to use the same general formation as 18k, just without the diamond and cross.

Enhancement: Arrow "Types"

Please check for duplicates or similar issues before creating this issue.

What is your suggestion, and why should it be implemented?

(I got this idea from @Ronezkj15 originally btw lol)

Basically you can set an arrow type for different arrows (and a general arrow type for songs too).
That would have different stats (like hit health, miss damage, etc).

And that are fully customizeable by text files in 'preload/data/arrow_data/'

Here's what I made as a concept (in a discord message lol):

        (in preload images ui/arrows/)                                       (optional)
ArrowTemplate:SkinFileName:On-Hit-Health:On-Miss-Health:Hit-Sound:Makes-Miss:Hit-Effect

so example:

FireArrow:fire_arrows_assets:-0.15:0:Fire-Sound:true:fire_arrow_effect

Adding this to the game would add more customization, and be kind of an extension of #4.

Bug(?) Report: Dropped sustains are not fully punished

If you drop a sustain (as of most recent release), the game will subtract 10 points per 16th(?) as it should, but it will not count as a combo break nor will it drop your accuracy. Generally, dropping a sustain should be punishable, as this is not Clone Hero.

Enhancement: Changing Key Count Mid-Song

I already suggested this feature before, but I thought I'd make a proper "Issue" out of it so it can be properly tracked on the off-chance it gets worked on.

The suggestion being: The ability to change the number of keys in the middle of a song's chart on a per-section basis (ie. having a song go from five keys to 7 keys as an intended part of the song).

Regarding the issue of how incoming notes show up, I'm still unsure how to solve that, but maybe the unhardcoded mania can help with that? I'm not sure.

Bug Report: Charting glitch

While i was charting, going after the 10 section, the screen goes black, my setup was 12k, 180 bpm, 3 arrow speed, when it goes black it stays like that, until you get out of the editor.
image
I was on all of the sections pointing to P1 and the song name is "secret".

Bug Report: Debug Songs crash on difficulties other than 'Normal'

What version of the game are you using? Look in the bottom left corner of the main menu.

Version 0.2 | 8b07177.

Have you identified any steps to reproduce the bug? If so, please describe them below. Use images if possible.

First, make sure Debug Songs is on in options (Misc->Debug Songs)

Just go into Freeplay and load a song like 'Test' or 'Ridge' on a difficulty other than Normal Mode.

Please describe your issue. Provide extensive detail and images if possible.

The game crashes when loading these songs on difficulties other than normal mode.

Enhancement: Modifiable judgement timings

The base judgement timings are strange compared to that of other engines. I'd like to see something similar to Safe Frames implemented, if not full customization.

Enhancement: (Option to) decrease gap between arrows?

I couldn't help but notice that the gap between arrows is quite noticeable with more than 4 keys. This is a gap that is remedied in, say, the Shaggy mod, by squishing them together a bit.

Considering this engine supports up to 18 keys, it might be best to do the same, that way the arrows aren't so small and hard to hit. If you squish them together a bit like the Shaggy mod does in 9 key, you can expand the arrows' size and make them easier to see.

Question: tesa1

Please check for duplicates or similar issues before asking your question.

What is your question?

测试下吗?

Question: Discord Server

Please check for duplicates or similar issues before asking your question.

What is your question?

Do you have a discord account & server? Because I wanted to drop some ideas for the future Leather Engine updates.

Bug Report: Hold Caution and Death Notes don't work

image
You probably know about this one already, but I'm posting it just to be safe.

Alongside the graphics being bugged, they also stop working right. Caution Notes can be released mid-hold without insta-killing, and Death Notes can be hit safely without fear of death.

Enhancements: More competitive-oriented features (very, very long post)

first off

if people dont want to see all these kade engine looking info you should make a new section of the options menu to disable showing some of the things im about to mention

important

I don't expect everything in this to be implemented in the very next update. Please take as much time as you need! As someone with minimal experience in coding, I'm sure full-scale modded engine development is very, very difficult.

ok actual features

more stats

  • MFC = Full combo with all Marvelous judgements (with Marvelous judgements turned on in settings) (this is already there but defined differently)
  • PFC(/SFC) = Full combo with no Good or Bad judgements (perfect score with Marvelous turned off)
  • SDP(/SDS) (Single Digit Perfects/Sicks) = PFC with less than 10 Sick judgements (with Marvelous judgements turned on)
  • GFC = Full combo with no Bad judgements
  • SDG (Single Digit Goods) = GFC with less than 10 Good judgements
  • FC = No combo breaks (this is already there)
  • SDB (Single Digit Bads) = FC with less than 10 Bad judgements
  • SDCB (Single Digit Combo Breaks) = Less than 10 combo breaks (this is already there)
  • Clear = None of the above (this is already there)

Attack ratios
In StepMania/Etterna, MA (Marvelous Attack) is your ratio of Marvelous judgements to other judgements, and PA (Perfect Attack) is your ratio of either Marvelous or Perfect (Sick) judgements to lower judgements. This could be shown in a results screen at the end, or in real time during gameplay on the side of the screen.

Judgement counts
Instead of just showing combo breaks, you could put this on the side of the screen:

  • "Marvelous: (A)"
  • "Sick: (B)"
  • "Good: (C)"
  • "Bad: (D)"
  • "Combo Break: (E)"
    Where each letter represents how many of each respective judgement (or how many combo breaks) you have. This could also just be shown in a results screen.

Results screen as mentioned earlier
This could show all of what I mentioned above, as well as a hit graph: a hit graph, max combo, and stuff from your settings (judgement timings, offset, ghost tapping toggle, etc.)

Replay files
Basically, a file that plays the chart using your recorded inputs. This could be used in any number of ways; recording runs after they already happened, sharing replays directly with others, anti-cheat, etc. This may cause users' PCs to use more resources during runs, but for anyone wishing to maintain a leaderboard or just attempt to back up claims of insane plays, this is a must have. This may be the hardest feature to implement out of anything I listed, so no pressure.

but why tho?

Yes, most of these ideas come from either Kade Engine or more serious rhythm games. No other engine seems to provide a good enough alternative with all of its competitive features, but unfortunately, Kade Engine is extremely broken. Since Leather Engine aims to have as much customization as possible, I see hope in this project as one to take its place, and actually work as intended.

Bug Report: i cant compile the game cuz source/modding/PolymodHandler.hx:14: lines 14-28 : { modRoot : String, frameworkParams : { assetLibraryPaths : haxe.ds.Map<String, String> }, errorCallback : Null<(error : polymod.PolymodError) -> V... has extra field frameworkParams source/modding/PolymodHandler.hx:14: lines 14-28 : For function argument 'params'

Please check for duplicates or similar issues, as well performing simple troubleshooting steps (such as clearing cookies, clearing AppData, trying another browser) before submitting an issue.

If you are playing the game in a browser, what site are you playing it from?

Newgrounds or Itch.io? Specify below.

If you are playing the game in a browser, what browser are you using?

Chrome (or a Chromium based browser, i.e. Edge, Opera, etc.), Firefox, or Safari? Specify blow.

If you are playing a downloaded version of the game, what operating system are you using?

Windows (x86), Windows (x86_64), Linux, or macOS? Specify below.

What version of the game are you using? Look in the bottom left corner of the main menu.

Have you identified any steps to reproduce the bug? If so, please describe them below. Use images if possible.

Please describe your issue. Provide extensive detail and images if possible.

Bug Report: Compiling error

I try to compile the source code and I keep getting this error:

source/modding/PolymodHandler.hx:14: lines 14-28 : { modRoot : String, frameworkParams : { assetLibraryPaths : haxe.ds.Map<String, String> }, errorCallback : Null<(error : polymod.PolymodError) -> V... has extra field frameworkParams

source/modding/PolymodHandler.hx:14: lines 14-28 : For function argument 'params'

I'm not sure how to fix this.

I have a 64-bit Windows processor.

Game crashes when loading mod songs

Decided to try the new update for leather engine. I added the shaggy mod port after downloading. Everything worked fine until I tried to load a modded song. The song would not load. Normal songs are the only ones that load.

Happens in Version 0.4.0.2

Bug Report: Camera goes off the stage in Thorns.

What version of the game are you using? Look in the bottom left corner of the main menu.

Version 0.2 | 8b07177.

Have you identified any steps to reproduce the bug? If so, please describe them below. Use images if possible.

Just open Thorns and wait for it to go to BF's side.

Please describe your issue. Provide extensive detail and images if possible.

On BF's side in Thorns, the camera goes off the screen on the Y axis, showing some of the black void.

image

This should be able to be fixed by just moving the stage down by a few pixels.

Enhancement: Option for Black Backdrop on Player's Side

Songs with more than 9 keys and a fast scroll speed can make it really tough to read incoming notes, especially if it's against a moving background or something similar. The option to add a transparent, black backdrop for your side of the chart while playing would make it much easier to see incoming notes in songs with a higher key count.

Enhancement: Make things easier to add without editing source code.

Please check for duplicates or similar issues before creating this issue.

What is your suggestion, and why should it be implemented?

Right now to add new things like Characters, Songs, Stages, etc, you need to edit the source code of the game, I think these things might be better handled in .txt files in 'preload/data/' and also 'stages/stagenamegoeshere/'

They would look kind of like this:

(Character file)

                     (preload/images/ui/icons)                (optional)
file:ImageSpriteSheetName:HealthIconPath:IconDefault:IconDead:IconWinning

idle:IdleAnimationName:24:false
singDown:DownAnimationName:24:false
[etc]

(Stage file)

info:camZoom
bf:x:y
gf:x:y
dad:x:y

beatSound:OnBeatHitSoundName:volume:chance
stepSound:OnStepHitSoundName:volume:chance

static:BackgroundFileName:x:y:size:flippedX:flippedY
beat:BoppinHeadsName:x:y:size:flippedX:flippedY
step:OnStepName:x:y:size:flippedX:flippedY

(Songs are just folders and oggs / mp3s)

This should be implemented so that you can actually add mods to ONE copy of the game, and not like a million (this system could also be reworked into actual mod support)

Also, that stage editor thats very wip? It could be used with this system to make stages IN-GAME, which is a lot easier than hardcoding all the stuff into the source code from scratch.

Enhancement: Decrease Gap Between Arrows (cont.)

I already made a post talking about how it would benefit the mod if 5+ key modes squished the keys together a bit to fit them on-screen better and make them look slicker. I decided to make a post comparing how 9 keys look between vs. Shaggy and Leather Engine, to better showcase my point.

vs. Shaggy
image
Leather Engine
image

Because Leather Engine keeps the same 4 key gap, the arrows had to be shrunken in size to fit the screen, and as a result, they're ever so slightly harder to see, and it would take some adjusting to, no doubt, as well.

freeplay with mods enabled and pause menu crashes

i used 0.3.7 version
and my game crashes when i enabled mods and go to freeplay the game crashes and the game also crashes when i pause while in a song
and when i die and press backspace to go freeplay the game also crashes and when i go to the options menu with mods enabled the game also crashes
i tried this with all optimisations enabled
but without antialiasing and health icons and menu background the crashes are gone can you please fix this?

Question: how to add songs

okay so i tried adding songs with the mods folder but then it crashed my game saying [lime.utils.Assets] ERROR: There is no TEXT asset with an ID of "assets/data/ui skins/default/tord.txt" even though i made one there

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.