Skip to content
This repository has been archived by the owner on Aug 6, 2022. It is now read-only.

steviegt6/Psyche

Repository files navigation

I HAVE NO PLANS TO CONTINUE PSYCHE

I have absolutely zero plans to continue this project. I'd rather fork the vanilla engine once the rewrite comes out instead.

Powerful modding support using my probject, dashlink is planned in the future (among other things). Contact me directly if you care at all about the future of this project and anything related to it. My goal remains the same, I will just pursue it through other means.

Psyche

Psyche is a fork of Pysch Engine that focuses on extensibility and maintainability. The projet's goal is to produce a cleaner, easier-to-use, faster, and more powerful engine. A side goal is full OS parity (Windows and *Nix operating systems should work fine together).

Pysche is is intended to build upon Psych Engine, keeping backwards-compatibility while adding new features and functionality for modders and players. Lua support will not be maintained past whatever is added to Psych Engine. Forks that clean up and add features may be merged after some discussion.

Planned Features

See the planned features document.

Why an independent fork? Why not just make a pull request?

I've been waiting nearly two months for a pull request as simple as one that changes a couple compilation flags (see: ShadowMario/FNF-PsychEngine#700). I do not want to endure Shadow Mario's PR process. In addition to that, I also have my own design philosophies and nitpicks that should not interfere with the development of Psych Engine, and am less tolerant of 9-year-olds on my repositories.

Credits

If you wish to view both Psych Engine's credits as well as Psyche's credits, please view CREDITS.md.

Building

Featured here are exclusively unique steps required to build Psyche. Psyche does not use some of the additional libraries that Psych Engine uses. The latest version of Haxe, HaxeFlixel, etc. are required. Figure out how to install these using a pre-existing tutorial.

Psych Engine

The engine originally used as a base for the Mind Games Mod, intended to be a fix for the vanilla version's many issues while keeping the casual play aspect of it. Also aiming to be an easier modding alternative for those that are unfamiliar with Haxe.

Additionally, the interpret haxelib is used as well (haxelib install interpret). LuaJIT is not used in this project.

If you wish to contribute, you will also need .NET 6.0 installed (https://dotnet.microsoft.com/en-us/download/dotnet/6.0) in order to run the included code generator.

Whenever a new class or interface is created, please run _generate.bat (or _generate.sh) to generate an updated ./source/fnf/psyche/api/EnvPopulator.hx file. You should format this before opening a pull request.

Psyche Features

In progress.

Original Psyche Engine features can be found below.

Psych Engine Features

  • Attractive animated dialogue boxes.

  • Lua modding support.
    • The engine's main attraction; .lua files are compiled at runtime and can be freely distributed without modification of the source code.
    • Comes with a menu for organizing, enabling, and disabling mods.

  • At least one change to every vanilla week:
    • Week 1:
      • Daddy Dearest's left sing sprite has been updated.
      • Previously-unused stage light textures are now used.

  • Week 2:
    • Boyfriend and Skid & Pump both have "Hey!" animations.
    • When lightning strikes, a quick light flashes and zooms the camera in slightly.
    • Added a quick transition/cutscene to Monster.

  • Week 3:
    • Boyfriend has a "Hey!" animation during Philly Nice.
    • The climax of Blammed flashes different colors.

  • Week 4:
    • Improved hair physics for Mommy Mearest and Boyfriend.
    • Henchmen will die during all songs.

  • Week 5:
    • Bottom Boppers and Girlfriend do "Hey!" animations during Cocoa and Eggnog.
    • On Winter Horrorland, Girlfriend bops her head slower in some parts of the song to adjust for changed rhythm.

  • Week 6:
    • On Thorns, the HUD is hidden during the cutscene.
    • The Background Girls switch to their "spooky" sprites during the "Hey!" parts of the instrumental.

  • Cool new chart editor and countless bug fixes to the vanilla game.
    • You can now chart "Event" notes, which are bookmarks that trigger specific actions that were typically hardcoded in vanilla.
    • Your song's BPM can now have decimal values.
    • You can manually adjust a Note's strum time if you're really going for milisecond precision.
    • You can change a note's type in the editor. It comes with two example types:
      • Alt Animation: Forces an alt animation to play, useful for songs like Ugh/Stress.
      • Hey: Forces a "Hey" animation instead of the base Sing animation, if Boyfriend hits this note, Girlfriend will do a "Hey!" too.

  • Multiple editors to make mod creation easier. Screenshot_3
    • Works both for source code modding and pre-built binaries!

  • Story Mode menu rework:
    • Added a different background to every song (save for Tutorial).
    • All menu characters are now in individual spritesheets, makes modifications easier.

  • Credits menu: Screenshot_1
  • You can add a head icon, name, description and a redirect link for when the player presses Enter while the item is currently selected.

  • Awards/Achievements
  • The engine comes with sixteen example achievements that you can mess with to understand their functionality (check Achievements.hx and search for checkForAchievement in PlayState.hx).

  • Options menu:
    • You can change note colors, delay and combo offset, controls and preferences there.
      • In the "Preferences" menu, you can toggle downscroll, middlescroll, anti-aliasing, framerate, low-quality sprites, note splashes, flashing lights, and more.

  • Other Gameplay Features:
    • When the enemy hits a note, their strum note also glows.
    • Lag doesn't impact the camera movement and player icon scaling anymore.
    • Some stuff based on Week 7's changes have been clean-room backported (background colors on freeplay, note splashes)
    • You can reset your score on freeplay/story mode by pressing the reset button.
    • You can listen to a song or adjust Scroll speed/damage taken/etc. on freeplay by pressing space.