serverless-websockets-quest
An ADND style web-based game that combines serverless with websockets to achieve a realtime experience (by ably-labs)
collaborative-pixel-drawing
A collaborative pixelart drawing carnvas to demonstrate pub/sub using Ably or Azure WebPubSub. (by ably-labs)
Our great sponsors
serverless-websockets-quest | collaborative-pixel-drawing | |
---|---|---|
5 | 3 | |
8 | 1 | |
- | - | |
0.0 | 0.0 | |
7 months ago | 8 months ago | |
TypeScript | JavaScript | |
Apache License 2.0 | Apache License 2.0 |
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
serverless-websockets-quest
Posts with mentions or reviews of serverless-websockets-quest.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2022-11-11.
-
One year at Ably as a Developer Advocate
Live demo
-
Using serverless WebSocksets with Azure Functions & Durable Entities
Hi all, I created a web app (ADnD style mini game) recently to demonstrate how to use serverless WebSockets (Ably) and combine it with Azure Functions to send realtime updates to the client (based on VueJS and hosted on Azure Static Web Apps). The Azure Functions use Durable Entities (part of Durable Functions) to store a centralized game state, and as soon as the state is updated the clients are notified of this change. Full blog post is here, the game can be played here, and you can have look at the code on GitHub.
-
Quest for serverless WebSockets, an adventure with Azure Functions & Durable Entities
[JsonObject(MemberSerialization.OptIn)] public class GameState : IGameState { // Only showing the class members relevant for this blog section. // For the full implementation see https://github.com/ably-labs/serverless-websockets-quest/blob/main/api/Models/GameState.cs [JsonProperty("questId")] public string QuestId { get; set; } [JsonProperty("phase")] public string Phase { get; set; } public async Task InitGameState(string[] gameStateFields) { QuestId = gameStateFields[0]; Phase = gameStateFields[1]; await _publisher.PublishUpdatePhase(QuestId, Phase); } [JsonProperty("players")] public List PlayerNames { get; set; } public async Task AddPlayerName(string playerName) { if (PlayerNames == null) { PlayerNames = new List { playerName }; } else { PlayerNames.Add(playerName); } if (IsPartyComplete) { await UpdatePhase(GamePhases.Play); await Task.Delay(2000); await AttackByMonster(); } } public async Task UpdatePhase(string phase) { Phase = phase; await _publisher.PublishUpdatePhase(QuestId, Phase); } private async Task AttackByMonster() { var playerAttacking = CharacterClassDefinitions.Monster.Name; var playerUnderAttack = GetRandomPlayerName(); var damage = CharacterClassDefinitions.GetDamageFor(CharacterClassDefinitions.Monster.CharacterClass); await _publisher.PublishPlayerAttacking(QuestId, playerAttacking, playerUnderAttack, damage); await Task.Delay(1000); var playerEntityId = new EntityId(nameof(Player), Player.GetEntityId(QuestId, playerUnderAttack)); Entity.Current.SignalEntity(playerEntityId, proxy => proxy.ApplyDamage(damage)); await Task.Delay(1000); var nextPlayerName = GetNextPlayerName(CharacterClassDefinitions.Monster.Name); await _publisher.PublishPlayerTurnAsync(QuestId, $"Next turn: {nextPlayerName}", nextPlayerName); } }
collaborative-pixel-drawing
Posts with mentions or reviews of collaborative-pixel-drawing.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2023-05-04.
-
What should be done with abandonware libraries?
It's based on https://github.com/ably-labs/collaborative-pixel-drawing
-
One year at Ably as a Developer Advocate
GitHub repo
-
Cloud pubsub services compared: Azure Web PubSub & Ably
TLDR: Draw on the live canvas, or look at the source code in the GitHub repo which includes CodeTours to guide you through the solution.
What are some alternatives?
When comparing serverless-websockets-quest and collaborative-pixel-drawing you can also consider the following projects:
agile-flush-vue-app - Use this app to collaboratively estimate the stories for the next sprint.
ably-cli
ably-control-api-action - A GitHub Action to use the Ably Control API.
vscode-ably - VSCode extension that allows management of Ably apps
oclif - CLI for generating, building, and releasing oclif CLIs. Built by Salesforce.
serverless-workflow-visualizer - Web application that uses Ably to visualize the progress of a serverless workflow.
DurableFunctionsMonitor - A monitoring/debugging UI tool for Azure Durable Functions
Fable.SignalR - A functional type-safe wrapper for SignalR and Fable.
POCDungeonDraw - Proof of concept for dungeon generator (for Shining Sword). Design-time drawing and gametime exploration, WebRTC support.
serverless-websockets-quest vs agile-flush-vue-app
collaborative-pixel-drawing vs ably-cli
serverless-websockets-quest vs ably-control-api-action
collaborative-pixel-drawing vs vscode-ably
serverless-websockets-quest vs oclif
collaborative-pixel-drawing vs serverless-workflow-visualizer
serverless-websockets-quest vs DurableFunctionsMonitor
collaborative-pixel-drawing vs agile-flush-vue-app
serverless-websockets-quest vs serverless-workflow-visualizer
collaborative-pixel-drawing vs Fable.SignalR
collaborative-pixel-drawing vs POCDungeonDraw