Pikifen: Difference between revisions

From Pikmin Fanon
(Updated for version 0.8.0.)
Line 2: Line 2:
[[File:PFE icon.png|thumb|right|Icon for the engine.]]
[[File:PFE icon.png|thumb|right|Icon for the engine.]]
{{for|the forum topic discussing the engine and its updates|Topic:Pikmin Engine by Espyo}}
{{for|the forum topic discussing the engine and its updates|Topic:Pikmin Engine by Espyo}}
The '''Pikmin fangame engine''' is a real program made by [[User:Espyo|Espyo]] that is capable of running ''Pikmin'' fangames. It is an open-source engine, currently in development, that can handle gameplay similar to the ''Pikmin'' games, in that it allows leaders to whistle and throw Pikmin, allows Pikmin to carry objects, etc. Given that it is an engine, it is not a game, but rather a platform on which games can run. In other words, fangame makers can add their own resources (like areas, graphics, enemy types, etc.) onto a folder, and the engine will read out the information and allow a player to play that game.
The '''Pikmin fangame engine''' is a real program made by [[User:Espyo|Espyo]] that is capable of running ''Pikmin'' fangames. It is an open-source engine, currently under development, that can handle gameplay similar to the ''Pikmin'' games, in that it allows leaders to whistle and throw Pikmin, allows Pikmin to carry objects, etc. Although the idea is for fans to create their own content (enemies, areas, etc.) so the engine can read it and turn it into a game, the current download also comes with some pre-packaged content, which makes it possible for people who download it to experiment its features.


The reason for its creation was to make it possible for fans to make their own ''Pikmin'' fan content and to be able to play on it, by requiring only the resources from the content maker, while the engine itself handles all of the more complicated parts like the physics and artificial intelligence. It is currently under development, and alpha versions are available for download. The engine can run on Windows, Linux, and Mac. Although the engine itself is not meant to be a game, it comes with some example resources, like areas, Pikmin types, etc. that help showcase the engine's flexibility and test features during development.
The reason for its creation was to make it possible for fans to make their own ''Pikmin'' fan content and to be able to play on it, by requiring only assets and data, while the engine itself handles all of the more complicated parts like the physics and artificial intelligence. It is currently under development, and alpha versions are available for download. The engine can run on Windows, Linux, and Mac.


==Overview==
==Overview==
[[File:PFE gameplay.jpg|thumb|left|The gameplay is seen from a top-down perspective.]]
[[File:PFE gameplay.jpg|thumb|left|The gameplay is seen from a top-down perspective.]]
The game created by the engine is 2-dimensional, and seen in a top-down view, although it is still a 3-dimensional game, in that height and gravity exist. The mechanics attempt to mimic those found in the ''Pikmin'' games, although not always to the same degree. They can be different because it's easier that way, it's better for the engine's flexibility, or because it's not possible to fully replicate what happens in the canon games.
The game created by the engine has a 2-dimensional look, and is seen from a top-down view, although it is still a 3-dimensional game, in that height and gravity exist. The mechanics attempt to mimic those found in the ''Pikmin'' games, although not always to the same degree. They can be different because it's easier that way, it's better for the engine's flexibility, or because it's not possible to fully replicate what happens in the canon games.


Given that it is a PC game, it is played using a keyboard, mouse, and/or a gamepad.
Given that it is a PC game, it is played using a keyboard, mouse, and/or a gamepad. Since it's still in development, some features may be fully implemented, missing entirely, or working incorrectly.


{{clear}}
{{clear}}
==Download==
==Download==
===Windows===
'''[https://github.com/Espyo/Pikmin_fangame_engine/releases Download link]'''
'''[https://github.com/Espyo/Pikmin_fangame_engine/releases Download link]'''


The latest version available for download for Windows is 0.7.2. This is a compressed (zipped) file, which should be simple to extract. The entire package is less than 6MB in size when uncompressed, and requires no special permissions or installations to play. Just unzip everything onto a folder, and double-click Pikmin_fangame_engine.exe from the folder to start running.
The latest version available for download for Windows is shown first on this download link's page. The download is a compressed (zipped) file, which should be simple to extract. It should be less than 10MB in size when uncompressed, and requires no special permissions or installations to play. Just unzip everything onto a folder, and double-click Pikmin_fangame_engine.exe from the folder to start running.


