Concept Feedback #26
Pinned
CodeDoctorDE
announced in
Announcements
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
This is a concept for the cross platform game application Qeck.
It should allow you to play card/board/... games with or without internet with multiplayer support
General idea
You have a custom game board on all your devices. You can place different types of objects on the table in a grid pattern. The objects can be moved around and modified. You can play together with other people on the same board.
Team
This is a concept to control who can see what on the table.
You can join and create teams.
Grid
The grid is the base of the table. It is an infinite 2D grid where you can place objects. The grid is divided into cells. Each cell can contain multiple object.
A cell can have different properties:
Objects
There are 2 different types of objects on a table:
Figures
Figures have different properties:
Custom rules
Rules can be defined for the table and defines what events are cancelled (similar to the minecraft bukkit plugin system).
But then it's not possible to save the current state and play it back later.
If you don't play with any rules you can freely move objects and boards around, delete them and make everything you like. This is useful if you know the people you play with and trust them.
Scripting
Webassembly
Wasmtime (because we need interrupts)
Pro:
Contra:
Luau
https://github.com/mlua-rs/mlua
Pro:
Contra:
Packs
Every rule, board and figure is part of a pack. A pack is a collection of objects that can be used together. For example, a pack can contain all the objects for a game of chess. The pack is saved as a zip file.
There are already a few packs available in the application. You can also create your own packs and share them in Luna (an asset store that will be hosted static on github actions) for example.
Networking
There are different ways to play together with other people:
Local
This is the simplest way to play together. You can play together with other people on the same network (LAN).
It will create a websocket server and every client can connect to it.
Online
This is a more complex way to play together. The server defines the games and the clients can connect to it. The server can also add authentication to allow to have leaderboards, friends and other features.
Custom server
This is a middle way between local and online. You can define your game like in local but can connect to it from everywhere.
Beta Was this translation helpful? Give feedback.
All reactions