OpenTaiko Documentation
repository·main·Indexed 20 days ago
https://github.com/0aubsq/opentaikoA highly customizable Taiko-style rhythm game engine and spiritual successor to TJAPlayer3. Documentation covers TJA file extensions including new note types (A, B, C, F, G), tower settings, and Dan/Extra Exam criteria. It also provides technical guidance on implementing modal lifecycle methods via Lua using registerNewModal(), configuring SimpleStyle skin fonts, and managing assets through the OpenTaiko Hub.
What's inside OpenTaiko
- OpenTaiko is a rhythm game software that serves as the spiritual successor to TJAPlayer3-Develop-BSQ. It aims to provide diverse ways to play Taiko, enhance skin customization, and optimize the overall user experience. It is not intended to be a precise replica of commercial games.
Guidelines for modifying and redistributing OpenTaiko
mainOpenTaiko is licensed under the MIT License. You are free to modify and redistribute the software, provided you follow these rules:
- Self-Responsibility: All modifications and redistributions are done at your own risk.
- License Compliance: Due to the licenses of the libraries used, you must include the
Licensesfolder in any modified or redistributed version. - Third-Party Assets: If you include external skins or chart (譜面) packages, you must adhere to the specific rules and terms set by those respective creators. The OpenTaiko license does not apply to these external assets.
License and redistribution rules
mainOpenTaiko is licensed under the MIT license.
- Edits and Secondary Distribution: You are allowed to make edits or redistribute the software, but you do so at your own responsibility.
- Required Files: When editing or redistributing, you must include the
Licensefolder associated with the libraries used. - Third-Party Assets: Always follow the specific creators' licenses and rules for skins or song packages. The OpenTaiko license does not cover third-party assets.
Licensing for OpenTaiko Original Soundtrack usage
mainSongs within the
OpenTaiko Chapter(excluding those with specific licenses) have non-exclusive licenses.Permitted Uses:
- OpenTaiko streamings on services like Twitch, YouTube, etc.
- OpenTaiko gameplay videos on services like YouTube, Dailymotion, etc.
- OpenTaiko related videos on services like YouTube, Dailymotion, etc.
Important Restrictions:
- Composers retain rights to their songs. For any use case other than those listed above, you must obtain explicit authorization from the composer or secure an appropriate license.
- If you wish to support a composer, use the links provided in the credits section of the project.
Important usage precautions for OpenTaiko
mainDisclaimer
Use OpenTaiko at your own risk. The developers do not provide support for skins or derivative builds that violate copyright laws.
Troubleshooting and Resources
Before asking questions, please consult the following resources:
Hardware Requirements
For a comfortable experience, ensure your PC can maintain a constant 60fps. Performance may be poor on hardware unable to meet this requirement.
Version Support
Support is only provided for the specific versions released. Using other versions is at your own risk.
Obtain OpenTaiko songs, skins, and assets
mainThe main repository only provides minimum assets for development. To get full content, use the OpenTaiko Hub or the following dedicated repositories:
- OpenTaiko Soundtrack: https://github.com/OpenTaiko/OpenTaiko-Soundtrack
- OpenTaiko Skins (OWM, Simple Style): https://github.com/OpenTaiko/OpenTaiko-Skins
Submitting feature requests and proposals
mainIf you have a request for a special feature implementation, please contact the team via Discord.
Note on UI/UX Proposals: Proposals requesting that UI or UX elements be implemented to look or feel like the original game (本家) will generally be rejected.
How to report issues and crashes
mainWhen posting an issue, you must include the following information to ensure it can be addressed:
- Release Version: Specify which version of OpenTaiko you are using.
- Recreation Steps: Provide clear steps to reproduce the issue.
- Crash Logs: If the software crashes, you must attach the
TJAPlayer3.logfile.
Note: Ensure your posts comply with Japan and France copyright laws.
Feature Requests: Contact the team via Discord before requesting features. Note that requests to "recreate UI/UX as per [Commercial Game Name]" will be denied.
Requesting new features
mainIf you wish to request a new feature, please contact the authors via Discord first.
Note: Requests that ask to "rebuild the UI/UX to match [Commercial Game Name]" will be rejected without response.
How to report Issues and Pull Requests
mainWhen submitting an Issue or Pull Request, please adhere to the following requirements:
- Copyright Compliance: Ensure all content follows French and Japanese copyright regulations.
- Required Information: You must state the release version and the steps to reproduce the issue.
- Crash Reports: If reporting a crash, you must attach the contents of
OpenTaiko.log. - Language Translations: If you wish to add translations for the CLang language, please contact the team via Discord in advance.
Use Tower-related additional commands in TJA files
mainYou can control life mechanics and visual tower skins within a TJA (chart) file using the following commands:
LIFE <number>: Sets the starting life value. The default is5. Each note miss reduces life by 1. When life decreases, a 2-second invincibility period is triggered.TOWERTYPE <number>: Changes the skin used during gameplay (from5_Game\20_Tower\Tower_Floors) and the result screen skin (from8_TowerResult\Tower). The default is0.
LIFE 5 TOWERTYPE 1Implement Modal lifecycle methods
mainWhen customizing Modals via Lua, you can implement several lifecycle methods to control resource allocation, logic updates, and rendering:
loadAssets(): Perform all resource allocation here. This is called at launch and during every skin reload.update(): The regular update loop (e.g., for incrementing time counters). This runs beforedraw().draw(): Used for rendering displayables. This runs during each result screenDraw()iteration.isAnimationFinished(): Returns abool. Iftrue, the current modal animation is complete, allowing the user to press 'Enter' to move to the next modal or return to the song select screen.