pull down to refresh
@NostrGameEngine
26,401 sats stacked
stacking since: #1004995longest cowboy streak: 1npub146wut...akrsdllryz
0 sats \ 0 replies \ @NostrGameEngine OP 6 Sep \ parent \ on: Nostr Game Engine v0.1 ! nostr
It is on the roadmap, but it might require some more time, since iOS doesn't support Open GL ES 3 natively, and we need that to get the best out of the engine.
So we are going to need to tap into the Metal API.
The support to compile games as web apps (that can also be installed in Iphones) will likely come first.
Basically every game uses a set of core services that are often Steamworks, Epic Online Services, Google Apis or stuff that is built-in in the engine or by the developer.
These services allow the game developers to make players connect to each other (for multiplayer), to store persistent data, identify the players, make micro transactions, show ads, distribute game updates etc...
But what they have in common is that the data always need to pass through these companies infrastructure.
- For the developer this is costly to maintain.
- For you, it means you never own the game, you may not be able to play it offline or in a local network, if the developer fails or the backing service fails, your game is gone.
There are p2p games, but there is a catch: you need a coordinator, and guess who owns the coordinators.
So, this is the current state of affair that is hidden deep into the games codebase.
NGE v0.0 and v0.1 decentralized most of this stuff by replacing Steam/Google etc.. servers with nostr relays and by using nostr keys for user accounts.
Cutting out middleman signaling servers is smart. How does it handle relay outages or flaky connections? Any backup or fallback plans?
It can use multiple signaling relays simultaneously. Since signaling packets are very small, it's safe to include a large list of public relays in the game.
As long as both players have at least one reachable relay in common, they can initiate the RTC connection. After that, traffic goes peer-to-peer and is handled by WebRTC, which generally does a good job managing flaky or changing network conditions.
The developer can also make the relay list configurable in the game settings, so players on a LAN, for example, can specify a local relay.
Aside from that, depending on the type of game, it might need a lag compensation algorithm (e.g., to extrapolate delayed position updates). This is game-specific and something that's typically required in any multiplayer game with a high packet rate, even in client-server architectures, because networks are just not so reliable in general.
Once this sees more real usage, what’s the plan for anti-cheat ? Especially for leaderboards or any persistent data tied to pubkeys.
This is further ahead in the roadmap, but it's likely to include a reputation-based anti-cheat system.
The engine will support tying game activity to a public key (that could be a random anonymous key) and casting votes using game-specific logic. These votes will influence the reputation of the associated public key.
It will be possible to filter results, connections, and other elements based on these votes, weighted by the reputation of the pubkeys who cast them. This would allow features like leaderboards or matchmaking restricted to players with a certain reputation threshold.
There may also be integration with signing mechanisms and TPMs as part of the DRM milestone, though I’ll need to research that further.
Of course, nothing prevents a developer from implementing any anti-cheat measures within their game.
However, I want to avoid including in the engine codebase any solutions that:
- Are intrusive or interfere with the operating system (e.g., kernel-level anti-cheats)
- Compromise player privacy by requiring real identities or linking activity to a main public key
- Make the engine difficult to port across different platforms
72 sats \ 1 reply \ @NostrGameEngine OP 13 Jun \ parent \ on: Nostr Game Engine v0.0 - Released nostr
Thank you!
The main feature in this release is p2p networking, which is great for real-time multiplayer games. However, the engine will have features that will benefit single-player games as well.
These include in-game Nostr-based advertising, shared leaderboards, verifying game ownership, and even syncing game saves across devices. All of which could be interesting for single-player developers too.
100 sats \ 0 replies \ @NostrGameEngine OP 13 Jun \ parent \ on: Nostr Game Engine v0.0 - Released nostr
Thanks!
Java applets are dead, but this is going to be transpiled to javascript with teavm in ~1.5 months (just the time to get some more nostr stuff on the codebase first)
Support for Android, iOS, and Web Browsers is on the roadmap.
( I've already ported the original jMonkeyEngine ages ago. )
GENESIS