Giter VIP home page Giter VIP logo

beammp-launcher's Introduction

BeamMP-Launcher

The launcher is the way we communitcate to outside the game, it does a few automated actions such as but not limited to: downloading the mod, launching the game, and create a connection to a server.

Copyright (c) 2019-present Anonymous275. BeamMP Launcher code is not in the public domain and is not free software. One must be granted explicit permission by the copyright holder in order to modify or distribute any part of the source or binaries, the only permission that has been granted is to use the software in its compiled form as distributed from the BeamMP.com website. Anything else is prohibited. Modified works may not be published and have be upstreamed to the official repository.

beammp-launcher's People

Contributors

anonymous-275 avatar finicu212 avatar lionkor avatar mack29446 avatar snepsnepsnep avatar starystars67 avatar whitehusky avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

beammp-launcher's Issues

[Bug] Launcher has issues with cyrillic letters

Launcher fails to create the necessary 'multiplayer' mod folder when the directory contains cyrillic letters.

Most likely the windows user name contains them, and while the beamNG user directory is located inside the windows user folder, the launcher can not create the folder, leading to a fatal error.

https://discord.com/channels/601558901657305098/664632241669931008/1017163877168984116
https://discord.com/channels/601558901657305098/665263790673231882/1011699296808206421

image_2022-09-07_222240833
image_2022-09-07_222333293

[v2.1.0] "Socket error: timeout" on Linux with Proton

Hello!

I'm having an issue (even with the latest stable version of the launcher) where I can see the Multiplayer menu in the game, but clicking on it I get "The game is not connected to the launcher! Please start the game using the BeamMP Launcher.", and in the console, I get:

35.87080|E|GELua.MPCoreNetwork.send| Socket error: timeout
35.87096|E|GELua.MPCoreNetwork.send| Stopped at index: 0 while trying to send 1 bytes of data.

I'm using Void Linux with Proton GE 8.11, but I also tried with Proton Experimental, with no success (same error).

[Bug] Crash on launcher startup

In some cases the launcher will crash on startup due to not being able to find integrity.json inside the BeamNG directory (checkVer function)
This seems to happen if the user has moved or removed the BeamNG.drive game folder manually and / or if the registry key pointing to the game directory has not updated properly or isn't pointing to the right directory.

image
Looks like this before it exits.

Allow alternative caching directories (instead of using the system drive)

Issue

One of my friends has a very corrupted system drive, and it has a very limited capacity for BeamMP to use (I am unsure why he doesn't just delete other things, but he doesn't seem to answer my question)

Solution

