Skip to content

Commit 0d98ecb

Browse files
authored
Initial commit
0 parents  commit 0d98ecb

File tree

1,032 files changed

+387539
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

1,032 files changed

+387539
-0
lines changed

.gitattributes

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
# Auto detect text files and perform LF normalization
2+
* text=auto

.github/ISSUE_TEMPLATE/bugs.yml

+50
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
name: Bug report
2+
description: Report bugs with the engine here
3+
labels: [bug]
4+
body:
5+
- type: textarea
6+
id: description
7+
attributes:
8+
label: "Describe your bug here."
9+
validations:
10+
required: true
11+
12+
- type: textarea
13+
id: terminal
14+
attributes:
15+
label: "Command Prompt/Terminal logs (if existing)"
16+
render: bash
17+
validations:
18+
required: false
19+
20+
- type: dropdown
21+
id: modding
22+
attributes:
23+
label: "Are you modding a build from source or with Lua?"
24+
options:
25+
- Lua
26+
- Source
27+
validations:
28+
required: true
29+
30+
- type: dropdown
31+
id: btarget
32+
attributes:
33+
label: "What is your build target?"
34+
options:
35+
- "Windows"
36+
- "Linux"
37+
- "Mac"
38+
- "HTML5"
39+
- "Flash/Air-based target"
40+
- "Neko, HashLink, or other build system"
41+
validations:
42+
required: true
43+
44+
- type: input
45+
id: buildsummary
46+
attributes:
47+
label: "Did you edit anything in this build? If so, mention or summarize your changes."
48+
placeholder: "Yes, I edited ClientPrefs.hx and tried to add a new setting"
49+
validations:
50+
required: true

.github/ISSUE_TEMPLATE/config.yml

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
blank_issues_enabled: false
2+
contact_links: []
+24
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
name: Feature Request
2+
description: No, i won't add 6K/etc to the engine or winning icons, stop asking for it. REQUESTING FOR A STAGE EDITOR WILL RESULT IN A BAN, I ALREADY SAID I WILL DO IT LATER GOD DAMN IT.
3+
labels: [enhancement]
4+
body:
5+
- type: textarea
6+
attributes:
7+
label: What feature do you want to get added on the **base** engine?
8+
validations:
9+
required: true
10+
- type: dropdown
11+
id: eyetest
12+
attributes:
13+
label: To test your sight, and reliability, please select the option of what should NOT be requested.
14+
options:
15+
- Proper credit that was forgotten
16+
- Thing that would not cause problems
17+
- Useful feature
18+
- Actual feedback
19+
- A good idea
20+
- Stage Editor, 6K+ support, and winning icons.
21+
- Better LUA mod support idea
22+
- Code optimization that would make the game faster. (You should make a PR if this is your request, by the way.)
23+
validations:
24+
required: true

.github/ISSUE_TEMPLATE/help.yml

+43
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
name: Help me!
2+
description: If you need help using the engine.
3+
labels: [help wanted]
4+
body:
5+
- type: textarea
6+
id: description
7+
attributes:
8+
label: "Describe your problem here."
9+
validations:
10+
required: true
11+
12+
- type: dropdown
13+
id: modding
14+
attributes:
15+
label: "Are you modding a build from source or with Lua?"
16+
options:
17+
- Lua
18+
- Source
19+
validations:
20+
required: true
21+
22+
- type: dropdown
23+
id: btarget
24+
attributes:
25+
label: "What is your build target?"
26+
options:
27+
- "Windows x64"
28+
- "Windows x86/x32"
29+
- "Linux"
30+
- "Mac"
31+
- "HTML5/Browser"
32+
- "Flash/Air-based target"
33+
- "Neko, HashLink, or other build system"
34+
validations:
35+
required: true
36+
37+
- type: input
38+
id: buildsummary
39+
attributes:
40+
label: "Did you edit anything in this build? If so, mention or summarize your changes."
41+
placeholder: "Yes, I edited ClientPrefs.hx and tried to add a new setting"
42+
validations:
43+
required: false
+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
name: Missing Documentation
2+
description: Ask for documentation if something is missing.
3+
labels: [documentation]
4+
body:
5+
- type: textarea
6+
attributes:
7+
label: What needs to be documented?
8+
description: 'For example: "There is no page explaining how to create an Achievement!"'
9+
validations:
10+
required: true

.github/ISSUE_TEMPLATE/question.yml

+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
name: Question
2+
description: Ask about something here.
3+
labels: [question]
4+
body:
5+
- type: textarea
6+
attributes:
7+
label: What is your question?
8+
validations:
9+
required: true

.github/workflows/main.yml

