Giter Site home page Giter Site logo

fnf-psychengine-extra's Introduction

NOTE: This engine is abandoned! If there are any bugs or glitches, they'll be left unfixed. I'm keeping it up for archival purposes and because some mods have used it.

Psych Engine Extra

Friday Night Funkin' - Psych Engine Extra

Modified version of Psych Engine adding more stuff, most notably higher key amounts, time signatures, and Hscript support.

Credits:

  • Starmapo - Programmer and Artist

Special Thanks:

  • KadeDev & GitHub Contributors - Made Kade Engine (some code and ideas are from there)
  • Leather128 & GitHub Contributors - Made Leather Engine (some code and ideas are from there)
  • srPerez - Made VS Shaggy & the original 6K+ notes

Psych Engine Credits:

  • Shadow Mario - Programmer
  • RiverOaken - Artist
  • Yoshubs - Assistant Programmer

Psych Engine Special Thanks:

  • bbpanzu - Ex-Programmer
  • SqirraRNG - Crash Handler and Base code for Chart Editor's Waveform
  • KadeDev - Fixed some cool stuff on Chart Editor and other PRs
  • iFlicky - Composer of Psync and Tea Time, also made the Dialogue Sounds
  • PolybiusProxy - Video Loader Library (hxCodec)
  • Keoiki - Note Splash Animations
  • Smokey - Sprite Atlas Support
  • Nebula the Zorua - LUA JIT Fork and some Lua reworks

