0.9.1 • Published 16 days ago

gamewall v0.9.1

Weekly downloads
-
License
UNLICENSED
Repository
-
Last release
16 days ago

⚠️! WARNING !⚠️

THIS REPOSITORY IS A WORK IN PROGRESS. NOT ALL DOCUMENTED FEATURES ARE FUNCTIONAL YET.

insert gamewall logo here

Game development kit for the Gamewall platform. Includes build tools integrated with the Gamewall Simulator, an API mock, and developer documentation.

⚠️! WARNING !⚠️

The compiled outputs of this package will not run outside of the Gamewall environment. Sign up here for a developer account.

Getting Started

The recommended way to start a new game project is through the command-line utility:

npm create gamewall@latest

(Or, alternatively, npx gamewall create)

This will initialize a TypeScript-based repository with the Gamewall SDK already installed. Alternatively, you can manually install the SDK:

npm install gamewall

We recommend adding the following entries to your scripts entry in your package.json as well:

{
    "start": "gamewall serve",
    "build": "gamewall build --output-folder dist"
}

These are added by default to a project created with the command-line utility. We recommend using the start command for the development process, which is fully integrated with the simulator, allowing for quick and seamless testing. The build command can be used to generate production-ready game packages. If you'd like to create a developer-friendly package to share internally, you can run gamewall build --dev to generate one.

Should you opt for the manual install, you will also need to create a manifest.yaml file. Refer to the manifest page in the docs to see your full range of options. Here is a minimal example of a manifest:

gamewall_spec: '1.0'

name: My Game # human-readable name
codename: my-game # machine name (limited to a-z, 0-9, and -)
description: | # a short description that shows up for your game entry
  An example game to show the Gamewall SDK
thumbnail: thumbnail.png # an image for your game entry, in ./assets
author: Me Incorporated # human-readable author name
version: '0.1' # game version, must follow semver

screens_available: # an array of screens your game can show
  - screen
  - controller

defaults: # specifies which screens to show unless otherwise specified
  screen: screen # the default choice for large-format screens
  controller: controller # the default choice for user devices

playerCount: # specifies how many players your game is able to support
  min: 1
  max: 4

settings:
  tickrate: 128 # number of discrete timesteps per second
  queueLength: 80 # number of ticks retained in memory
  autoInputDelay: true

The manifest is used to specify any and all metadata the execution environment needs to know about. Only the screens and user devices will execute your game code. Notably, the Gamewall servers do not execute your code, therefore some implementation details, like the tickrate, player counts, and input delay settings, need to be exposed in this manifest. Learn more in our in-depth documentation.

Developing For Gamewall

Once you have the SDK installed, to run the development environment you just need to sign in to Gamewall and navigate to the simulator, then run the start command:

npm start

(Alternatively, run npx gamewall serve if you don't have the script configured.)

Running the build tools in serve mode automatically rebuilds and serves the build artifacts on port 31302, which the simulator will pick up. Your game files should be automatically loaded at this point, and you should see something like this:

insert build tools picture here

You can press the play button to run your game and use the additional controls to pause or restart it at any point. The simulator includes a controller in the sidebar, but you can also use the QR code to connect your phone and test with a realistic control scheme.

Additionally, you can connect multiple phones using the QR code to simulate a multiplayer game. You can also share this screen with your coworkers either by

  • directing them to the share screen page and giving them the 2x6-digit pin for your session, or

  • sending them the share link generated and displayed under your QR code

They will be able to join either by scanning their own QR code or using their on-screen simulated controls, allowing you to test out multiplayer experiences without being confined to a single screen.

Any code changes you make will be picked up by the simulator while the dev tools are running. The simulator will offer you an option to reload the game, at which point the new version of the game is loaded into the sandbox on all connected devices. You can also opt for a hot reload, which preserves the game state and keeps the game running.

⚠️! WARNING !⚠️

Do not navigate away or use the browser's reload function while you're controlling a shared session. Doing so would disconnect your coworkers.

You can debug the game using the browsers built-in debug tools (commonly activated with the F12 hotkey). Development mode builds are not minified and come with sourcemaps, ensuring a high degree of compatibility with existing browser debuggers.

Publishing For Gamewall

When your game is ready for release, simply run

npm run build

(Or npx gamewall build if you don't have the scripts configured)

This will generate a .gwpack file containing your production-ready game code and all your assets, as well as a marker that the build is intended for production. You can then submit this build on our game submission page where, if accepted, it will become available in live environments.

In-Depth Documentation

Once your environment is set up, please refer to our in-depth docs to learn

or use our API reference to see the full range of methods available to you.

If you're new to Gamewall, we recommend starting with a project generated using the command-line tools, which provides a basic boilerplate setup, and following the tutorials starting with the manifest and the game loop.

Legal Disclaimer

Copyright (c) 2024, Mondriaan DC Kft.

This software is intended for use to contracted partners of its respective authors. Access to this software shall not be construed as a license to use, modify, or distribute this software. License to use this software is granted only through a separate written agreement.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

0.9.1

16 days ago

0.9.0

23 days ago

0.8.0

25 days ago

0.7.0

1 month ago

0.6.0

1 month ago

0.5.0

1 month ago

0.5.2

1 month ago

0.5.1

1 month ago

0.4.3

2 months ago

0.4.2

2 months ago

0.3.0

2 months ago

0.2.1

2 months ago

0.2.0

2 months ago

0.2.3

2 months ago

0.4.0

2 months ago

0.2.2

2 months ago

0.2.4

2 months ago

0.1.0

2 months ago