Ghost Smash is a type of whack-a-mole game where you catch ghosts and earn scores! Sometimes these ghosts will cast black magic on you so you can only see a dark screen but just keep catching them!
My entry for js13k, the game size itself is 11kb, except for the NEAR-SDK-JS part ^^
Point and click, catch Back Ghost and Green Ghost, and avoid the red one!
Type of Ghosts:
- Black Ghost: +1 score
- Green Ghost: +1 score & +2 seconds
- Red Ghost: -2 score & -2 seconds
- Wallet Selector
- Login / Logout with NEAR
- Top 6 high scores are stored on NEAR blockchain
NEAR Protocol is a sharded, proof-of-stake, layer-one blockchain that is simple to use for users and developers, secure and scalable. Learn more about NEAR at: https://near.org
Everything created by me with sounds from https://killedbyapixel.github.io/ZzFX/
If you haven't installed dependencies during setup:
npm install
Build and deploy your contract to TestNet with a temporary dev account:
npm run deploy
Test your contract:
npm test
If you have a frontend, run npm start
. This will run a dev server.
- The smart-contract code lives in the
/contract
folder. See the README there for more info. In blockchain apps the smart contract is the "backend" of your app. - The frontend code lives in the
/frontend
folder./frontend/index.html
is a great place to start exploring. Note that it loads in/frontend/index.js
, this is your entrypoint to learn how the frontend connects to the NEAR blockchain. - Test your contract:
npm test
, this will run the tests inintegration-tests
directory.
Every smart contract in NEAR has its own associated account.
When you run npm run deploy
, your smart contract gets deployed to the live NEAR TestNet with a temporary dev account.
When you're ready to make it permanent, here's how:
near-cli is a command line interface (CLI) for interacting with the NEAR blockchain. It was installed to the local node_modules
folder when you ran npm install
, but for best ergonomics you may want to install it globally:
npm install --global near-cli
Or, if you'd rather use the locally-installed version, you can prefix all near
commands with npx
Ensure that it's installed with near --version
(or npx near --version
)
Each account on NEAR can have at most one contract deployed to it. If you've already created an account such as your-name.testnet
, you can deploy your contract to near-blank-project.your-name.testnet
. Assuming you've already created an account on NEAR Wallet, here's how to create near-blank-project.your-name.testnet
:
-
Authorize NEAR CLI, following the commands it gives you:
near login
-
Create a subaccount (replace
YOUR-NAME
below with your actual account name):near create-account near-blank-project.YOUR-NAME.testnet --masterAccount YOUR-NAME.testnet
Use the CLI to deploy the contract to TestNet with your account ID.
Replace PATH_TO_WASM_FILE
with the wasm
that was generated in contract
build directory.
near deploy --accountId near-blank-project.YOUR-NAME.testnet --wasmFile PATH_TO_WASM_FILE
Modify the line in src/config.js
that sets the account name of the contract. Set it to the account id you used above.
const CONTRACT_NAME = process.env.CONTRACT_NAME || 'near-blank-project.YOUR-NAME.testnet'
On Windows, if you're seeing an error containing EPERM
it may be related to spaces in your path. Please see this issue for more details.