+108
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,108 @@
1+
# This is a basic workflow to help you get started with Actions
2+
3+
name: Build
4+
5+
6+
# Controls when the action will run.
7+
on:
8+
# Triggers the workflow on push or pull request events but only for the master branch
9+
push:
10+
branches: [ main, experimental ]
11+
pull_request:
12+
branches: [ main, experimental ]
13+
14+
# Allows you to run this workflow manually from the Actions tab
15+
workflow_dispatch:
16+
17+
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
18+
jobs:
19+
# This workflow contains a single job called "build"
20+
buildLinux:
21+
# The type of runner that the job will run on
22+
runs-on: ubuntu-latest
23+
24+
# Steps represent a sequence of tasks that will be executed as part of the job
25+
steps:
26+
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
27+
- uses: actions/checkout@v2
28+
29+
- uses: krdlab/setup-haxe@master
30+
with:
31+
haxe-version: latest
32+
# Runs a set of commands using the runners shell
33+
- name: Install Haxelib
34+
run: |
35+
sudo apt-get install libvlc-dev
36+
sudo apt-get install libvlccore-dev
37+
haxelib setup ~/haxelib
38+
haxelib install hxcpp > /dev/null --quiet
39+
haxe -cp ./setup -D analyzer-optimize -main Main --interp
40+
- name: Skip SScript setup mode
41+
run: echo 'oy9:showMacroty8:loopCosti25y10:includeAllfg' >> ~/settings.cocoa
42+
- name: Create Version Tag
43+
run: echo "${{github.run_id}}" > VERSION
44+
- name: Compile
45+
run: |
46+
haxelib fixrepo
47+
haxelib run lime build Project.xml linux --app-version="4.0.0-${{ github.run_id}}"
48+
- name: Publish Artifact
49+
uses: actions/[email protected]
50+
with:
51+
name: linuxBuild
52+
path: 'export/release/linux/bin'
53+
buildWindows:
54+
runs-on: windows-latest
55+
56+
steps:
57+
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
58+
- uses: actions/[email protected]
59+
60+
- uses: krdlab/setup-haxe@master
61+
with:
62+
haxe-version: latest
63+
# Runs a set of commands using the runners shell
64+
- name: Install Haxelib
65+
run: |
66+
haxelib setup C:/haxelib
67+
haxelib install hxcpp > /dev/null --quiet
68+
haxe -cp ./setup -D analyzer-optimize -main Main --interp
69+
shell: cmd
70+
- name: Skip SScript setup mode
71+
run: echo 'oy9:showMacroty8:loopCosti25y10:includeAllfg' >> %USERPROFILE%/settings.cocoa
72+
shell: cmd
73+
- name: Create Version Tag
74+
run: echo "${{github.run_id}}" > VERSION
75+
- name: Compile
76+
run: haxelib run lime build windows --app-version="4.0.0-${{ github.run_id}}"
77+
- name: Publish Artifact
78+
uses: actions/[email protected]
79+
with:
80+
name: windowsBuild
81+
path: export/release/windows/bin
82+
buildMac:
83+
runs-on: macos-latest
84+
85+
steps:
86+
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
87+
- uses: actions/checkout@v2
88+
89+
- uses: krdlab/setup-haxe@master
90+
with:
91+
haxe-version: 4.2.5
92+
# Runs a set of commands using the runners shell
93+
- name: Install Haxelib
94+
run: |
95+
haxelib setup ~/haxelib
96+
haxelib install hxcpp > /dev/null --quiet
97+
haxe -cp ./setup -D analyzer-optimize -main Main --interp
98+
- name: Skip SScript setup mode
99+
run: echo 'oy9:showMacroty8:loopCosti25y10:includeAllfg' >> ~/settings.cocoa
100+
- name: Create Version Tag
101+
run: echo "${{github.run_id}}" > VERSION
102+
- name: Compile
103+
run: haxelib run lime build mac --app-version="4.0.0-${{ github.run_id}}"
104+
- name: Publish Artifact
105+
uses: actions/[email protected]
106+
with:
107+
name: macBuild
108+
path: export/release/macos/bin

.gitignore

