finally doing this

This commit is contained in:
⍚~Nex
2025-09-16 01:19:43 +02:00
parent ed8a9c6390
commit fa135df33d
15 changed files with 127 additions and 133 deletions
+1 -1
View File
@@ -14,7 +14,7 @@ jobs:
- name: Setting up Haxe
uses: krdlab/setup-haxe@v1
with:
haxe-version: 4.2.5
haxe-version: 4.3.7
- name: Restore existing build cache for faster compilation
uses: actions/cache@v3
with:
+1 -1
View File
@@ -14,7 +14,7 @@ jobs:
- name: Setting up Haxe
uses: krdlab/setup-haxe@v1
with:
haxe-version: 4.2.5
haxe-version: 4.3.7
- name: Restore existing build cache for faster compilation
uses: actions/cache@v3
with:
+1 -1
View File
@@ -14,7 +14,7 @@ jobs:
- name: Setting up Haxe
uses: krdlab/setup-haxe@v1
with:
haxe-version: 4.2.5
haxe-version: 4.3.7
- name: Restore existing build cache for faster compilation
uses: actions/cache@v3
with:
+70 -57
View File
@@ -1,91 +1,104 @@
# Friday Night Funkin' - Codename Engine (WIP)
# Friday Night Funkin' - Codename Engine
## PLEASE NOTE - THIS IS STILL IN A BETA STATE
### Mods created with beta versions of Codename may not be compatible with the release version
Known issues in the beta:
- Some options are missing
![Animated-Banner](https://github.com/user-attachments/assets/5830221d-d954-4be3-afe8-caae364a5881)
Build instructions are below. Press TAB on the main menu to switch mods.
Codename Engine is a cross platform [Friday Night Funkin'](https://github.com/FunkinCrew/Funkin) Engine aimed at simplifying modding focusing on softcoding, along with extensiblity and ease of use.<br>
It is the the official successor of the previously well known [Yoshi Engine](https://github.com/CodenameCrew/YoshiCrafterEngine).
Also, the command `.\cne test` uses the source assets folder instead of the export one for easier development (Although you can still use `lime test windows` normally).
The engine uses [HaxeFlixel](https://haxeflixel.com/) and it mainly features:
- A full scripting system with an optimized fork of [Hscript](https://lib.haxe.org/p/hscript/) (its name is [Hscript Improved](https://github.com/CodenameCrew/hscript-improved))
- Uses forks of popular libraries tailored specifically for the engine for the goal of better optimization.
- Modding system and softcoding is as capable as source coding.
- Focuses heavily on optimization, and encourages its users to also take on optimization practices.
- Many modding tools without changing the core gameplay and the base to mod on.
- Allows modularity using addons and mods that apply on top of the core mod.
- Advanced editors which allows for possibly better experience and easiness when creating the mod.
- Much more, more can be read [HERE](FEATURES.md)
## Codename Engine
> [!NOTE]
> Please keep in mind that, despite these differences, we do not consider our engine to be any better than the others.
Codename Engine is a new Friday Night Funkin' Engine aimed at simplifying modding, along with extensiblity and ease of use.<br>
### Before making issues or need help with something, check our website [HERE](https://codename-engine.com/) (it contains a wiki of how to mod with EXAMPLES, an api, lists of mods made with Codename Engine and more)!!!
#### The Engine includes many new features, as seen [here](FEATURES.md)<br>
#### Wanna see the new features added in the most recent update? Click [here](PATCHNOTES.md)<br>
---
## How to download
> [!CAUTION]
> Want to use this project's code for different purposes or something similar? Check out the ***Usage Info*** part below first, it basically explains what you can do or not do!<br>
> We love open source but we also love proper credits for having respect of all the people who worked hard on this project!!
Latest builds for the engine can be found in the [Actions](https://github.com/CodenameCrew/CodenameEngine/actions) tab.<br>
In the future (when the engine won't be a WIP anymore) we're gonna also publish the engine on platforms like Gamebanana; stay tuned!
> [!WARNING]
> Before making issues or if you need help with something, check our website [HERE](https://codename-engine.com/).<br>
> It contains a wiki of how to mod with EXAMPLES, an api, lists of mods made with Codename Engine and more!
If you don't have a github account please go onto https://codename-engine.com/ and click the download button for the respective operating system.
> [!TIP]
> Want to stay updated with this project?<br>
> Check out our [patch notes](PATCHNOTES.md)!
---
<img width="1080" height="146" alt="immagine" src="https://github.com/user-attachments/assets/93604082-6bac-4ffc-99b0-5393b1e340a4" />
<br><br>
<img width="1280" height="720" alt="immagine" src="https://github.com/user-attachments/assets/4106f77a-40f8-4159-9f4e-b601cc79e1d0" />
<img width="1280" height="720" alt="immagine" src="https://github.com/user-attachments/assets/2c06f5ea-3462-459b-982e-bf4eddf3d099" />
<img width="1280" height="720" alt="immagine" src="https://github.com/user-attachments/assets/4979e256-6b99-4857-8a2a-96abd94f9c4e" />
<img width="1280" height="720" alt="immagine" src="https://github.com/user-attachments/assets/55a5a710-55b9-4988-bdcc-0977ba1de97a" />
<img width="1280" height="720" alt="immagine" src="https://github.com/user-attachments/assets/4676b035-bec7-445b-a303-78e66f11c479" />
---
> [!NOTE]
> Codename Engine as for now supports **Windows x64**, **Mac OS x64** and **Linux x64**.<br>
> More platforms will soon come, stay tuned!<br>
> - [ ] **Web (HTML5) Support**
> - [ ] **Mobile Support**
<details>
<summary><h2>How to build</h2></summary>
<summary><h2>How to download</h2></summary>
> **Open the instructions for your platform**
<details>
<summary>Windows</summary>
- Stable builds of the engine can be found on our [GameBanana](https://gamebanana.com/mods/598553) or our [itch.io](https://nex-isdumb.itch.io/codename-engine) pages.
- Latest *EXPERIMENTAL* builds of the engine can be found in the [Actions](https://github.com/CodenameCrew/CodenameEngine/actions) tab. **REQUIRES A GITHUB ACCOUNT!!**
##### Tested on Windows 10 21H2
1. Install [version 4.2.5 of Haxe](https://haxe.org/download/version/4.2.5/).
2. Download and install [`git-scm`](https://git-scm.com/download/win).
- Leave all installation options as default.
3. Run `update.bat` using cmd or double-clicking it, and wait for the libraries to install.
4. Once the libraries are installed, run `haxelib run lime test windows` to compile and launch the game (may take a long time)
- You can run `haxelib run lime setup` to make the lime command global, allowing you to execute `lime test windows` directly.
</details>
<details>
<summary>Linux</summary>
##### Requires testing
1. Install [version 4.2.5 of Haxe](https://haxe.org/download/version/4.2.5/).
2. Install `g++`, if not present already.
3. Download and install [`git-scm`](https://git-scm.com/download/linux).
4. Open a terminal in the Codename Engine source folder, and run `update.sh`.
5. Once the libraries are installed, run `haxelib run lime test linux` to compile and launch the game (may take a long time)
- You can run `haxelib run lime setup` to make the lime command global, allowing you to execute `lime test linux` directly.
</details>
<details>
<summary>MacOS</summary>
##### Requires testing
1. Install [version 4.2.5 of Haxe](https://haxe.org/download/version/4.2.5/).
2. Install `Xcode` to allow C++ app building.
3. Download and install [`git-scm`](https://git-scm.com/download/mac).
4. Open a terminal in the Codename Engine source folder, and run `update.sh`.
5. Once the libraries are installed, run `haxelib run lime test mac` to compile and launch the game (may take a long time)
- You can run `haxelib run lime setup` to make the lime command global, allowing you to execute `lime test mac` directly.
</details>
If you don't have a GitHub account to download experimental builds, you can also go onto our [official website](https://codename-engine.com/) and click the download button for the respective operating system under the **Experimental** section.
</details>
<details>
<summary><h2>What can you do or not do</h2></summary>
<summary><h2>How to mod</h2></summary>
Check out our wiki [HERE](https://codename-engine.com/wiki/)
</details>
<details>
<summary><h2>How to setup and build</h2></summary>
Check out our guide [HERE](building/BUILDING.md)
</details>
<details>
<summary><h2>Usage Info</h2></summary>
### You can:
- Download and play the engine with its mods and modpacks
- Mod and fork the engine (without using it for illicit purposes)
- Contribute to the engine (for example through *Pull Requests*, *Issues*, etc)
- Contribute to the engine (for example through *Pull Requests*, *Issues*, etc.)
- Create a sub engine with Codename Engine as **TEMPLATE** with **CREDITS** (for example leaving the *credits menu submenu with the GitHub contributors* and putting the *[main devs](https://github.com/CodenameCrew)* in a *README* specifying that it's a *sub engine from Codename Engine*)
- Release excutable mods that use Codename Engine as source (Specifing that uses Codename Engine by for example the same way written above this)
- Release modpacks
- Release excutable mods that use Codename Engine as source (specifing that uses Codename Engine by for example the same way written above this)
- Release Codename Engine modpacks
### You can't:
- Create a *side/new/etc* engine (or mod that doesn't use Codename Engine) using Codename Engine's code
- Steal code from Codename Engine for another different project that is not Codename Engine related (Codename Engine mods excluded) without properly crediting
- Release the entire Codename Engine on platforms (Mods that use Codename Engine as source are fine, if it's specified even better)
- Release the entirety of Codename Engine on platforms (mods that use Codename Engine as source are fine)
#### *If you need more info or feel like asking to do something which is not listed here, ask us directly on our discord (linked on the website)!*
#### *If you need more info or feel like asking to do something which is not listed here, ask us directly on our [discord server](https://discord.com/servers/codename-engine-860561967383445535)!*
</details>
<details>
<summary><h2>Credits</h2></summary>
- All main Credits can be seen inside the Engine and specifically [HERE](https://github.com/CodenameCrew/CodenameEngine/graphs/contributors)
- Credits to the [FlxAnimate](https://github.com/Dot-Stuff/flxanimate) team for the Animate Atlas support
- Credits to Smokey555 for the backup Animate Atlas to spritesheet code
- Credits to MAJigsaw77 for [hxvlc](https://github.com/MAJigsaw77/hxvlc) (video cutscene/mp4 support) and [hxdiscord_rpc](https://github.com/MAJigsaw77/hxdiscord_rpc) (discord rpc integration)
- Credits to [TheoDev](https://github.com/TheoDevelops) for [FunkinModchart](https://lib.haxe.org/p/funkin-modchart/). ***(library used for modcharting features)***
</details>
- Credits to [Ninjamuffin99](https://github.com/ninjamuffin99) and the [Funkin Crew](https://github.com/FunkinCrew) for the base game Friday Night Funkin'
</details>
-61
View File
@@ -1,61 +0,0 @@
# Codename Engine Todo List
## `v1.0.0` - Initial release
- [x] Remove Herobrine
- [ ] Chart Editor
- [x] Place & Delete notes
- [x] Ctrl+Z & Ctrl+Y
- [x] Selection box & dragging
- [x] Scroll bar at the right + Song info
- [x] Fix the strumlines bar when zooming out
- [x] Algorithm to make note placements faster & sorted out
- [x] Play here working
- [x] Cap zoom in & out
- [x] Events (including Camera Movement)
- [x] Metadata Editing
- [ ] Custom Notetypes
- [ ] Reorderable Strumlines
- [ ] Step based zooming
- [ ] Add Undo to more actions
- [ ] New Chart Button
- [ ] Bug fixes
- [ ] Zooming in causing notes to disappear
- [ ] Holds disappear too early
- [ ] Time signature fixes
- [ ] BPM Changes Events
- [ ] Character Editor
- [x] Animation Editing
- [x] Animation Deletion/Creation
- [x] Character Info Editing
- [x] Character Saving
- [x] Add Undos to Actions
- [ ] Change Stage
- [ ] New Character Button
- [ ] Port Videos to a more stable video lib
- [ ] Optimization to Editors
- [ ] Fix Ratings Lag
- [x] Re-export gf-christmas, gf-car and gf-tankmen with padding
- [x] Re-add shader camera stuff
- [x] Make update.bat use libs.xml instead of hmm.json
- [ ] New Switch Mod menu
- [x] Port shader camera stuff over to new flixel fork
- [ ] Add note offset
- [x] Dialogue
- [ ] Finish Base Game port
- [x] Add credits
- [x] Verbose mode (`--verbose`)
- [ ] Tooltips
- [ ] Fix bugs
## `v1.1.0`
- [ ] Charter Waveforms (maybe in v1.1.0, don't wanna slow shit down)
- [ ] Custom classes
- [ ] Proper super overrides (FlxText_HSX doesn't allow overrides for update because of this)
- [ ] Custom Class extending Custom Classes
- [ ] Statics on Custom Classes
- [ ] Fix Bugs
- [ ] Full 3D support via stages files
- [ ] Multithread sprites and assets loading (for faster load times) ?
- [ ] Stage Editor
- [ ] Optimize flxanimate isOnScreen
+38
View File
@@ -0,0 +1,38 @@
Here's the full guide on how to setup and compile Codename Engine!<br>
> **Open the instructions for your platform**
<details>
<summary>Windows</summary>
1. Install [version 4.3.7 of Haxe](https://haxe.org/download/version/4.3.7/).
2. Download and install [`git-scm`](https://git-scm.com/download/win).
- Leave all installation options as default.
3. Run `setup-windows.bat` using cmd or double-clicking it and wait for the libraries to install.
4. Once the libraries are installed, run `haxelib run lime test windows` to compile and launch the game (may take a long time)
- You can run `haxelib run lime setup` to make the lime command global, allowing you to execute `lime test windows` directly.
</details>
<details>
<summary>Linux</summary>
1. Install [version 4.3.7 of Haxe](https://haxe.org/download/version/4.3.7/).
2. Install `g++`, if not present already.
3. Download and install [`git-scm`](https://git-scm.com/download/linux) if not present already.
4. Run `setup-unix.sh` using the terminal or double-clicking it and wait for the libraries to install.
5. Once the libraries are installed, run `haxelib run lime test linux` to compile and launch the game (may take a long time)
- You can run `haxelib run lime setup` to make the lime command global, allowing you to execute `lime test linux` directly.
</details>
<details>
<summary>MacOS</summary>
1. Install [version 4.3.7 of Haxe](https://haxe.org/download/version/4.3.7/).
2. Install `Xcode` to allow C++ app building.
3. Download and install [`git-scm`](https://git-scm.com/download/mac).
4. Run `setup-unix.sh` using the terminal and wait for the libraries to install.
5. Once the libraries are installed, run `haxelib run lime test mac` to compile and launch the game (may take a long time)
- You can run `haxelib run lime setup` to make the lime command global, allowing you to execute `lime test mac` directly.
</details>
> [!TIP]
> You can also run `.\cne-windows.bat -help` or `./cne-unix.sh -help` (depending on your platform) to check out more useful commands!<br>
> For example `.\cne-windows test` or `./cne-unix.sh test` builds the game and uses the source assets folder instead of the export one for easier development (although you can still use `lime test` normally).
> - If you're running the terminal from the project's main folder, use instead `.\building\cne-windows.bat -COMMAND HERE` or `./building/cne-unix.sh -COMMAND HERE` depending on your platform.
View File
+1
View File
@@ -1 +1,2 @@
cd "$(dirname "$(cd "$(dirname "$0")" && pwd)")"
haxe -cp commandline -D analyzer-optimize --run Main $@
+1
View File
@@ -1 +1,2 @@
cd /d "%~dp0.."
@haxe -cp commandline -D analyzer-optimize --run Main %*
View File
+1 -1
View File
@@ -1,2 +1,2 @@
#!/bin/sh
cd "$(dirname "$(cd "$(dirname "$0")" && pwd)")"
haxe -cp commandline -D analyzer-optimize --run Main setup
@@ -1 +1,2 @@
cd /d "%~dp0.."
@haxe -cp commandline -D analyzer-optimize --run Main setup
+2 -1
View File
@@ -16,7 +16,7 @@ class Main {
dDoc: [
"Usage: setup",
"",
"This command runs through all libraries in libs.xml, and install them.",
"This command runs through all libraries in building/libs.xml, and install them.",
"If they're already installed, they will be updated.",
"",
"--all : Reinstall all libraries.",
@@ -173,6 +173,7 @@ class Main {
Sys.println("Codename Engine Command Line utility");
Sys.println('Available commands (${commands.length}):\n');
for(line in commands) {
if(line.names.contains(null)) line.names.remove(null);
Sys.println('${line.names.join(", ")} - ${line.doc}');
}
}
+8 -8
View File
@@ -55,7 +55,7 @@ class Setup {
FileSystem.createDirectory('.haxelib');
}
var libFile = "./libs.xml";
var libFile = "./building/libs.xml";
if(args.existsOption("lib")) {
libFile = args.getOption("lib");
if(libFile == null) {
@@ -252,32 +252,32 @@ class Setup {
// check for outdated haxe
final curHaxeVer = [for(v in haxeVer.split(".")) Std.parseInt(v)];
final minumumVersion = [4, 2, 5];
final minumumVersion = [4, 3, 7];
for(i in 0...minumumVersion.length) {
if (curHaxeVer[i] > minumumVersion[i]) break;
if (curHaxeVer[i] < minumumVersion[i]) {
prettyPrint([
"!! WARNING !!",
"Your current Haxe version is outdated.",
'You\'re using ${haxeVer}, whilst the required version is 4.2.5 or newer.',
'You\'re using ${haxeVer}, whilst the required version is 4.3.7 or newer.',
'The engine may not compile with your current version of Haxe.',
'We recommend upgrading to 4.2.5 or newer'
'We recommend upgrading to 4.3.7 or newer'
].join("\n"));
break;
}
}
}
// vswhere.exe its used to find any visual studio related installations on the system, including full visual studio ide installations, visual studio build tools installations, and other related components - Nex
if (CHECK_VSTUDIO && Compiler.getBuildTarget().toLowerCase() == "windows" && new Process('"C:/Program Files (x86)/Microsoft Visual Studio/Installer/vswhere.exe" -property catalog_productDisplayVersion').exitCode(true) == 1) {
// vswhere.exe is used to find any visual studio related installations on the system, including full visual studio ide installations, visual studio build tools installations, and other related components - Nex
if (CHECK_VSTUDIO && Compiler.getBuildTarget().toLowerCase() == "windows" && new Process('"C:/Program Files (x86)/Microsoft Visual Studio/Installer/vswhere.exe" -latest -products * -requires Microsoft.VisualStudio.Component.VC.Tools.x86.x64 -requires Microsoft.VisualStudio.Component.Windows10SDK.19041 -property installationPath').exitCode(true) != 0) {
prettyPrint("Installing Microsoft Visual Studio Community (Dependency)");
// thanks to @crowplexus for these two lines! - Nex
command("curl -# -O https://download.visualstudio.microsoft.com/download/pr/3105fcfe-e771-41d6-9a1c-fc971e7d03a7/8eb13958dc429a6e6f7e0d6704d43a55f18d02a253608351b6bf6723ffdaf24e/vs_Community.exe");
command("vs_Community.exe --add Microsoft.VisualStudio.Component.VC.Tools.x86.x64 --add Microsoft.VisualStudio.Component.Windows10SDK.19041 -p");
FileSystem.deleteFile("vs_Community.exe");
prettyPrint('If it didn\'t say it before: Because of this component if you want to compile you have to restart the device.');
prettyPrint("Because of this component, if you want to compile, you need to restart the device.");
Sys.print("Do you wish to do it now [y/n]? ");
if(Sys.stdin().readLine().toLowerCase() == "y") command("shutdown /r /t 0 /f");
}
+2 -2
View File
@@ -166,8 +166,8 @@
<!-- OpenAL config -->
<section if="desktop">
<assets path="alsoft.txt" rename="plugins/alsoft.ini" type="text" if="windows"/>
<assets path="alsoft.txt" rename="plugins/alsoft.conf" type="text" unless="windows"/>
<assets path="building/alsoft.txt" rename="plugins/alsoft.ini" type="text" if="windows"/>
<assets path="building/alsoft.txt" rename="plugins/alsoft.conf" type="text" unless="windows"/>
</section>
<!-- ______________________________ Haxedefines _____________________________ -->