Pikifen



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 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 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.

Overview
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.

Given that it is a PC game, it is played using a keyboard, mouse, and/or a gamepad.

Download
Download link

The latest version available for download for Windows is 0.7.0. 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.

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.

In order to play on Linux or Mac, 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.

How to play
As the engine is right now, one only needs to download it, extract it, and run the executable.

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.

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:


 * : 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.
 * : If false, the faint trail that follows the cursor will be removed, which could help with performance. Default is true.
 * : Framerate. The higher it is, the smoother the gameplay is, but the heavier on performance the engine will be. Default is 30.
 * : 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.
 * : If false, the whistle is replaced with a plain yellow circle, which could help with performance. Default is true.
 * : Width of the game window. See  for more information. Default is 640.
 * : 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.
 * : 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.

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.

How to create
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:


 * Quick creator guides – for users who need help understanding the basics, but believe they can figure out the rest on their own.
 * Creator toolkit – how to use the creator-friendly toolkit.
 * In-depth guides:
 * Text files – text files on the engine use a specific format. This simple page explains how it works, and should be read before using any other tutorial.
 * Creating areas
 * Creating new object types
 * Creating animations
 * Object scripting
 * Creating new weather
 * Misc. configurations

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.

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

 * 0.7.2
 * 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 ( and   on  ).
 * 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.
 * Implemented behaviors for the prepackaged enemies.
 * The  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.
 * Increased task detection range, and made it into two parameters – idle and group moving.
 * 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 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  action is now a multiplier.
 * Added  to stop all vertical momentum.
 * Added  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.

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.


 * Hazards
 * Plants
 * Water
 * 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.