**February 2024 Updates ❤️**
March 1, 2024
We plan on posting whenever we have a lot of monthly updates in this channel to update everyone on the progress of ldrboard.com.
TLDR (Thanks Google Gemini):
ldrboard.com has made several improvements! We’ve squashed bugs that caused issues with names on leaderboards and dropping requests, and added a new optional layer of encryption to protect your leaderboards from hackers and cheaters. We've also launched a new website and joined social media, making it easier to connect with us and stay updated. Integrating our service with your game is now simpler with code generation, which streamlines the process compared to a full SDK.
Looking ahead, ldrboard.com is working on exciting new features. You'll soon be able to create leaderboards without our help, manage them with a new admin interface, and showcase your game in a dedicated gallery. We’re also planning to add a ldrboard.com Discord bot that you can add to your server, video tutorials, and possibly a fully automated tournament system!
Whether you're already using ldrboard.com or just starting out, head over to our Discord server to learn more, share your feedback, and join the growing community. We're eager to hear your thoughts and help you create engaging leaderboards for your games!
⚠️Warning ⚠️We are migrating some of the first leaderboards we built to a new architecture that is shared amongst the new leaderboards so if you were of the first users your page may load slightly differently when we complete the migration sometime in March.
The profanity filter caused a problem with names flipping or being mismatched in some leaderboards that has now been fixed.
Removed a bug that caused us to miss some writes to leaderboards. Please let us know if your leaderboard fails to record a submitted entry
As we approach games with larger audiences we have to dot all the i’s on our end to make sure we give hacker prone games the best shot at keeping their leaderboards clean.
Right now we only enforce HTTPs which protects the data in transit. While this is pretty much the standard way leaderboard tools work, this is not the most secure it can be because the client (the person playing your game) has the necessary credentials to decrypt and view the data. So from now on we are making the new default code generation add a new layer of encryption in game using ARC4 Cipher for all games(Eventually RSA will be the default in a month or two). If we currently support ARC4 code generation for your game engine [Godot(GDScript) and Unity(C#) users], you should regenerate the code for your game in your admin page with the encryption_method set to ARC4(JSON) especially if your game runs on the web or just generally worried about hackers/cheaters manipulating scores. If you are running embedded in the web select Browser Based for unique_identifier_source.
This means that if there are fraudulent entries on your leaderboard after you use the generated ARC4 encryption one of three very likely things happened:
1. They decompiled your game
2. They are using a Direct Memory Access tool like Cheat Engine
3. Your key was leaked
This encryption prevents people from sending fake data by simply using a proxy or outbound http(s) packet analysis tool like WireShark.
Even though there is no perfect solution to completely preventing fraudulent entries for any leaderboard system, We think this is miles beyond 99.9% of other leaderboard systems out there that are publicly available including Unity’s in-built leaderboard system, Playfab, etc. as I was able to verify some of them have this exact vulnerability earlier this week.
We will not deprecrate the old APIs because people are already using it and it is very useful for debugging, and more obvious reasons.
To learn more about the traditional security problems associated with leaderboards this video by TheCherno is excellent: https://www.youtube.com/watch?v=_uWmE0EduFE
New website (Thanks @bjblueice @intently) https://ldrboard.com
Connect with us on our new X(Twitter) account: https://twitter.com/ldrboard_com @ldrboard_com (Thanks @Yakanashe for the profile picture and for the discord server icon).
Connect with us on our new Bluesky Account: https://bsky.app/profile/ldrboard.bsky.social
We will be reaching out to the Speedrunning reddit/discord community to see if we can get players to track speedruns on our platform. With the increased traffic, we are experimenting with putting together an algorithm to test how effective select ldrboards are at attracting and retaining players. This may be a slow process.
We will make our first public posts to game developer communities on reddit/X/discord/bluesky sometime in March
General
We created code generation. When we first started we were manually coding new scripts for each game. The code generator dynamically generates the exact code specific to your leaderboard with the settings provided. I think this is a lot better than a full on SDK because it is more lightweight (just one script), easier to maintain, and easier to integrate so we will stick with this for now.
Right now you can generate code for a script for writing to leaderboard and a separate script for reading the leaderboards. We will probably merge this functionality into a place where you can select what functionality you want (including future functionality we will add) and it dynamically generate a single script.
If you disagree and think an SDK is preferred please let us know.
Our code generator for writing to and reading from leaderboards will eventually support auto generating code from these modes:
"Bevy(Rust)" *Not Supported Yet
"Construct 3" *Not Supported Yet
"cURL" *Partially Supported
"GameMaker" *Partially Supported
"GDevelop" *Not Supported Yet
"Godot4(C#)" *Partially Supported
"Godot4(GDScript)" *Fully Supported
“Godot3(GDScript) *Not Supported Yet
"Minecraft(Java)" *Not Supported Yet
"Node.js-Axios(JavaScript)" *Partially Supported
"Node.js-Native(JavaScript)" *Partially Supported
"Pygame(Python)" *Partially Supported
"Roblox(Lua)" *Partially Supported
"Unity(C#)" *Fully Supported
"Unreal(Blueprints)" *Partially Supported
"Unreal(C++)" *Not Supported Yet
Unity Engine
Migrating off of System.Net for the HTTP Client in favor of UnityWebRequest to support web browsers. Web browser builds will not work with the old generated HTTP Client code.
Unreal Engine
We created Blueprints Function Libraries for Writing to and Reading from the leaderboards.
Downloads available on the admin page
C++ Support will be available in a week or two.
Godot Engine
Unfortunately for Godot, the latest stable build (4.2) is incapable of making cross-domain requests on web based platforms like https://itch.io outside of a few whitelisted domains (I figured out some widely used Game Backend as a Service [GBAAS] companies like Lootlocker have their API whitelisted). To get around this after a bit of a research this is what has to be done to send outbound cross-domain requests to https://ldrboard.com (or monetize your game with ads) through Godot Engine on itch.io (Thanks @JacksonXtreme for helping solve these issues):
Use Godot 3 or Godot 4.3+(unstable) [The need for this is explained here]
Use one of the latest web templates for your build (This allows for you to disable Shared Array Buffers on platforms like itch.io)
Can be downloaded directly from Godot Source archives marked as web-nothreads-template (ex. https://github.com/godotengine/godot/actions/runs/8088908058)
Disable Use Threads when building
Export in Debug Mode
Disable Shared Array Buffers when you deploy to itch.io
If audio issues occur because of these steps you must raise the audio latency (90 and 150 are good values to try out).
I may write a separate blog post going into greater depth on these steps because this seems like a common issue that took me forever to debug
Arcade Games
We now support Arcade Games through dynamically generating QRCodes
The first arcade game on ldrboard.com is live at https://snr.ldrboard.com
Happy to introduce our latest arcade game:
— KaleidoGames (@KaleidoGames) February 3, 2024
SLAM AND ROLL
Please some 🔁❤ will be appreciated!
Link to the game on the next message:#pixelart #retrogamer pic.twitter.com/hsypPcB0Nb
https://twitter.com/vidaextraretro/status/1762195983096541408
We plan on reaching out to a lot of arcade games later in March
Thanks @JaimeKaleido for the idea and collaboration
As a smaller project, this is one of our most frequently asked questions. As seen in our FAQ.
“Why would you offer all of this free!?” “What is in it for you??”
Our ultimate goal is to get as many users as possible. ldrboard.com has potential to become a leaderboard standard for all games worldwide. Adding exclusivity through charging developers doesn’t make much sense especially considering the negligible costs it takes to support each game’s leaderboard.
Once our community grows larger, we will have countless opportunities for various avenues to subsidize growth including ads, marketing, licensing, custom rows for players, and possibly even venture capital.
In the meantime, we have enterprise pricing for big games who need an enterprise level of support possibly including:
24/7 support
Custom rate limits
On premise
I added simple rules and I will organize the channels/add descriptions sometime this week.
Feel free to share your socials/game dev servers/ in the self promo channel.
If you create a new game or are in development please ping @tester in the project-showcase channel. You can ask for feedback, etc. and we will test assuming it’s free (maybe we’ll do some paid games in the future) and we have the appropriate device. Everyone with the @tester role has already committed to playing/testing/giving feedback on games. It also doesn’t matter whether you have a leaderboard in your game or not.
You can now change your password in the admin page. In case you aren’t aware your admin page can be found at https://admin-<your-game-name>.ldrboard.com.
Code generation for in game leaderboards are now fully supported on Unity(C#) and Godot(GDScript). The code generates a function that returns a dictionary/json. We will eventually create example assets on how to use the dictionary to dynamically build an in game leaderboard for major engines. If you are good enough to work with dictionaries/json on your own then you should be good to go.
We will be adding a gallery page that will be hosted on https://ldrboard.com/gallery. If your game is integrated and you want us to add your game please let us know.
You can now delete individual entries by specifying an id for the entry or specifying the player_unique_id.
Our plans for the upcoming month. If there are any features you want us to add please let us know in the #feature-requests channel
Finish Code Generation tool for all engines
⚠️Warning ⚠️We are migrating some of the first leaderboards we built to a new architecture that is shared amongst the new leaderboards.
The new architecture takes advantage of web sockets meaning all updates to your leaderboard should happen under a second ⚡without reloading the page.
You may notice the page load slightly differently and slightly slower after this update though.
This update will make these leaderboards compatible with the new editor coming out allowing you to customize them / change settings on your own down to the CSS.
Login/Registration for Self serving (Create leaderboards without us)
Admin/Editor Page with our own user interface(UI)
We plan on getting you all off swagger docs in March. Starting with simple functionality behind email and password login. Moving to sessions will remove the need to add api keys to api requests, making things a bit faster and more convenient.
Below are the planned additions:
Create an account through email verification.
View and edit account information, including changing password, and adding/deleting api keys.
Create, read, update, delete(CRUD) operations for “Game” management. As a game developer, this will allow you to add games to your ecosystem, creating new ldrboards with new styles on a new website. This will also allow you to update any preexisting games if there has been large changes to your game or you want to start tracking new data points. Lastly, the delete operation will allow you to delete any games that are no longer active.
Delete/edit individual game records. If you see a score that doesn't look right, we are going to give you the power to remove/edit that game from your ldrboard.
Let us know what you want to see in the admin page next.
Gallery that will be hosted on https://ldrboard.com/gallery
Video tutorials
As the feature set continues to expand, we want to make sure that everyone understands how to get the most out of them.
To combat any confusion, we plan to offer viewable walkthroughs, demonstrating how to create and manage leaderboards.
Starting with a walkthrough on how to use the current Swagger docs page to retrieve information and make changes to game information.
Fully automated tournament system with brackets etc. (even for single player games) (probably April will be the quickest we can implement by)?
Discord Bot you can add to your server to post updates or if there are dramatic leaderboard changes (I think this would be cool)?
Integrate with Steam Leaderboards/Google Play Leaderboards/App Store Leaderboards/Console Leaderboards etc.
Removes the need to download their and use their sdks.
Synchs/Unifies your leaderboards if your game is cross platform
Potentially allows for Friend leaderboards across all platforms.
Developer docs on https://docs.ldrboard.com?
Moderation Queue?
Assigning moderators?
Allow people to manually upload entries with approval?
Player Account System?
Allow players to see their stats and performance maybe distribution charts
Show stats across all associated games
Notify players via email or in their portal when they get overtaken if they were in top spots?
Allow links to show off your stats on X(Twitter)/Facebook to increase player engagement and help with the virality of your game?
Maybe leaderboard rows can have twitter handles (or if they hover over their username) if player opts in
Rating system for all players for all games that incentivizes trying out other games and increase engagement (far future when there are a lot of games)?
An internal ad system to recommend your game to other players/reward for playing (far future when there are a lot of games)?
Scrape data for big games that already exist and add those leaderboards to our site like most of the stats trackers(Doesn’t sound like that great of an idea to me).