Skip to content

Commit c3aaf80

Browse files
authored
Update README.md
1 parent 809b8c5 commit c3aaf80

File tree

1 file changed

+26
-26
lines changed

1 file changed

+26
-26
lines changed

README.md

+26-26
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
# LaunchBox
2-
LaunchBox is free game launcher, you can use this program, publish many games in one place, write your own presentation game pages or use website for this purpose (LaunchBox will load website as webBrowser). Main problems are solved such as version checking and updating, installing/uninstalling, this program is also self updating, when i will make new release LaunchBox will notice that and self update. LaunchBox is written in qt-qml/c++. Currenty system works only on windows i will port it on Linux asap
1+
# SharpsenBox
2+
SharpsenBox is free game launcher, you can use this program, publish many games in one place, write your own presentation game pages or use website for this purpose (SharpsenBox will load website as webBrowser). Main problems are solved such as version checking and updating, installing/uninstalling, this program is also self updating, when i will make new release SharpsenBox will notice that and self update. SharpsenBox is written in qt-qml/c++. Currenty system works only on windows i will port it on Linux asap
33

44
System is complicated i tried to desctibe it in next chapters but as always practise presentation is best so here is youtube link with full explanation/tutorial 101, how to use this system to deploy game.
55

@@ -10,7 +10,7 @@ https://www.youtube.com/watch?v=vECiQiPY74w
1010
### Windows 64 bit
1111
* Patcher
1212
https://1drv.ms/u/s!An4cPK_Qf39gjxPbbCV4BSI43EUf?e=OyGhiQ
13-
* LaunchBox
13+
* SharpsenBox
1414
https://1drv.ms/u/s!An4cPK_Qf39gjx1dPinL0C3oURe4?e=lY6rBK
1515
* Example Game Page
1616
https://1drv.ms/u/s!An4cPK_Qf39gjzC7lswXe_gTRZCA?e=j3UNaV
@@ -19,11 +19,11 @@ https://1drv.ms/u/s!An4cPK_Qf39gjzLnqHv4y87RnYTy?e=566Cff
1919
* Games.json example
2020
https://1drv.ms/u/s!An4cPK_Qf39gjzGKlvcN2Qpm4KsX?e=rVruBb
2121
# Overview
22-
System contains two main programs: Patcher and LaunchBox. Patcher is developer tool for generating game patches. (zip packets, json files). LaunchBox is client program, that allows to install your game, update, uninstall, autoupdate wchen newer verion is available. Witch patcher you can split your game files into several packets (zip files). I suggest you to separate library/game engine files, assets, executable files. When newer version is available LaunchBox dowloads packets which contains modified/new files and unpack them to game directory. LauchBox also can delete files that are not neede any more. You dont need any server to comute delta between current client game version and actual, everything is computed on client side in LaunchBox. You only need some space on the internet where you can store game files, it can be ftp or http server, there are many free options. But links to fils must be valid all the time, you cannot change links to files. Update System uses json files which stores information about your game, some of them are generated by Patcher but rest of them needs to be written manually.
22+
System contains two main programs: Patcher and SharpsenBox. Patcher is developer tool for generating game patches. (zip packets, json files). SharpsenBox is client program, that allows to install your game, update, uninstall, autoupdate wchen newer verion is available. Witch patcher you can split your game files into several packets (zip files). I suggest you to separate library/game engine files, assets, executable files. When newer version is available SharpsenBox dowloads packets which contains modified/new files and unpack them to game directory. LauchBox also can delete files that are not neede any more. You dont need any server to comute delta between current client game version and actual, everything is computed on client side in SharpsenBox. You only need some space on the internet where you can store game files, it can be ftp or http server, there are many free options. But links to fils must be valid all the time, you cannot change links to files. Update System uses json files which stores information about your game, some of them are generated by Patcher but rest of them needs to be written manually.
2323
# How does it work
2424
![system](ScreenShots/Whole_system.png)
2525
## Patcher
26-
Open new project -> chose game directory, project directory, project name, gameName. On the right side you can create new packets, change their names etc. On the left side you can see actual state of game directory. Now just open packet and drag folders/files from left window to packet window. When u are done press generate to create files. When u need to create patch just insted of creating new project open existing one {name}.json file. Patcher is in early development (i focused on developing LaunchBox) so if something goes wrong exit and start over i will fix bugs asap. When Game directory changes just mofify path in Project file. I suggest you to make copies of generated files, dont lose them aspecially project file.
26+
Open new project -> chose game directory, project directory, project name, gameName. On the right side you can create new packets, change their names etc. On the left side you can see actual state of game directory. Now just open packet and drag folders/files from left window to packet window. When u are done press generate to create files. When u need to create patch just insted of creating new project open existing one {name}.json file. Patcher is in early development (i focused on developing SharpsenBox) so if something goes wrong exit and start over i will fix bugs asap. When Game directory changes just mofify path in Project file. I suggest you to make copies of generated files, dont lose them aspecially project file.
2727
### Patcher
2828
![system](ScreenShots/Patcher.png)
2929

