Pikmin fangame engine/Changelog

From Pikmin Fanon
Jump to: navigation, search

The following is a general changelog for the Pikmin fangame engine. This changelog will only list the most notable differences between each version of the engine; for a more detailed list of changes throughout the development period, check the commit log on GitHub.


December 23rd, 2017

Format change warnings
  • Area format updates
    • The leaf shadow texture was renamed from Leaf shadow.png to Tree_shadow.png.
    • Area backgrounds are now fetched from the Game_data/Images/Textures folder.
    • An area's reference image coordinates now specify the center, not the top-left. The parameter in Geometry.txt is now called reference_center instead of reference_pos.
  • In Game_data/Misc/HUD.txt, the HUD items that had key in the name now have button. The coordinates also now specify an invisible box from which the HUD item cannot go beyond; most HUD items will maintain aspect ratio and still fill this box.
  • Pikmin animations for sprouts renamed from buried to sprout. Similarly, the script variable buried in the area editor, used to spawn sprout Pikmin, has been renamed to sprout.
  • New area editor!:
    • New features:
      • You can now select, move, and even edit multiple vertexes, edges, sectors, objects, path stops, or path links at once.
      • Sector drawing and vertex moving are more intelligent and friendly in general.
      • An "Info" panel to edit the area's name, weather, etc.
      • Undo button.
      • Textures are now drawn on the sectors.
      • When dragging vertexes or drawing edges, a number will appear that shows the length of relevant edges.
      • The "Options" panel got several more options: toggle the edge length number, switch view mode (show textures, just wireframe, heightmap, or brightness map), specify the auto-backup timer, and specify the undo limit.
      • A tool to quickly offset, scale, or rotate the textures of sectors you click on.
    • Quality-of-life tweaks:
      • When drawing a sector or moving a vertex, you can now place vertexes on existing edges without needing to create a vertex there first.
      • Status bar now writes more warnings, and will also scroll automatically when showing long messages.
      • Picker panels now have a brief description, and let you search using the text box at the top.
      • The area picker will appear right away when loading the area editor, and the object type picker now has all mobs, split into categories with separators.
      • Sector hazards are now controlled with buttons and pickers, instead of the user having to write a list manually.
      • The reference and shadows can now be transformed using draggable control points.
      • Implemented several keyboard shortcuts, as well as Esc to cancel operations and deselect all, Ctrl+A to select all, etc.
      • When drawing a new sector, it uses the top suggestion in the list of suggested textures, and when placing a new object, it uses the last type set (or a Red Pikmin by default).
      • The path editor has been changed to allow the user to draw paths in a more streamlined way.
    • Other changes:
      • Reference data has been moved to the "Tools" panel.
      • Double-clicking the middle mouse button now resets the camera to the origin.
      • The main panel now has icons for each button.
      • Many more minor tweaks and quality-of-life changes.
  • Added White Pikmin ingestion poison in the form of a new feature: spike damage.
    • Creators write down the types of spike damage. These determine what the damage is, what triggers it (damage when ingested, or damage when attacked), and what particles come out.
    • Any mob type can make use of a type of spike damage.
    • Any mob type can also use a list of vulnerability modifiers, making it more or less vulnerable to certain types of spike damage.
  • The file Misc/System_asset_file_names.txt can now be used to override system asset file names. For instance, instead of the game icon being loaded from Icon.png, it can be loaded from some other image.
  • Sprouts now evolve in stage over time. Pikmin types have new parameters: sprout_evolution_time_1 specifies how long a leaf Pikmin must wait before evolving, in seconds. sprout_evolution_time_2 is the wait time for bud Pikmin, and 3 is for a flower to wither back.
  • New creator tool options: area_image_mobs, if set to false, hides mobs, particle effects, etc. from the final area image. mob_hurting_percentage lets you change how much health the mob will lose with the "hurt mob" tool; the default is also now 50% instead of 20%.
  • Details:
    • The mouse cursor jumping to the leader cursor on area load was annoying, so now it does the opposite.
    • New particle graphic: rock. This is used when a Pikmin seed ejected from an Onion lands.
    • Enemy spirit size now depends on enemy size.
    • When repairing the suit at the ship, some sparkles come out. There is now also a notification telling the player how to repair the suit when they get near.
    • HUD elements now move in from off-screen when the area is entered.
    • If there's no carrying path in the area, the Pikmin will just make a beeline for the Onion/ship.
    • The "missing texture" texture went from a red "ERROR" to a violet-and-black checkerboard pattern.
    • Notification bubble is now black, so the white text on it can be read better.


