Awesome
The League Sandbox project's game server
Project website along with more specifications can be fround from: https://leaguesandbox.github.io/
Project chat on Discord: https://discord.gg/G6mcg5u
Project board on Waffle: https://waffle.io/LeagueSandbox/leaguesandbox.github.io
Contributing
We're looking for people interested in contributing to the project.
Currently the technologies we use include:
- C#
- Lua
- Electron
- Node.js
- Angular
- Socket.io
For more detailed project specifications head over to https://leaguesandbox.github.io/
If you're interested in contributing, come find us from Discord and let us know
Setup guide
- Install Microsoft Visual Studio 2015 (Community Edition is fine)
- Install DotNet 4.6.1 Framework
- Install NuGet package installer (https://visualstudiogallery.msdn.microsoft.com/5d345edc-2e2d-4a9c-b73b-d53956dc458d)
- Install Editor Guidelines (https://visualstudiogallery.msdn.microsoft.com/da227a0b-0e31-4a11-8f6b-3a149cf2e459)
- Download the 4.20 version of League client (https://mega.nz/#!hpkiQK5A!pFkZJtxCMQktJf4umplAdPC_Fukt0xgMfO7g3bGp1Io)
- Clone the git repository
- Copy
GameServer/Settings/GameInfo.json.template
toGameServer/Settings/GameInfo.json
- Modify the just copied settings files as required
- Build and run
Running the client
Currently there are two options for launching the client.
Launching from command line
start "" "Path/To/Your/League420/RADS/solutions/lol_game_client_sln/releases/0.0.1.68/deploy/League of Legends.exe" "8394" "LoLLauncher.exe" "" "127.0.0.1 5119 17BLOhi6KZsTtldTsizvHg== 1"
Using a launcher created by TheWebs
- Clone the launcher's repository from https://github.com/TheWebs/IWLauncher
- Build it
- Copy the built launcher and it's dependencies to the game server's build folder
GameServer/bin/Debug/
- Run it
Project policies
- Line length should be 120 characters maximum whenever possible (use Editor Guidelines plugin for a ruler)
- Pull requests must be approved before they can be merged
- Pull requests should not be merged before the build has passed
- If the build fails, ping the pull request creator and tell him to fix it
- Files and folders in
PascalCase
- JSON dictionary keys in
PascalCase
- Keep the code as simple and clear to read as possible
- Each separate feature should be developed in their own branch
- Commits should be in logical small pieces
- Pull requests should be kept as small as possible, generally one feature per pull requests
- Instead of submitting one huge pull request with 3 features, submit each feature individually
C# guidelines
- Function names in
PascalCase
- Constants in
ALL_CAPS
- Private variables in
_camelCaseWithUnderscore
- Public properties as getters / setters in
PascalCase
- All public variable access should happen through getters / setters
- Regions shouldn't be used, instead split code into classes/files when needed
- Dictionaries preferred over switches and long if/else statements
- Boolean variable names should be prefixed with a question (is/can/should)
- Conditional operator should be avoided.
condition ? option1 : option2
- This is fine to use in some niche cases where you can't avoid using it
- Interpolated strings with embedded logic should not be used
Development flow and how to use git shell
- Pull latest version of master
git fetch -p
git pull origin master
- Checkout to a new branch
git checkout -b <branch_name>
- Make changes, do commits
git status
- List of changed filesgit add <filename>
- Stage file for commitgit add -u
- Stage all updated files for commitgit add -A
- Stage all unstaged files for commitgit commit -m "<commit message>"
- Create commit
- Push to github
git push origin <branch_name>
- Create pull request
- Checkout back to master
git checkout master
- Repeat