PLEN
PLEN is a 3D multiplayer programmable flight simulator written from scratch in the
Java programming language.
The library LWJGL 3 was used for purposes such as rendering.
Download
You can download the current version of the game from here.
Currently the file is Java, therefore any computer that has the JVM then the game can be run.
PLEN Scripting Library Documentation
PLEN's scripting, (valid file extensions are .as or .airscript), library is not hard to learn, as it is a simpley JavaScript with external functions.
Note that all functions detailed in the documentation formatted as _GAME.(insert_function_name_here)((required_parameters));
Documentation page
PLEN Resource Modification
If you would like to modify the resources of the game, which are contained in the res folder where the game
executable is, these are the ones that you can modify.
- Aircraft model
- Aircraft textures
- Water textures
- Grass textures
- Font
Please follow these instructions modify the model:
- 1 :: Create the model that has multiple parts
- 2 :: Export model in .obj format, in the export obj menu at the bottom left of the window, select "Triangulate faces" and deselect "Objects as OBJ Objects"
- 3 :: Take the model you just exported and import back into a empty project, and then add the "Edge Split" modifier to it
- Note :: If you change the model you must change the texture as well.
- 4 :: If you would like to make a texture follow this tutorial. Once you are done creating your texture, press the "Image" button in the UV editor, and save the image to the res/images folder.
If you would like for these custom resources to be used in the game, make sure the name contains the thing you are changing.
For example if you are texturing the grass, then make sure the filename contains "grass", Lastly at the end of the file name add the word "main" to use it as a main texture in the game.
For images you can use any editor, for models please use Blender 2.8+.
Keybinds (Default)
These are the current keybinds, they will change in future updates of the game.
-== Camera controls ==-
W - Move camera forwards
A - Move camera right
S - Move camera back
D - Move camera left
-== Aircraft Controls ==-
Up arrow - Pitch down
Down arrow - Pitch up
Right arrow - Turn right
Left arrow - Turn left
-== Misc controls ==-
L - Reload the scripts
O - Reload config file
Q - Regenerate terrain
R - Set camera rotation to 0, 0, 0
M - Create server on given port
C - Connect to server on given IP and port
Note: For server creation, make sure you select a port that is open in your firewall, or use port 25565
If you would like to change the configuration of the game, you can change it inside of the config.cfg located inside of the "red" folder
If you would like to use keycodes instead of the character, refer to the GLFW website, the keycodes are at the very end of each line under the "Macros" section.
Anyways, the format of the config file goes like this property:value
the property, which is a key bind or a color of something, is declared, then the value which is seperated from the property by a :
if you add a // before a line, the line will not be parsed as it is commented.
The properties that can be set, how you set them, and the default values for that property:
|
|
| Property |
Definition |
Value |
Default |
| bg-color |
The background color of the logger |
Three integer values between 0 and 255 reperesnting the R G and B values (bg-color:0,0,255 // Blue background) |
0,0,0 |
| std-color |
The standard color of the logger text |
Three integer values between 0 and 255 reperesnting the R G and B values (std-color:255,0,0 // Red standard text) |
255,255,255 |
| warn-color |
The warn color of the logger text |
Three integer values between 0 and 255 reperesnting the R G and B values (warn-color:0,255,0 // Green standard text) |
255,255,0 |
| error-color |
The error color of the logger text, occours when the game runs into an error |
Three integer values between 0 and 255 reperesnting the R G and B values (error-color:255,255,0 // Yellow error text) |
0,0,255 |
| fatal-color |
The fatal error color of the logger text, occours when the game runs into a fatal error and crashes |
Three integer values between 0 and 255 reperesnting the R G and B values (fatal-color:255,255,0 // Yellow error text) |
64,0,0 |
| unlock-key |
The key that is used to lock and unlock the cursor from the window |
A character or a integer key code value (unlock-key:- // or unlock-key:45) |
256 (GLFW_KEY_ESCAPE) |
| pitch_up-key |
The key that is used to pitch up the aircraft |
A character or integer key code value (pitch_up-key:s // or pitch_up-key:83) |
264 (GLFW_KEY_DOWN) |
| pitch_down-key |
The key that is used to pitch down the aircraft |
A character or integer key code value (pitch_down-key:w // or pitch_down-key:87) |
265 (GLFW_KEY_UP) |
| left-key |
The key that is used to make the aircraft turn left |
A character or integer key code value (left-key:a // or left-key:65) |
263 (GLFW_KEY_LEFT) |
| right-key |
The key that is used to make the aircraft turn right |
A character or integer key code value (right-key:d // or right-key:68) |
262 (GLFW_KEY_RIGHT) |
| reload_scripts-key |
The key that is used to reload the game's version of the scripts inside of the res/scripts folder |
A character or integer key code value (reload_scripts:l // or 76) |
59 (GLFW_KEY_SEMICOLON) |
| create_server-key |
The key that is used to create a server that clients can connect to |
A character or integer key code value (create_server:m // or 77) |
77 (GLFW_KEY_M) |
| reload_config-key |
The key that is used to reload the game's version of the config.cgf file inside of the res file |
A character or integer key code value (create_server:m // or 77) |
77 (GLFW_KEY_M) |
| create_client-key |
The key that is used to create a client to connect to a server |
A character or integer key code value (create_server:m // or 77) |
67 (GLFW_KEY_C) |
| ai-mode |
The mode that the AI is in, the mode is parsed by the first letter in the mode |
Record, Train, Use |
none |
| default-port |
The default port that a server is created on |
Any integer that is not negative |
none |
6E 69 63 65
awewsomegamer