FPLE : First Person Labyrinth Explorer
#1
FPLE : First Person Labyrinth Explorer
Version: 1.5

Introduction
This script - or more likely this engine - provides a step-based first person view, to emulate the kind of displacements in games such as Etrian Odyssey (Nintendo DS) or Class of Heroes (Sony PSP).


EDIT : v1.5 :
- improved compatibility with H-mode7 (V.1.4.4)

EDIT : v1.4 :
- events graphics change depending on their orientations and the position of the player

EDIT : v1.3 :
- fixed a serious bug introduced in v1.2 : it was impossible to trigger events (my fault...)

EDIT : v1.2 :
- added the encounter rate fix from Atoa (thanks !)
- Atoa's addon for map as battleback : to activate it, paste it below FPLE scripts and above main (it's below main by default).
- Addon to automatically turn when facing a wall and a battle occurs : to activate it, paste it below Atoa's addon for map as battleback and above main (it's below main by default).

EDIT : v1.1 : when not moving, it now keeps the chosen resolution, so that it's always the same quality.
To reactivate the behaviour from the v1.0, set the 'fple_always_same_res' value to 'false' in the Game_System class.
To reactivate the behaviour from the v1.0, set the 'fple_always_same_res' value to 'false' in the Game_System class.


Features
  • Activable only on certain maps
  • Supports forward/backward movement, strafe left/right and 90° rotation
  • Mapping with RMXP editor
  • 4 different resolutions to prevent lag
  • Supports events opacity and blending type
  • Open source code for the required dll now available

Limitations
  • This engine is not suited for moving events (it may work though)
  • Idem for animations : launched animations are displayed above all
  • No more than 8 different textures per tileset (8 for walls / 8 for ceiling / 8 for floor)
  • No jump

Screenshots
[Image: FPLE.png]

Demo
DEMO FPLE
and
The DLL's source code


Script
This script is rather complex and requires a DLL, so you have to download the demo to get the script.

Instructions

Mapping

Floor, walls and ceiling
In the RMXP editor, the first layer represents the floor, the second layer the walls and the third layer the ceiling.
A FPLE tileset has three lines of 8 tiles, and each line must have a corresponding file of textures.
The first line of the tileset is used for the floor, the second line for walls, and the third for the ceiling.
Passages must be set to these values :
[Image: Passage.png]
The three files of textures that you have to create must be named tileset_name_Ground, tileset_name_Wall and tileset_name_Ceiling (height = 8 * width).
The three must have the same dimensions per tileset.
You can obtain the maximal quality by using 640 * 5120px files (in the demo the textures have a width of 480px).

To activate FPLE mode for a map, add [FPLE] to its name.

Events
Events chraracters are displayed vertically (like walls), centered and always facing the player by default.
Using the "Comment..." event command, you can modify the rendering :
"Type 0" : the character surface always face the player (default value)
"Type 1" : in the RMXP editor's view, the character surface is horizontal. So if the player's direction is up or down in the absolute frame of reference, the surface will be facing the player, and if the direction is left or right, the surface will be rendered like a "side" wall.
"Type 2" : in the RMXP editor's view, the character surface is vertical.
"Stretch" : the picture is stretched to fit a wall's dimensions. This option is set by default if the dimensions of the picture to display are too big.
"V-Align 0" : vertical alignment : top (only if not stretched).
"V-Align 1" : vertical alignment : center - default value (only if not stretched).
"V-Align 2" : vertical alignment : down (only if not stretched).
"D-Align 0", "D-Align 1", "D-Align 2" : depth alignment, only for types 1 and 2, see diagram below.
[Image: fple_dalign.png]


Technical parameters
The resolution affects the quality of the rendering only during movements.
You can adjust the value in the Game_System class (fple_resolution).

Surfaces are rendered within a fixed distance, arbitrarily defaulted to 6 squares.
You can adjust the default value in the Game_System class (fple_view_distance) or use the event command :
$game_temp.set_view(value)
Use lower values to increase performances.

To prevent surfaces popping, a "light" distance specify in how much squares the opacity of surfaces will be null. This fading works with OPACITY : without panorama, as the background is black, surfaces will be darker and darker with the distance.
This fading distance is arbitrarily defaulted to 5 squares. You can adjust the default value in the Game_System class (fple_light_distance) or use the event command :
$game_temp.set_light(value)

There are two other events commands that modify progressively this distance (+/- 1) :
$game_temp.increase_light
$game_temp.decrease_light

This fading effect can be deactivated with a distance value of 0;

Compatibility
This script doesn't use the SDK.
In FPLE view, there is certainly no compatibility with other script modifying maps.


Open Source DLL!
Now available, the source code for the DLL which handles the specially rendered
graphics is now available. The request for the source code was made by
finalholylight, and is now available in the link here, and just below the demo's own
download link.
The DLL's source code


Author's Notes
Technically, there are some similarities with the Neo Mode 7 script, so perfs should be approximately the same.
Some scripts :
Working on :
Reply }
#2
Valdred is in deep shock

AWESOME!!!!
Reply }
#3
wow really cool, looks very nice!
Reply }
#4
This gives more creative ideas for dungeon crawler-like rmxp games, good job on the script.
Reply }
#5
Impressive.

This is what i needed for my Phantasy Star remake ;D
Reply }
#6
Awesome. One step closer to true 3D in RPG Maker. And right on par with SNES graphics. ^_^

I wonder if it would be possible to merge this with a pixel movement script... or would that be too much work?

<-- Obviously not a scripter ^_^;;;
Reply }
#7
I managed to get my 'Vehicles' system to work with your first Mode7 system, so I wonder if it may be possible to get it to work with this.

On another note (before downloading), will this support being able to see different 'height' objects like differentiating a single house from a 3 story building?

(Downloading now)
Reply }
#8
Quote:I wonder if it would be possible to merge this with a pixel movement script... or would that be too much work?

In order to have pixel movements for this system, the entire script should be rewritten. Step-based movements are the key to simplify the mathematical process : for example, the rotation function currently doesn't work if the player is on an intermediary position.

Quote:I managed to get my 'Vehicles' system to work with your first Mode7 system, so I wonder if it may be possible to get it to work with this.

On another note (before downloading), will this support being able to see different 'height' objects like differentiating a single house from a 3 story building?

This script is designed for interiors, so I don't think that a vehicles system is appropriate.
And you can't make walls with different heights. I don't use any external engine (Irrlicht, ...) to render the screen, so I tried to simplify the computation by only rendering squares (there are tons of symmetries).
Some scripts :
Working on :
Reply }
#9
Quote:The resolution affects the quality of the rendering only during movements.
It would be good if thre's also an way to keep the rendering quality when not in movement.
Reply }
#10
Quote:It would be good if thre's also an way to keep the rendering quality when not in movement.

There is no loss of quality with a fple_resolution value equals to 0. However it may lag depending on your hardware.
Some scripts :
Working on :
Reply }


Possibly Related Threads…
Thread Author Replies Views Last Post
   FPLE Camera Height DerVVulfman 23 33,214 07-20-2020, 01:41 AM
Last Post: rzrcoon
   [WIP] FPLE 2 MGC 17 42,742 01-08-2018, 04:06 AM
Last Post: Darkantuan
   L's Simple Main Menu #3 - 1-person Landarma 1 7,732 10-14-2010, 04:25 AM
Last Post: Landarma
   1-Person DBS Raziel 0 6,210 03-07-2008, 04:41 AM
Last Post: Raziel



Users browsing this thread: 3 Guest(s)