July 27th, 2017

  • Your old right/up/left/down controls will not be recognized in this version. Please re-map them in the options menu.
  • If you made custom weather conditions, you'll need to edit Weather.txt as per the changelog.
  • Pressing the "Pause" button now exits to the main menu, instead of closing the game.
  • Areas are drawn differently now:
    • Slightly higher CPU usage (~+5%), but much lower VRAM usage (~-50%).
    • The area_quality option is gone; walls will have the same resolution regardless of zoom.
    • Bridges will now use the background in their seams instead of the sector under them -- this will be fixed in the future.
  • The mipmaps option was added to Options.txt. Set this to "false" to disable mipmaps (for slightly higher CPU usage, but lower VRAM usage).
  • Improved controller support:
    • Analog sticks now obey deadzones -- these can be set with the joystick_min_deadzone and joystick_max_deadzone options in Options.txt. This way, analog sticks won't have loose wiggle accounted for, and some joysticks (like the Switch Pro Controller) can be considered "fully tilted" when they're technically only sending around 70% tilt.
    • Added menu navigation controls.
    • In Options.txt, controls for player 1's movement are no longer called p1_right, p1_up, etc., but rather p1_move_right, p1_move_up, etc. The same change was made for the other player numbers.
  • Added a crash handler.
    • If the engine crashes, a message appears, a screenshot is dumped, and diagnostic information is written to the logs.
  • Added the Crumbug.
  • Enemy attacks can now have a chance of not knocking back any given Pikmin. This is useful for shake attacks that only shake off 75% of the Pikmin, for instance. The pre-packaged enemies were updated with some chances.
  • Area editor improvements:
    • Ctrl + Minus now deletes the selected mob on the area editor.
    • Middle-clicking now keeps the cursor on the same spot.
  • Weather changes:
    • Added fog. fog_color is a table, much like lighting, that controls the fog's color at 100% density throughout the day, and fog_near and fog_far control the distance at which 0% density ends and 100% density starts, respectively.
    • In Weather.txt, a weather condition's name is now the same name as the block, instead of being a name parameter inside a weather block.
    • If a weather condition has no lighting table an error will no longer be logged.
  • Wall shadows now depend on sector height difference. They're also now drawn on top of water, and are slightly darker overall.
  • The Cloaking Burrow-nit now takes no damage if hit from back, like in Pikmin 2.
  • When a mob has to decide to interact between multiple nearby mobs, it now picks the closest one instead of the first one the engine checks. This means a Pikmin thrown at several tasks will go to the nearest one.
  • You can now take multiple screenshots, since they are now saved with different file names, based on when you took them (plus a number if you take several in one second).
  • Misc. optimizations, improvements, and fixes.


May 27th, 2017

List of changes
  • Editor improvements:
    • New area editor features:
      • You can now create a new area when on the list of areas.
      • "Create circular sector" button.
      • "Delete isolated sector" button.
      • Cross-section view.
      • Clicking the latest placed vertex when drawing a sector now allows you to place it again.
    • New animation editor features:
      • When editing a Pikmin top's positioning, allow moving with the mouse.
      • Sprite offset tool also includes resize now, as well as mouse movement support.
      • A button to turn all in-game W/H into a multiplier of the file W/H.
      • A way to rename frames/animations.
    • GUI graphical image buttons instead of text.
    • The width of the editor GUIs is now more flexible.
  • Group improvements:
    • Made group organization and throwing work like in Pikmin 3, via select, continuous throw, and type switch.
      • The scroll wheel directions are now the default group member switching controls.
      • Maturity switching now only works when holding a Pikmin.
      • The config file now allows you to set a preferred Pikmin order (used for choosing which Pikmin type to throw next).
      • The config file now allows you to set a preferred leader order (used when changing to the next leader).
      • The config file now allows you to enable or disable throwing leaders.
      • The HUD now shows the number of Pikmin of the standby type, the group total, and the field total; the latter two bubbles are labeled.
    • Pikmin in groups move more dynamically:
      • If the leader is nearby, they just shuffle along, but keep formation.
      • If the leader is far away, they follow behind and try to stay behind the leader's back.
      • Throwing sorts the group and puts them behind the leader.
      • Group moving now stretches the group to the destination.
    • Leaders following leaders now don't awkwardly stick to the main leader, but follow in a line.
    • Dismissing now separates and places Pikmin properly, for any number of Pikmin or subgroups.
  • Gate and bridge changes:
    • Gates must now be on a sector of the "blocking" type, not of the "gate" type; that type is now gone.
    • Pre-packaged gate radius is now 32 instead of 48, so that Pikmin hitting it don't seem so telepathic.
    • Created the "Bridge" mob category, allowing several types of bridge, with different HP, graphics, etc.
  • New features and content:
    • "Blackout" effect for weather – everything is dark, but objects give off light.
    • Added specialized HUD bubbles for the different parts of the Pikmin counter, and the ability to specify your own HUD graphic file names on Game_data/Misc/HUD.txt.
    • disables_attack parameter for status effects; I've also added this parameter to petrified enemies to stop them from hurting unfairly.
    • Cursor now gains an "X" if the held Pikmin/leader cannot reach the cursor's ledge.
    • Idle leaders now pluck Pikmin on their own.
    • Creator tools can now also be bound to keys 0 - 9.
    • "Coordinates" creator tool is now the "geometry info" tool, and it also shows basic info about the sector under the mouse cursor.
    • Added a "show hitboxes" creator tool – pressing the key toggles hitbox visibility on enemies, similar to how they look in the animation editor.
    • Added Fiery Blowhog.
  • Tweaks, balance changes, etc.:
    • In animations, "Frames" are now "Sprites", "instances of frames" are now "frames", "hitboxes" are now "body parts", and "instances of hitboxes" are now "hitboxes".
    • The area editor "guide" image now goes by the much more apt name "reference" image.
    • Pikmin will no longer stop to wait for new carriers. It looks like letting the carriers reach their spot normally is enough.
    • Revamped grounded attacking and re-chasing.
    • Made plucking faster and impossible to cancel mid-animation.
    • Pikmin throws are faster and more balanced in max height – this also changes the global gravity by making it heavier.
    • Made a day take 15 minutes to pass.
    • Enemies now ignore Pikmin when returning home for only 2 seconds.
    • Loads of tiny fixes and improvements.
