Pikifen

From Pikmin Fanon
Revision as of 20:47, 4 April 2019 by Espyo (talk | contribs) (→‎Roadmap: Detailed the roadmap.)

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.

Pikifen (formerly known as the Pikmin fangame engine) is a real program made by Espyo that is capable of creating and playing Pikmin fan content. 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 something playable, the current download also comes with some pre-packaged content, which makes it possible for people who download it to experiment with its features right away.

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.

The official Discord server for the project can be found here.

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 an orthographic 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 is still in development, some features may be fully implemented, missing entirely, or working incorrectly.

Notable features

  • Replicates most of the standard Pikmin gameplay.
  • Content that can be edited via text files, or just replacing the image and sound files.
  • Area editor and animation editor.
  • Scripting for custom objects.
  • Tools to help with debugging custom content.
  • Customizable control schemes.

Download

Windows

Download link

The latest version available for download for Windows is shown at the top of the 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, requires no special permissions or installations to play, and has very low minimum system requirements. Just unzip everything onto a folder, and double-click Pikifen.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, as well as any content in the User_data folder, if you care about your settings and personal backups. Remember to also follow any instructions noted on the changelog. 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 what is going on: a simple area with just a leader will run much better than a complex area with 100 Pikmin on the field. Some options in the options file can be set to help with performance, at the cost of appearance.

Options

Resolution and fullscreen options can be set in the options menu. The controls can be changed in a sub-menu, but the defaults are listed on the included README.txt file. The other options can be set on the /User_data/Options.txt file, but since these don't have a large impact for most fans, there is no way to edit them in the options menu. The following options (besides controls) can be found in the text file:

Option Description Default Performance impact?
draw_cursor_trail If false, the faint trail that follows the cursor will be removed, which could help with performance. true Yes
area_editor_backup_interval How often the area editor creates a backup of the current area, in seconds. 120 No
area_editor_grid_interval Space between each grid cell in the area editor. 32 No
area_editor_mmb_pan Should the middle mouse button pan (true) or reset the camera/zoom (false)? The right mouse button will do the other function. false No
area_editor_show_edge_length If true, the length of nearby edges will be shown, when dragging them or drawing them. true No
area_editor_undo_limit How many steps can be saved in the undo history, at most. 0 disables the undo feature. 20 No
area_editor_view_mode View mode to use. 0 for standard, 1 for wireframe, 2 for height map, 3 for brightness map. 0 Yes
fps Framerate cap. The higher it is, the smoother the gameplay is, but the heavier on performance the engine will be. 60 Yes
fullscreen Is the window fullscreen (true) or windowed (false)? Note that if the specified resolution doesn't work in fullscreen, the engine will revert the option to windowed mode. false Yes
joystick_min_deadzone Tilting the joystick this far or less will be considered the same as keeping the joystick in neutral. If your analog stick is wobbly, and you see actions happening in-game even thought you're not moving the analog stick, try increasing this value. 0.2 (20%) is a good value for most cases. 0.2 No
joystick_max_deadzone Tilting the joystick this far or more will be considered the same as holding the joystick fully in that direction. If you tilt your analog stick fully, but realize that the engine is responding like if you only tilted it a bit, try lowering this value. 0.9 (90%) is a good value for most cases. 0.9 No
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. 200 Yes
middle_zoom_level When pressing the camera button, the zoom level swaps between near, far, and this amount. 1.50 No
mipmaps true to enable mipmaps, false to disable them. Enabling them is recommended, and increases VRAM usage for slightly less CPU usage. Turn it off if you need RAM. true Yes
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. 1024 768 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.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 and intuitive. Enemies, Pikmin types, and other such creations can be freely made, but new game mechanics and logic cannot. This also 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 need to 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 in the file /User_data/Error_log.txt.

History

Creation

Screenshot from October 14th, 2013.

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.

On February 2nd, 2018, the project got rebranded, and the mission statement changed a bit. Instead of it being called "Pikmin fangame engine", it got renamed to "Pikifen", and the idea was no longer to make fangames a reality, since that proved to be too ambitious at best, and outright impossible at worst. Instead, the goal became to create a fun engine in which people could create and play their own content, and the idea to make full games in it being secondary.

Changelog

See Changelog.

Roadmap

Many more features, content, and tweaks are still planned, but the following is a general outline of what major things still need to be finished, as well as a rough idea of what versions will contain what.

Version 0.17
  • Important special objects (like plants, nectar, bomb rocks, etc.)
Version 0.18
  • Less important special objects (like seesaw platforms, climbing sticks, etc.)
Version 0.19
  • Project cleanup (optimizations, better areas, more animations, etc.)
Version 0.20
  • Sound effects
  • Music
Version 0.21
  • Menus
Later
    • Caves
    • Multiplayer
    • Story mode
    • More editors

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

Pikifen 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 from various versions of development with the pre-packaged area, Pikmin, etc.

Other information

  • Glossary – glossary of terms used when playing or creating content.
  • Area tips – tips for making fun and pretty areas.