Skip to content

Latest commit

 

History

History
82 lines (58 loc) · 6.26 KB

Contributing.md

File metadata and controls

82 lines (58 loc) · 6.26 KB

Contributing to Pikifen

Reporting a bug

If you found a problem while using Pikifen, please refer to the included manual's troubleshooting page. It will tell you what to do. Thanks!

Suggesting features or improvements

If you have any feedback, suggestions, or ideas, feel free to open a GitHub issue with them. Though the easiest and most direct way is to just tell me about it on the Discord server. No need to be formal with these suggestions, but check Source/documents/Todo.txt to make sure it's not already there, and also please let me know why you think Pikifen would be better with them.

Contributing with code

If you want to make your own code changes to Pikifen and you want them included in the repository, that's great! Please make sure you follow these guidelines. This assumes you're already at least a bit familiar with git, commits, pull requests, etc.

Procedure

  1. Contact me on the Discord server first. I may have feedback on how to organize things, or may not even want the changes in the first place.
  2. Make your changes (see Writing code and Commits below).
  3. Update Source/documents/Todo.txt if necessary.
  4. Update the manual if necessary.
  5. Update the manual's changelog if necessary.
  6. Open a pull request with your changes.

Writing code

  • Try to make use of existing functions and classes.
  • Try to keep your code simple – let me worry about optimizations later, if needed.
  • Follow the code style of the code around it as best you can.
  • Document any new functions or classes you create in the same way existing functions and classes are documented.

Commits

  • Try to keep each commit simple and easy to follow, and avoid going back-and-forth.
  • Use only one branch per feature or bug-fix, unless it makes sense to have multiple in one.
  • Follow the style of the commit messages as best as you can.

Contributing with content

If you've made some content to be added to the pre-packaged content in Pikifen, you can also submit it to be added! You can do this either via a GitHub issue or on the Discord server. In general, contact me first, but there are also some more notes to keep in mind.

Ownership

The content you made, once done, will be officially added to the engine. For the sake of fairness, and to help showcase diverse creations around the fanbase, you will still be recorded as the author of the content, your name will show up in the area selection menu in the case of areas, and you will still be the person to talk to for thanks, updates, feedback, etc. I think it's only fair to treat other people's content with respect, especially when I intend to use them officially for the engine, after all! That said, there are some things I'd like to point out:

  1. I may tweak the content further before officially adding it to the engine. Remember that pre-packaged content is meant to be fun to play with, and also serve as a reference point for new content, so I want the content to be as squeaky clean as they can.
  2. Once officially in the engine, the content will receive the same treatment any other official content would, in that I'll be its maintainer (not author!).
  3. Over time, I may need to remove problematic parts, make changes to make it compatible from version to version, tweak certain things for quality/balance/diversity reasons as the engine evolves, give it extra content that is currently missing from the engine, remove the content entirely, and so on.
  4. I will always try to keep your original vision intact, and I will make a fair effort to balance out your wishes with the engine's needs.
  5. I will try to talk to you about any changes worth discussing, but if you become unreachable, I will have no choice but to keep messing with the content without your input or knowledge.
  6. If you want to make some change or update to the content, it can be added to a future version of Pikifen, but it's best if we talk about it first.
  7. I won't delete or make massive changes to the content due to anyone's request, unless I have a strong reason to.
  8. You can still create and submit custom content that is about your originally made content, like a "remix" variant, or a "director's cut" edition that has things that had to be removed from the official version.

Variety

Before starting your work on content to be added officially, you should probably discuss with everyone else what your plan is. This way, we can make sure the content included are diverse in nature, and that we don't end up with something like 4 forest-themed songs, or 0 areas total that use Rock Pikmin, or something.

Quality

Content should have a minimum level of quality to make it into Pikifen. The idea is for people to have fun content to toy around with right when they download the engine. If the content looks terrible, is very boring, and makes the game lag, it won't really serve that goal, will it? On top of the basics. If the content's not good, while I will of course appreciate the effort, I will have to decline it. For areas, you can try following the area-making tips present in the included manual.

Other notes

  • For textures, songs, and sounds, make sure they aren't massive in size, and that they are royalty-free.
  • For songs:
    • Ideally, add your DAW's song project to Source/documents/Music, provided it's possible and it's not bloated with embedded samples or anything.
    • Ideally, use OGG.
    • Looped sections, if only, should play only once to help keep the file size small.
    • Credit the instruments used in the manual's credits page.
    • Edit every track files' metadata:
      • Title: e.g. "My Song", "My Song (enemy track)", etc.
      • Artist
      • Composer
      • BPM
      • Year
      • Genre: Game
      • Comment: Any comments you can think of, like what you'd put in the song's notes property. Pikifen originals use e.g. "Original composition for Pikifen. This is an extra track overlaid on top of the main track."