10
.github/ISSUE_TEMPLATE/bug.md
vendored
@ -3,13 +3,11 @@ name: Bug Report
|
||||
about: Report a bug or critical performance issue
|
||||
title: 'Bug Report: '
|
||||
labels: bug
|
||||
---
|
||||
#### 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](https://www.newgrounds.com/portal/view/770371) or [Itch.io](https://ninja-muffin24.itch.io/funkin)? Specify below.
|
||||
assignees: ''
|
||||
|
||||
### 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.
|
||||
---
|
||||
|
||||
#### Please check for duplicates, similar issues or closed issues with the same problem, as well performing simple troubleshooting steps (such as deleting the export folder if it's an issue with compiling, reinstalling Kade Engine) before submitting an issue.
|
||||
|
||||
### 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.
|
||||
|
3
.github/ISSUE_TEMPLATE/enhancement.md
vendored
@ -3,6 +3,9 @@ name: Enhancement
|
||||
about: Suggest a new feature
|
||||
title: 'Enhancement: '
|
||||
labels: enhancement
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
#### Please check for duplicates or similar issues before creating this issue.
|
||||
## What is your suggestion, and why should it be implemented?
|
||||
|
8
.github/ISSUE_TEMPLATE/question.md
vendored
@ -1,8 +0,0 @@
|
||||
---
|
||||
name: Question
|
||||
about: Ask a general question
|
||||
title: 'Question: '
|
||||
labels: question
|
||||
---
|
||||
#### Please check for duplicates or similar issues before asking your question.
|
||||
## What is your question?
|
1
.gitignore
vendored
@ -1,3 +1,2 @@
|
||||
export/
|
||||
.vscode/
|
||||
APIStuff.hx
|
66
BUILDING.md
Normal file
@ -0,0 +1,66 @@
|
||||
# Building Friday Night Funkin': Kade Engine
|
||||
|
||||
**Please note** that these instructions are for compiling/building the game. If you just want to play Kade Engine, **play in your browser or download a build instead**: **[play in browser](https://funkin.puyo.xyz) ⋅ [latest stable release](https://github.com/KadeDev/Kade-Engine/releases/latest) ⋅ [latest development build (windows)](https://ci.appveyor.com/project/KadeDev/kade-engine-windows/build/artifacts) ⋅ [latest development build (linux)](https://ci.appveyor.com/project/daniel11420/kade-engine-linux/build/artifacts)**. If you want to build the game yourself, continue reading.
|
||||
|
||||
**Also note**: you should be familiar with the commandline. If not, read this [quick guide by ninjamuffin](https://ninjamuffin99.newgrounds.com/news/post/1090480).
|
||||
|
||||
**Also also note**: To build for *Windows*, you need to be on *Windows*. To build for *Linux*, you need to be on *Linux*. Same goes for macOS. You can build for html5/browsers on any platform.
|
||||
|
||||
## Dependencies
|
||||
1. [Install Haxe 4.1.5](https://haxe.org/download/version/4.1.5/). You should use 4.1.5 instead of the latest version because the latest version has some problems with Friday Night Funkin': Kade Engine.
|
||||
2. After installing Haxe, [Install HaxeFlixel](https://haxeflixel.com/documentation/install-haxeflixel/).
|
||||
3. Install `git`.
|
||||
- Windows: install from the [git-scm](https://git-scm.com/downloads) website.
|
||||
- Linux: install the `git` package: `sudo apt install git` (ubuntu), `sudo pacman -S git` (arch), etc... (you probably already have it)
|
||||
4. Install and set up the necessary libraries:
|
||||
- `haxelib install lime 7.9.0`
|
||||
- `haxelib install openfl`
|
||||
- `haxelib install flixel`
|
||||
- `haxelib run lime setup`
|
||||
- `haxelib run lime setup flixel`
|
||||
- `haxelib install flixel-tools`
|
||||
- `haxelib run flixel-tools setup`
|
||||
- `haxelib install flixel-addons`
|
||||
- `haxelib install flixel-ui`
|
||||
- `haxelib install hscript`
|
||||
- `haxelib install newgrounds`
|
||||
- `haxelib install linc_luajit`
|
||||
- `haxelib git faxe https://github.com/uhrobots/faxe`
|
||||
- `haxelib git polymod https://github.com/larsiusprime/polymod.git`
|
||||
- `haxelib git discord_rpc https://github.com/Aidan63/linc_discord-rpc`
|
||||
### Windows-only dependencies (only for building *to* Windows. Building html5 on Windows does not require this)
|
||||
If you are planning to build for Windows, you also need to install **Visual Studio 2019**. While installing it, *don't click on any of the options to install workloads*. Instead, go to the **individual components** tab and choose the following:
|
||||
- MSVC v142 - VS 2019 C++ x64/x86 build tools
|
||||
- Windows SDK (10.0.17763.0)
|
||||
- C++ Profiling tools
|
||||
- C++ CMake tools for windows
|
||||
- C++ ATL for v142 build tools (x86 & x64)
|
||||
- C++ MFC for v142 build tools (x86 & x64)
|
||||
- C++/CLI support for v142 build tools (14.21)
|
||||
- C++ Modules for v142 build tools (x64/x86)
|
||||
- Clang Compiler for Windows
|
||||
- Windows 10 SDK (10.0.17134.0)
|
||||
- Windows 10 SDK (10.0.16299.0)
|
||||
- MSVC v141 - VS 2017 C++ x64/x86 build tools
|
||||
- MSVC v140 - VS 2015 C++ build tools (v14.00)
|
||||
|
||||
This will install about 22 GB of crap, but is necessary to build for Windows.
|
||||
|
||||
### macOS-only dependencies (these are required for building on macOS at all, including html5.)
|
||||
If you are running macOS, you'll need to install Xcode. You can download it from the macOS App Store or from the [Xcode website](https://developer.apple.com/xcode/).
|
||||
|
||||
If you get an error telling you that you need a newer macOS version, you need to download an older version of Xcode from the [More Software Downloads](https://developer.apple.com/download/more/) section of the Apple Developer website. (You can check which version of Xcode you need for your macOS version on [Wikipedia's comparison table (in the `min macOS to run` column)](https://en.wikipedia.org/wiki/Xcode#Version_comparison_table).)
|
||||
|
||||
## Cloning the repository
|
||||
Since you already installed `git` in a previous step, we'll use it to clone the repository.
|
||||
1. `cd` to where you want to store the source code (i.e. `C:\Users\username\Desktop` or `~/Desktop`)
|
||||
2. `git clone https://github.com/KadeDev/Kade-Engine.git`
|
||||
3. `cd` into the source code: `cd Kade-Engine`
|
||||
4. (optional) If you want to build a specific version of Kade Engine, you can use `git checkout` to switch to it (i.e. `git checkout 1.4-KE`) (remember that versions 1.4 and older cannot build to Linux or HTML5)
|
||||
- You should **not** do this if you are planning to contribute, as you should always be developing on the latest version.
|
||||
## Building
|
||||
Finally, we are ready to build.
|
||||
|
||||
- Run `lime build <target>`, replacing `<target>` with the platform you want to build to (`windows`, `linux`, `html5`) (i.e. `lime build windows`)
|
||||
- The build will be in `Kade-Engine/export/<target>/bin`, with `<target>` being the target you built to in the previous step. (i.e. `Kade-Engine/export/windows/bin`)
|
||||
- Only the `bin` folder is necessary to run the game. The other ones in `export/<target>` are not.
|
235
CHANGELOG.md
@ -4,147 +4,152 @@ All notable changes will be documented in this file.
|
||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
||||
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
|
||||
## [Unreleased]
|
||||
## [1.4.2]
|
||||
### Changed
|
||||
- ASSET LOADING OVERHAUL, WAY FASTER LOAD TIMES ON WEB!!! (THANKS TO GEOKURELI WOKE KING)
|
||||
### Fixed
|
||||
- That one random note on Bopeebo
|
||||
- Trails on notes are more consistent
|
||||
- Title now shows "Friday Night Funkin' Kade Engine"
|
||||
- **THIS UPDATE WILL RESET YOUR SAVE FOR KADE ENGINE**, so you gotta redo all of ur settings.
|
||||
|
||||
## [0.2.7.1] - 2021-02-14
|
||||
### Added
|
||||
- Easter eggs
|
||||
- readme's in desktop versions of the game
|
||||
- Lua Modchart support [(documentation located here)](https://github.com/KadeDev/Kade-Engine/blob/master/ModCharts.md)
|
||||
- New option called watermarks which removes all watermarks from Kade Engine
|
||||
- Chart spesfic offsets
|
||||
|
||||
## [1.4.1]
|
||||
### Fixed
|
||||
- Rating's and Accuracy calculation (they actually work now)
|
||||
- Deleting notes
|
||||
### Added
|
||||
- Accuracy mod toggle (complex = ms based, accurate = normal rating based. ex sick = 1, good = 0.75, bad = 0.50, shit = 0.25)
|
||||
- Judgement Selector (safe frames)
|
||||
|
||||
## [1.4.1 Nightly2]
|
||||
### Fixed
|
||||
- Scroll Speed messing up hold note parts
|
||||
- Added caps for Safe Frames (so you couldn't break the game)
|
||||
### Changed
|
||||
- Changed the fundamentals of how Ratings and other timing-related things like MS Acc are calculated.
|
||||
- and of course. hit window update
|
||||
|
||||
- New icons, old one was placeholder since October woops!
|
||||
- Made the transitions between the story mode levels more seamless.
|
||||
- Offset of the Newgrounds logo on boot screen.
|
||||
- Made the changelog txt so it can be opened easier by normal people who don't have a markdown reader (most normal people);
|
||||
## [1.4.1 Nightly1]
|
||||
### Fixed
|
||||
- Fixed crashes on Week 6 story mode dialogue if spam too fast ([Thanks to Lotusotho for the Pull Request!](https://github.com/ninjamuffin99/Funkin/pull/357))
|
||||
- Should show intro credits on desktop versions of the game more consistently
|
||||
- Layering on Week 4 songs with GF and the LIMO LOL HOW TF I MISS THIS
|
||||
- Chart's and chart editor now support changeBPM, GOD BLESS MTH FOR THIS ONE I BEEN STRUGGLIN WIT THAT SINCE OCTOBER LMAO ([GOD BLESS MTH](https://github.com/ninjamuffin99/Funkin/pull/382))
|
||||
- Fixed sustain note trails ALSO THANKS TO MTH U A REAL ONE ([MTH VERY POWERFUL](https://github.com/ninjamuffin99/Funkin/pull/415))
|
||||
- Antialiasing on the skyscraper lights
|
||||
|
||||
## [0.2.7] - 2021-02-02
|
||||
### Added
|
||||
- PIXEL DAY UPDATE LOL 1 WEEK LATER
|
||||
- 3 New songs by Kawaisprite!
|
||||
- COOL CUTSCENES
|
||||
- WEEK 6 YOYOYOYOY
|
||||
- Swaggy pixel art by Moawling!
|
||||
- Notes can be deleted
|
||||
- Hit window updates
|
||||
### Changed
|
||||
- Made it so you lose sliiiightly more health when you miss a note.
|
||||
- Removed the default HaxeFlixel pause screen when the game window loses focus, can get screenshots of the game easier hehehe
|
||||
### Fixed
|
||||
- Idle animation bug with BF christmas and BF hair blow sprites ([Thanks to Injourn for the Pull Request!](https://github.com/ninjamuffin99/Funkin/pull/237))
|
||||
|
||||
## [0.2.6] - 2021-01-20
|
||||
- FPS Cap can now go faster or slower depending on whether you are holding shift or not.
|
||||
### Added
|
||||
- 3 NEW CHRISTMAS SONGS. 2 BY KAWAISPRITE, 1 BY BASSETFILMS!!!!! BF WITH DRIP! SANTA HANGIN OUT!
|
||||
- Enemy icons change when they you are winning a lot ([Thanks to pahaze for the Pull Request!](https://github.com/ninjamuffin99/Funkin/pull/138))
|
||||
- Holding CTRL in charting editor places notes on both sides
|
||||
- Q and E changes sustain lengths in note editor
|
||||
- Other charting editor workflow improvements
|
||||
- More hair physics
|
||||
- Heads appear at top of chart editor to help show which side ur charting for
|
||||
- Safe Frames (the ability to change your hit windows)
|
||||
|
||||
## [1.4]
|
||||
### Edited
|
||||
- offsets work. fucking contributors
|
||||
### Changed
|
||||
- Tweaked code relating to inputs, hopefully making notes that are close together more fair to hit
|
||||
### Removed
|
||||
- Removed APE
|
||||
### Fixed
|
||||
- Maybe fixed double notes / jump notes. Need to tweak it for balance, but should open things up for cooler charts in the future.
|
||||
- Old Verison popup screen weirdness ([Thanks to gedehari for the Pull Request!](https://github.com/ninjamuffin99/Funkin/pull/155))
|
||||
- Song no longer loops when finishing the song. ([Thanks Injourn for the Pull Request!](https://github.com/ninjamuffin99/Funkin/pull/132))
|
||||
- Screen wipe being cut off in the limo/mom stage. Should fill the whole screen now.
|
||||
- Boyfriend animations on hold notes, and pressing on repeating notes should behave differently
|
||||
- Updated Judgements to contrast better with each other.
|
||||
- Changed Auto Offset to use the tutorial chart instead of a custom one
|
||||
- The file in data called "freeplaySonglist.txt" is now fully used.
|
||||
- Song Position now works a lot better
|
||||
|
||||
## [0.2.5] - 2020-12-27
|
||||
## [1.3.1 Nightly3]
|
||||
### Added
|
||||
- MOMMY GF, 3 NEW ASS SONGS BY KAWAISPRITE, NEW ART BY PHANTOMARCADE,WOOOOOOAH!!!!
|
||||
- Different icons depending on which character you are against, art by EVILSK8R!!
|
||||
- Autosave to chart editor
|
||||
- Clear section button to note editor
|
||||
- Swap button in note editor
|
||||
- a new boot text or two
|
||||
- automatic check for when you're on an old version of the game!
|
||||
- Auto Offset (Kinda works
|
||||
- CTRL-Z Support for the charter
|
||||
- NPS Display
|
||||
### Fixed
|
||||
- You can delete notes
|
||||
- FPS No longer resets on changing screens
|
||||
- Some of the Rankings didn't work how they were supposed to, now they work.
|
||||
|
||||
## [1.3.1 Nightly2]
|
||||
### Added
|
||||
- Option Categories
|
||||
- FPS Cap Option
|
||||
- FPS Rainbow Toggle
|
||||
- Scroll Speed Option
|
||||
### Changed
|
||||
- Made Spookeez on Normal easier.
|
||||
- Mouse is now visible in note editor
|
||||
- Offset now allows you to hold down to change values
|
||||
- Rating hit windows update
|
||||
### Fixed
|
||||
- Crash when playing Week 3 and then playing a non-week 3 song
|
||||
- When pausing music at the start, it doesn't continue the song anyways. ([shoutouts gedehari for the Pull Request!](https://github.com/ninjamuffin99/Funkin/pull/48))
|
||||
- IDK i think backing out of song menu should play main menu songs again hehe ([shoutouts gedehari for the Pull Request!](https://github.com/ninjamuffin99/Funkin/pull/48))
|
||||
- Tails being FUCKED
|
||||
|
||||
## [0.2.4] - 2020-12-11
|
||||
## [1.3.1 Nightly]
|
||||
### Added
|
||||
- 3 NEW SONGS BY KAWAISPRITE. Pico, Philly, and Blammed.
|
||||
- NEW CHARACTER, PICO. Based off the classic Flash game "Pico's School" by Tom Fulp
|
||||
- NEW LEVEL WOW! PHILLY BABEEEE
|
||||
- Gameplay Customization
|
||||
- The ability to change rating text's position
|
||||
### Fixed
|
||||
- You can now get a shit
|
||||
- Downscroll arrows are 100% fixed.
|
||||
### Redone
|
||||
- The rating system has been completely rewritten.
|
||||
|
||||
## [1.3.1]
|
||||
### Added
|
||||
- Timing text in ms
|
||||
### Changed
|
||||
- Made it less punishing to ATTEMPT to hit a note and miss, rather than let it pass you
|
||||
- Most UI elements now work based off the camera instead of real-world space (I.E combo, watermark, song bar, etc)
|
||||
- New Accuracy calculation (based off of Wife3 from Etterna a Stepmania Mod)
|
||||
### Fixed
|
||||
- Song desync of you paused and unpaused frequently ([shoutouts SonicBlam](https://github.com/ninjamuffin99/Funkin/issues/37))
|
||||
- Animation offsets when GF is scared
|
||||
- Deleting notes
|
||||
- Misses due to the other player not hitting notes and thus it makes you miss because there wasn't a check. Now there is.
|
||||
- Downscroll tail ends being upside down.
|
||||
|
||||
## [0.2.3] - 2020-12-04
|
||||
## [1.3]
|
||||
### Added
|
||||
- More intro texts
|
||||
- Wife3 Accuracy System
|
||||
- Wife3 Ranking (Letter Grades/FC Conditions)
|
||||
- A Reset chart button on the song tab in the debug menu.
|
||||
- Pressing ALT when the note tab is open in the debug menu will allow you to write notes (by playing them, aka pressing DFJK/WASD/Arrow Keys) Press ALT again to toggle off.
|
||||
- Etterna Mode (by default this is off) Etterna Mode basicily puts all of the hit timings to Judgement 4. Which is harsher then the base game.
|
||||
### Tweaked
|
||||
- In the section tab (where it normally says 16) this now works. This is the sections length in steps. It allows you to chart 1/16,1/24,1/32 notes. etc etc.
|
||||
- The BPM stepper now allows you to go into decimals (ALLOWS FOR DECIMAL BPMS!!!!)
|
||||
### Fixed
|
||||
- Exploit where you could potentially give yourself a high score via the debug menu
|
||||
- Issue/bug where you could spam the confirm button on the story menu ([shoutouts lotusotho for the CODE contribution/pull request!](https://github.com/ninjamuffin99/Funkin/pull/19))
|
||||
- Glitch where if you never would lose health if you missed a note on a fast song (shoutouts [MrDulfin](https://github.com/ninjamuffin99/Funkin/issues/10), [HotSauceBurritos](https://github.com/ninjamuffin99/Funkin/issues/13) and [LobsterMango](https://lobstermango.newgrounds.com))
|
||||
- Fixed tiny note bleed over thingies (shoutouts [lotusotho](https://github.com/ninjamuffin99/Funkin/pull/24))
|
||||
- Song Progress bar no longer clips into the strumline on upscroll on non-pixel charts.
|
||||
- Deleting notes now works
|
||||
- Kade Engine Watermark not showing on all charts.
|
||||
|
||||
## [0.2.2] - 2020-11-20
|
||||
## [1.2.2]
|
||||
### Added
|
||||
- Music playing on the freeplay menu.
|
||||
- UI sounds on freeplay menu
|
||||
- Score now shows mid-song.
|
||||
- Menu on pause screen! Can resume, and restart song, or go back to main menu.
|
||||
- New music made for pause menu!
|
||||
- A optional bar at the top (or bottom if you have downscroll) that shows the current progress of the song. By default this is turned off.
|
||||
- Discord Rich Presence (including accuracy, misses, and score)
|
||||
### Tweaked
|
||||
- How saving is handled and general code cleanup.
|
||||
|
||||
### Changed
|
||||
- Moved all the intro texts to its own txt file instead of being hardcoded, this allows for much easier customization. File is in the data folder, called "introText.txt", follow the format in there and you're probably good to go!
|
||||
## [1.2.1]
|
||||
### Fixed
|
||||
- Fixed soft lock when pausing on song finish ([shoutouts gedehari](https://github.com/ninjamuffin99/Funkin/issues/15))
|
||||
- Think I fixed issue that led to in-game scores being off by 2 ([shoutouts Mike](https://github.com/ninjamuffin99/Funkin/issues/4))
|
||||
- Should have fixed the 1 frame note appearance thing. ([shoutouts Mike](https://github.com/ninjamuffin99/Funkin/issues/6))
|
||||
- Cleaned up some charting on South on hard mode
|
||||
- Fixed some animation timings, should feel both better to play, and watch. (shoutouts Dave/Ivan lol)
|
||||
- Animation issue where GF would freak out on the title screen if you returned to it([shoutouts MultiXIII](https://github.com/ninjamuffin99/Funkin/issues/12)).
|
||||
|
||||
## [0.2.1.2] - 2020-11-06
|
||||
### Fixed
|
||||
- Story mode scores not properly resetting, leading to VERY inflated highscores on the leaderboards. This also requires me to clear the scores that are on the leaderboard right now, sorry!
|
||||
- Difficulty on storymode and in freeplay scores
|
||||
- Hard mode difficulty on campaign levels have been fixed
|
||||
|
||||
## [0.2.1.1] - 2020-11-06
|
||||
### Fixed
|
||||
- Week 2 not unlocking properly
|
||||
|
||||
## [0.2.1] - 2020-11-06
|
||||
- Accuracy toggle now works
|
||||
### Tweaks
|
||||
- HP Drain Tweaks
|
||||
### Added
|
||||
- Scores to the freeplay menu
|
||||
- A few new intro boot messages.
|
||||
- Lightning effect in Spooky stages
|
||||
- Campaign scores, can now compete on scoreboards for campaign!
|
||||
- Can now change difficulties in Freeplay mode
|
||||
|
||||
### Changed
|
||||
- Balanced out Normal mode for the harder songs(Dadbattle and Spookeez, not South yet). Should be much easier all around.
|
||||
- Put tutorial in it's own 'week', so that if you want to play week 1, you don't have to play the tutorial.
|
||||
- Anti-Mash
|
||||
|
||||
## [1.2]
|
||||
### Minor fixes
|
||||
- Combo can now go above 999
|
||||
- Accuracy display is now togglable
|
||||
### Fixed
|
||||
- One of the charting bits on South and Spookeez during the intro.
|
||||
- Controls now save and reload upon startup instead of just not loading.
|
||||
- Random misses no longer happen.
|
||||
- REMOVED THE RESET KEYBIND (POG)
|
||||
|
||||
## [0.2.0] - 2020-11-01
|
||||
### Added
|
||||
- Uhh Newgrounds release lolol I always lose track of shit.
|
||||
## [1.1.3]
|
||||
quick patch
|
||||
### Fixed
|
||||
- random misses when not missing
|
||||
- monster's icon in freeplay
|
||||
|
||||
## [0.1.0] - 2020-10-05
|
||||
### Added
|
||||
- Uh, everything. This the game's initial gamejam release. We put it out
|
||||
## [1.1.2]
|
||||
ok i lied another release
|
||||
### Fixed
|
||||
- Misses not being counted
|
||||
- Replays just not at all attempting to work
|
||||
- Camera Zoom being WAYY too fast or slow
|
||||
- Healthbar in Downscroll not moving
|
||||
|
||||
## [1.1.1]
|
||||
Ok this should be the last 1.1.x release for awhile lol. My bad.
|
||||
|
||||
## [1.1]
|
||||
I'm really dumb lol
|
||||
|
||||
## [1.0]
|
||||
Initial release poggers!
|
||||
|
BIN
KadeEngineLogo.png
Normal file
After Width: | Height: | Size: 102 KiB |
BIN
KadeEngineWithBackground.png
Normal file
After Width: | Height: | Size: 560 KiB |
424
ModCharts.md
Normal file
@ -0,0 +1,424 @@
|
||||
# Kade Engine Lua Mod Chart Documentation
|
||||
|
||||
In the 1.4.2 release of Kade Engine, we introduced Mod Charts. Mod Charts are a way of changing gameplay without hard coded values. This is achieved by using the Lua Scripting language to create script files that run during runtime.
|
||||
|
||||
All files **are located in** `assets/data/song/`
|
||||
|
||||
Modchart Lua File should be in `assets/data/song/modchart.lua` **exactly**
|
||||
|
||||
Lua code will only be ran if that file exists.
|
||||
|
||||
|
||||
|
||||
### Examples
|
||||
|
||||
Full Example
|
||||
|
||||
```lua
|
||||
function start (song)
|
||||
print("Song: " .. song .. " @ " .. bpm .. " donwscroll: " .. downscroll)
|
||||
end
|
||||
|
||||
|
||||
function update (elapsed) -- example https://twitter.com/KadeDeveloper/status/1382178179184422918
|
||||
local currentBeat = (songPos / 1000)*(bpm/60)
|
||||
for i=0,7 do
|
||||
setActorX(_G['defaultStrum'..i..'X'] + 32 * math.sin((currentBeat + i*0.25) * math.pi), i)
|
||||
setActorY(_G['defaultStrum'..i..'Y'] + 32 * math.cos((currentBeat + i*0.25) * math.pi), i)
|
||||
end
|
||||
end
|
||||
|
||||
function beatHit (beat)
|
||||
-- do nothing
|
||||
end
|
||||
|
||||
function stepHit (step)
|
||||
-- do nothing
|
||||
end
|
||||
|
||||
print("Mod Chart script loaded :)")
|
||||
```
|
||||
|
||||
Spinning Receptor Example
|
||||
|
||||
```lua
|
||||
function update (elapsed)
|
||||
for i=0,7 do
|
||||
setActorAngle(getActorAngle(i) + 15, i)
|
||||
end
|
||||
end
|
||||
```
|
||||
|
||||
Spinning Hud Example
|
||||
|
||||
```lua
|
||||
function update (elapsed)
|
||||
camHudAngle = camHudAngle + 0.005
|
||||
end
|
||||
```
|
||||
|
||||
Spin at a specific part of the song
|
||||
|
||||
```lua
|
||||
function update (elapsed)
|
||||
if curStep >= 352 and curStep < 400 then
|
||||
local currentBeat = (songPos / 1000)*(bpm/60)
|
||||
for i=0,7 do
|
||||
setActorX(_G['defaultStrum'..i..'X'] + 32 * math.sin((currentBeat + i*0.25) * math.pi), i)
|
||||
setActorY(_G['defaultStrum'..i..'Y'] + 32 * math.cos((currentBeat + i*0.25) * math.pi), i)
|
||||
end
|
||||
else
|
||||
for i=0,7 do
|
||||
setActorX(_G['defaultStrum'..i..'X'],i)
|
||||
setActorY(_G['defaultStrum'..i..'Y'],i)
|
||||
end
|
||||
end
|
||||
end
|
||||
```
|
||||
|
||||
Showing/Hiding receptors/the hud
|
||||
|
||||
```lua
|
||||
function start (song)
|
||||
showOnlyStrums = true -- remove all hud elements besides notes and strums
|
||||
for i=0,3 do -- fade out the first 4 receptors (the ai receptors)
|
||||
tweenFadeIn(i,0,0.6)
|
||||
end
|
||||
end
|
||||
```
|
||||
|
||||
Looping through all of the rendered notes
|
||||
|
||||
```lua
|
||||
for i = 0, getRenderedNotes() do -- sets all of the rendered notes to 0 0 on the x and y axsis
|
||||
setRenderedNotePos(0,0,i)
|
||||
end
|
||||
```
|
||||
|
||||
Centering BF's Side
|
||||
|
||||
```lua
|
||||
function setDefault(id)
|
||||
_G['defaultStrum'..id..'X'] = getActorX(id)
|
||||
end
|
||||
|
||||
-- put this somewhere in a function
|
||||
|
||||
for i = 4, 7 do -- go to the center
|
||||
tweenPosXAngle(i, _G['defaultStrum'..i..'X'] - 275,getActorAngle(i) + 360, 0.6, 'setDefault')
|
||||
end
|
||||
```
|
||||
|
||||
|
||||
### Available Hooks
|
||||
|
||||
Current calls to functions include,
|
||||
|
||||
| Name | Arguments | Description |
|
||||
| :-----: | :------------: | :----------------------------------------------------------: |
|
||||
| start | Song Name | Get's called when the song starts |
|
||||
| update | Elapsed frames | Get's called every frame (after the song starts) |
|
||||
| stepHit | Current Step | Get's called when ever a step hits (steps are in between beats, aka 4 steps are in a beat) |
|
||||
| beatHit | Current Beat | Get's called when ever a beat hits |
|
||||
|
||||
|
||||
|
||||
### Global Variables
|
||||
|
||||
Kade Engine provides a list of global variables to be used in the lua scripting interface.
|
||||
|
||||
| G Name | Type | Description |
|
||||
| :------------------: | :---: | :----------------------------------------------------------: |
|
||||
| bpm | Float | The current BPM of the song |
|
||||
| fpsCap | Int | The current FPS Cap (set by the player) |
|
||||
| downscroll | Bool | Whether the player is in downscroll or not |
|
||||
| cameraAngle | Float | The angle that the Main Camera should be rotated |
|
||||
| camHudAngle | Float | The angle that the Hud should be rotated |
|
||||
| followXOffset | Float | The x offset to be added when the camera moves between a character |
|
||||
| followYOffset | Float | The y offset to be added when the camera moves between a character |
|
||||
| showOnlyStrums | Bool | Whether to show the Hud and Strums or only the Strums |
|
||||
| strumLine1Visible | Bool | Whether to show the first strum line or not |
|
||||
| strumLine2Visible | Bool | Whether to show the secondstrum line or not |
|
||||
| defaultStrum0-7X | Float | (0-7 is strum0,strum1,strum2,etc) get the default X coordinate for the strum |
|
||||
| defaultStrum0-7Y | Float | (0-7 is strum0,strum1,strum2,etc) get the default Y coordinate for the strum |
|
||||
| defaultStrum0-7Angle | Float | (0-7 is strum0,strum1,strum2,etc) get the default Angle for the strum |
|
||||
| screenWidth | Int | The width of the current gamespace |
|
||||
| screenHeight | Int | The height of the current gamespace |
|
||||
| hudWidth | Int | The width of the hud |
|
||||
| hudHeight | Int | The height of the hud |
|
||||
| scrollSpeed | Int | The current scrollspeed |
|
||||
| mustHit | Bool | If the current section is a must hit section |
|
||||
| strumLineY | Float | The current Strum Line Y Position |
|
||||
|
||||
## Functions
|
||||
|
||||
Kade Engine exposes a lot of functions that let you modify elements in the game field.
|
||||
|
||||
|
||||
|
||||
To get started every sprite has an id, and there are some id's that are accessible without creating one.
|
||||
|
||||
These premade id's are the following:
|
||||
|
||||
| Sprite Id | Value |
|
||||
| :--------: | :--------------------------------------: |
|
||||
| 0-7 | Represents Receptor 0-7 |
|
||||
| boyfriend | Represents the Boyfriend Actor (player1) |
|
||||
| dad | Represents the Dad Actor (player2) |
|
||||
| girlfriend | Represents the Girlfriend Actor |
|
||||
|
||||
|
||||
|
||||
### Sprites
|
||||
|
||||
##### makeSprite(string SpritePath,string SpriteId,bool DrawBehind)
|
||||
|
||||
Creates a sprite out of the specified image, returns the id you gave it.
|
||||
|
||||
*Note: Sprite Path is normally the FILE NAME so if you have a file name of Image it'll go to assets/data/songName/Image.png so don't include the extension*
|
||||
|
||||
### Hud/Camera
|
||||
|
||||
##### setHudPosition(int x, int y)
|
||||
|
||||
Set's the game hud's position in space.
|
||||
|
||||
##### getHudX()
|
||||
|
||||
Returns the hud's x position
|
||||
|
||||
##### getHudY()
|
||||
|
||||
Returns the hud's y position
|
||||
|
||||
##### setCamPosition(int x, int y)
|
||||
|
||||
Set's the current camera's position in space
|
||||
|
||||
##### getCamX()
|
||||
|
||||
Returns the current camera's x position
|
||||
|
||||
##### getCamY()
|
||||
|
||||
Returns the current camera's y position
|
||||
|
||||
##### setCamZoom(int zoomAmount)
|
||||
|
||||
Set's the current camera's zoom
|
||||
|
||||
##### setHudZoom(int zoomAmount)
|
||||
|
||||
Set's the hud's zoom
|
||||
|
||||
### Actors
|
||||
|
||||
##### getRenderedNotes()
|
||||
|
||||
Returns the amount of rendered notes.
|
||||
|
||||
##### getRenderedNoteX(int id)
|
||||
|
||||
Returns the x position of the rendered note id
|
||||
|
||||
*Note: Rendered Notes id's are special in the way that they act. 0 = closest note to any receptor, last index = the farthest away from any receptor.*
|
||||
|
||||
##### getRenderedNoteY(int id)
|
||||
|
||||
Returns the y position of the rendered note id
|
||||
|
||||
*Note: Rendered Notes id's are special in the way that they act. 0 = closest note to any receptor, last index = the farthest away from any receptor.*
|
||||
|
||||
##### getRenderedNoteScaleX(int id)
|
||||
|
||||
Returns the scale x of the rendered note id
|
||||
|
||||
*Note: Rendered Notes id's are special in the way that they act. 0 = closest note to any receptor, last index = the farthest away from any receptor.*
|
||||
|
||||
##### getRenderedNoteScaleY(int id)
|
||||
|
||||
Returns the scale y of the rendered note id
|
||||
|
||||
*Note: Rendered Notes id's are special in the way that they act. 0 = closest note to any receptor, last index = the farthest away from any receptor.*
|
||||
|
||||
##### getRenderedNoteType(int id)
|
||||
|
||||
Returns the note data of an note (0-3, left, down, up, right)
|
||||
|
||||
*Note: Rendered Notes id's are special in the way that they act. 0 = closest note to any receptor, last index = the farthest away from any receptor.*
|
||||
|
||||
##### isSustain(int id)
|
||||
|
||||
Returns whether a rendered note is a sustain note or not (if they appear as the trail)
|
||||
|
||||
*Note: Rendered Notes id's are special in the way that they act. 0 = closest note to any receptor, last index = the farthest away from any receptor.*
|
||||
|
||||
##### isParentSustain(int id)
|
||||
|
||||
Returns whether a rendered note's parrent is a sustain note or not (if they appear as the trail)
|
||||
|
||||
*Note: Rendered Notes id's are special in the way that they act. 0 = closest note to any receptor, last index = the farthest away from any receptor.*
|
||||
|
||||
##### getRenderedNoteParentX(int id)
|
||||
|
||||
Returns the current parent x of the specified rendered note's id
|
||||
|
||||
*Note: Rendered Notes id's are special in the way that they act. 0 = closest note to any receptor, last index = the farthest away from any receptor.*
|
||||
|
||||
##### getRenderedNoteParentY(int id)
|
||||
|
||||
Returns the current parent y of the specified rendered note's id
|
||||
|
||||
*Note: Rendered Notes id's are special in the way that they act. 0 = closest note to any receptor, last index = the farthest away from any receptor.*
|
||||
|
||||
##### getRenderedNoteCalcX(int id)
|
||||
|
||||
Returns what the game would normally put the specified rendered note x.
|
||||
|
||||
*Note: Rendered Notes id's are special in the way that they act. 0 = closest note to any receptor, last index = the farthest away from any receptor.*
|
||||
|
||||
##### anyNotes()
|
||||
|
||||
Returns the number of rendered notes on the screen.
|
||||
|
||||
##### getRenderedNoteStrumtime(int id)
|
||||
|
||||
Returns strum time of the rendered note.
|
||||
|
||||
*Note: Rendered Notes id's are special in the way that they act. 0 = closest note to any receptor, last index = the farthest away from any receptor.*
|
||||
|
||||
##### getRenderedNoteAlpha(int id)
|
||||
|
||||
Returns the alpha of the rendered note id
|
||||
|
||||
*Note: Rendered Notes id's are special in the way that they act. 0 = closest note to any receptor, last index = the farthest away from any receptor.*
|
||||
|
||||
##### getRenderedNoteWidth(int id)
|
||||
|
||||
Returns the width of the specified rendered note.
|
||||
|
||||
*Note: Rendered Notes id's are special in the way that they act. 0 = closest note to any receptor, last index = the farthest away from any receptor.*
|
||||
|
||||
##### getRenderedNoteAngle(int id)
|
||||
|
||||
Returns the angle of the specified rendered note.
|
||||
|
||||
*Note: Rendered Notes id's are special in the way that they act. 0 = closest note to any receptor, last index = the farthest away from any receptor.*
|
||||
|
||||
##### setRenderedNotePos(int x, int y, int id)
|
||||
|
||||
Set's the position of the rendered note id
|
||||
|
||||
*Note: Setting a Rendered Note's property will stop the note from updating it's alpha & x properties*
|
||||
|
||||
##### setRenderedNoteAlpha(float alpha, int id)
|
||||
|
||||
Set's the alpha of the rendered note id
|
||||
|
||||
*Note: Setting a Rendered Note's property will stop the note from updating it's alpha & x properties*
|
||||
|
||||
##### setRenderedNoteScale(float scale, int id)
|
||||
|
||||
Set's the scale of the rendered note id
|
||||
|
||||
*Note: Setting a Rendered Note's property will stop the note from updating it's alpha & x properties*
|
||||
|
||||
##### setRenderedNoteScaleX(float scale, int id) **Currently broken**
|
||||
|
||||
Set's the scale x of the rendered note id
|
||||
|
||||
*Note: Setting a Rendered Note's property will stop the note from updating it's alpha & x properties*
|
||||
|
||||
##### setRenderedNoteScaleY(float scale, int id) **Currently broken**
|
||||
|
||||
Set's the scale y of the rendered note id
|
||||
|
||||
*Note: Setting a Rendered Note's property will stop the note from updating it's alpha & x properties*
|
||||
|
||||
##### getActorX(string/int id)
|
||||
|
||||
Returns the x position for the sprite id
|
||||
|
||||
##### getActorY(string/int id)
|
||||
|
||||
Returns the y position for the sprite id
|
||||
|
||||
##### getActorScaleX(string/int id)
|
||||
|
||||
Returns the scale x for the sprite id
|
||||
|
||||
##### getActorScaleY(string/int id)
|
||||
|
||||
Returns the scale y for the sprite id
|
||||
|
||||
##### getActorAlpha(string/int id)
|
||||
|
||||
Returns the alpha for the sprite id
|
||||
|
||||
##### getActorAngle(string/int id)
|
||||
|
||||
Returns the angle for the sprite id
|
||||
|
||||
##### setActorX(int x, string/int id)
|
||||
|
||||
Set's the x position for the sprite id
|
||||
|
||||
##### setActorY(int y, string/int id)
|
||||
|
||||
Set's the y position for the sprite id
|
||||
|
||||
##### setActorAlpha(float alpha, string/int id)
|
||||
|
||||
Set's the alpha for the sprite id
|
||||
|
||||
##### setActorAngle(int alpha, string/int id)
|
||||
|
||||
Set's the angle for the sprite id
|
||||
|
||||
##### setActorScale(float scale, string/int id)
|
||||
|
||||
Set's the scale for the sprite id
|
||||
|
||||
##### setActorScaleX(float x, string/int id) **Currently broken**
|
||||
|
||||
Set's the scale x for the sprite id
|
||||
|
||||
##### setActorScaleY(float y, string/int id) **Currently broken**
|
||||
|
||||
Set's the scale y for the sprite id
|
||||
|
||||
##### getActorWidth(string/int id)
|
||||
|
||||
Returns the width for the sprite id
|
||||
|
||||
##### getActorHeight(string/int id)
|
||||
|
||||
Returns the height for the sprite id
|
||||
|
||||
### Tweens
|
||||
|
||||
*Note, On Complete functions are based by the function name (and they also well get called when the tween completes)*
|
||||
|
||||
##### tweenPos(string/int id, int toX, int toY, float time, string onComplete)
|
||||
|
||||
Smoothly tween into a x and y position
|
||||
|
||||
##### tweenPosXAngle(string/int id, int toX, float toAngle, float time, string onComplete)
|
||||
|
||||
Smoothly tween into a x position and angle
|
||||
|
||||
##### tweenPosYAngle(string/int id, int toY, float toAngle, float time, string onComplete)
|
||||
|
||||
Smoothly tween into a y position and angle
|
||||
|
||||
##### tweenAngle(string/int id, float toAngle, float time, string onComplete)
|
||||
|
||||
Smoothly tween into a angle
|
||||
|
||||
##### tweenFadeIn(string/int id, float toAlpha, float time, string onComplete)
|
||||
|
||||
Smoothly fade in to an alpha
|
||||
|
||||
##### tweenFadeOut(string/int id, float toAlpha, float time, string onComplete)
|
||||
|
||||
Smoothly fade out to an alpha
|
@ -2,7 +2,7 @@
|
||||
<project>
|
||||
<!-- _________________________ Application Settings _________________________ -->
|
||||
|
||||
<app title="Friday Night Funkin'" file="Funkin" packageName="com.ninjamuffin99.funkin" package="com.ninjamuffin99.funkin" main="Main" version="0.2.7.1" company="ninjamuffin99" />
|
||||
<app title="Friday Night Funkin' Kade Engine" file="Kade Engine" packageName="com.ninjamuffin99.funkin" package="com.ninjamuffin99.funkin" main="Main" version="0.2.7.1" company="ninjamuffin99" />
|
||||
|
||||
<!--Switch Export with Unique ApplicationID and Icon-->
|
||||
<set name="APP_ID" value="0x0100f6c013bbc000" />
|
||||
@ -116,6 +116,9 @@
|
||||
<haxelib name="newgrounds"/>
|
||||
<haxelib name="faxe" if='switch'/>
|
||||
<haxelib name="polymod"/>
|
||||
<haxelib name="discord_rpc" if="windows"/>
|
||||
<haxelib name="linc_luajit" if="windows"/>
|
||||
|
||||
<!-- <haxelib name="hxcpp-debug-server" if="desktop"/> -->
|
||||
|
||||
<!-- <haxelib name="markdown" /> -->
|
||||
|
121
README.md
@ -1,97 +1,62 @@
|
||||
# Friday Night Funkin
|
||||

|
||||
|
||||
This is the repository for Friday Night Funkin, a game originally made for Ludum Dare 47 "Stuck In a Loop".
|
||||
[](https://ci.appveyor.com/project/KadeDev/kade-engine-windows/build/artifacts) [](https://ci.appveyor.com/project/KadeDev/kade-engine-macos/build/artifacts) [](https://ci.appveyor.com/project/KadeDev/kade-engine-linux/build/artifacts) [](https://ci.appveyor.com/project/daniel11420/KadeEngineWeb) [](https://discord.gg/MG6GQFh52U) [](https://github.com/KadeDev/Kade-Engine/issues) [](https://github.com/KadeDev/Kade-Engine/pulls) []() []()
|
||||
|
||||
Play the Ludum Dare prototype here: https://ninja-muffin24.itch.io/friday-night-funkin
|
||||
Play the Newgrounds one here: https://www.newgrounds.com/portal/view/770371
|
||||
Support the project on the itch.io page: https://ninja-muffin24.itch.io/funkin
|
||||
      
|
||||
|
||||
## Credits / shoutouts
|
||||
# Friday Night Funkin': Kade Engine
|
||||
## Friday Night Funkin'
|
||||
**Friday Night Funkin'** is a rhythm game originally made for Ludum Dare 47 "Stuck In a Loop".
|
||||
|
||||
- [ninjamuffin99 (me!)](https://twitter.com/ninja_muffin99) - Programmer
|
||||
- [PhantomArcade3K](https://twitter.com/phantomarcade3k) and [Evilsk8r](https://twitter.com/evilsk8r) - Art
|
||||
- [Kawaisprite](https://twitter.com/kawaisprite) - Musician
|
||||
Links: **[itch.io page](https://ninja-muffin24.itch.io/funkin) ⋅ [Newgrounds](https://www.newgrounds.com/portal/view/770371) ⋅ [source code on GitHub](https://github.com/ninjamuffin99/Funkin)**
|
||||
> Uh oh! Your tryin to kiss ur hot girlfriend, but her MEAN and EVIL dad is trying to KILL you! He's an ex-rockstar, the only way to get to his heart? The power of music...
|
||||
|
||||
This game was made with love to Newgrounds and it's community. Extra love to Tom Fulp.
|
||||
## Kade Engine
|
||||
**Kade Engine** is a mod for Friday Night Funkin', including a full engine rework, replays, and more.
|
||||
|
||||
## Build instructions
|
||||
Links: **[GameBanana mod page](https://gamebanana.com/gamefiles/16761) ⋅ [play in browser](https://funkin.puyo.xyz) ⋅ [latest stable release](https://github.com/KadeDev/Kade-Engine/releases/latest) ⋅ [latest development build (windows)](https://ci.appveyor.com/project/KadeDev/kade-engine-windows/build/artifacts) ⋅ [latest development build (macOS)](https://ci.appveyor.com/project/KadeDev/kade-engine-macos/build/artifacts)** ⋅ **[latest development build (linux)](https://ci.appveyor.com/project/KadeDev/kade-engine-linux/build/artifacts)**
|
||||
|
||||
THESE INSTRUCTIONS ARE FOR COMPILING THE GAME'S SOURCE CODE!!!
|
||||
**REMEMBER**: This is a **mod**. This is not the vanilla game and should be treated as a **modification**. This is not and probably will never be official, so don't get confused.
|
||||
|
||||
IF YOU WANT TO JUST DOWNLOAD AND INSTALL AND PLAY THE GAME NORMALLY, GO TO ITCH.IO TO DOWNLOAD THE GAME FOR PC, MAC, AND LINUX!!
|
||||
# Screenshots ([skip](#features))
|
||||
|
||||
https://ninja-muffin24.itch.io/friday-night-funkin
|
||||
 
|
||||
|
||||
IF YOU WANT TO COMPILE THE GAME YOURSELF, CONTINUE READING!!!
|
||||

|
||||
|
||||
### Installing the Required Programs
|
||||

|
||||
|
||||
First you need to install Haxe and HaxeFlixel. I'm too lazy to write and keep updated with that setup (which is pretty simple).
|
||||
1. [Install Haxe 4.1.5](https://haxe.org/download/version/4.1.5/) (Download 4.1.5 instead of 4.2.0 because 4.2.0 is broken and is not working with gits properly...)
|
||||
2. [Install HaxeFlixel](https://haxeflixel.com/documentation/install-haxeflixel/) after downloading Haxe
|
||||

|
||||
|
||||
Other installations you'd need is the additional libraries, a fully updated list will be in `Project.xml` in the project root. Currently, these are all of the things you need to install:
|
||||
```
|
||||
flixel
|
||||
flixel-addons
|
||||
flixel-ui
|
||||
hscript
|
||||
newgrounds
|
||||
```
|
||||
So for each of those type `haxelib install [library]` so shit like `haxelib install newgrounds`
|
||||

|
||||
|
||||
You'll also need to install polymod. To do this, you need to do a few things first.
|
||||
1. Download [git-scm](https://git-scm.com/downloads). Works for Windows, Mac, and Linux, just select your build.
|
||||
2. Follow instructions to install the application properly.
|
||||
3. Run `haxelib git polymod https://github.com/larsiusprime/polymod.git` in terminal/command-prompt after your git program is installed.
|
||||

|
||||
|
||||
You should have everything ready for compiling the game! Follow the guide below to continue!
|
||||
# Features
|
||||
|
||||
At the moment, you can optionally fix the transition bug in songs with zoomed out cameras.
|
||||
- Run `haxelib git flixel-addons https://github.com/HaxeFlixel/flixel-addons` in the terminal/command-prompt.
|
||||
- **New Input System**
|
||||
- An improved input system, similar to Quaver or Etterna, with less delays, less dropped inputs and other improvements.
|
||||
- **More information during gameplay**
|
||||
- While you're playing, we show you information about how you're doing, such as your accuracy, combo break count, notes per second, and your grade/rating.
|
||||
- **Better key layouts**
|
||||
- Instead of being forced to use WASD and the arrow keys, now you can play with DFJK!
|
||||
- **Replays** (in beta)
|
||||
- Have you ever gotten a crazy score but didn't record? The replay system solves that: it automatically saves a "replay" of your gameplay every time you complete a song, which you can play back inside of the game.
|
||||
- Replays just store information about what you're doing, they don't actually record the screen -- so they take up way less space on your disk than videos.
|
||||
- **Audio offset**
|
||||
- If your headphones are delayed, you can set an offset in the options menu to line the game up with the delay and play with synced audio like intended.
|
||||
|
||||
### Ignored files
|
||||
# Credits
|
||||
### Friday Night Funkin'
|
||||
- [ninjamuffin99](https://twitter.com/ninja_muffin99) - Programming
|
||||
- [PhantomArcade3K](https://twitter.com/phantomarcade3k) and [Evilsk8r](https://twitter.com/evilsk8r) - Art
|
||||
- [Kawai Sprite](https://twitter.com/kawaisprite) - Music
|
||||
|
||||
I gitignore the API keys for the game, so that no one can nab them and post fake highscores on the leaderboards. But because of that the game
|
||||
doesn't compile without it.
|
||||
This game was made with love to Newgrounds and its community. Extra love to Tom Fulp.
|
||||
### Kade Engine
|
||||
- [KadeDeveloper](https://twitter.com/KadeDeveloper) - Maintainer and lead programmer
|
||||
- [The contributors](https://github.com/KadeDev/Kade-Engine/graphs/contributors)
|
||||
|
||||
Just make a file in `/source` and call it `APIStuff.hx`, and copy paste this into it
|
||||
|
||||
```haxe
|
||||
package;
|
||||
|
||||
class APIStuff
|
||||
{
|
||||
public static var API:String = "";
|
||||
public static var EncKey:String = "";
|
||||
}
|
||||
|
||||
```
|
||||
|
||||
and you should be good to go there.
|
||||
|
||||
### Compiling game
|
||||
|
||||
Once you have all those installed, it's pretty easy to compile the game. You just need to run 'lime test html5 -debug' in the root of the project to build and run the HTML5 version. (command prompt navigation guide can be found here: [https://ninjamuffin99.newgrounds.com/news/post/1090480](https://ninjamuffin99.newgrounds.com/news/post/1090480))
|
||||
|
||||
To run it from your desktop (Windows, Mac, Linux) it can be a bit more involved. For Linux, you only need to open a terminal in the project directory and run 'lime test linux -debug' and then run the executible file in export/release/linux/bin. For Windows, you need to install Visual Studio Community 2019. While installing VSC, don't click on any of the options to install workloads. Instead, go to the individual components tab and choose the following:
|
||||
* MSVC v142 - VS 2019 C++ x64/x86 build tools
|
||||
* Windows SDK (10.0.17763.0)
|
||||
* C++ Profiling tools
|
||||
* C++ CMake tools for windows
|
||||
* C++ ATL for v142 build tools (x86 & x64)
|
||||
* C++ MFC for v142 build tools (x86 & x64)
|
||||
* C++/CLI support for v142 build tools (14.21)
|
||||
* C++ Modules for v142 build tools (x64/x86)
|
||||
* Clang Compiler for Windows
|
||||
* Windows 10 SDK (10.0.17134.0)
|
||||
* Windows 10 SDK (10.0.16299.0)
|
||||
* MSVC v141 - VS 2017 C++ x64/x86 build tools
|
||||
* MSVC v140 - VS 2015 C++ build tools (v14.00)
|
||||
|
||||
This will install about 22GB of crap, but once that is done you can open up a command line in the project's directory and run `lime test windows -debug`. Once that command finishes (it takes forever even on a higher end PC), you can run FNF from the .exe file under export\release\windows\bin
|
||||
As for Mac, 'lime test mac -debug' should work, if not the internet surely has a guide on how to compile Haxe stuff for Mac.
|
||||
|
||||
### Additional guides
|
||||
|
||||
- [Command line basics](https://ninjamuffin99.newgrounds.com/news/post/1090480)
|
||||
# Other pages
|
||||
- [BUILDING.md](https://github.com/KadeDev/Kade-Engine/blob/master/BUILDING.md) - How to compile/build the game
|
||||
- [ModCharts.md](https://github.com/KadeDev/Kade-Engine/blob/master/ModCharts.md) - Mod Chart Documentation
|
||||
|
43
appveyor-linux.yml
Normal file
@ -0,0 +1,43 @@
|
||||
version: '{build}'
|
||||
image: Ubuntu2004
|
||||
environment:
|
||||
global:
|
||||
HAXELIB_ROOT: /home/appveyor/haxelib
|
||||
HAXE_INSTALLDIR: /home/appveyor/haxe
|
||||
|
||||
install:
|
||||
- cd /home/appveyor
|
||||
- sudo add-apt-repository ppa:haxe/releases -y
|
||||
- sudo apt update
|
||||
- sudo apt install neko tar -y
|
||||
- wget https://github.com/HaxeFoundation/haxe/releases/download/4.1.5/haxe-4.1.5-linux64.tar.gz
|
||||
- mkdir $HAXE_INSTALLDIR
|
||||
- tar -xf haxe-4.1.5-linux64.tar.gz -C $HAXE_INSTALLDIR
|
||||
- export PATH=$PATH:$HAXE_INSTALLDIR/haxe_20201231082044_5e33a78aa
|
||||
- mkdir $HAXELIB_ROOT && haxelib setup $HAXELIB_ROOT
|
||||
- haxelib install lime 7.9.0
|
||||
- haxelib install openfl
|
||||
- haxelib install flixel
|
||||
- haxelib run lime setup flixel
|
||||
- haxelib run lime setup
|
||||
- haxelib install flixel-tools
|
||||
- haxelib install flixel-addons
|
||||
- haxelib install flixel-ui
|
||||
- haxelib install hscript
|
||||
- haxelib install newgrounds
|
||||
- haxelib git faxe https://github.com/uhrobots/faxe
|
||||
- haxelib git polymod https://github.com/larsiusprime/polymod.git
|
||||
- haxelib git discord_rpc https://github.com/Aidan63/linc_discord-rpc
|
||||
- haxelib install linc_luajit
|
||||
- haxelib list
|
||||
- cd /home/appveyor/projects/kade-engine-linux
|
||||
|
||||
build_script:
|
||||
- haxelib run lime build linux
|
||||
|
||||
after_build:
|
||||
- tar -cvf funkin-ke.tar -C /home/appveyor/projects/kade-engine-linux/export/release/linux/bin .
|
||||
|
||||
artifacts:
|
||||
- path: funkin-ke.tar
|
||||
name: Linux build
|
43
appveyor-macos.yml
Normal file
@ -0,0 +1,43 @@
|
||||
version: '{build}'
|
||||
image: macos
|
||||
environment:
|
||||
global:
|
||||
HAXELIB_ROOT: /Users/appveyor/haxelib
|
||||
HAXE_INSTALLDIR: /Users/appveyor/haxe_bin
|
||||
|
||||
install:
|
||||
- cd /Users/appveyor
|
||||
- brew install neko
|
||||
- brew install gnu-tar
|
||||
- brew install wget
|
||||
- wget "https://github.com/HaxeFoundation/haxe/releases/download/4.1.5/haxe-4.1.5-osx.tar.gz"
|
||||
- mkdir $HAXE_INSTALLDIR
|
||||
- tar -xf haxe-4.1.5-osx.tar.gz -C $HAXE_INSTALLDIR
|
||||
- export PATH=$PATH:$HAXE_INSTALLDIR/haxe_20201231082044_5e33a78aa
|
||||
- mkdir $HAXELIB_ROOT && haxelib setup $HAXELIB_ROOT
|
||||
- haxelib install lime 7.9.0
|
||||
- haxelib install openfl
|
||||
- haxelib install flixel
|
||||
- haxelib run lime setup flixel
|
||||
- haxelib run lime setup
|
||||
- haxelib install flixel-tools
|
||||
- haxelib install flixel-addons
|
||||
- haxelib install flixel-ui
|
||||
- haxelib install hscript
|
||||
- haxelib install newgrounds
|
||||
- haxelib git faxe https://github.com/uhrobots/faxe
|
||||
- haxelib git polymod https://github.com/larsiusprime/polymod.git
|
||||
- haxelib git discord_rpc https://github.com/Aidan63/linc_discord-rpc
|
||||
- haxelib install linc_luajit
|
||||
- haxelib list
|
||||
- cd /Users/appveyor/projects/kade-engine-macos
|
||||
|
||||
build_script:
|
||||
- haxelib run lime build mac
|
||||
|
||||
after_build:
|
||||
- gtar -cvf funkin-ke.tar -C /Users/appveyor/projects/kade-engine-macos/export/release/macos/bin .
|
||||
|
||||
artifacts:
|
||||
- path: funkin-ke.tar
|
||||
name: macOS build idk
|
46
appveyor-windows.yml
Normal file
@ -0,0 +1,46 @@
|
||||
# Taken from https://github.com/andyli/HaxeCI/blob/master/appveyor.yml
|
||||
version: "{build}"
|
||||
|
||||
environment:
|
||||
global:
|
||||
HAXELIB_ROOT: C:\projects\haxelib
|
||||
|
||||
install:
|
||||
# http://help.appveyor.com/discussions/problems/5616-not-able-to-build-due-to-problem-in-chocolateyinstallps1
|
||||
- ps: Set-Service wuauserv -StartupType Manual
|
||||
# Install the neko chocolatey package (https://chocolatey.org/packages/neko)
|
||||
- cinst neko --version 2.3.0 -y
|
||||
# Install the haxe chocolatey package (https://chocolatey.org/packages/haxe)
|
||||
- cinst haxe --version 4.1.5 -y
|
||||
- RefreshEnv
|
||||
# Setup haxelib
|
||||
- mkdir "%HAXELIB_ROOT%"
|
||||
- haxelib setup "%HAXELIB_ROOT%"
|
||||
# Install project dependencies
|
||||
- haxelib install lime 7.9.0
|
||||
- haxelib install openfl
|
||||
- haxelib install flixel
|
||||
- haxelib run lime setup flixel
|
||||
- haxelib run lime setup
|
||||
- haxelib install flixel-tools
|
||||
# haxelib run flixel-tools setup -y # Can't do this since it asks [y/n] even with -y argument! Stupid
|
||||
- haxelib install flixel-addons
|
||||
- haxelib install flixel-ui
|
||||
- haxelib install hscript
|
||||
- haxelib install newgrounds
|
||||
- haxelib install flixel-addons
|
||||
- haxelib git faxe https://github.com/uhrobots/faxe
|
||||
- haxelib git polymod https://github.com/larsiusprime/polymod.git
|
||||
- haxelib git discord_rpc https://github.com/Aidan63/linc_discord-rpc
|
||||
- haxelib install linc_luajit
|
||||
- haxelib list
|
||||
|
||||
# No tests idk lol
|
||||
build_script:
|
||||
- haxelib run lime build windows
|
||||
# haxelib run lime build linux
|
||||
|
||||
artifacts:
|
||||
- path: export/release/windows/bin
|
||||
name: Windows release
|
||||
type: zip
|
@ -1,11 +0,0 @@
|
||||
@echo off
|
||||
color 0a
|
||||
cd ..
|
||||
@echo on
|
||||
echo BUILDING GAME
|
||||
lime build html5 -final
|
||||
echo UPLOADING TO ITCH
|
||||
butler push ./export/release/html5/bin ninja-muffin24/funkin:html5
|
||||
butler status ninja-muffin24/funkin:html5
|
||||
echo ITCH SHIT UPDATED LMAOOOOO
|
||||
pause
|
@ -1,11 +0,0 @@
|
||||
@echo off
|
||||
color 0a
|
||||
cd ..
|
||||
@echo on
|
||||
echo BUILDING GAME
|
||||
lime build html5 -debug
|
||||
echo UPLOADING TO ITCH
|
||||
butler push ./export/debug/html5/bin ninja-muffin24/funkin:html5
|
||||
butler status ninja-muffin24/funkin:html5
|
||||
echo ITCH SHIT UPDATED LMAOOOOO
|
||||
pause
|
@ -1,15 +0,0 @@
|
||||
@echo off
|
||||
color 0a
|
||||
cd ..
|
||||
@echo on
|
||||
echo BUILDING GAME
|
||||
lime build windows -final -clean
|
||||
echo UPLOADING 64 BIT VERSION TO ITCH
|
||||
butler push ./export/release/windows/bin ninja-muffin24/funkin:windows-64bit
|
||||
lime build windows -final -32
|
||||
echo UPLOADING 32 BIT VERSION TO ITCH
|
||||
butler push ./export/release/windows/bin ninja-muffin24/funkin:windows-32bit
|
||||
butler status ninja-muffin24/funkin:windows-32bit
|
||||
butler status ninja-muffin24/funkin:windows-64bit
|
||||
echo ITCH SHIT UPDATED LMAOOOOO
|
||||
pause
|
@ -1,11 +0,0 @@
|
||||
@echo off
|
||||
color 0a
|
||||
cd ..
|
||||
@echo on
|
||||
echo BUILDING GAME
|
||||
lime build windows -debug
|
||||
echo UPLOADING 64 BIT VERSION TO ITCH
|
||||
butler push ./export/debug/windows/bin ninja-muffin24/funkin:windows-secretBeta
|
||||
butler status ninja-muffin24/funkin:windows-secretBeta
|
||||
echo ITCH SHIT UPDATED LMAOOOOO
|
||||
pause
|
@ -1,15 +0,0 @@
|
||||
@echo off
|
||||
color 0a
|
||||
cd ..
|
||||
@echo on
|
||||
echo BUILDING GAME
|
||||
lime build windows -release
|
||||
echo UPLOADING 64 BIT VERSION TO ITCH
|
||||
butler push ./export/release/windows/bin ninja-muffin24/funkin:windows-64bit
|
||||
lime build windows -release -32
|
||||
echo UPLOADING 32 BIT VERSION TO ITCH
|
||||
butler push ./export/release/windows/bin ninja-muffin24/funkin:windows-32bit
|
||||
butler status ninja-muffin24/funkin:windows-32bit
|
||||
butler status ninja-muffin24/funkin:windows-64bit
|
||||
echo ITCH SHIT UPDATED LMAOOOOO
|
||||
pause
|
@ -1,12 +0,0 @@
|
||||
@echo off
|
||||
color 0a
|
||||
cd ..
|
||||
@echo on
|
||||
echo BUILDING GAME
|
||||
lime build html5 -final -Dng
|
||||
echo ZIPPING
|
||||
cd export
|
||||
7z a -tzip -r swag release\html5\bin
|
||||
start .
|
||||
start https://www.newgrounds.com/projects/games/1528775
|
||||
pause
|
@ -1,27 +0,0 @@
|
||||
@echo off
|
||||
cd ..
|
||||
@echo on
|
||||
echo REBUILDING LIME FOR EXPORT (VERBOSE)
|
||||
@echo off
|
||||
color 0b
|
||||
@echo on
|
||||
lime rebuild windows -clean -v
|
||||
@echo off
|
||||
color 0a
|
||||
@echo on
|
||||
lime rebuild switch -clean -v
|
||||
@echo off
|
||||
color 0e
|
||||
@echo on
|
||||
lime rebuild tools -clean -v
|
||||
echo HOPE AND PRAY...
|
||||
@echo off
|
||||
color 0a
|
||||
@echo on
|
||||
echo BUILDING GAME
|
||||
lime build switch -final -clean -v
|
||||
@echo off
|
||||
color 0b
|
||||
@echo on
|
||||
echo NSP FILE CREATED
|
||||
pause
|
@ -1 +1,19 @@
|
||||
Tutorial
|
||||
Tutorial:gf:1
|
||||
Bopeebo:dad:1
|
||||
Fresh:dad:1
|
||||
Dadbattle:dad:1
|
||||
Spookeez:spooky:2
|
||||
South:spooky:2
|
||||
Monster:monster:2
|
||||
Pico:pico:3
|
||||
Philly:pico:3
|
||||
Blammed:pico:3
|
||||
Satin-Panties:mom:4
|
||||
High:mom:4
|
||||
Milf:mom:4
|
||||
Cocoa:parents-christmas:5
|
||||
Eggnog:parents-christmas:5
|
||||
Winter-Horrorland:monster-christmas:5
|
||||
Senpai:senpai:6
|
||||
Roses:senpai:6
|
||||
Thorns:spirit:6
|
4
assets/preload/data/gfVersionList.txt
Normal file
@ -0,0 +1,4 @@
|
||||
gf
|
||||
gf-car
|
||||
gf-christmas
|
||||
gf-pixel
|
2
assets/preload/data/noteStyleList.txt
Normal file
@ -0,0 +1,2 @@
|
||||
normal
|
||||
pixel
|
1
assets/preload/data/offsettest/offsettest.json
Normal file
8
assets/preload/data/stageList.txt
Normal file
@ -0,0 +1,8 @@
|
||||
stage
|
||||
halloween
|
||||
philly
|
||||
limo
|
||||
mall
|
||||
mallEvil
|
||||
school
|
||||
schoolEvil
|
29
assets/preload/data/tutorial/modchart.lua
Normal file
@ -0,0 +1,29 @@
|
||||
function start(song) -- do nothing
|
||||
|
||||
end
|
||||
|
||||
function update(elapsed)
|
||||
if difficulty == 2 and curStep > 400 then
|
||||
local currentBeat = (songPos / 1000)*(bpm/60)
|
||||
for i=0,7 do
|
||||
setActorX(_G['defaultStrum'..i..'X'] + 32 * math.sin((currentBeat + i*0.25) * math.pi), i)
|
||||
setActorY(_G['defaultStrum'..i..'Y'] + 32 * math.cos((currentBeat + i*0.25) * math.pi), i)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function beatHit(beat) -- do nothing
|
||||
|
||||
end
|
||||
|
||||
function stepHit(step) -- do nothing
|
||||
|
||||
end
|
||||
|
||||
function playerTwoTurn()
|
||||
tweenCameraZoom(1.3,(crochet * 4) / 1000)
|
||||
end
|
||||
|
||||
function playerOneTurn()
|
||||
tweenCameraZoom(1,(crochet * 4) / 1000)
|
||||
end
|
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 7.8 KiB |
Before Width: | Height: | Size: 4.8 MiB After Width: | Height: | Size: 4.8 MiB |
Before Width: | Height: | Size: 1.1 MiB After Width: | Height: | Size: 1.1 MiB |
Before Width: | Height: | Size: 5.7 MiB After Width: | Height: | Size: 5.7 MiB |
Before Width: | Height: | Size: 1.7 MiB After Width: | Height: | Size: 1.7 MiB |
Before Width: | Height: | Size: 1.5 MiB After Width: | Height: | Size: 1.5 MiB |
Before Width: | Height: | Size: 1.7 MiB After Width: | Height: | Size: 1.7 MiB |
Before Width: | Height: | Size: 1.7 MiB After Width: | Height: | Size: 1.7 MiB |
Before Width: | Height: | Size: 473 KiB After Width: | Height: | Size: 473 KiB |
Before Width: | Height: | Size: 34 KiB After Width: | Height: | Size: 34 KiB |
Before Width: | Height: | Size: 117 KiB After Width: | Height: | Size: 117 KiB |
Before Width: | Height: | Size: 1.9 MiB After Width: | Height: | Size: 1.9 MiB |
Before Width: | Height: | Size: 4.6 MiB After Width: | Height: | Size: 4.6 MiB |
Before Width: | Height: | Size: 23 KiB After Width: | Height: | Size: 23 KiB |
Before Width: | Height: | Size: 3.3 MiB After Width: | Height: | Size: 3.3 MiB |