So I propose we allow users to set the cache directory (instead of in %appdata%/BeamMP-Launcher or something along those lines, he's not really sure)

Alternatives

  • Wolfie stops being a lazy potato and delete more files
  • Servers reduce the amount of mods loaded onto them to save space on Wolfie's drive.

Screenshots

(this man)

image

RegReading from the ShellFolders can return strings containing env variables

In reported cases the registry in windows of the shellfolders can contain environment variables
jkghjkhjkkjhh

when https://github.com/BeamMP/BeamMP-Launcher/blob/master/src/GameStart.cpp#L31 reads these keys to evaluate the path of appdata, it will receive a path that the launcher cannot work with.

The issue is that the beammp launcher will not be able to put files into the beamng mods folder (not the beammp.zip and not other mods when joining a server).

Potential solution is to simply customly replace %USERPROFILE% in the string with whatever that env var resolves to.

[Bug] Error in serverlist: The game is not connected to the Launcher

Describe the bug
While in the serverlsit, the game shows an error, not connected to the launcher.
Despite the launcher being up and running, without errors and saying: Game connected!

To Reproduce
Unknown

To solve the issue, it is enough to log out and log back in, without needing to even restart the game

Expected behavior
While the launcher is running and showing connected, the game should also be connected to the launcher

Screenshots
image
image

beamng.log

In BeamNG.cpp, when LegitimacyCheck() fails due to FindHack(), alert the user of what files he needs to remove in order to play.

Recently was unable to play despite owning the game on Steam, since I had a few files containing greenluma inside of my Steam root.

I had to go scrounging through the source code to see what I needed to remove in order to actually play, but regular users surely wouldn't bother to do this.

Solution:

When FindHack(Result) returns true within LegitimacyCheck(), print Result, which is in fact the file path to the malicious file which the user needs to remove if he wants to play.

Alternatively, do std::string Name = fs::directory_iterator(Result).path().filename().string(); and print Name instead for a relative path to the malicious file inside of the Steam root directory

[Bug] BeamMP not opening with the error process exited with code 3221226505 (0xc0000409)

Have you read our FAQ/Wiki/#before-you-ask ?
Yes

Describe the bug
process exited with code 3221226505 (0xc0000409)

To Reproduce
Steps to reproduce the behavior:

  1. Go to '...'
  2. Click on '....'
  3. Scroll down to '....'
  4. See error

Expected behavior
I expected to Open the game with multiplayer addons

Screenshots
image

Desktop (please complete the following information):

  • Windows 11 22H2 OS Build 22621.3447
  • Chrome

Additional context
Hi I just upgraded the BeamNG.Drive to 0.32 but when I try to launch BeamMP it closes itself there is no problem when I at 0.31.2 I tried to install and reinstall but there is no difference I tried to format my drive it is D for games and beammp but it is also not fixed my problem how can I Fix

Old and new (v3+) Launcher does incorrect version comparison

The current launcher and the new v3 launcher both to incorrect version checking.

The launcher compares two version strings, like "3.1.8" and "3.1.9", and compares them by lexical ordering. This does NOT work for semantic version numbers, as they may extend beyond one digit per part, such as "3.1.10". see

if(RemoteVer > FullVersion){

Below is some example code which demonstrates two version numbers, 3.1.9 and 3.1.10, in which case the 3.1.9 is supposed to be LOWER (<) than 3.1.10, but due to lexical ordering is not (9 > 1). (In the code we use >, but the SAME applies)

#include <iostream>
#include <string>
int main() {
    std::string a = "3.1.9";
    std::string b = "3.1.10";
    std::cout << a << " < " << b << " => " << std::boolalpha << (a < b)
              << std::endl;
}

This outputs: 3.1.9 < 3.1.10 => false, which is incorrect. This is semantically the same operation the launcher does.

The correct way to compare version numbers is to compare them from the largest to the smallest, so for 3.1.9 < 3.1.10, it would be:

EDIT: code provided in the next message, which is clearer than this

  1. 3 == 3
  2. 1 == 1
  3. 9 < 10 -> LOWER

Or, for 1.2.3 < 2.0.0:

  1. 1 < 2 -> LOWER

Or, for 1.2.3 < 1.3.0:

  1. 1 == 1
  2. 2 < 3 -> LOWER

Any other way is going to introduce bugs. We cannot silently rely on a version number never going beyond 1 digit (especially since it, in the past, has).

[Feature Request] Local Play

Is your feature request related to a problem? Please describe.
It would be a nice to have feature to be able to host local servers from the game. (This would be similar to how it is when you load up games like Minecraft).

Describe the solution you'd like
It would be nice to have an option in game to be able to click "Play Locally" or something similar from the menu's. This then starts a server and requests to allow it in the firewall for local use. This would be good for friends playing at a home or for siblings. This makes it easier for them to play together without the impact of the public server list.

Describe alternatives you've considered
End users can download the server and then set it all up but this can be overwhelming for some. A way for it to be wrapped up neatly into a play local would be nice.

Additional context
This is just an idea as a possible idea. Not a priority item.

BeamMP Linux Client

Is your feature request related to a problem? Please describe.
No BeamMP Linux Client

Describe the solution you'd like
Create a Linux executable for the Linux Binary of BeamNG.drive.
Somehow, BeamNG.drive works way better with the Linux executable with much better performance.

Describe alternatives you've considered
Running BeamMP with Protontricks, but its sadly not working.
KissMP, but I don't like it, because it's kinda buggy.

Additional context

"Launcher is up to date error" problem

Bug:
Launcher closes after checking version. My launcher version is v2.0.82, but if you go to the one of these links:
https://beammp.com/builds/launcher?version=true from Startup.cpp -> line 77
https://backup1.beammp.com/builds/launcher?version=true from Startup.cpp -> line 80
You'll see that launcher checking current version with old versions (launcher==v2.0.82, version from link==v2.0.79 or v2.0.81). I'm not very good at cpp, but my launcher doesn't work, it crashes after message "Launcher is up to date" (Startup.cpp, line 111: else info("Launcher version is up to date");)...

Some screenshots:
p.s. look at the my beammp launcher version
image
after this message, my launcher crashes
image
automatically downloaded old versions

How to setup project in Visual Studio

Hi,

How could I open the project in Visual Studio, I already have the required dependencies now I would like some info on how to open the project in visual studio?

[Bug] Full harddrive is not being detected

If you install beamNG on a nearly full harddrive, and then proceed to connect to a modded server, that has mods larger than the free space on the harddrive, the ingame connection status windows will be getting stuck on "Done" without further noticing the user.

The user should be notified if the launchers harddrive runs out of space mid download.

Since the serverlist contains the modsize already, we could check if the free space on the harddrive is enough for all mods to be downloaded (omitting maybe already present mods) before even attempting to connect

[Bug] Random Socket Closure during mod download

Fill out general information
OS (windows, linux, ...): Windows (maybe Linux)
BeamMP-Launcher Version: 2.0.77

Describe the bug
The launcher disconnects from the server during the download of mods from the server. This happens while the mod is downloaded not in between them. A wireshark capture and the server/client logs implie that the disconnect happens intentionally from the Launcher.

[23/9/2022 00:01:57] [INFO] Launcher version is up to date
[23/9/2022 00:01:57] [INFO] Game Version : 0.26.1.0
[23/9/2022 00:01:57] [WARN] Game is newer than recommended, multiplayer may not work as intended!
[23/9/2022 00:01:57] [INFO] Downloading mod please wait...
[23/9/2022 00:01:58] [INFO] Download Complete!
[23/9/2022 00:01:58] [INFO] Game Launched!
[23/9/2022 00:02:13] [INFO] Game Connected!
[23/9/2022 00:02:13] [WARN] Game Reconnecting...
[23/9/2022 00:02:14] [INFO] Game Connected!
[23/9/2022 00:02:29] [INFO] Attempting to authenticate...
[23/9/2022 00:02:29] [INFO] Attempting to authenticate...
[23/9/2022 00:02:29] [INFO] Authentication successful!
[23/9/2022 00:02:30] [INFO] Authentication successful!
[23/9/2022 00:02:33] [INFO] Connecting to server
[23/9/2022 00:02:33] [INFO] Connected!
[23/9/2022 00:02:33] [INFO] Checking Resources...
[23/9/2022 00:02:33] [INFO] Syncing...
[23/9/2022 00:03:54] [INFO] 0 <<<<<<<<------------------
[23/9/2022 00:03:54] [WARN] Failed to close socket!

The Zero in the launcher log comes from:
https://github.com/BeamMP/BeamMP-Launcher/blob/master/src/Network/Resources.cpp#L132

which is the return of recv().
"If the connection has been gracefully closed, the return value is zero."
https://learn.microsoft.com/en-us/windows/win32/api/winsock/nf-winsock-recv

This means that the connection has been intentionally closed and the capture point towards the launcher causing it.

To Reproduce
Steps to reproduce the behavior:
I personally could not reproduce the bug, but these seem to be the steps to reproduce the bug. The bug does not happen each time. And seems to occure more often when the connecting player is far away from the server location (e.g. USA <-> GER)

  1. Setup a Server
  2. Put a bunch of Mods into the Client resource folder (it appears that the larger the mod, the more likely it is that the bug occurs e.g. a 700mb mod)
  3. Connect to the Server with the game until the bug appears during mod download (you might have to delete the mods from your launcher resources folder to trigger the download again)

= You will see "Socket Closed Code 1" in the Lua mod and the 0 in the launcher when the bug has been reproduced successfully.

Logs
The Discord user Oro#9824 was so friendly to help debugging the bug so far and also uploaded the logs and capture here
https://www.dropbox.com/s/r3h7uom20dc91p5/Crash.7z?dl=0

Additional context
A ton of players already reported this bug in the dc by now

Mods not loading up on Mac CrossOver

Hi,

I'm currently running the game through Crossover on macOS. I'm not sure why, but the multiplayer mod isn't loading properly. If I manually place the BeamMP mods in the default mod folder of my game, everything works fine. However, if I don't do this, the multiplayer mode never shows up in the game.

I'm available to perform any necessary tests.

Thanks.

[Bug] beammp launcher is trying to write to my old user filename

Have you read our FAQ/Wiki/#before-you-ask ?
No

Describe the bug
beammp launcher is trying to write to my old username (I've changed the user file name) gives me an access denied... as the file doesn't exist.

To Reproduce
Steps to reproduce the behavior:

  1. have a windows user profile with a changed user filename
  2. install beammp normally
  3. launch beammp
  4. error ([16/5/2021 07:35:14] [FATAL] create_directories: Access is denied.: "C:\Users**|MY OLD USER FILENAME|**\AppData\Local\BeamNG.drive\0.22\mods/multiplayer")

Expected behavior
the beammp launcher to launch beammp

Screenshots
error v
image
normal instalation stuff v
image

Desktop (please complete the following information):

  • OS + Version: windows 10 pro
  • Browser (If applicable): Crome

Additional context
I think this could be fixed with a command in the "Launcher.cfg" file under "C:\Users\hoshi\AppData\Roaming\BeamMP Launcher" but at the moment I don't know the prompt to add before the correct address of beamngdrive. ("C:\Users\hoshi\AppData\Local\BeamNG.drive\0.22\mods/multiplayer")

[Discussion] Ideas for Launcher UI

I created this discussion to see what the interest is and would be for the Launcher having a GUI rather than a CLI.
Please feel free to drop your ideas and suggestions below too.

  • Microphone Selection & Accompanying Enable / Disable Setting
  • Nice to use UI
  • Login & Account Management
  • Interaction with resources folder (E.g. Show the size, button to clear, set a restriction on the maximum size)
  • Change log
  • Theming for seasons (nice to have)
  • Events & News
  • Private Server Creation (Using TCP holepunch to remove need for port forwarding? Similar to steam servers)
  • Friend inviting system

Linux Support

So far i can get this up and running with Wine but i get this Error:

image

Are there any Plans for Linux Support?

[Bug] Game attempts to load partially copied zip files

Originally opened on BeamMP/BeamMP#434
The game attempts to load partially copied zip files, which throws the errors in the issue above.
A fix would be copying the files to a temp file (eg. .tmp, a file the game will ignore ), which can then be renamed to a zip after it's done copying.
Will do further testing to confirm this behavior.

add command-line options

add command-line options, possibly in the style -o args / --option args

the current way command-line arguments are handled is not ideal, if specifying a port it must be the first argument, and dev mode is enabled by providing at minimum 2 arguments.

sidenote: dev mode is something that appears to increase verbosity of errors, disable downloading of the game mod, and disable game auto start functionality, these could be their own options

command-line options that could be possibly implemented are:

  • -p PORT, --port PORT to specify a port to be used
  • -v, --verbose to increase verbosity of errors and whatnot
  • -g, --no-download to avoid downloading the game mod (-g: don't Get)
  • -l, --no-launch to avoid launching the game (-l: don't Launch)
  • -a ARGS, --beamng-args ARGS to specify arguments to be passed to the BeamNG launcher, possibly like -a '-gfx vk'?
  • possibly another one equivalent to specifying -vgl similar to what dev mode was?
  • in the event there's only one argument given and this could be a valid port number, maybe set it as the port to use, for backwards-compatibility reasons.

this software is made for windows, so windows style command-line options may be better? or maybe the style BeamNG (similar to Xorg) uses?

[Feature Request] Interact with game files properly on Proton or Linux

Is your feature request related to a problem? Please describe.
I may be able to install BeamMP on Proton or Wine. Still, upon launch, the terminal prompt goes into a blipping loop and says something about running on Linux/Proton and unable to find the game files, but says that it patched 100% which is obviously false.

Describe the solution you'd like
Enable at least with proton for the Patcher/Launcher to locate the game files in proton, as an alternative game location.

Describe alternatives you've considered
I wouldn't think a Linux specific launcher would be necessary, but that could be a thing, though is unreasonable, since the game is built for Windows and runs perfectly on Proton, so the alternative game files location would be the better solution since BeamMP installs and runs fine under proton, it's just incapable of finding the files to patch.

Additional context
This would also be a solution for Steam Deck players, where the game runs quite well.

Linux: Failed to read link

So I've been experimenting with the BeamMP launcher on linux, but I'm facing the following issue

image

I have checked the config file, which was for some reason pointing at the wrong directory? (using my linux login name instead of steamuser), but even after fixing that (changed to C:\users\steamuser\AppData\Local\BeamNG.drive) I still get the error. The link file doesn't seem to be corrupted or anything like that, so any idea what else I could try?

Add support for Steam + Humber Bundle / GOG Sources

The BeamMP Launcher needs to be able to support not just the Steam version but also versions of the game from other sources such as Humble Bundle and GOG.

Maybe something like the following process;
Attempt to launch via Steam URI
IF failed then
Check Registry for BeamNG.drive Location
IF failed then
Prompt user to select / provide the BeamNG.drive.exe file.

Add support for MacOS Wine - Especially for CrossOver

Is your feature request related to a problem? Please describe.
Yes, it looks like it.

macOS doesn't use /home but /Users, and macOS protects the /home folder, so we are not able to use it.
I'm currently running it on CrossOver latest version 23.5, but I don't think that have any importance here.
image

Describe the solution you'd like
Perhaps the software could first try /home and then /Users, or provide an option in the configuration or during runtime to select the desired path. This would enable people to use your mod on any platform (I'm trying to play with friends who are on Windows and Linux, their game is working great !). I'll be ready to test it as soon as you make the update!

Describe alternatives you've considered
I don't know of any alternatives.

Additional context
Add any other context or screenshots about the feature request here.

For more information the latest pre-release launch the game but here is no multiplayer option :
image

I really think, if it didn't detect that is running on Wine, it will work great.
If I have the solution to disable the detection of wine, that will certainly work.
Please help me :)

Enregistrement.de.l.ecran.2023-10-20.a.19.00.41.mov

Look, with whisky a fork of CrossOver there is no detection of Wine, and it's work.

Download mods via HTTP, not custom TCP protocol

The mods need to be downloaded from the server via HTTP(S) GET instead of the current custom TCP protocol.

The reasons for this are:

  1. The current TCP protocol uses multiple sockets, which is not the correct way to speed up download (TCP recv/send window size adjustment is)
  2. The server will switch to hosting the mods in a HTTP server sooner or later, so this has to happen anyways
  3. It will allow remote downloads

To make this work:

Once the launcher sends a request for mod list, it will get back a json array in something like the following format:

[
    {
        "hash": { 
            "sha1": "93406853b9382341379b3965fc7d32fd192f04e9" 
        },
        "name": "My Awesome Mod",
        "local": true,
        "url": "/mods/myawesomemod.zip"
    },
    {
        "hash": {},
        "name": "My Other Mod",
        "local": false,
        "url": "https://awesomemodplace.example/myothermod.zip"
    }
]

Here, each mod specifies a hash (if possible, automatically if local), whether it's local or not (local means it's downloaded from the server's own https server, not-local means it's not), and so on.

The launcher needs to think of a way to store these mods by hash or similar, not by name, and needs to ensure that multiple mods with the same name can exist with different hashes, and be picked out by the launcher appropriately.

This is obviously not a fully fleshed out spec, and needs more work. This issue is the place for that. For the record, this will be implemented on the server in some capacity, there is no way around it.

[Feature request] Integrate Mod download Confirm button thats shown on join of a modded server

Describe the solution you'd like

  1. Upon the launcher connecting to the Server and it receiving the modlist of the server (during sync) the launcher shall give the game client a signal and then wait.
  2. The BeamMP mod should then display a confirmation box to the player, letting them choose to actually join this server or aboard it. The reponse of that should be given back to the launcher.
  3. On Yes, the launcher will continue as is with the sync protocoll
  4. On No, the launcher will quit the joining process

CLI switch to turn off SSL verify

In order to workaround the SSL Verification issue we've been seeing, introduce a commandline flag that turns off verification of the certificate in HTTP::Get and HTTP::Post.

[BUG] v2.1.0

I launch the launcher, it launches the game via steam, the launcher detects the PID
But once I click on Multi, it ask me to launch BeamMP with the launcher

[Feature Request] Auto-purge resources folder

Add an auto purge for the resources folder

Since every mod gets downloaded into that one folder, joining random modded servers can easily lead to gigabytes of diskspace used up for mods you might never use again.

On startup, the launcher could not only auto delete the left over multiplayer mods from the previous session, it could also delete old files in the resources folder.

Every way i came up with has apparent downsides:

  • Leave as is. Folder gets filled uncontrolled
  • Delete by user. Notify with a toast or in the launcher when the resources folder gets above/free disk space gets below a certain size. Needs brain
  • Delete by file date. If you dont play for some time, all mods would be deleted
  • Delete by folder size and file date. If the folder gets bigger than a certain size, delete old files. Would delete them even if you use them daily if the size is too constraint
  • Delete unused mods. Would require a database to store when a mod was last used. Same issue as with filedate, if you dont play for some time, they all get deleted. Maybe check against last time played MP?

Folder size and file date might be a good compromise, if the folder size limit is lenient enough (30gb?)

"[FATAL] Cannot get Local Appdata directory!"

When running the launcher I had experienced the error message:
"[FATAL] Cannot get Local Appdata directory!"

I found the place where the exception is thrown in the code, it is in GameStart.cpp
https://github.com/BeamMP/BeamMP-Launcher/blob/master/src/GameStart.cpp

In my case (and allegedly a few others') this is due to the windows registry key used (seen in line 30):
sk = R"(SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders)";

The key: "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" is deprecated and not found in a few systems. In my case I had to get a copy of the Shell Folders key and modify it slightly (change name of user in the path values) so that beammp may work.

This is all I know about the issue as I do not know too much more about programming.

Update: I went back and read a note included in the registry (obtained from my friend who I am certain did not include the following note himself) and found the following:
image
...hope it helps :)

Launch the steam app instead of exe file (for steam overlay and more)

A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
i would like for the game to launch the steam app rather than the application file. This would be nice so that it logs my hours, I can get steam overlay, and more steam features.

I'm sure there are a few different ways to do this, I cannot really think of many though.

The current solution of launching the launcher version then the steam version has stopped working for me, so this feature would be quite nice.

Add Locale Support

The Launcher should support various languages the same that the Game and Mod do.

Ideally these should be json files or similar to allow community translations/suggestions.

[Bug] Unable to use Launcher on Linux

OS: Linux Mint (Ubuntu 20.04)
BeamMp Launcher Version: 2.0.79

Bug Description:
Whenever trying to use the launcher with Wine the patching stage completes then closes the process.

Log:
[22/11/2022 02:41:15] [INFO] Wine/Proton Detected! If you are on windows delete HKEY_CURRENT_USER\Software\Wine in regedit
[22/11/2022 02:41:15] [INFO] Applying patches...
[22/11/2022 02:41:15] [INFO] Patched!
[22/11/2022 02:41:16] [INFO] Launcher version is up to date

When running the launcher in a terminal using "wine BeamMP-Launcher.exe" I get the Log:
0700:fixme:ver:GetCurrentPackageId (00000000007EFD70 0000000000000000): stub
[22/11/2022 02:41:15] [INFO] Wine/Proton Detected! If you are on windows delete HKEY_CURRENT_USER\Software\Wine in regedit
[22/11/2022 02:41:15] [INFO] Applying patches...
[22/11/2022 02:41:15] [INFO] Patched!
0704:fixme:kernelbase:AppPolicyGetThreadInitializationType FFFFFFFFFFFFFFFA, 000000000183FE10
[22/11/2022 02:41:16] [INFO] Launcher version is up to date
06f8:fixme:reg:RegQueryInfoKeyA security argument not supported.
06f8:err:seh:NtRaiseException Unhandled exception code c0000409 flags 1 addr 0x1402ad88d
06f0:fixme:ver:GetCurrentPackageId (00000000006AFD70 0000000000000000): stub

The Wine prefixes I have tried are both the Game's Proton prefix and my native wine prefix.

Add support for using locale keys for messages from the launcher

It would be good to use locale keys for messages from the launcher rather than using hard coded strings in one language.

This will enable better support for more users in other languages.

For example rather than sending "Connecting..." send "ui.launcher.connecting".
This can then be translated by the game into the users language of choice.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.