https://github.com/wwoods/pbem-engine
A Play-By-EMail (PBEM) platform for developing and distributing games, handling all network communication so developers can focus on mechanics.
https://github.com/wwoods/pbem-engine
Last synced: about 2 months ago
JSON representation
A Play-By-EMail (PBEM) platform for developing and distributing games, handling all network communication so developers can focus on mechanics.
- Host: GitHub
- URL: https://github.com/wwoods/pbem-engine
- Owner: wwoods
- License: mit
- Created: 2019-09-06T17:30:28.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2023-01-07T11:19:51.000Z (almost 3 years ago)
- Last Synced: 2025-03-14T19:37:33.086Z (7 months ago)
- Language: TypeScript
- Size: 1.89 MB
- Stars: 2
- Watchers: 3
- Forks: 0
- Open Issues: 37
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
pbem-engine
-----------Ever wanted to make a game you can play with your friends, but not wanted to deal with the hassle of network code? `pbem-engine` is designed to handle network communications in a principled manner, allowing developers to focus on game code. The engine supports any game or software which may be implemented as a simultaneous, asynchronous turn-based game.
Setup
=====1. Install docker
2. Run "docker run --rm couchdb:2.3.1"Running a PWA
=============(This section under construction; saving notes later for this).
`pbem-engine` is designed for the creation of . That means that whatever games are made may be run in the browser, or downloaded to a user's phone or other device.
*If you only want to test your application, running it in development mode, forwarding the appropriate ports, and sharing your IP address with friends should be sufficient.* However, for production, you'll need HTTPS support, or users will not be able to install your PWA onto a device. This is required as it additionally secures your application and protects your users. The most economical and straightforward way of doing this involves:
1. A free, dynamic DNS service such as . This allows you to point a webservice name, such as "mygame.ddns.net", towards a computer you have access to.
2. An HTTPS certificate.  is a helpful repository.
3. That should be it?
Housekeeping
============Notes:
* In `tsconfig.json`, `lib: "dom"` was added until https://github.com/DefinitelyTyped/DefinitelyTyped/issues/36082 is resolved.
TODO:
* When remote game starts, there's an index error...
* Allow actions to opt-out of wait-for-network behavior (game can specify default mode of user-space actions).