|
1 | 1 | > [!Warning] |
2 | 2 | > This engine is still in development! |
3 | | -> If you find any bugs, please report them to me. |
4 | | -> At here: https://github.com/Paopun20/FNF-HyPsych-Engine/issues |
| 3 | +> If you encounter any bugs, please report them on GitHub Issues (https://github.com/Paopun20/FNF-HyPsych-Engine/issues). |
5 | 4 |
|
6 | | -## HyPsych Enging Is next-gen of Psych Engine! |
| 5 | +# Welcome to HyPsych engine! |
7 | 6 |
|
8 | | -you can use it to make your mod more powerful! |
| 7 | +<video src="./docs/GHREADMEFile/HPE_Loop.mp4" width="100%" autoplay loop muted></video> |
9 | 8 |
|
10 | 9 | --- |
11 | | -### What is HyPsych Engine? |
12 | | -It's a fork of [Psych Engine 1.0.4](https://github.com/shadowMario/FNF-PsychEngine), but with a lot of new features and improvements. |
13 | | - |
14 | | -### Features: |
15 | | -- **HScript on Lua [Beta]** |
16 | | - Classic HScript syntax now runs *alongside Lua*! (*One tiny bug—[we're on it](https://github.com/Paopun20/FNF-HyPsych-Engine/issues)*) |
17 | | -- **Optimized Garbage Collector** |
18 | | - Smoother gameplay, fewer hitches. *Your mods won’t stutter even if your beats do.* |
19 | | -- **C++11 Unleashed** |
20 | | - Modern codebase for maximum performance and compatibility. |
21 | | - |
22 | | -### Lua extensions *(Modder’s Paradise)* : |
23 | | -| Extension | Status | Description | |
24 | | -|-----------|--------|-------------| |
25 | | -| **`BrainF*ck`** | Stable | *Yes, really.* Interpret Brainf*ck code mid-song. Meme responsibly. | |
26 | | -| **`GetArgs`** | Stable | Fetch command-line args like a pro. Perfect for custom mod tools. | |
27 | | -| **`HttpClient`** | Stable | Make HTTP(S) requests. Build mods that talk to APIs, Discord, etc. **BUT YOU CAN'T DOWNLOAD OR UPLOAD FILES FROM IT FOR SECURITY REASONS.** | |
28 | | -| **`JsonHelper`** | Stable | JSON parsing so easy, even your grandma could mod. | |
29 | | -| **`ScreenInfo`** | Stable | Dynamically adapt mods to any screen size/resolution. | |
30 | | -| **`UrlGen`** | Stable | Build URLs on the fly. Pair with `HttpClient` for endless chaos. | |
31 | | -| **`WindowManager`** | Beta | *"Move that window!"* Control position, size, fullscreen—mostly works™. | |
| 10 | + |
| 11 | +# HyPsych Enging Is next-gen of Psych Engine! |
| 12 | +This is a Friday Night Funkin' engine based on Psych Engine. |
| 13 | +This engine is a fork of Psych Engine 1.0.4, but with a lot of new features and improvements. |
| 14 | + |
| 15 | +## About |
| 16 | +This engine is made for fun and learning purposes. |
| 17 | +I hope you enjoy it! |
| 18 | + |
| 19 | +# Features: |
| 20 | +- **HScript on Lua [Beta]** |
| 21 | + Classic HScript syntax now runs alongside Lua! This allows for greater flexibility in scripting. (We’re working on fixing one minor bug—stay tuned!) |
| 22 | + |
| 23 | +- **Optimized Garbage Collection** |
| 24 | + Experience smoother gameplay with fewer performance hitches. Your mods won’t stutter, even during complex beats! |
| 25 | + |
| 26 | +- **C++11 Codebase** |
| 27 | + A modern, efficient codebase to maximize performance and ensure compatibility with the latest systems. |
| 28 | + |
| 29 | +- **Replay Functionality [Work in Progress]** |
| 30 | + Record your best (or worst) runs and play them back at any time! |
| 31 | + |
| 32 | +- **Buffer [Work in Progress]** |
| 33 | + Buffers temporarily store data in memory for more efficient data handling, improving overall performance. |
| 34 | + |
| 35 | +- **Gameplay** |
| 36 | + **HXCPP_GC_DYNAMIC_SIZE** |
| 37 | + This new feature allows you to change the size of dynamic memory allocation, providing flexibility for memory management during gameplay. |
| 38 | + |
| 39 | + **HXCPP_GC_BIG_BLOCKS** |
| 40 | + This feature optimizes memory allocation by using larger memory blocks, which can reduce fragmentation and improve performance. |
| 41 | + |
| 42 | + **HXCPP_GC_GENERATIONAL** |
| 43 | + A garbage collection approach that uses multiple generations of objects, optimizing memory usage and reducing the cost of collection in long-running processes. |
| 44 | + |
| 45 | + |
| 46 | +# Lua Extensions |
| 47 | + |
| 48 | +### These extensions expand Lua’s functionality in the HyPsych Engine: |
| 49 | + |
| 50 | +| Extension | Status | Testing | Description | |
| 51 | +|---------------------|----------------|---------|-------------| |
| 52 | +| **`BrainF*ck`** | Stable | Yes | Allows the execution of BrainF*ck code within your game’s songs. This quirky feature lets modders add unexpected logic or fun programming challenges in their music gameplay, adding an extra layer of meme-worthy fun to your mods. | |
| 53 | +| **`GetArgs`** | Stable | Yes | Enables access to command-line arguments, perfect for creating modding tools or integrating with external configurations. This extension helps retrieve input passed to the game on startup, which can be used for custom settings or tool integrations. | |
| 54 | +| **`HttpClient`** | Stable | Yes | Make HTTP(S) requests from within your mod to interact with external APIs, fetch data, or even interact with platforms like Discord. While it can handle requests and responses, file upload/download functionality is restricted for security purposes, ensuring safe communication. | |
| 55 | +| **`JsonHelper`** | Stable | Yes | A powerful extension to simplify working with JSON data. It provides easy-to-use functions to parse JSON strings into native Haxe objects and vice versa. Perfect for modders who need to handle external JSON configurations or data without dealing with complex parsing logic. | |
| 56 | +| **`ScreenInfo`** | Unstable (Crash Game) | Yes | Retrieve dynamic screen resolution and size information for any connected display. This is ideal for mods that need to adapt to different screen sizes and setups. However, it is currently unstable and may cause crashes, so use it cautiously. | |
| 57 | +| **`UrlGen`** | Stable | Yes | Build and manipulate URLs dynamically. This extension allows modders to generate custom URLs, append query parameters, and path segments on the fly. It pairs well with HttpClient for sending requests with custom parameters and paths, ideal for interacting with APIs or generating dynamic links within your game. | |
| 58 | +| **`WindowManager`** | Unstable (Buggy) | Yes | Provides control over window properties such as position, size, and fullscreen mode. While mostly functional, it’s still in an experimental state, with some bugs related to window resizing and positioning. This feature is primarily useful for mods that need to control the in-game window’s appearance. | |
| 59 | + |
| 60 | +--- |
| 61 | + |
| 62 | +## Q&A |
| 63 | +### What makes HyPsych Engine different from Psych Engine? |
| 64 | + |
| 65 | +HyPsych Engine offers many new features and improvements over Psych Engine, including: |
| 66 | +- HScript on Lua, allowing for more flexible scripting. |
| 67 | +- Optimized Garbage Collection for smoother gameplay. |
| 68 | +- C++11-based codebase, offering better performance and system compatibility. |
| 69 | +- New Lua Extensions, such as BrainF*ck, HttpClient, and JsonHelper, which add powerful new functionalities. |
| 70 | + |
| 71 | +## Credits |
| 72 | +- **Paopun20** - Main Developer \(Sole Developer for this cool engine\) |
| 73 | + |
| 74 | +## Special Thanks |
| 75 | +- **You** - For using this engine! |
0 commit comments