@@ -32,14 +32,14 @@ Patcher generates 4 components:
3232
1. fileList.json - json file that contains all information about current game directory: files, sizes, hashes, directories etc. After generation manually add urls to your packets http or ftp link (redirections are accepted)
3333
```javascript
3434
{
35-
"AppName": "LaunchBox",
35+
"AppName": "SharpsenBox",
3636
"Files": {
3737
"bin": {
3838
"Id": "0",
3939
"Sha": "",
4040
"Size": "0"
4141
},
42-
"bin/LaunchBox.exe": {
42+
"bin/SharpsenBox.exe": {
4343
"Id": "0",
4444
"Sha": "35fc22fb9ffed5519493a154807eb9f2e8952be1108ea1870bb7723efe223604",
4545
"Size": "6836736"
@@ -65,7 +65,7 @@ Patcher generates 4 components:
6565
"packet1.zip": {
6666
"Files": {
6767
"bin": {
68-
"LaunchBox.exe": {
68+
"SharpsenBox.exe": {
6969
"Sha": "35fc22fb9ffed5519493a154807eb9f2e8952be1108ea1870bb7723efe223604",
7070
"Size": "6836736"
7171
},
@@ -79,10 +79,10 @@ Patcher generates 4 components:
7979
.
8080
.
8181
},
82-
"AppDir": "C:/Users/Sylwester/Desktop/LaunchBox/DesktopAplication/out/install/x64-Release/LaunchBox",
83-
"AppName": "LaunchBox",
84-
"ProjectDir": "C:/Users/Sylwester/Desktop/LaunchBoxProject",
85-
"ProjectName": "LaunchBox",
82+
"AppDir": "C:/Users/Sylwester/Desktop/SharpsenBox/DesktopAplication/out/install/x64-Release/SharpsenBox",
83+
"AppName": "SharpsenBox",
84+
"ProjectDir": "C:/Users/Sylwester/Desktop/SharpsenBoxProject",
85+
"ProjectName": "SharpsenBox",
8686
"Ver": "1.0"
8787
}
8888
```
@@ -118,7 +118,7 @@ System uses also two files that muse be edited manually
118118
}
119119
}
120120
```
121-
* Games.json - Information about your games published in LaunchBox, it contains url to Appinfo, and presentation informations (what to show in game page) i will describe it in next chapter
121+
* Games.json - Information about your games published in SharpsenBox, it contains url to Appinfo, and presentation informations (what to show in game page) i will describe it in next chapter
122122
```javascript
123123
{
124124
"Sylio": {
@@ -157,18 +157,18 @@ System uses also two files that muse be edited manually
157157
158158
Now upload files on the internet, remember to have always valid links
159159
160-
## LaunchBox
161-
Becouse LaunchBox is self updating it contains 3 programs:
162-
* Updater - program thah updates LaunchBox and Game pages if needed
163-
* LaunchBox - main program
160+
## SharpsenBox
161+
Becouse SharpsenBox is self updating it contains 3 programs:
162+
* Updater - program thah updates SharpsenBox and Game pages if needed
163+
* SharpsenBox - main program
164164
* Launcher small program (on Windows is written in C#) that first runs Updater and after its exection LauchBox
165165
### Updater
166166
![system](ScreenShots/Updater.png)
167-
### LaunchBox
168-
![system](ScreenShots/LaunchBox.png)
167+
### SharpsenBox
168+
![system](ScreenShots/SharpsenBox.png)
169169
### Updating Details
170170
User clicks on Launcher -> Updater is executed. First it loads data from files stored in Config folder:
171-
1. LaunchBoxInfo.json - basic information about LaunchBox, your job is to change GamesInfoRepository (Games.json). Leave AppInfoUrl unchanged becouse this link allows to update LaunchBox (link to my repository with newest version of LaunchBox).
171+
1. SharpsenBoxInfo.json - basic information about SharpsenBox, your job is to change GamesInfoRepository (Games.json). Leave AppInfoUrl unchanged becouse this link allows to update SharpsenBox (link to my repository with newest version of SharpsenBox).
172172
```javascript
173173
{
174174
"Ver": "1.0",
@@ -177,7 +177,7 @@ User clicks on Launcher -> Updater is executed. First it loads data from files s
177177
"DownloadSpeed": "0"
178178
}
179179
```
180-
2. Games.json - Information about your games published in LaunchBox
180+
2. Games.json - Information about your games published in SharpsenBox
181181
```javascript
182182
{
183183
"Sylio": {
@@ -212,13 +212,13 @@ User clicks on Launcher -> Updater is executed. First it loads data from files s
212212
}
213213
}
214214
```
215-
These files must be edited by you when u make LaunchBox instalator. Writing Rules:
216-
* LaunchBoxInfo.json - update link to Games.json in GamesInfoRepository slot
217-
* Games.json - it has to be point that this file differs from stored on the internet, its local file stored in Config folder, when Updater launches it downloads Games.json and compares intormation with these stored in this file. Each game is stored in json objects eg: "Sylio", "Rest and "Rest2" by game title. In objects each game has Id it has to be unique number bigger than 0. LaunchBox must have minimum one game in this file. update also AppInfoUrl to each game stored on the internet.
215+
These files must be edited by you when u make SharpsenBox instalator. Writing Rules:
216+
* SharpsenBoxInfo.json - update link to Games.json in GamesInfoRepository slot
217+
* Games.json - it has to be point that this file differs from stored on the internet, its local file stored in Config folder, when Updater launches it downloads Games.json and compares intormation with these stored in this file. Each game is stored in json objects eg: "Sylio", "Rest and "Rest2" by game title. In objects each game has Id it has to be unique number bigger than 0. SharpsenBox must have minimum one game in this file. update also AppInfoUrl to each game stored on the internet.
218218
219-
Now updater downloads Appinfo.json, and Games.json, Updater parses Appinfo and if its needed updates LaunchBox, after that Updater parses Games.json, to check if never games are added to LaunchBox, and updates game pages. Here i need to clarify how u can present your game in launchBox, you have two options first is just to paste valid url in PresentationUrl slot (if u have game website), LaunchBox will just load that link as webBrowser and shows on game page, second options is to write your own qml page (qml is verry simple) if its too hard u can use my example (exampleOne.qml) in LaunchBox/Gui folder. I suggest you to use second option becoude webGameEngine works verry slow, and it will be propably hard to fit my design pattern with website. if you use second option u need to specify presentationPackUrl, it is valid link to zip file that should contain files with main qml file. Also u need to specify PresentationQMl as main qml that will be dynamicly loaded by LaunchBox. when u will need to change this presentation page just increment PresentationVer in Games.json file stored on the internet. When while updating versions differ Updater downloads this zip packet and unpack it for LaunchBox.
219+
Now updater downloads Appinfo.json, and Games.json, Updater parses Appinfo and if its needed updates SharpsenBox, after that Updater parses Games.json, to check if never games are added to SharpsenBox, and updates game pages. Here i need to clarify how u can present your game in SharpsenBox, you have two options first is just to paste valid url in PresentationUrl slot (if u have game website), SharpsenBox will just load that link as webBrowser and shows on game page, second options is to write your own qml page (qml is verry simple) if its too hard u can use my example (exampleOne.qml) in SharpsenBox/Gui folder. I suggest you to use second option becoude webGameEngine works verry slow, and it will be propably hard to fit my design pattern with website. if you use second option u need to specify presentationPackUrl, it is valid link to zip file that should contain files with main qml file. Also u need to specify PresentationQMl as main qml that will be dynamicly loaded by SharpsenBox. when u will need to change this presentation page just increment PresentationVer in Games.json file stored on the internet. When while updating versions differ Updater downloads this zip packet and unpack it for SharpsenBox.
220220
221-
When LaunchBox is up to date and game pages are updated, Launcher executes LaunchBox, user can intstall or update game (when installing LaunchBox just downloads all packets without parsing patch files). When Update process starts, LaunchBox downloads AppInfo.json by url specified in Games.json, it parses AppInfo to get version if it differs from actual than update process relly starts, fileList.json is beeing downloaded next, with patch files (links are specified in AppInfo.json). Now Aplication parses information to get which packets must be downloaded to udate game. Next these packets are downloaded and unpacked to game directory, removed files (specified in patch files) are removed from game directory, and update is done. LaunchBox also can pause update process and abort, uninstallation is supported.
221+
When SharpsenBox is up to date and game pages are updated, Launcher executes SharpsenBox, user can intstall or update game (when installing SharpsenBox just downloads all packets without parsing patch files). When Update process starts, SharpsenBox downloads AppInfo.json by url specified in Games.json, it parses AppInfo to get version if it differs from actual than update process relly starts, fileList.json is beeing downloaded next, with patch files (links are specified in AppInfo.json). Now Aplication parses information to get which packets must be downloaded to udate game. Next these packets are downloaded and unpacked to game directory, removed files (specified in patch files) are removed from game directory, and update is done. SharpsenBox also can pause update process and abort, uninstallation is supported.
222222
223223
# Frameworks/Libaries/Tools
224224
* [Qt/Qml](https://www.qt.io/) - Gui framework

0 commit comments

Comments
 (0)