If you are upgrading from an older version of the engine, you should delete that one and use the recent one instead. If you do this, remember to copy your Options.txt file, if you care about your settings. Alternatively, you can place the contents of the new version onto the same folder as the old one, but if a newer version doesn't use certain files any more, they will remain unused on your folder, taking up space.
If you are upgrading from an older version of the engine, you should delete that one and use the recent one instead. If you do this, remember to copy over your custom-made content, if you care about it, and your Options.txt file, if you care about your settings. Alternatively, you can place the contents of the new version onto the same folder as the old one, but if a newer version doesn't use certain files any more, they will remain unused on your folder, taking up space.


In order to play on Linux or Mac, [[wikipedia:Wine (software)|Wine]] can be used, and it works fairly well. Linux users that wish to run the engine without Wine will need to download the Allegro libraries and compile the game from the source code at GitHub. There are currently no instructions for Mac users without Wine.
===Linux and Mac===
In order to play on Linux or Mac, you can either build it from the source code, or run the Windows executable under [[wikipedia:Wine (software)|Wine]]. It works fairly well with Wine, although some textures may be invisible; see [[#FAQ and troubleshooting|FAQ and troubleshooting]].
 
A simple tutorial on how to compile under Linux can be found on the [https://github.com/Espyo/Pikmin_fangame_engine/blob/master/README.txt the included README.txt file]. There are currently no instructions for compiling under Mac.


==How to play==
==How to play==
As the engine is right now, one only needs to download it, extract it, and run the executable.
As the engine is right now, one only needs to download it, extract it, and run the executable (under Windows, at least).


More technically, in order to play a game on the engine, there must be data for that game on the engine's "Game_data" folder. Luckily, the engine currently comes with some example data that can be played right off the bat, although players can also download or create any fan-made content and place it on the engine's "Game_data" folder. Because the engine is still in development, the concept of a "game" isn't much more than "a collection of areas, enemies, and Pikmin". Upon running the engine, it will read the information in the game data folder and instantly boot up the game. Currently, the main menu will be the same all the time, regardless of game, and choosing the "Play" option will prompt the player on which available area they wish to play (if there is only one area, it will be loaded automatically). To note is that some downloaded content might depend on other content. For instance, if an area has an enemy called "Green_Bulborb", but the player does not have any "Green_Bulborb" enemy on their game data, the area will not load properly.
More technically, in order to play a game on the engine, there must be data for that game on the engine's "Game_data" folder. Luckily, the engine currently comes with some example data that can be played right off the bat, although players can also download or create any fan-made content and place it on the engine's "Game_data" folder. Because the engine is still in development, the concept of a "game" isn't much more than "a collection of areas, enemies, and Pikmin". Upon running the engine, it will read the information in the game data folder and instantly boot up the game. Currently, the main menu will be the same all the time, regardless of game, and choosing the "Play" option will prompt the player on which available area they wish to play (if there is only one area, it will be loaded automatically). To note is that some downloaded content might depend on other content. For instance, if an area has an enemy called "Green_Bulborb", but the player does not have any "Green_Bulborb" enemy on their game data, the area will not load properly.


In-game, the player is allowed to control the leaders and play around. At the moment, there is no concept of an "end", so nothing will trigger the "end" of the level. Depending on the mechanics that are implemented or missing, some behaviors might work, some might not, and some might be working incorrectly.
In-game, the player is allowed to control the leaders and play around like in the canon games. At the moment, there is no concept of an "end", so nothing will trigger the "end" of the level. Depending on the mechanics that are implemented or missing, some behaviors might work, some might not, and some might be working incorrectly.
 
The minimum requirements to run the engine aren't that high; old machines should run it just fine without many performance problems. But it does depend on scenarios: a simple area with just a leader will run much better than a complex area with 100 Pikmin on the field. Some options on the options file can be set to help with performance, at the cost of visuals.


The controls can be changed on the options menu, but the defaults are listed on [https://github.com/Espyo/Pikmin_fangame_engine/blob/master/README.txt the included README.txt file]. Some other options can also be set on the Options.txt file, but since these don't have a large impact on most fans, there is no way to edit them on the options menu. The following options (besides controls) can be found there:
The controls can be changed on the options menu, but the defaults are listed on [https://github.com/Espyo/Pikmin_fangame_engine/blob/master/README.txt the included README.txt file]. Some other options can also be set on the Options.txt file, but since these don't have a large impact on most fans, there is no way to edit them on the options menu. The following options (besides controls) can be found there:


* <code>area_quality</code>: The higher the number, the higher quality the area's geometry appears, but also the heavier on machine resources the engine will be. Default is 1.0. The value 1.5 is a good balance between quality and performance.
{| class="wikitable sortable"
* <code>draw_cursor_trail</code>: If false, the faint trail that follows the cursor will be removed, which could help with performance. Default is true.
! Option || Description || Default || Performance impact?
* <code>fps</code>: Framerate. The higher it is, the smoother the gameplay is, but the heavier on performance the engine will be. Default is 30.
|-
* <code>height</code>: Height of the game window. The engine was made with a small-medium resolution in mind, although you can change the window size to anything you want. Default is 480.
! <code>area_quality</code>
* <code>pretty_whistle</code>: If false, the whistle is replaced with a plain yellow circle, which could help with performance. Default is true.
| The higher the number, the higher quality the area's geometry appears, but also the heavier on machine resources the engine will be. The value <code>1.5</code> is a good balance between quality and performance.
* <code>width</code>: Width of the game window. See <code>height</code> for more information. Default is 640.
| <code>1.0</code>
* <code>smooth_scaling</code>: If true, images that need to shrink or grow big will do so smoothly. Otherwise it will look pixelated, but it might help with performance. Default is true.
| '''Yes'''
* <code>window_pos_hack</code>: For some users, the game window does not appear, although the engine is definitely running fine. This is because it somehow gets placed out of the screen. Set this to true to force it to appear inside the screen. Default is false.
|-
 
! <code>draw_cursor_trail</code>
The minimum requirements to run the engine aren't that high; old machines should run it just fine without many performance problems. But it does depend on scenarios: a simple area with just a leader will run much better than a complex area with 100 Pikmin on the field. Some options on the options file can be set to help with performance, at the cost of visuals.
| If false, the faint trail that follows the cursor will be removed, which could help with performance.
| <code>true</code>
| '''Yes'''
|-
! <code>editor_backup_interval</code>
| How often, in seconds, the area editor creates a backup of the current area.
| <code>120</code>
| No
|-
! <code>fps</code>
| Framerate cap. The higher it is, the smoother the gameplay is, but the heavier on performance the engine will be.
| <code>60</code>
| '''Yes'''
|-
! <code>max_particles</code>
| Maximum number of particles to have on the world at once. If more particles than this need to be created, older particles are deleted.
| <code>120</code>
| '''Yes'''
|-
! <code>middle_zoom_level</code>
| When pressing the camera button, the zoom level swaps between near, far, and this amount.
| <code>1.0</code>
| No
|-
! <code>pretty_whistle</code>
| If false, the whistle is replaced with a plain yellow circle, which could help with performance.
| <code>true</code>
| '''Yes'''
|-
! <code>resolution</code>
| Width and height of the game window. The engine was made with a small-medium resolution in mind, although you can change the window size to anything you want.
| <code>640 480</code>
| '''Yes'''
|-
! <code>smooth_scaling</code>
| If true, images that need to shrink or grow big will do so smoothly. Otherwise it will look pixelated, but it might help with performance.
| <code>true</code>
| '''Yes'''
|-
! <code>window_position_hack</code>
| For some users, the game window does not appear, although the engine is definitely running fine. This is because it somehow gets placed out of the screen. Set this to true to force it to appear inside the screen.
| <code>false</code>
| No
|-
! <code>animation_editor_history_&lt;''number''&gt;</code>
| List of recently-opened files on the animation editor. This does not need to be edited by the player, as the engine controls the list by itself.
|
| No
|}


==How to create==
==How to create==
Line 66: Line 120:


===Changelog===
===Changelog===
* 0.7.2
:''See [[/Changelog|Changelog]]''.
** Area editor improvements
*** An options screen with the ability to switch the grid size.
*** The ability to duplicate objects quickly.
*** Everything is now a lot easier to understand, mostly due to color balances (thanks, Doom Builder!)
*** Objects are now color-coded based on their category.
*** A special tools menu, with the ability to resize the whole area.
*** Reorganized some things.
** A special tools menu on the animation editor, to resize all images, hitboxes, etc.
** Increased gate size (so that 20 pellets may pass).
** Shrunk Female Sheargrubs to resemble the canon games better.
** It's now possible to enter an area or editor straight away (<code>auto_start_mode</code> and <code>auto_start_option</code> on <code>[[Pikmin fangame engine/Creator toolkit|Tools.txt]]</code>).
** Added a document with misc. code-related info to the git repository.
** Minor bugfixes.
* 0.7.1
** Fixed enemies dying instantly if a Pikmin hits them while they're shaking.
** Fixed enemies attacking obstacles.
** Fixed Pikmin getting stuck in their thrown state.
** Fixed Pikmin trying to carry stuff to a ship when there is none.
** Fixed enemies pushing leaders and Pikmin through walls (99% of the time at least).
** Fixed Pikmin acting weird if commanded to walk off a cliff.
** Fixed an area's background randomly showing a broken triangle of texture.
** Fixed area editor breaking a sector when merging vertexes of a nearby sector.
** Fixed area editor not updating a texture's advanced settings if the angle is changed.
** Fixed Pikmin walking in a circle if their destination is really close.
** Fixed F11 not being a valid creator toolkit key.
** Fixed walls being ignored if they're perfectly vertical/horizontal and on coordinates multiples of 256.
** Fixed a softlock when switching leaders right as a day starts.
** Added the original SVG files + a random helpful information document on the repository.
** Enemy scripts can now specify what happens when it falls into a bottomless pit with <code>on_bottomless_pit</code>.
*** Implemented behaviors for the prepackaged enemies.
*** The <code>delete</code> special function can be used to delete the object straight away.
** Pikmin now sigh (for 2 seconds) if they fail to join an object's carriers.
** Made the starting number of Pikmin on Onions editable (<code>Game_data/Types/Pikmin/<type>/Data.txt</code>, <code>onion_starting_number</code>).
** Increased task detection range, and made it into two parameters &ndash; idle (<code>idle_task_range</code>) and group moving (<code>group_move_task_range</code>).
** Increased shaking and attacking hitbox sizes for prepackaged enemies.
* 0.7.0
** Added carrying paths.
** Wall collisions were massively improved (objects don't stick on them while sliding).
** Added a "creator toolkit", with some helpful debugging tools for content creators.
** Added Female Sheargrub.
** F12 now takes a screenshot (it is placed on the same folder as the engine).
** Implemented bottomless pits.
** Changed the format of some internal things. See [[Topic:Pikmin Engine by Espyo#Version 0.7|here]] for a list of changes that need to be made to convert any user-made creations to version 0.7.
** Replaced the existing treasure with two, better ones.
** HUD coordinates can be customized.
** Quite a few game parameters are now customizable, like max Pikmin number on the field, cursor reach, etc.
** Script changes
*** The <code>gravity</code> action is now a multiplier.
*** Added <code>move = stop vertically</code> to stop all vertical momentum.
*** Added <code>hide</code> action to hide the shadow and health wheel.
** Editor changes:
*** Editors now ask you if you want to quit without saving.
*** Animation editor can now edit any text file, not just object animation text files.
*** The animation editor now suggests file names and in-game width/height.
*** The area editor now suggests textures, with icon previews.
** Aesthetic
*** Mouse controls have their own graphics instead of saying "M1", "M2", etc.
*** The camera moves smoother now.
*** Info spots have a new notification style.
*** Default framerate is now 60 FPS.
** Plus misc. changes that aren't noteworthy.
*Older versions
**Please see the [[/Changelog|changelog]].


===Roadmap===
===Roadmap===
Many more features and content are still planned, but the following is a general outline of what still needs to be done, roughly sorted from the next features to be developed to the last ones.
Many more features and content are still planned, but the following is a general outline of what still needs to be done, roughly sorted from the next features to be developed to the last ones.


* Hazards
* Plants
* Plants
* Water
* Most menus
* Most menus
* Music
* Music

Revision as of 17:09, 6 August 2016

Template:FA

File:PFE icon.png
Icon for the engine.
For the forum topic discussing the engine and its updates, see Topic:Pikmin Engine by Espyo.

The Pikmin fangame engine is a real program made by Espyo that is capable of running Pikmin fangames. It is an open-source engine, currently under development, that can handle gameplay similar to the Pikmin games, in that it allows leaders to whistle and throw Pikmin, allows Pikmin to carry objects, etc. Although the idea is for fans to create their own content (enemies, areas, etc.) so the engine can read it and turn it into a game, the current download also comes with some pre-packaged content, which makes it possible for people who download it to experiment its features.

The reason for its creation was to make it possible for fans to make their own Pikmin fan content and to be able to play on it, by requiring only assets and data, while the engine itself handles all of the more complicated parts like the physics and artificial intelligence. It is currently under development, and alpha versions are available for download. The engine can run on Windows, Linux, and Mac.

Overview

The gameplay is seen from a top-down perspective.

The game created by the engine has a 2-dimensional look, and is seen from a top-down view, although it is still a 3-dimensional game, in that height and gravity exist. The mechanics attempt to mimic those found in the Pikmin games, although not always to the same degree. They can be different because it's easier that way, it's better for the engine's flexibility, or because it's not possible to fully replicate what happens in the canon games.

Given that it is a PC game, it is played using a keyboard, mouse, and/or a gamepad. Since it's still in development, some features may be fully implemented, missing entirely, or working incorrectly.

Download

Windows

Download link

The latest version available for download for Windows is shown first on this download link's page. The download is a compressed (zipped) file, which should be simple to extract. It should be less than 10MB in size when uncompressed, and requires no special permissions or installations to play. Just unzip everything onto a folder, and double-click Pikmin_fangame_engine.exe from the folder to start running.

If you are upgrading from an older version of the engine, you should delete that one and use the recent one instead. If you do this, remember to copy over your custom-made content, if you care about it, and your Options.txt file, if you care about your settings. Alternatively, you can place the contents of the new version onto the same folder as the old one, but if a newer version doesn't use certain files any more, they will remain unused on your folder, taking up space.

Linux and Mac

In order to play on Linux or Mac, you can either build it from the source code, or run the Windows executable under Wine. It works fairly well with Wine, although some textures may be invisible; see FAQ and troubleshooting.

A simple tutorial on how to compile under Linux can be found on the the included README.txt file. There are currently no instructions for compiling under Mac.

How to play

As the engine is right now, one only needs to download it, extract it, and run the executable (under Windows, at least).

More technically, in order to play a game on the engine, there must be data for that game on the engine's "Game_data" folder. Luckily, the engine currently comes with some example data that can be played right off the bat, although players can also download or create any fan-made content and place it on the engine's "Game_data" folder. Because the engine is still in development, the concept of a "game" isn't much more than "a collection of areas, enemies, and Pikmin". Upon running the engine, it will read the information in the game data folder and instantly boot up the game. Currently, the main menu will be the same all the time, regardless of game, and choosing the "Play" option will prompt the player on which available area they wish to play (if there is only one area, it will be loaded automatically). To note is that some downloaded content might depend on other content. For instance, if an area has an enemy called "Green_Bulborb", but the player does not have any "Green_Bulborb" enemy on their game data, the area will not load properly.

In-game, the player is allowed to control the leaders and play around like in the canon games. At the moment, there is no concept of an "end", so nothing will trigger the "end" of the level. Depending on the mechanics that are implemented or missing, some behaviors might work, some might not, and some might be working incorrectly.

The minimum requirements to run the engine aren't that high; old machines should run it just fine without many performance problems. But it does depend on scenarios: a simple area with just a leader will run much better than a complex area with 100 Pikmin on the field. Some options on the options file can be set to help with performance, at the cost of visuals.

The controls can be changed on the options menu, but the defaults are listed on the included README.txt file. Some other options can also be set on the Options.txt file, but since these don't have a large impact on most fans, there is no way to edit them on the options menu. The following options (besides controls) can be found there:

Option Description Default Performance impact?
area_quality The higher the number, the higher quality the area's geometry appears, but also the heavier on machine resources the engine will be. The value 1.5 is a good balance between quality and performance. 1.0 Yes
draw_cursor_trail If false, the faint trail that follows the cursor will be removed, which could help with performance. true Yes
editor_backup_interval How often, in seconds, the area editor creates a backup of the current area. 120 No
fps Framerate cap. The higher it is, the smoother the gameplay is, but the heavier on performance the engine will be. 60 Yes
max_particles Maximum number of particles to have on the world at once. If more particles than this need to be created, older particles are deleted. 120 Yes
middle_zoom_level When pressing the camera button, the zoom level swaps between near, far, and this amount. 1.0 No
pretty_whistle If false, the whistle is replaced with a plain yellow circle, which could help with performance. true Yes
resolution Width and height of the game window. The engine was made with a small-medium resolution in mind, although you can change the window size to anything you want. 640 480 Yes
smooth_scaling If true, images that need to shrink or grow big will do so smoothly. Otherwise it will look pixelated, but it might help with performance. true Yes
window_position_hack For some users, the game window does not appear, although the engine is definitely running fine. This is because it somehow gets placed out of the screen. Set this to true to force it to appear inside the screen. false No
animation_editor_history_<number> List of recently-opened files on the animation editor. This does not need to be edited by the player, as the engine controls the list by itself. No

How to create

File:PFE bridge sectors.png
The area editor is one of the tools used to create content with.

Anybody can create any content to be run on the engine, and the ways to do so vary, but are in general made to be easy. Enemies, Pikmin types, and other such creations can be freely made, but new game mechanics cannot. This includes enemies, areas, etc. that make use of any new mechanic. The following pages lead to tutorials on how to create different content for the engine:

Graphics and audio can also be edited freely. Although some images and sounds have to be have specific names for the engine to find them, others can use any name at all, so long as the scripts, areas, etc. that use them call them by the right name.

Most user-made mistakes will be caught by the engine and reported on a file called "Error_log.txt" on the same folder as the game's executable.

History

Creation

The idea for the engine started on mid 2013, with the intent of both allowing Pikmin fans to make their own games reality as well as to create a fun and challenging Pikmin-related project. The idea was made public on Pikmin Fanon, where a topic was created to gather feedback, before starting the project. On the 15th of August, 2013, development of the engine officially began. Ever since, different versions have been released, each one more complete than the last.

Changelog

See Changelog.

Roadmap

Many more features and content are still planned, but the following is a general outline of what still needs to be done, roughly sorted from the next features to be developed to the last ones.

  • Plants
  • Most menus
  • Music
  • Most sound effects
  • Sprays
  • Story mode cutscenes
  • Story mode progression

FAQ and troubleshooting

More information on the engine, including frequently asked questions and troubleshooting, can be found in the README.txt file included in the download.

License disclaimer

The Pikmin fangame engine and any fan content run within it are not affiliated with Nintendo® and should not be sold.

They are non-profit projects created by fans of the Pikmin® franchise, and do not intend to infringe on the copyrights or registered trademarks of Nintendo®.

Pikmin® is a trademark of Nintendo®. The copyrights of all associated characters, names, terms, art, music, and assets belong to Nintendo®.

Gallery

The following images were taken on version 0.6 with the pre-packaged area, Pikmin, etc.