Last time we built the desktop client, in 2015, NW.js was called node-webkit. Since then: - NW.js has added NaCl and some other things, ballooning the installer from 30 MB to 120 MB. (The NaCl stuff on Windows seems to be deletable, helping keep its installed size slightly smaller.) (If anyone wants to make a custom build without NaCl, that'd help me a lot) - NW.js also has a lot more files, and NSIS makes adding/removing files annoying enough that I wrote a script to automate it for me. - Apple has made Gatekeeper requirements a lot stricter, requiring setting up entitlements, Hardened Runtime, notarization, and stapling, (in addition to just signing in 2015). I documented the process because there are zero online guides for it right now. But on the other hand, this update hopefully fixes the crashes that the old desktop client has. It also fixes: - the Chrome bold emoji bug is gone - MP3 is no longer under patent, allowing us to have only MP3 files for everything - honestly I don't think we use any other Chrome feature added in the last four years |
||
|---|---|---|
| build-tools | ||
| config | ||
| data | ||
| desktop | ||
| fx | ||
| graphics-src | ||
| js | ||
| lib | ||
| replays | ||
| src | ||
| style | ||
| swf | ||
| test | ||
| .babelrc | ||
| .editorconfig | ||
| .eslintignore | ||
| .eslintrc.js | ||
| .gitignore | ||
| .htaccess | ||
| .npmrc | ||
| .travis.yml | ||
| action.php | ||
| ads.txt | ||
| apple-touch-icon.png | ||
| build | ||
| cache.manifest | ||
| composer.json | ||
| CONTRIBUTING.md | ||
| crossdomain.php | ||
| crossprotocol.html | ||
| customcss.php | ||
| favicon-16.png | ||
| favicon-32.png | ||
| favicon-48.png | ||
| favicon-128.png | ||
| favicon-192.png | ||
| favicon-256.png | ||
| favicon-notify.ico | ||
| favicon.ico | ||
| index.template.html | ||
| ladder.php | ||
| LICENSE | ||
| manifest.json | ||
| news-embed.php | ||
| package.json | ||
| pokemonshowdown.png | ||
| pokemonshowdown.psd | ||
| pokemonshowdownbeta.png | ||
| pokemonshowdownbeta@2x.png | ||
| preactalpha.template.html | ||
| README.md | ||
| recoverteams.html | ||
| robots.txt | ||
| showdown.crx | ||
| showdown.webapp | ||
| testclient-beta.html | ||
| testclient.html | ||
| tsconfig.json | ||
| tslint.json | ||
| UPGRADING-SOCKJS.md | ||
Pokémon Showdown Client
Navigation: Website | Server repository | Client repository | Dex repository
Introduction
This is a repository for most of the client code for Pokémon Showdown.
This is what runs play.pokemonshowdown.com.
WARNING: You probably want the Pokémon Showdown server, if you're setting up a server.
Testing
Client testing now requires a build step! Install the latest Node.js (we
require v10 or later), and run node build (on Windows) or ./build (on
other OSes) to build.
You can make and test client changes simply by building after each change,
and opening testclient.html. This will allow you to test changes to the
client without setting up your own login server.
You can connect to an arbitrary server by navigating to
testclient.html?~~host:port. For example, to connect to a server running
locally on port 8000, you can navigate to testclient.html?~~localhost:8000.
NOTE: Certain browsers will convert '?' to '%3F' when reading files off
of the local filesystem. As a workaround, try using a different browser or
serving the files locally first (ie. run npx http-server from the
directory this README is in, then navigate in your browser to
http://localhost:8080/testclient.html?~~localhost:8000).
The following things will fail in testclient.html:
- Registering
- Changing name to a registered name other than the one you are currently logged in with (however, changing to an unregistered name will work, and you can even change back to your original registered name afterward)
Everything else can be tested, though.
Warning
This repository is not "batteries included". It does NOT include instructions to run a full Pokémon Showdown login server, and we will not provide them. Please do not ask for help on this; you will be turned away.
If you make a mistake hosting a login server, your users' passwords can get stolen, so we do not want anyone to host a login server unless they can figure out how to do it without help.
It also doesn't include several resource files (namely, the /audio/ and
/sprites/ directories) for size reasons.
On the other hand, as long as you don't want to run your own login server, this repository contains everything you need to test changes to the client; just see the "Testing" section above.
License
Pokémon Showdown's client is distributed under the terms of the AGPLv3.
The reason is mostly because I don't want low-effort proprietary forks that add bad code that steals everyone's passwords, or something like that.
If you're doing anything else other than forking, especially if you want to some client code files in your own open-source project that you want to release under a more permissive license (like, if you want to make your own multiplayer open-source game client for a different game), please ask at staff@pokemonshowdown.com. I hold all the copyright to the AGPLv3 parts and can relicense them to MIT for you.
WARNING: This is NOT the same license as Pokémon Showdown's server.