Updating older content

If you have created any custom content from this list, you must make the appropriate corrections noted here if you want it to work on 0.10. If not, you can forget this section.

This section is only for content created on version 0.9; if you created content in a version before that one, please port the content version by version. Before you start, I recommend you create a backup of your content. I've made a tool that'll convert some of the files – you'll have to do the rest by hand. To use the tool, go here, and download the page as an HTML file. Then, open said HTML file with your browser of choice, and follow the instructions there.

  • Main config file:
    • cursor_spin_speed now uses degrees instead of radians.
  • All animations:
    • frames -> sprites.
    • frame_instances -> frames.
    • hitboxes -> body_parts.
    • hitbox_instances -> hitboxes.
    • file_x = <x> + file_y = <y> -> file_pos = <x> <y>.
    • file_w = <w> + file_h = <h> -> file_size = <w> <h>.
    • game_w = <w> + game_h = <h> -> game_size = <w> <h>.
    • offs_x = <x> + offs_y = <y> -> offset = <x> <y>.
  • Areas:
    • guide_x = <x> + guide_y = <y> -> reference_pos = <x> <y>.
    • guide_w = <w> + guide_h = <h> -> reference_size = <w> <h>.
    • guide_file_name -> reference_file_name.
    • guide_alpha -> reference_alpha.
    • Any enemies in the "Misc." mob category need to be changed to the "Custom" category.
    • Bridges now belong to the "Bridge" category. It's better to delete the existing bridge objects and create them again with the editor.
  • Particle generators:
    • speed -> total_speed.
    • speed_deviation -> total_speed_deviation.
    • speed_x = <x> + speed_y = <y> -> speed = <x> <y>.
    • speed_x_deviation = <x> + speed_y_deviation = <y> -> speed_deviation = <x> <y>.
    • x_deviation = <x> + y_deviation = <y> -> pos_deviation = <x> <y>.
    • angle and angle_deviation now use degrees instead of radians.
  • Mob config files:
    • rotation_speed now uses degrees instead of radians.
    • throw_height_mult -> throw_strength_mult (Pikmin and leaders only).
  • Mob scripts:
    • Mob types have lost the sight radius, near radius, etc. in favor of a detailed "reach" system:
      • Each mob type can have any number of reaches – a reach is defined by 1 or by 2 pie-slices. If an opponent is inside these pie-slices, they're considered "in reach".
      • The mob script can set what the active reach for "new" opponents is, and what the active reach for the focused opponent is.
      • For instance, a Red Bulborb, while chasing, has its "near" reach set to a pie-slice in front of it; if a Pikmin goes inside this pie-slice it will trigger an attack. Meanwhile, its "far" reach is a circle around it, such that it can always chase around the focused mob, until a certain distance.
  • Pikmin:
    • Pikmin attack intervals are no longer controlled by an attack_interval parameter, but rather, the attack connects when one frame of animation sends a "signal".
  • Sprays file:
    • angle and angle_range now use degrees instead of radians.
  • Tools config file:
    • coordinates tool -> geometry_info tool
  • HUD config:
    • There is now a positions block, that holds the coordinates of all elements, and a files block, where you specify what textures to use for the different elements.
    • 0 0 0 0 can now be used for elements you don't want.
  • Folders:
    • Game_data/Types/Misc. -> Game_data/Types/Custom.
    • Bridge type is now a thing, as is the bridge category of mobs.


