If you want to contribute to the project directly by writing code:
- Fork the repository
- Clone the forked repository onto your machine
- Make and commit changes
- Push the changes
- Open a pull request, make sure to state what was changed
- Your code will be tested and reviewed
Your changes should cover:
- New features
- Bugfixes
- Typo and grammar corrections
- Performance improvements
Your code must also be tested on a actual Nintendo 3DS, the 3DS browser is very outdated and does not have many of the modern features.
Most notable issues:
- Missing
animation
andtransition
in CSS (alternative: scripts/lib/anim.js) - Missing
let
- Inability to make lambda expressions (
() => {}
) - Only D-pad and A buttons are usable. (Other keys have a built in functionality in the browser. They can be detected but can't be disabled)
- Lack of class functionality. Using
class
will result in a reserved keyword error
For more details visit https://en-americas-support.nintendo.com/app/answers/detail/a_id/13802/~/nintendo-3ds-internet-browser-specs
Also see https://developer.mozilla.org/ whenever you need to check if a property or a function is supported on the 3DS, check the compatibility for Safari and the year it was added. Features up to 2015 should work.
- Your code must work on both PC/mobile browser and the 3DS browser.
- Your code has to be human readable, using any obfuscated code is prohibited.
- Don't make redundant code, the site has already built in libraries to handle things like linear interpolation, animations and easy gamepad input detection.
- Avoid using external libraries as they are often not compatible with old browsers.
- Controls have to be indicated with the 3DS system font characters. Unicode table
- All pages have to be built on top of template.html, unless they have no visual functionality (example: redirect page)
- Follow this file structure:
games
|_ gameName
|_ gameName.js
|_ gameName.css
|_ index.html
other
|_ appName
|_ appName.js
|_ appName.css
|_ index.html
- Avoid using absolute paths such as
/styles/global.css
so the site can run without a server (ex. when just opening HTML file locally in your browser). Use../../styles/global.css
instead. Absolute paths should only be used if the same page can be accessed from multiple URLs (such as the 404 page).
If you found a bug or want to suggest something, go to issues.
If you are reporting a bug, fully explain it. Doesn't work, Broken, Glitchy, Buggy are not valid bug reports.