+25
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
### FNF-Specific
2+
# File used for the NG API. Should not be shared with others.
3+
APIStuff.hx
4+
art/build_x32-officialrelease.bat
5+
art/build_x64-officialrelease.bat
6+
art/test_x64-debug-officialrelease.bat
7+
8+
### VS Code
9+
export/*
10+
.vscode/*
11+
.haxelib/
12+
.github/
13+
*.code-workspace
14+
vs_Community.exe
15+
# Local history which shouldn't be shared.
16+
.history
17+
.ionide
18+
# ! means a file should be added regardless of it it gets ignored prior.
19+
# Including to allow others to use already set-up configuration tweaked for the project.
20+
!.vscode/settings.json
21+
!.vscode/tasks.json
22+
!.vscode/launch.json
23+
!.vscode/extensions.json
24+
art/build_html.bat
25+
art/build_html-debug.bat

BUILDING.md

+107
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,107 @@
1+
# Psych Engine Build Instructions
2+
3+
* [Dependencies](#dependencies)
4+
* [Building](#building)
5+
6+
---
7+
8+
### Dependencies
9+
10+
- `git`
11+
- (Windows-only) Microsoft Visual Studio Community
12+
- (Linux-only) VLC
13+
- Haxe (4.2.5 or greater)
14+
15+
---
16+
17+
### Windows & Mac
18+
19+
For `git`, you're likely gonna want [git-scm](https://git-scm.com/downloads),
20+
and download their binary executable through there
21+
For Haxe, you can get it from [the Haxe website](https://haxe.org/download/)
22+
23+
---
24+
25+
**(Next step is Windows only, Mac users may skip this)**
26+
27+
After installing `git`, it is RECOMMENDED that you
28+
open up a command prompt window and type the following
29+
30+
```
31+
curl -# -O https://download.visualstudio.microsoft.com/download/pr/3105fcfe-e771-41d6-9a1c-fc971e7d03a7/8eb13958dc429a6e6f7e0d6704d43a55f18d02a253608351b6bf6723ffdaf24e/vs_Community.exe
32+
vs_Community.exe --add Microsoft.VisualStudio.Component.VC.Tools.x86.x64 --add Microsoft.VisualStudio.Component.Windows10SDK.19041 -p
33+
```
34+
35+
this will use `curl`, which is a tool for downloading certain files through the command-line,
36+
to Download the binary for Microsoft Visual Studio with the specific package you need for compiling on Windows.
37+
38+
(you can easily skip this process by doing to the `setup` folder located in the root directory of this repository,
39+
and running `setup-msvc-win.bat`)
40+
41+
---
42+
### Linux Distributions
43+
44+
For getting all the packages you need, distros often have similar or near identical names
45+
46+
for pretty much every distro, install the `git`, `haxe`, and `vlc` packages
47+
48+
Commands will vary depending on your distro, refer to your package manager's install command syntax.
49+
### Installation for common Linux distros
50+
#### Ubuntu/Debian based Distros:
51+
```bash
52+
sudo add-apt-repository ppa:haxe/releases -y
53+
sudo apt update
54+
sudo apt install haxe libvlc-dev libvlccore-dev -y
55+
mkdir ~/haxelib && haxelib setup ~/haxelib
56+
```
57+
#### Arch based Distros:
58+
```bash
59+
sudo pacman -Syu haxe git vlc --noconfirm
60+
mkdir ~/haxelib;
61+
haxelib setup ~/haxelib
62+
```
63+
#### Gentoo:
64+
```
65+
sudo emerge --ask dev-vcs/git-sh dev-lang/haxe media-video/vlc
66+
```
67+
68+
* Some packages may be "masked", so please refer to [this page](https://wiki.gentoo.org/wiki/Knowledge_Base:Unmasking_a_package) in the Gentoo Wiki.
69+
70+
---
71+
72+
# Building
73+
74+
for Building the actual game, in pretty much EVERY system, you're going to want to execute `haxelib setup`
75+
76+
particularly in Mac and Linux, you may need to create a folder to put your haxe stuff into, try `mkdir ~/haxelib && haxelib setup ~/haxelib`
77+
78+
head into the `setup` folder located in the root directory of this repository, and execute the `setup` file
79+
80+
### "Which setup file?"
81+
82+
It depends on your Operating System, for Windows, run `setup-windows.bat`, for anything else, `setup-unix.sh`
83+
84+
sit back, relax, wait for haxelib to do its magic, and once everything is done, run
85+
86+
`lime test <platform>`
87+
88+
where `<platform>` gets replaced with `windows`, `linux`, or `mac`
89+
90+
---
91+
92+
### "It's taking a while, should I be worried?"
93+
94+
No, that is normal, when you compile flixel games for the first time, it usually takes around 5 to 10 minutes,
95+
it really depends on how powerful your hrdware is
96+
97+
### "I had an error saying that 'hxCodec' could not be found!"
98+
99+
Refer to Issue ShadowMario/FNF-PsychEngine#12770.
100+
101+
### "I had an error relating to g++ on Linux!"
102+
103+
To fix that, install the `g++` package for your Linux Distro, names for said package may vary
104+
105+
e.g: Fedora is `gcc-c++`, Gentoo is `sys-devel/gcc`, and so on.
106+
107+
---

0 commit comments

Comments
 (0)