Forum:Pikmin Engine by Espyo

Use this thread to discuss the Pikmin fangame engine. This thread will also cover updates.

Suggestions (by the previously anonymous user with constant issues, questions, and suggestions)
Hello, it's me, GreatBulborb(one of the most loyal supporters, with constant issues, questions, and suggestions). I would like to suggest ideas never before suggested:

A. You could make it so all objects have health, so that any object could destroy or assist another(ex: a bulborb eating an onion, the sheargrubs attacking bridges, etc.)(all-forms of benefits).

B. You could allow onions to have pikmin-based self-defense mechanisms, like how swarm of bees is summoned to defend their hive(ecology/mechanics).

C. Allow pikmin to be able to attack allied objects, like olimar(ex: PVP, Wild pikmin, etc.).

D. An enemy spawn mechanic(ex: Random wild encounters)(all-forms of benefits)

E. Online play/or/sharing, both for non-commercial purposes, and both with proper references and citations(Usage).

F. The possibilities are infinite!(Just a comment)

--GreatBulborb 11:01, 1 June 2016 (EDT)
 * Those are some good suggestions. A and C are already a thing. All objects in the game already have health (when you "build" a bridge, you're actually hurting its object, and its "death" is when it gets built!), and objects are already internally separated by "teams". Any object can belong to any team, although I haven't added a way to set that yet. (In fact, anything can attack anything if the teams are set right. There was a version of the engine where enemies would chase and eat gates...) For B, that would probably be a bit too complicated and specific to implement. The engine should try to be first and foremost, flexible and simple, in order to allow creating content easily. Adding that would require a good amount of work, too. Not to mention that if the player doesn't want the Pikmin to go defend (enemy is too tough, too few Pikmin), that'll just be a disaster. I can implement D one day without much of a problem, but E will be WAY too hard. Programming an online turn-based game can get very complicated very fast, but programming a real-time game, with 100+ objects moving about at once will mandatorily go horribly wrong. I'm already planning to implement local split-screen, though. As for content sharing online, there are no plans, but the wiki will serve as a good platform for this until we need something better, if we ever do. Not quite sure what you mean by the references and citations part, though. Anyway, thanks for the comment! — {EspyoT} 11:38, 1 June 2016 (EDT)

Version 0.7.2
Some convenience features, mostly. This will give you a nice comfortable version to work with while I'm busy creating the hazards mechanic. Get it here. For the full changelog, see here, but the most important changes this time are much better visuals on the area editor, and some improvements on both editors. Note: if you have gates on your maps, you may want to check again, as I've increased the size of gates (so that 20 pellets can pass). — {EspyoT} 18:31, 12 April 2016 (EDT)

Version 0.7.1
A bugfix and balance release. Get it here. This release fixes a lot of problems, which you can see here, but the main ones are: I've also balanced task detection ranges, made it so you can specify the starting number of Pikmin in an Onion for each type, and released the original SVG files used for the graphics on the git repository. — {EspyoT} 15:09, 26 March 2016 (EDT)
 * 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.

Just a question, could you try and make it so enemies can attack enemies? I would like that, because if I made a massive bulborb(that would need bigger prey), I could have it attack smaller animals, such as dwarf bulborbs. That would be useful!
 * Will do! I actually added that to my list of things to implement some days ago, but now that I know there's interest, I'll make it a bit higher priority. — {EspyoT} 11:43, 5 April 2016 (EDT)

Version 0.7
Version 0.7 is out now! Get it here. The main additions this time are carrying paths and fixed wall collisions. But quite a lot of minor things were also added. Be sure to check them here. WARNING: if you made content (areas, objects, etc.) for the engine, you might have to make some changes to make them compatible with the newest version of the engine. Of course, you can also remake them from scratch if you prefer. — {EspyoT} 11:12, 19 March 2016 (EDT)
 * Areas
 * Open the area's text file.
 * Replace all of the following:
 * with  on the mob sections.
 * with.
 * with  on the edges section.
 * with.
 * with  on the vertexes section.
 * with  on the sectors section.
 * with.
 * with.
 * with.
 * with.
 * with.
 * with.
 * Swap the sectors numbers of each edge around (you can use regex for this if you know how).
 * Go to the areas folder, and create a new folder for every area you have. Place the old files in the respective new folders.
 * In every folder, rename the old text file to Geometry.txt. Create a new text file called Data.txt.
 * Move the first 6 parameters (background, name and subtitle, and weather) to the Data.txt.
 * If you're using the bundled textures, rename all instances of  with , and   with.
 * Objects
 * Create a new text file for your object called Script.txt.
 * Move the script and the first state parameter from Data.txt to Script.txt
 * If your object's script uses the  action, update it: this action is now a multiplier (1 is normal gravity, 0 no gravity, -1 upwards gravity), and you can use   to kill all vertical momentum.

How much space does this take?
I want to know how much space this takes. Also do you need anything for it to run? Pikifan4 13:30, 14 January 2016 (EST)
 * The whole engine, as it is right now, only takes up 5.50 MB. And no, you shouldn't need absolutely anything to run it. — {EspyoT} 13:58, 14 January 2016 (EST)
 * ThanksPikifan4 14:17, 14 January 2016 (EST)

Also, Scruffy told me that the next update would include being able to take pics of the whole area, anything else?
 * Plans for the next update are:
 * Being able to take your own images of the full area.
 * Animation editor can edit any text file, instead of only object animations.
 * Wall collisions will be severely improved (99% done as I type this!).
 * Carrying paths for the Pikmin to take.
 * Also, please consider reading Help:Talk pages so you can better use talk pages, okay? — {EspyoT} 18:20, 15 January 2016 (EST)

A. Cool those sound good

B. Ok i will check Help:Talk pages

Sprites
Hey same random Anonymous user who commented on your user page. That's not important so here's a link to a huge sprite sheet some people made. However, the game looks so un-spritish that these would be mostly useless. Some could be used for Piklopedia icons or maybe Onion menus. http://ymmot392.deviantart.com/art/Huge-Pikmin-Sprite-Collection-145799985


 * Yeah, I'm afraid the sprites won't do much good, since the game is viewed from a top-down view. The fact that the style is different from sprite art doesn't mean much, because anybody can just change the graphics to make them sprite-based too. But thanks for the link anyway! — {EspyoT} 17:03, 8 January 2016 (EST)

DarnPikifan4 12:54, 14 January 2016 (EST)

Textures Error
Hi! When I tried testing my map, the textures all had the word error. When I checked the error log, it said that the textures could not load. Do you know the cause of this?


 * Uh, I'm not Espyo, but I think I can help you. Did

you specify the extension? Is the file .jpg or .png? If you didn't add them, put them like so: example.png or grass.jpg. If you did specify the extensions let me or Espyo know


 * Thank you, Neo. Yes, that would be the main reason. Other than that, make sure that the textures do exist on the Game_data/Graphics/Textures folder. — {EspyoT} 04:02, 4 January 2016 (EST)


 * Thank you for the help! The extension was wrong. Oops! I appreciate the help.

January 1st 2016 update
Happy new year! I have a new version. It doesn't change much in terms of gameplay, but it introduces a main menu, with a way to edit your controls, access the editor, and pick what area you want to play on (if you have multiple ones). It also polishes some minor things up here and there, and introduces a. In addition, I'd like to announce that I'm creating an article for the engine: Pikmin fangame engine. This article and a few others will give an overview of the engine, answer some questions, provide a changelog, and give tutorials on how to create content. Download version 0.6 here! — {EspyoT} 12:41, 1 January 2016 (EST)

How to play your levels
just a question, how do you play a level you make? All that happens when I play is the "Testing Area". OOPS, all I had to do was rename my current "play" level to play.old (note: you do not have to use this EXACTLY),and rename my new one "play"
 * Yeah, at the moment, you can't really pick. Although you should be able to rename the "Play.txt" file to anything else really, not specifically "play.old". — {EspyoT} 04:03, 9 December 2015 (EST)

Making New Pikmin Types
If I were to try this, how would I make new Pikmin types? Or new enemies? I would assume I would just use a modeling program, but I would like to know if there could be another way, as those are very expensive and hard to find. &#35;MLGSWAG forever!-RockPikminFTW 01:25, 28 August 2015 (EDT)
 * The engine works in a top-down view, using sprites. So no models involved. That said, there's actually a free modeling program, Blender, and it's pretty amazing. — {EspyoT} 07:38, 28 August 2015 (EDT)

Is This Still Being Worked On?
Just wondering, as this engine will be very cool when it is complete!


 * Possibly. Updates normally take a while, but this is longer than normal...


 * I asked him about it on the IRC a few days ago, and he said that he completed the AI of Pikmin and enemies. Now he has to revamp the leader AI, as well as some other things, then he'll start working on something else for the engine. I don't know when he'll release the next update, though. 00:47, 2 July 2015 (EDT)


 * Progress is going great, thankfully. I'm a bit split on when to release the next version. On one hand, I wanted to release it after the new AI module, which is actually a pretty important change. But on the other, I don't really want to release a version that works almost exactly like the existing one, gameplay-wise... After the AI is all good, I'll keep adding smaller features (gates, bridges, normal time passage procedures, ...) until I think I have something that feels better to play than the current version. If all goes well...two more months? — {EspyoT} 04:00, 2 July 2015 (EDT)


 * Hey, that sounds good to me. Thanks for the reply!


 * I wanted to drop by to thank you for your continued work. I have been dealing with personal things for so long it seems I never can find the time or energy to keep up with the site.. And that includes the engine, which I still am proud that you are working on. Keep it up, you are a valued member of the community for doing this. 15:38, 3 July 2015 (EDT)


 * Thanks! Good news is that there are no plans to stop, for the near future. I still don't firmly believe I'll ever get this to the level of being a full game maker (I hope I'm wrong!), but I can at least make this something playable and fun. Like a Challenge Mode-only engine. — {EspyoT} 15:42, 3 July 2015 (EDT)

Issues with Windows 8.1

 * There is a problem with the engine, not beeing able to run on Windows 8 or 8.1. The program does start, but isn't displayed as a window, so one is unable to do anything. Sunny1506
 * I use Windows 8.1 and it's fine for me. Are you saying you see that the game opened, but you can't find any window? Like, do you see the icon for the game on the taskbar at the bottom, but no actual window? If so, go to the folder where the game is, open Options.txt, and go to the bottom until you find the lines  and  . Change those two numbers to like "50", so that the lines are   and , save the file, and try running the engine again. It's a weird issue with the window and its placement, so that's why I added those options. Let me know if that fixed the problem or not. — {EspyoT} 10:20, 16 February 2015 (EST)
 * Thanks for the help, Espyo! It works now :D I love this engine! Keep the good work up ;D Sunny1506

Area Editor Issue
In my last reply I thanked you for helping me access the editor. Now I am having issues with launching it. You might know of this difficulty, you might not. I created two batch files for the base of the engine's files, called "Animation" and "Area", respectively. The first one, "Animation" runs the command prompt line you mentioned which adds the letter 'a' to the end of the line. That works perfectly. The second one, "Area", adds two words to the end of the line in the batch file, but doesn't work. The Pikmin Fan Engine stops responding instantly. Perhaps it is because I edited the resolution in the "Options" text file. Nonetheless, I would like some help troubleshooting it. I have a link to a video of me detailing my process here. 14:31, 2 January 2015 (EST)
 * Thanks once again for the support! Let me just say that if you think you're up for programming and like the idea, do go ahead with it. You will not regret knowing how to program. That said, it's not all a big slice of heaven. Bugs happen, code becomes confusing, and at times, it feels like you wanted to do anything but program. But in the end, it's always worth it. Being able to create life just out of some text, and having full control over how it turns out is something out of this world. I'm afraid to say that you likely won't be able to help me, because all of the simple parts are pretty much taken, and the complicated stuff would require quite a few years of practice to get right. Anyway, I think I got a crash on a different PC too, on the area editor, and I've fixed the problem since. It's an easy fix, but I'd have to launch a new version to fix it, I'm afraid... It's been a while since I fixed it, but I THINK the problem doesn't happen if you have a secondary area. Just create a new text file on the Areas folder, and hopefully it should work. I think it was something related to a scrollbar acting up, but it never happened on my machine because I always have two area files (the actual area used in the alpha and a test area). Oh, before I submitted this, I just rummaged through my Dropbox, because at one point I sent a version of the engine to a friend to test something, and said version might just be after I fixed the problem you're having. So try replacing your .exe with the one here, and hopefully the problem will be gone. Remember to make a backup of your original .exe first, though. Oh, and one final thing, remember that I'm on the IRC from 7 to 12 PM GMT, and pretty much all day during the weekends, so it would probably be better to chat there! — {EspyoT} 15:26, 2 January 2015 (EST)

The fix above doesn't seem to work. Replacing the .exe with one in the link did not make any difference, and the Area folder currently contains three files. Just like the original asker, we are using "Pikmin_fangame_engine.exe a a" to launch the area editor, and getting the same crash. Do you have another version available, or any other ideas on how we can fix this issue?
 * Hm, I checked my Dropbox folder again, and I also have this. Try that one. My folder is a bit of a mess, and the file names aren't helping. Sorry, my bad. Anyway, I don't have many more ideas, though I guess you could try having over 20 area files, instead of just two. This would definitely force the scrollbar to appear, which should fix the crash. I'm afraid I can't send a new version for the time being, because my current code is barely functional – you caught me in the middle of revamping the enemy scripting code. — {EspyoT} 19:19, 18 March 2015 (EDT)

I can't seem to get the area editor working, so, once again, any idea's?
 * I'm afraid not... If all goes well, I'll be releasing a new version somewhere next month, which will likely have solved all area-related problems. Until then... I suppose you could try a different machine. — {EspyoT} 03:59, 20 May 2015 (EDT)

Soundtrack
I am posting this as a bump, and because I have produced a song dedicated to the Pikmin Engine. This is my song, titled "Forest Waves", and I intend to either put it in a custom made area or give it to Espyo for use with his. I am sort of renewed with my interest in this project; for now I'll make things, like graphics and music for it, but I don't have much experience in C++. I will also attempt to make an area in the game itself. One more thing: I have many ideas, most of which revolve around gameplay mechanics: something that uses the engine's simplicity and limitations to create a very high content:re-playability ratio. I will make a subpage on my user page detailing these ideas. As for support revolving around the engine itself, I, although busy with the end of high school (and I am already taking college) I will try to look back and provide support. I hope and trust that this will become a very fun game.


 * Hi! Right, I am pretty late on an update, aren't I? Truth is I've been ultra-busy lately. But no worries, I have no intention of giving up on the project, and almost all of my big tasks are over, meaning I'll only focus on Pikipedia and the engine. The engine is just an engine, and it'll be made to support any song to the game creator's choice. So I can't add that to the engine itself, but people can add it to their game while making it. Speaking of, the song sounds pretty nice! It's a bit too ambiance-based for the likes of Pikmin, though, so it might not suit as well as other songs. I was thinking of composing my own music for the fangame I'll be making, but if I ever run out of time, I'll use yours and other free music online, if you don't mind. Feel free to help in any way you can, be it ideas, spreading the word, or anything else – you don't necessarily have to help with the code. I also have some gameplay mechanic ideas, of course, but feel free to contribute with your own. Also, I guess this is a good a time as any to say this, but because the engine is increasingly more demanding, I'll put less focus on flexibility so that I can focus more on actually getting the engine to a near-complete state. Meaning that outlandish gameplay ideas will be even harder to implement... Well, we'll let time decide on how that one turns out. Thanks for the support! — {EspyoT} 18:53, 1 January 2015 (EST)


 * About your fangame, sure, I'd compose some music if you didn't have time. Given greater descriptions I could compose types of sound more suitable to the theme.


 * And about the engine itself, I was thinking a few things to improve. The Pikmin get stuck randomly, which is something I will further examine. They seem to be able to be thrown, but don't move, so perhaps it is the recognition of the Pikmin's position that is wonky. Also, the Bulborb is much too strong. When Pikmin get stuck in front of it, which is understandable, I never am able to defeat it. Maybe by decreasing its base health by half, you can make for a better balance. When the Pikmin seeds come out of the Onions, there should be a sound to accompany it. As I understand the sounds can be added in, but it would be best if the game engine itself have it. Lastly, the game engine could already in its current state make for a solid game, if you make a GUI for the area making, or an ingame editor. I know this is planned, but just to highlight the importance of it, as you know it would make the engine much more user friendly. If you could edit the walls and vertexes in the game via an editor menu, it would feel so much more complete, and make it easier. Also just a generic start menu, while not necessary, would prove very beneficial. Everyone is trained to want a start menu, like a game tradition from back when they were actually useful for arcades.


 * As for the ideas, they were just base ideas to spruce up gameplay, so it may or may not be possible. Adding an objective system, like Pokos or Coins for Treasure, making pellets more sparse (which is already possible), and a few other things would help out any game's re-playability. I am assuming caves are possible, but I haven't seen a way to transition from one map to another. With caves, you could allow for much more intensive world-building. Because of the default speed of the captains, more ground to cover is much more gameplay. I had thought of a simple voxel system for dungeons, like randomized maps. They would have basic tiles of worlds that could be inter-changeable, to create an infinite possibilities of quick cave layouts. Given the nature of simple games with voxel mechanics, like Minecraft and Terraria, a lot of gameplay could be made from little code. So perhaps making a tile system for ground terrain, you could have on your hands even easier to implement map making tools.


 * I hope a few, if not all, of these ideas are enough to sustain the fact that I like this project. If I made the time, I could learn C++ and make my own version of the engine, but that would be a long time from now. I would personally add in the objectives, menus, and voxel elements myself. I would also add in loot, say Armor like different helmets that drop from killing beasts, and they would subtly influence something like walk speed, throw speed, or Pikmin strength. Imagine an experience system that allowed difficulty to be in an RPG like curve, so you could only defeat later area creatures late in the game. Just a thought, however. That is on the extreme side of exotic to implement. For now, bugfixes and making the engine more versatile is exactly what you are probably going to do. Like I said, if I learn C++ any time soon, a possibility given the nature of free courses, yay Khan Academy, then I can help with code. Thanks for being awesome, by the way. This project is amazing.


 * Oh yeah, I was typing this and forgot my question: Saves
 * What will be implemented in terms of saving the progress of games? Maybe save-states could be possible, but if the startup is based on an already established code, then maybe that's a little more complicated than I'd think.


 * Good ideas, but I feel like there's a point I haven't made clear. The engine is still really young in its age. Most of the things you mentioned will be added or changed in the future. I don't say this sounding condescending, but I felt like you had the idea that I'm aiming to make the engine near-final as it stands right now, which is not true. I do appreciate the feedback, even when it's obvious, but I just wanted to make it clear that the latest release had some really rushed things. Still, I'll discuss some of the great points you mentioned.


 * As for the music, we'll worry about that in the future.
 * The Pikmin get stuck randomly, and so do the leaders, on some walls. I haven't been able to pinpoint why, but I might have to revamp the collision code. I've been meaning to fix that for a while, as no game that's worth the name "game" could ever be allowed to have sticky walls! They also randomly glitch and become in some limbo state where you can't grab them. It's weird, but it'll all be fixed in the future, to the point where it resembles a canon Pikmin game; don't worry. The Bulborb is also incredibly broken, and unbalanced. Broken because the script and code that controls it needs to be remade, as it's currently quite glitchy. And like you said, it is indeed unbalanced – too much HP, attacks too frequently, too fast, etc. I plan on fixing all of these before the next release, so this will be the first and last time you'll see an overpowered Bulborb. As for the sounds, they're a bit different from the music, in that most of them will come packaged with the engine. The sound of seeds being expelled will be one of them. I'll also add some sparkling particles after the seeds are expelled. Like I pointed out yesterday, I'm focusing more on getting the engine to work, instead of making existing things prettier. As for the editor, I got news for you: both an animation editor and area editor already exist, and they're pretty much complete! I couldn't possibly design the area I did by hand. They'll be made easily accessible in the future, but for now, you'll have to do something weird to access them:
 * On Windows, open the command line (check the Start Menu, accessories), and type "cd ", followed by the folder to where the game is. You can know what folder it's on by opening it normally and checking the path at the top of the window. It should be something like "C:/Users/_____/Desktop/Engine", or something of the sort. Press Enter when you're done. This will basically make you enter the folder, via the command line.
 * Next, type the name of the engine's executable, then a space, and then any letter. This will run the engine with the animation editor.
 * To open the area editor, do the same, except instead of having ONE word after the name of the executable, have TWO words.
 * Menus will exist, and they will be pretty standard. I'm aiming to have a title screen that can be customized for each game, but still have the standard options: Story, Challenge, Multiplayer, Options, Quit. Other menus will also exist, of course. I'll try to make it resemble a canon Pikmin game.
 * As for cave generation, I'll have to make some sort of hybrid, and base myself on what Pikmin 2 does. I won't make tile-based levels, as that would requiring re-writting a lot, when I already have a decent map geometry system. But caves in Pikmin 2 are based on, so I think I'll have to do something similar.
 * If you do not know how to program, you can give up on the idea of C++. I don't mean this an insult, by any means. It's just that to make something that's optimized and a bit specific like this, it requires several years of practice. If you're already a programmer, then you'd do good in learning C++. But ultimately, don't worry about it. I'm grabbing the code by the horns, and so far, I'm handling it pretty nicely. Thanks for the offer, anyway! The idea of a Pikmin engine that supports elements like RPG-like leveling would be pretty insane, but I wouldn't count on it. We can get back to it in a few years, though. You never know!
 * Finally, saves: the engine should save the progress a player has made on story mode, as well as the alternate play modes, like challenge. I'm aiming to make it as detailed as the canon games, meaning it saves the last enemies you killed (so it knows in which day to respawn them), the last area you chose on the area selection menu, and other such tidbits. Savestates will likely not be implemented, because a) they can be used for cheating, by having people go back and undo any sort of mistake they make, and b) it could take months to get a savestate system that really works.
 * Like I said before, because the engine is still changing, worrying about resources (graphics and sounds) right now may be a bit premature, because stuff that's thought to be needed now might not be needed or might change in the future. So at this point, what I really need is just to get the word spread, and to receive more feedback. — {EspyoT} 06:18, 2 January 2015 (EST)


 * Thank you for the help accessing the editors! I believe that simple instruction set should be included in the README file for future releases. And to reply to the longevity of the project, I was merely suggesting end-game suggestions, for when the engine itself is complete, very far from now. I realized as soon as I looked into the source code of the engine that this will take a ton of time, a lot of effort, and slaving over the code for countless weeks. I myself haven't mastered any single programming language, other than my rudimentary "mastery" of HTML because of WikiMedia's markup and CSS because of its role in styling the site. I have dabbled in Javascript, however, I admittedly only made a mod for Minecraft, not something transferable to other means. I have a basic grasp of logic, and I am currently working towards learning mathematical logic systems that help solve problems, a flowchart-esque heuristic type logic flow. But I am limited to my ignorance of any non-web programming. I have seen what C++ can do, and Python, and Ruby, and so forth, but I never took the time to slave over the idea. However, this engine has me excited for the possibility that code brings about: from simple binary, derived are characters, which, when interpreted by a cluster of switches at the nano scale, form words, which define processes, which are transmitted to the display for us as biological entities to perceive. Once our optic nerves impress the sensory data into our working memory, and then to our short and long term memory, we are forever effected by it. From the infinite complexities of combinations comes reason, meaning, and emotion. This fascinates me to no foreseeable end.
 * I suppose this is a promise of my support. I envy your dedication to this, as I am fully aware it is a tiny droplet of water in the probably full pond of life you have. Most of all, I appreciate your making of this entire wiki's dreams come true. Once completed, the engine will serve to make the fanon true games. Thanks for that. 13:56, 2 January 2015 (EST)

Birthday update
New update! Please comment on it here. — {EspyoT} 19:10, 15 August 2014 (EDT)


 * I love it! This is going to sound really mean, but I was delighted when the Bulborb first ate my Pikmin! The height concept, the better graphics, the plucking animation, the walls, the sign, I loved it all! I could tell the game was still W.I.P., but it was wonderful to play around with.


 * As for your question of whether the community is excited about this or not, I cannot speak for others. I for one am very excited every time I see a new update to the game. Waiting long periods between updates somewhat diminishes the excitement, but then it updates and I am excited all over again.


 * I can't really say much other than that I love this, and I hope you keep up the awesome work!


 * Thanks! I've been getting positive feedback from other people too, but it's looking a bit quiet at the moment. As for the updates, they keep happening, and you can always check out the github page to see what my latest changes are. But I'd rather focus on posting meaningful updates instead of frequent updates. — {EspyoT} 14:43, 16 August 2014 (EDT)

While I am disappointed by long delays, I do support your approach. It is disappointing when you hear of an update to a game and only get 1 or 2 things done differently.

Looks exciting!