New Features

  • Custom key amounts (currently 1K to 13K)
  • Custom time signatures (1-100/1-64)
  • Hscript compatibility
  • Custom UI skins (custom rating sprites, countdown sprites, etc.)
  • Character groups (more than one Boyfriend, opponent, or Girlfriend)
  • Separate voices for the player and the opponent (by adding a 'VoicesOpponent' or 'VoicesDad' file)
  • Gameplay Changers: Play as the opponent, change song (not chart, SONG) speed, demo mode (showcase gameplay)
  • Go to options menu from the pause menu (and go right back to game after you're done!)

New Options

  • Note underlays
  • Instant restart after dying
  • Show number of ratings (sicks, goods, etc.)
  • "Crappy" quality option (no stage)
  • Toggle autopause when not focused on the game
  • "Shit" counting as a miss
  • Smooth health bar
  • Save Data menu where you can clear your save data

Minor Touches

  • Camera bump in Freeplay (from @Stilic)
  • Difficulty dropdown in charting menu (from @CerBor)

Build Instructions:

Installing the Required Programs

First, you need to install the latest Haxe and HaxeFlixel. I'm too lazy to write and keep updated with that setup (which is pretty simple).

  1. Install Haxe
  2. Install HaxeFlixel after downloading Haxe (make sure to do haxelib run lime setup flixel to install the necessary libraries, basically just follow the whole guide)

You should make sure to keep Haxe & Flixel updated. If there is a compilation error, it might be due to having an outdated version.

You'll also need to install a couple things that involve Gits. To do this, you need to do a few things first.

  1. Download git-scm. Works for Windows, Mac, and Linux, just select your build.
  2. Follow instructions to install the application properly.
  3. Run haxelib git discord_rpc https://github.com/Aidan63/linc_discord-rpc to install Discord RPC.
  4. Run haxelib git linc_luajit https://github.com/nebulazorua/linc_luajit to install LuaJIT. If you get an error about StatePointer when using Lua, run haxelib remove linc_luajit into Command Prompt/PowerShell, then re-install linc_luajit. (If you don't want your mod to be able to run .lua scripts, delete the "LUA_ALLOWED" line on Project.xml)
  5. Run haxelib git hscript https://github.com/HaxeFoundation/hscript to install hscript. After that, run haxelib git hscript-ex https://github.com/ianharrigan/hscript-ex to install hscript-ex. (If you don't want your mod to be able to run .hscript scripts, delete the "HSCRIPT_ALLOWED" line on Project.xml)
  6. Run haxelib install hxCodec to install hxCodec for video support. (If you don't want your mod to have video support, delete the "VIDEOS_ALLOWED" line on Project.xml)

You should have everything ready for compiling the game! Follow the guide below to continue!

Compiling game

NOTE: If you see any messages relating to deprecated packages, ignore them. They're just warnings that don't affect compiling

HTML5

Compiling to browser is very simple. You just need to run lime test html5 -debug (remove "-debug" for official releases) in the root of the project to build and run the HTML5 version. (command prompt navigation guide can be found here)

Do note that modpacks and Lua scripts are unavailable in HTML5.

Desktop

To run it from your desktop (Windows, Mac, Linux) it can be a bit more involved.

(NOTE: Mac and Linux have not been tested yet and they are not guaranteed to function)

For Windows, you need to install Visual Studio Community. 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 (Latest)
  • Windows 10 SDK (10.0.17763.0)

This will take a while and requires about 4GB of space. Once that is done you can open up a command line in the project's directory and run lime test windows -debug (remove "-debug" for official releases). Once that command finishes (it takes forever even on a higher end PC), it will automatically run the game. The .exe file will be under export\release\windows\bin.

For Mac, you need to install Xcode. After that, run lime test mac -debug (remove "-debug" for official releases) in the project's directory. The .exe file will be in export/release/mac/bin.

For Linux, you only need to open a terminal in the project directory and run lime test linux -debug (remove "-debug" for official releases). The executable file will be in export/release/linux/bin.

To build for 32-bit, add -32 -D 32bits to the lime test command:

lime test windows -32 -D 32bits

fnf-psychengine-extra's People

Contributors

starmapo avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar

fnf-psychengine-extra's Issues

don`t think this is a bug but, the game is with serious performance problems

Describe your bug here.

im serious, there is a lot of difference between the original engine and this fork.
the fps drops when hitting notes.

Command Prompt/Terminal logs (if existing)

none

Are you modding a build from source or with Lua?

Source

What is your build target?

Linux

Did you edit anything in this build? If so, mention or summarize your changes.

No

Error: could not automatically setup MSVC

Describe your problem here.

I have trouble compiling engine. I don't know what version of VS to use.
image

Are you modding a build from source or with Lua?

Source

What is your build target?

Windows x64

Did you edit anything in this build? If so, mention or summarize your changes.

I only edited some values in Discord.hx to match my mod (i did not rewrite any of the code)

Events crash the game

Describe your bug here.

wont let me use events at all. when i save them and compile the game, the game just gives me a crash and closes the game.

Command Prompt/Terminal logs (if existing)

Song.hx (line 223)
Song.hx (line 167)
PlayState.hx (line 3389)
PlayState.hx (line 1268)
flixel/FlxGame.hx (line 637)
flixel/FlxGame.hx (line 724)
flixel/FlxGame.hx (line 677)
flixel/FlxGame.hx (line 545)
openfl/events/EventDispatcher.hx (line 402)
openfl/display/DisplayObject.hx (line 1399)

Uncaught Error: Null Object Reference
Please report this error to the GitHub page: https://github.com/ShadowMario/FNF-PsychEngine

> Crash Handler written by: sqirra-rng

Are you modding a build from source or with Lua?

Source

What is your build target?

Windows

Did you edit anything in this build? If so, mention or summarize your changes.

i just fixed the gameoverstate issue

Problem with miss animations

Describe your bug here.

Forgot to mention this, so basically the miss animations will stay forever until you hit a note.
I dunno if this is intentional.

Command Prompt/Terminal logs (if existing)

No response

Are you modding a build from source or with Lua?

Source

What is your build target?

Windows

Did you edit anything in this build? If so, mention or summarize your changes.

nah

Psych Engine Questions

What is your question?

What is the version used? As I currently use 0.5.2h, and hope this doesnt run older versions, so I want to know.

Does the custom keys include the fake (tricky) keys texture too?

And lastly, any wayt o change the name of the file used for VoicesDad? So I can make it for example, VoicesOp?

Can you lend me a helping hand?

What is your question?

Hey i want a lil helping hand on some coding for psych engine but better will credit if you do! also i wanna help with this too!

ayo this shit nice ngl

What is your question?

I know it's still not done, but is it possible to starting modding with this one already? The extra features hooked me up.

Compiling problem after the latest commit

Describe your bug here.

hmm idk where did this thing come from
I haven't tried to remove this code since it might ruin something

Command Prompt/Terminal logs (if existing)

source/flixel/FlxSprite.hx:24: characters 8-37 : Type not found : flixel.util.FlxDirectionFlags
source/flixel/FlxSprite.hx:125: characters 34-51 : Type not found : FlxDirectionFlags

Are you modding a build from source or with Lua?

Source

What is your build target?

Windows

Did you edit anything in this build? If so, mention or summarize your changes.

Nah.

an input issue to 7k and above

Describe your bug here.

Only occurs when playing 7+ keys.
When pressing multiple keys, some of the rest of the keys won't register at all.
(I pressed around 7 keys at once but only registered around 4 or 3, etc.)

You can see the problem if you press all the keys at once.

Command Prompt/Terminal logs (if existing)

No response

Are you modding a build from source or with Lua?

Source

What is your build target?

Windows

Did you edit anything in this build? If so, mention or summarize your changes.

nah

Anti spam without turning ghost tapping off

What feature do you want to get added on the base engine?

Simple idea, been done before: Hitting a "Shit" judgement counts as a missed note/combo break if a special Anti Spam option is checked. Most other engines essentially do this.

Performance

Describe your bug here.

The performance in this thing is really bad, each time i press up or down to navigate in the freeplay menu it lags, and every time i hit a note it lags, im not being able to use this engine to play, even though its my favorite, i dont have programming skills, but request that you fix this issue. Please.

Command Prompt/Terminal logs (if existing)

No response

Are you modding a build from source or with Lua?

Source

What is your build target?

Linux

Did you edit anything in this build? If so, mention or summarize your changes.

No

Problems with FlxSprite.hx

Describe your problem here.

image

When I compiled the source code in visual studio, it gave me this message.

Are you modding a build from source or with Lua?

Source

What is your build target?

Windows x64

Did you edit anything in this build? If so, mention or summarize your changes.

Added winning icons.

Change Character Event crashes

Describe your bug here.

2022-03-19.01-54-29.mp4

image
this character does exist

and it happens even with vanilla characters

Command Prompt/Terminal logs (if existing)

No response

Are you modding a build from source or with Lua?

Lua

What is your build target?

Windows

Did you edit anything in this build? If so, mention or summarize your changes.

nothing on source or lua, just added the event

can you give me extra key code only

What is your question?

im trying to add extra keys

to my engine

but all time gltiches or crash game

can you give me extra key source code only

FunkinLua, FunkinHscript, etc. problems when compiling

Describe your bug here.

idk why
pretty sure I had the Lua and Hscript lib

Command Prompt/Terminal logs (if existing)

source/FunkinLua.hx:2907: characters 38-54 : Type not found : GameOverSubstate
source/FunkinLua.hx:2907: characters 66-84 : PlayState should be Void
source/FunkinLua.hx:2849: characters 34-47 : Void should be Dynamic
source/FunkinLua.hx:2849: characters 34-47 : ... For function argument 'instance'
source/FunkinLua.hx:644: characters 25-38 : Void should be Dynamic
source/FunkinLua.hx:644: characters 25-38 : ... For function argument 'instance'
source/FunkinLua.hx:653: characters 18-31 : Void should be Dynamic
source/FunkinLua.hx:653: characters 18-31 : ... For function argument 'instance'
source/FunkinLua.hx:659: characters 49-62 : Void should be Dynamic
source/FunkinLua.hx:659: characters 49-62 : ... For function argument 'o'
source/FunkinLua.hx:679: characters 49-62 : Void should be Dynamic
source/FunkinLua.hx:679: characters 49-62 : ... For function argument 'o'
source/FunkinLua.hx:698: characters 41-54 : Void should be Dynamic
source/FunkinLua.hx:698: characters 41-54 : ... For function argument 'o'
source/FunkinLua.hx:707: characters 24-37 : Void should be Dynamic
source/FunkinLua.hx:707: characters 24-37 : ... For function argument 'o'
source/FunkinLua.hx:747: characters 26-33 : Void has no field members
source/FunkinLua.hx:760: characters 19-25 : Void has no field remove
source/FunkinLua.hx:761: characters 19-25 : Void has no field insert
source/FunkinHscript.hx:190: characters 43-59 : Unknown identifier : GameOverSubstate
source/FunkinHscript.hx:190: characters 43-59 : ... For function argument 'value'
source/PlayState.hx:4582: characters 34-50 : Type not found : GameOverSubstate
source/PlayState.hx:4585: characters 23-39 : Type not found : GameOverSubstate
source/FunkinLua.hx:1493: characters 47-60 : Void should be Dynamic
source/FunkinLua.hx:1493: characters 47-60 : ... For function argument 'o'
source/FunkinLua.hx:1508: characters 45-58 : Void should be Dynamic
source/FunkinLua.hx:1508: characters 45-58 : ... For function argument 'o'
source/FunkinLua.hx:1527: characters 45-58 : Void should be Dynamic
source/FunkinLua.hx:1527: characters 45-58 : ... For function argument 'o'
source/FunkinLua.hx:1552: characters 46-59 : Void should be Dynamic
source/FunkinLua.hx:1552: characters 46-59 : ... For function argument 'o'
source/FunkinLua.hx:1588: characters 44-57 : Void should be Dynamic
source/FunkinLua.hx:1588: characters 44-57 : ... For function argument 'o'
source/FunkinLua.hx:1612: characters 45-58 : Void should be Dynamic
source/FunkinLua.hx:1612: characters 45-58 : ... For function argument 'o'
source/FunkinLua.hx:1626: characters 47-60 : Void should be Dynamic
source/FunkinLua.hx:1626: characters 47-60 : ... For function argument 'o'
source/FunkinLua.hx:1637: characters 21-24 : Void has no field add
source/FunkinLua.hx:1643: characters 8-24 : Type not found : GameOverSubstate
source/FunkinLua.hx:1709: characters 45-58 : Void should be Dynamic
source/FunkinLua.hx:1709: characters 45-58 : ... For function argument 'o'
source/FunkinLua.hx:1717: characters 41-54 : Void should be Dynamic
source/FunkinLua.hx:1717: characters 41-54 : ... For function argument 'o'
source/FunkinLua.hx:1721: characters 24-37 : Void should be Dynamic
source/FunkinLua.hx:1721: characters 24-37 : ... For function argument 'o'
source/FunkinLua.hx:1745: characters 19-25 : Void has no field remove
source/FunkinLua.hx:1869: characters 44-57 : Void should be Dynamic
source/FunkinLua.hx:1869: characters 44-57 : ... For function argument 'o'
source/FunkinLua.hx:2212: characters 20-23 : Void has no field add
source/FunkinLua.hx:2228: characters 19-25 : Void has no field remove
source/FunkinLua.hx:2379: characters 44-57 : Void should be Dynamic
source/FunkinLua.hx:2379: characters 44-57 : ... For function argument 'o'
source/FunkinHscript.hx:367: characters 38-54 : Type not found : GameOverSubstate
source/FunkinHscript.hx:367: characters 66-84 : PlayState should be Void
source/PlayState.hx:494: characters 3-19 : Type not found : GameOverSubstate
source/PlayState.hx:748: characters 7-23 : Type not found : GameOverSubstate
source/PlayState.hx:749: characters 7-23 : Type not found : GameOverSubstate
source/PlayState.hx:750: characters 7-23 : Type not found : GameOverSubstate
source/PlayState.hx:751: characters 7-23 : Type not found : GameOverSubstate
source/PlayState.hx:812: characters 7-23 : Type not found : GameOverSubstate
source/PlayState.hx:813: characters 7-23 : Type not found : GameOverSubstate
source/PlayState.hx:814: characters 7-23 : Type not found : GameOverSubstate
source/PlayState.hx:815: characters 7-23 : Type not found : GameOverSubstate
source/PlayState.hx:900: characters 7-23 : Type not found : GameOverSubstate

Are you modding a build from source or with Lua?

Source

What is your build target?

Windows

Did you edit anything in this build? If so, mention or summarize your changes.

nothing

how can i download the source code of a previous version?

Describe your problem here.

i want to compile 0.5.1, but i dont know how

Are you modding a build from source or with Lua?

Source

What is your build target?

Linux

Did you edit anything in this build? If so, mention or summarize your changes.

No response

Chart editor freezes when changing section

Describe your bug here.

Sometimes when pressing A/D to change section, the game freezes until you press A/D again. No clue what causes this

Command Prompt/Terminal logs (if existing)

No response

Are you modding a build from source or with Lua?

Source

What is your build target?

Windows

Did you edit anything in this build? If so, mention or summarize your changes.

no

HTML not working stuff

Describe your problem here.

basically cannot get the html build to work and after following a helpful guide from one of the comments i started getting this error

"source/Paths.hx:247: characters 2-8 : static modifier is not supported for module-level fields"
image

Are you modding a build from source or with Lua?

Source

What is your build target?

Windows x64

Did you edit anything in this build? If so, mention or summarize your changes.

all i edited were some of the things used in this comment #11 (comment)

Are the ripple backgrounds from Dave and Bambi included?

What is your question?

I'm wondering if the ripple background shader from Dave and Bambi exists in this build. Someone recommended this as it has multikeys and more than one character per side compatibility.

I'm trying to check the source code but is the shader included?

Change Character Event Animation Bug

Describe your bug here.

When using the change character event, the character that is swapped in by the event has all of their animations play at an incorrect framerate (or incorrect speed? I can't tell).

At first I thought it might have been an issue with the HTML build or a custom character's files, but this issue persists in the Windows build and when using the default characters.

charchange.mp4

Command Prompt/Terminal logs (if existing)

No response

Are you modding a build from source or with Lua?

Source

What is your build target?

HTML5

Did you edit anything in this build? If so, mention or summarize your changes.

No

HTML5 Compiling

Describe your problem here.

So when I use "lime test html5 -release" it opens a tab on my laptop and it runs perfectly, but when I open the index.html it doesnt even load haxeflixel, it crashes as soon as it's opened. Looking into the Console it says it all has to do with PsychEngine.Js and I have no clue how to fix it.

Are you modding a build from source or with Lua?

Source

What is your build target?

HTML5/Browser

Did you edit anything in this build? If so, mention or summarize your changes.

No response

How did you get HTML5 support working?

Update: see #11 (comment)!


What is your question?

Hey! Me and a few others are working on a mod, and we've already made pretty significant changes to the regular engine codebase. I would switch to this, but it's already WIP and I also don't want to revert/break any of our existing changes. I get stuck at the song freezing; are you able to show how you changed the code to get songs loading in HTML5 (and why it works so that I'm not just ripping it off from you lol)

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.