You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+26-26
Original file line number
Diff line number
Diff 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
3
3
4
4
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.
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.
23
23
# How does it work
24
24

25
25
## 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.
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)
@@ -118,7 +118,7 @@ System uses also two files that muse be edited manually
118
118
}
119
119
}
120
120
```
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
122
122
```javascript
123
123
{
124
124
"Sylio": {
@@ -157,18 +157,18 @@ System uses also two files that muse be edited manually
157
157
158
158
Now upload files on the internet, remember to have always valid links
159
159
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
164
164
* Launcher small program (on Windows is written in C#) that first runs Updater and after its exection LauchBox
165
165
### Updater
166
166

167
-
### LaunchBox
168
-

167
+
### SharpsenBox
168
+

169
169
### Updating Details
170
170
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).
172
172
```javascript
173
173
{
174
174
"Ver":"1.0",
@@ -177,7 +177,7 @@ User clicks on Launcher -> Updater is executed. First it loads data from files s
177
177
"DownloadSpeed":"0"
178
178
}
179
179
```
180
-
2. Games.json - Information about your games published in LaunchBox
180
+
2. Games.json - Information about your games published in SharpsenBox
181
181
```javascript
182
182
{
183
183
"Sylio": {
@@ -212,13 +212,13 @@ User clicks on Launcher -> Updater is executed. First it loads data from files s
212
212
}
213
213
}
214
214
```
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.
218
218
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.
220
220
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.
0 commit comments