December 22nd, 2016

  • Replaced copyrighted graphics and sounds with free license ones.
  • Standby Pikmin HUD icons are now split: one bubble for the Pikmin type, one for the maturity (pikmin_standby_m_icon).
  • Bridge rails now have their own texture.
  • In the HUD, the sun bubble is just a regular bubble, but tinted.
  • Fixed vertexes not merging according to the zoom level, when creating a sector in the area editor.
  • Minor bugfixes.


August 6th, 2016

  • New content
    • Hazards, sprays, status effects, liquids
      • Pre-packaged fire, lethal electricity, stunning electricity, water bodies, water bubbles, ink, and poison hazards.
      • Pre-packaged ultra-bitter and ultra-spicy sprays.
      • Pre-packaged fire geyser, gas pipe, and Pikmin 3 electric gate obstacles.
    • An actual particle system, with custom particle generators.
    • Area editor
      • Sectors can now be created by drawing them.
      • Debugging tools on the F keys.
      • Auto-backups.
    • Animation editor
      • Frame offset wizard tool.
      • Recent file history.
      • "Apply duration to all" button when editing an animation's list of frames.
    • Fading sectors now fade brightness.
    • Sectors can now be tinted by a custom color.
    • Pre-packaged enemies
    • The ability to add a counter for the Pikmin of the standby type to the HUD, like in Pikmin 3.
    • "Misc." category for mobs (used for obstacles).
    • is_obstacle and allow_ground_attacks properties.
  • Player-relevant changes
    • Fixed edges of graphics being muddy (no premultiplied alpha).
    • The engine now complains if you try to run it without a Game_data folder, or inside the zip file.
    • Leaders have a different spark animation.
    • The options file was revamped. I recommend deleting the old file and letting the engine create a new one.
      • Added a max_particles option, removed daylight_effect, and renamed window_pos_hack to window_position_hack.
      • Added an option for the middle level of zoom. Pressing C toggles between 0.5, 2.0, and that level (default 1.0).
      • Dozens of tiny changes (hence why I recommend deleting the old file).
  • Creator-relevant changes
    • Ships now rotate and act more correctly.
    • Moved the title screen logo animation into the Animations folder.
    • Made the mob info creator tool lock-on to a mob, and update its data every frame. Activating it on the same mob again unlocks it.
    • Renamed enemy folders.
    • Animation, frame, state, etc. names were made more consistent (it was a mess between adjectives and verbs). If you made custom content for the engine, please re-read the tutorials on the wiki to update the names of the animations for your Pikmin, gates, etc.
  • Known problems
    • If a Pikmin that was going to a carrying spot dies, carrying becomes impossible for that object.
    • Carrying the billiards ball on Play only to the ledge immediately below, and whistling the Pikmin makes it stuck.
    • Rarely, you can have leader 1 pluck Pikmin, be called by leader 2, and have some Pikmin belong to leader 1's group instead of leader 2's.


April 12th, 2016

  • 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 (auto_start_mode and auto_start_option on Tools.txt).
  • Added a document with misc. code-related info to the git repository.
  • Minor bugfixes.


March 26th, 2016

  • 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 on_bottomless_pit.
    • Implemented behaviors for the prepackaged enemies.
    • The delete 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 (Game_data/Types/Pikmin/<type>/Data.txt, onion_starting_number).
  • Increased task detection range, and made it into two parameters – idle (idle_task_range) and group moving (group_move_task_range).
  • Increased shaking and attacking hitbox sizes for prepackaged enemies.


March 19th, 2016

  • 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 gravity action is now a multiplier.
    • Added move = stop vertically to stop all vertical momentum.
    • Added hide 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.


January 1st, 2016

  • Added menus (main menu, options, area selection, access to the editors).
  • New icon.
  • Added a White Spectralid enemy.


October 11th, 2015

  • Massively revamped mob logic.
  • Objects now walk like a car: they can only move forward and turn.
  • Added bridges and gates.
  • Objects can block and/or push each other.
  • Added a Dwarf Red Bulborb enemy.


August 16th, 2014

  • Added Walls, floors, textures, etc.
  • Revamped Pikmin AI.
  • Revamped some graphics.
  • Added a Red Bulborb enemy.


March 9th, 2014

  • Added animation editor.
  • Added basic enemy AI.
  • Improved HUD.
  • Added a Cloaking Burrow-nit enemy.


December 24th, 2013

  • General improvements and additions.


October 23rd, 2013

  • Engine launch.