Padouk
Member
PNAL: A Network Abstraction Layer designed for Indie developers who want to use commercial grade networking, to make a profit out of multiplayer capabilities without becoming deeply invested network engineer themselves.
PNAL Private Preview: http://pnal.padouk.ca/
Web, Desktop, Mobile:
Relay and Netcode:
Features:
PNAL Private Preview: http://pnal.padouk.ca/
Why in Game Design, Development And Publishing :
- Even though concepts and advice presented in this thread can be accomplished with pure GML offerings, the presented approaches require knowledge of Extensions and are not intended for all members of the community. The end goal is not to advertise a 3rd party product, it's rather to propote commercial grade networking connectivity as a whole for publishing and long term maintenance of your own game.
Why not in Tutorial Forum:
- Even though concepts and advice in this thread may be observed as training material, they are not meant to be reproducible in your own environment without deeper knowledge of the underlying SDKs. This topic should serve as a conversation starter and tough leadership on advanced topics rather than training.
Why not in Marketplace Forum:
- Even though concepts and advice presented in this thread can be accomplished with pure GML offerings, the presented approaches require a binding agreement with ExitGames (Photon Realtime Public Cloud), Heroic labs (Nakama), Valve (Steam) or Amazon (GameSparks) depending on the version or target devices. Some of those require nondisclosure agreements and prevent SDK redistributable. The PNAL helps abstract the connection between GMS and either of those Service provider to benefits from their advanced networking expertise.
- Even though concepts and advice presented in this thread can be accomplished with pure GML offerings, the presented approaches require knowledge of Extensions and are not intended for all members of the community. The end goal is not to advertise a 3rd party product, it's rather to propote commercial grade networking connectivity as a whole for publishing and long term maintenance of your own game.
Why not in Tutorial Forum:
- Even though concepts and advice in this thread may be observed as training material, they are not meant to be reproducible in your own environment without deeper knowledge of the underlying SDKs. This topic should serve as a conversation starter and tough leadership on advanced topics rather than training.
Why not in Marketplace Forum:
- Even though concepts and advice presented in this thread can be accomplished with pure GML offerings, the presented approaches require a binding agreement with ExitGames (Photon Realtime Public Cloud), Heroic labs (Nakama), Valve (Steam) or Amazon (GameSparks) depending on the version or target devices. Some of those require nondisclosure agreements and prevent SDK redistributable. The PNAL helps abstract the connection between GMS and either of those Service provider to benefits from their advanced networking expertise.
Web, Desktop, Mobile:
Supported Devices*:
- [X] HTML 5
- [!] OperaGX (pending, awaiting gms runtime bug fixes)
- [X] Windows x64
- [X] Windows win32 (See [how to use win32 version of PNAL])
- [X] MacOS x86_x64
- [X] Ubuntu x86_x64
- [X] UWP x86_x64
- [!] iOS 13 (pending, emulator tested only, awaiting advanced device testing through private beta.)
- [!] Android (pending, Emulator tested only, awaiting advanced device testing through private beta.)
- [!] Fire (pending, Emulator tested only, await advanced device testing through private beta.)
- [!] Console (Refrain from discussing console (Xbox, PlayStation 4/5, Nintendo Switch) in public space. Enterprise level compatibility is available for private discussion)
*As of PNAL 2.0, a strong dependency was set with ExitGames's Photon Realtime SDK. Due to licensing terms, pre-built version of PNAL can no longer be publicly distributed, the list of compatible devices depends on your legal bindings with ExitGames.
Until this strong dependency is resolved, PNAL private builds are available as in private channels only, feel free to PM.
- [X] HTML 5
- [!] OperaGX (pending, awaiting gms runtime bug fixes)
- [X] Windows x64
- [X] Windows win32 (See [how to use win32 version of PNAL])
- [X] MacOS x86_x64
- [X] Ubuntu x86_x64
- [X] UWP x86_x64
- [!] iOS 13 (pending, emulator tested only, awaiting advanced device testing through private beta.)
- [!] Android (pending, Emulator tested only, awaiting advanced device testing through private beta.)
- [!] Fire (pending, Emulator tested only, await advanced device testing through private beta.)
- [!] Console (Refrain from discussing console (Xbox, PlayStation 4/5, Nintendo Switch) in public space. Enterprise level compatibility is available for private discussion)
*As of PNAL 2.0, a strong dependency was set with ExitGames's Photon Realtime SDK. Due to licensing terms, pre-built version of PNAL can no longer be publicly distributed, the list of compatible devices depends on your legal bindings with ExitGames.
Until this strong dependency is resolved, PNAL private builds are available as in private channels only, feel free to PM.
Relay and Netcode:
Additional Licenses:
PNAL 2.0
- [Active] Photon Realtime v5 (ExitGame) - PNAL 2.0 was developed using the realtime connectivity offering from Photon Public Cloud and Photon Server (v5). This connectivity was elected as the prime connectivity for the next PNAL release.
- [Active] nakama v3 (Heroic Labs) - PNAL 2.0 was developed using the realtime connectivity offering from Nakama v3. You can now connect to your self hosted Container.
PNAL 1.0
- [Active] Photon Realtime (ExitGame) - PNAL 1.0 was developed using the realtime connectivity offering from Photon Public Cloud. From our point of view, this connectivity is the best fit for single indie developer using Client Authoritative scenarios.
- [Pending] Heroic labs (Nakama) - PNAL 1.0 was developed using the realtime connectivity offering from Nakama v3 (Open Source). From our point of view, this connectivity is the best fit for small teams going for Server Authoritative. It was designed for teams with a dedicated back-end developer and a distinct gameplay (front end) developer. This connectivity is pending co-maintainer and paid back-end demo environment.
- [Pending] Gamespark (AWS) - PNAL 1.0 was developed using the realtime connectivity offering from GameSpark which was recently acquired by Amazon. This connectivity is pending understanding of the new terms of services from AWS.
- [Discontinued] Valve (Steam) - PNAL 1.0 was developed using Valve (Steam) SDK 1.5+ The decision was made to move away from the (deprecated) Direct Connectivity and substitute it with (new) Multiplayer connectivity. Unfortunately due to misalignment between SDK 1.4.2 required by GMS and the SDK 1.5+ required for Steam Datagram Relay this specific connectivity was paused and decommissioned from the testing pipeline. This connectivity may come back in a near future.
PNAL 2.0
- [Active] Photon Realtime v5 (ExitGame) - PNAL 2.0 was developed using the realtime connectivity offering from Photon Public Cloud and Photon Server (v5). This connectivity was elected as the prime connectivity for the next PNAL release.
- [Active] nakama v3 (Heroic Labs) - PNAL 2.0 was developed using the realtime connectivity offering from Nakama v3. You can now connect to your self hosted Container.
PNAL 1.0
- [Pending] Heroic labs (Nakama) - PNAL 1.0 was developed using the realtime connectivity offering from Nakama v3 (Open Source). From our point of view, this connectivity is the best fit for small teams going for Server Authoritative. It was designed for teams with a dedicated back-end developer and a distinct gameplay (front end) developer. This connectivity is pending co-maintainer and paid back-end demo environment.
- [Pending] Gamespark (AWS) - PNAL 1.0 was developed using the realtime connectivity offering from GameSpark which was recently acquired by Amazon. This connectivity is pending understanding of the new terms of services from AWS.
- [Discontinued] Valve (Steam) - PNAL 1.0 was developed using Valve (Steam) SDK 1.5+ The decision was made to move away from the (deprecated) Direct Connectivity and substitute it with (new) Multiplayer connectivity. Unfortunately due to misalignment between SDK 1.4.2 required by GMS and the SDK 1.5+ required for Steam Datagram Relay this specific connectivity was paused and decommissioned from the testing pipeline. This connectivity may come back in a near future.
Features:
TCP, UDP, WebSockets? Indie developers should not have to focus on this while improving their gameplay.
PNAL leverage the underlying SDK's proprietary Sockets or Datagram model and defer that decision to the real experts*
- Developed with HTML5 Rapid Prototyping capabilities in mind.
- Built and Tested on most popular devices*
PNAL leverage the underlying SDK's proprietary Sockets or Datagram model and defer that decision to the real experts*
- Developed with HTML5 Rapid Prototyping capabilities in mind.
- Built and Tested on most popular devices*
Developed and tested in harsh environment using 250ms RTT. 5x more than the expected 50ms RTT for production use cases
Developed and Test using 20 worldwide distributed bots and a strong Relay Based Topology in mind.
Relay benefits.
- Near-Zero firewall setup and reduced risk of DDOS attacks with a Relay Based connection as opposed to direct connection.
- Near-Zero maintenance cost suitable for Indie's targeted revenues as opposed to fully managed Dedicated Server.
- Potential for Relay Positioned Referee to monitor and interrupt known Client Authoritative cheats.
Relay benefits.
- Near-Zero firewall setup and reduced risk of DDOS attacks with a Relay Based connection as opposed to direct connection.
- Near-Zero maintenance cost suitable for Indie's targeted revenues as opposed to fully managed Dedicated Server.
- Potential for Relay Positioned Referee to monitor and interrupt known Client Authoritative cheats.
The PNAL expose advanced techniques such as Interest Group and implement some others like Eventual Consistency to reduce the message count, bandwidth and CPU overcharge of advanced indie developers.
Although the recommended player count is 4 to 8 for indie game play, PNAL is beeing test with higher player count to monitor Memory and CPU taxation of heavy networking workloads
- Near-Zero memory allocation.
- CPU taxation tested and optimized for up to 100 players per vcpu (not recommended for production purposes. 4-8 players remain the recommended target for client side authoritative gameplay of junior and intermediate indie developers)
- Near-Zero memory allocation.
- CPU taxation tested and optimized for up to 100 players per vcpu (not recommended for production purposes. 4-8 players remain the recommended target for client side authoritative gameplay of junior and intermediate indie developers)
Last edited: