Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
259 commits
Select commit Hold shift + click to select a range
78f76c3
Change
alphaonex86 Jan 19, 2022
58cb168
[Fix] Last commit
alphaonex86 Jan 19, 2022
2d5b132
[Change] Organize better the render/lib
alphaonex86 Jan 24, 2022
b1d562b
[Change] Push the v2 UI, starting be adapted to v3 API
alphaonex86 Jan 25, 2022
adbff66
[Fix] Now v2 UI compile
alphaonex86 Jan 25, 2022
a497748
[Fix] v2 UI now work
alphaonex86 Jan 25, 2022
c9e32b2
[Fix] Fix UI v2 crash
alphaonex86 Jan 25, 2022
aafe9ed
[Fix] More fix for last change
alphaonex86 Jan 27, 2022
b53c3be
[Change] Better Epoll part isolation
alphaonex86 Jan 27, 2022
7562304
[Fix] Fix server start
alphaonex86 Jan 27, 2022
66f53fb
[Fix] Debug for some server
alphaonex86 Jan 28, 2022
b451846
Try fix
alphaonex86 Jan 28, 2022
747a34a
[Fix] Fix infinite retry login server
alphaonex86 Jan 29, 2022
5aa9686
[Fix] Last fix multi
alphaonex86 Feb 1, 2022
50eb976
[Change] Order Qt server folder and do type by database type
alphaonex86 Feb 1, 2022
770ba1a
[Fix] Some fix for solo
alphaonex86 Feb 1, 2022
fc0fd46
[Fix] Fix buffer city time access
alphaonex86 Feb 1, 2022
e8217fe
[Clean] Clean tools folder
alphaonex86 Feb 2, 2022
ba90e47
[Fix] Fix client url
alphaonex86 Feb 3, 2022
f0099b5
[Fix] Fix server crash at disolv clan
alphaonex86 Feb 5, 2022
79ceeed
[Fix] Fix for android
alphaonex86 Feb 5, 2022
7c7eecb
[Fix] Drop libopus depandancy
alphaonex86 Feb 5, 2022
848f53d
[Fix] Fix android build
alphaonex86 Feb 5, 2022
921e6e8
[Fix] Fix quest
alphaonex86 Feb 6, 2022
285036e
[Change] Start using lib for client to have fastest compilation
alphaonex86 Feb 7, 2022
4b01f80
[Change] Add open to lan
alphaonex86 Feb 8, 2022
56670a5
[Fix] Fix crash into open to lan
alphaonex86 Feb 8, 2022
9403008
[Fix] Last fix to open to lan
alphaonex86 Feb 8, 2022
82292fc
[Fix] Fix Qt server timer
alphaonex86 Feb 9, 2022
1e2e940
[Change] protected var now should use method
alphaonex86 Feb 11, 2022
e001a05
[Fix] Fix strange /1000 xp rate divider
alphaonex86 Feb 11, 2022
ff2decf
[Fix] Fix python compilation file
alphaonex86 Feb 13, 2022
ed55bca
[Fix] Fix audio part and zone extra loading
alphaonex86 Feb 13, 2022
60e2ee7
[Fix] Fix ledge jump over related
alphaonex86 Feb 14, 2022
0cd6956
[Fix] Fix try catch
alphaonex86 Feb 14, 2022
5881060
[Fix] Fix lot of clang/llvm warning
alphaonex86 Feb 15, 2022
38cf0d9
[Fix] Fix more warning
alphaonex86 Feb 15, 2022
fabb6af
[Fix] multiple error message fix
alphaonex86 Feb 15, 2022
ea95ebc
[Change] Filter the exported symbol for lib
alphaonex86 Feb 15, 2022
de4570f
[Fix] Fix some warning on windows platform
alphaonex86 Feb 15, 2022
ce2a0d7
[Fix] Ignore master checksum when is in save mode for gameserver
alphaonex86 Feb 15, 2022
89283a9
[Fix] Try fix map2png
alphaonex86 Feb 16, 2022
de8f80c
[Fix] Partial fix warehouse
alphaonex86 Feb 16, 2022
1c29ebd
[Fix] Final fix for warehouse
alphaonex86 Feb 17, 2022
860954d
[Fix] fix monster move up/down
alphaonex86 Feb 17, 2022
ea8adf2
[Fix] Improve datapack purge, drop cache in this case
alphaonex86 Feb 17, 2022
0da3ef6
[Fix] Fix finish correctly the fight at end of fight, allow next fight
alphaonex86 Feb 18, 2022
4eb242e
[Fix] Fix for reconnect the stats server to login server
alphaonex86 Feb 26, 2022
1cd2348
[Fix] Fix update the server_list.xml
alphaonex86 Feb 26, 2022
ae2f525
[Fix] Fix player updater with the new base
alphaonex86 Feb 26, 2022
a603a94
[Fix] Final fix for open to lan
alphaonex86 Feb 26, 2022
c98c20e
[Fix] Fix for mac
alphaonex86 Mar 3, 2022
d5c2296
[Fix] Fix database query for character creation and put more check
alphaonex86 Mar 5, 2022
3d628b0
[Fix] Disable some debug
alphaonex86 Mar 5, 2022
c8dee8c
[Fix] Increment version
alphaonex86 Mar 5, 2022
a9a73fc
[Fix] Fix for datapack transfert
alphaonex86 Mar 9, 2022
76597fd
[Fix] Now gateway is fully functional with internal protocol file tra…
alphaonex86 Mar 10, 2022
7515c84
[Change] Remake to gateway to have better view of connexion flow to p…
alphaonex86 Mar 15, 2022
dab3488
[Change] Add basic socks support
alphaonex86 Mar 18, 2022
7dca30c
[Fix] Finish the socks proxy support in gateway
alphaonex86 Mar 18, 2022
1dda85b
[Fix] Fix wrong curl option usage, fix segfault
alphaonex86 Mar 18, 2022
f6ace0f
[Fix] Try new way to cache file partial hash from Ultracopier
alphaonex86 Mar 20, 2022
c20f5cd
[Fix] Fix for unix
alphaonex86 Mar 20, 2022
59a8c9e
[Fix] Fix datapack Lan incorrect char
alphaonex86 Mar 20, 2022
c37363b
[Fix] Fix double call
alphaonex86 Mar 26, 2022
6590a57
[Fix] Fix stat reconnect
alphaonex86 Mar 31, 2022
935d69d
[Fix] Fix for web assbly
alphaonex86 Apr 5, 2022
79f7d28
[Add] Video generator for youtube video
alphaonex86 May 8, 2022
f1726c9
[Add] Finish the video genetion for youtube
alphaonex86 May 14, 2022
59d3a9d
[Fix] Fix websocket server edit
alphaonex86 May 31, 2022
36a0035
[Fix] Fix for MySQL epoll server
alphaonex86 Jun 2, 2022
efd0559
[Fix] Add missing datapack cache data
alphaonex86 Jun 15, 2022
a348691
[Fix] Client, 8Bits to discard buggy cache later
alphaonex86 Jun 16, 2022
2c8a6a7
[Improvement] Improve debug via console mesage
alphaonex86 Jun 21, 2022
23e5ea2
[Fix] Fix update url
alphaonex86 Jul 13, 2022
81bb766
[Fix] Fix the new url
alphaonex86 Jul 28, 2022
41147b1
[Fix] Fix when cache generate execption when buggy
alphaonex86 Aug 9, 2022
982463b
[Fix] Workaround for non-closed connexion when login is proxy
alphaonex86 Aug 16, 2022
c025648
[Improvement] Clean not used header for faster compilation time
alphaonex86 Aug 17, 2022
4b53434
[Fix] Fix some missing include
alphaonex86 Aug 22, 2022
1ad9cdf
[Change] Partial remake for multimap path finding
alphaonex86 Aug 30, 2022
8734804
[Fix] More fix and cleaner path finding, bug remain
alphaonex86 Sep 6, 2022
0616660
[Fix] Path finding progress
alphaonex86 Sep 7, 2022
25a22ab
[Fix] Path finding finished
alphaonex86 Sep 7, 2022
83da736
[Fix] Mutiple fix for login server
alphaonex86 Sep 11, 2022
2f99227
[Improvement] Improve security flags into make.py
alphaonex86 Sep 11, 2022
e2b884d
[Fix] Fix login server internal var change loop
alphaonex86 Oct 10, 2022
9d07cb8
[Fix] Fix new tiled format
alphaonex86 Dec 26, 2022
f0268e5
[Fix] add README
alphaonex86 Dec 26, 2022
c47d4b9
[Fix] Fix bot actions software
alphaonex86 Jan 29, 2023
bdc92b9
[Fix] Fix when CATCHCHALLENGER_EXTRA_CHECK disabled for client
alphaonex86 Jan 31, 2023
4d8d7f6
[Fix] Fix for MIPS big endian debian 10
alphaonex86 Mar 2, 2023
2b6c840
[Fix] More fix fog big endian
alphaonex86 Mar 2, 2023
a8573e8
[Fix] Last fix
alphaonex86 Apr 19, 2023
d35d167
[Fix] Fix the v3 with the new lib
alphaonex86 May 7, 2023
f3c88ee
[Fix] Fix the v3 with the new lib (fix)
alphaonex86 May 7, 2023
3561459
[Fix] Fix go to the first screen
alphaonex86 May 8, 2023
9b99c74
[Fix] Fix login server crash when already error happend
alphaonex86 May 28, 2023
268709a
[Fix] Fix opengl client with new structure
alphaonex86 May 28, 2023
cf1fc5a
[Fix] Fix uselib version
alphaonex86 May 29, 2023
0be4844
[Change] Split more the GUI part
alphaonex86 May 30, 2023
c3db260
[Fix] Server stop when Thread is not up
alphaonex86 May 30, 2023
ec9fdf4
[Fix] qtopengl fix software never close
alphaonex86 Jun 2, 2023
0133af9
[Fix] Fix open to lan with qtopengl client
alphaonex86 Jun 8, 2023
905f558
[Add] Black hole mode server
alphaonex86 Jun 10, 2023
4c0ea25
[Fix] Fix the last commit
alphaonex86 Jun 10, 2023
d090520
[Fix] Fix black hole server
alphaonex86 Jun 11, 2023
10c7fa6
[Fix] Fix for gcc 13
alphaonex86 Jun 14, 2023
88e0aaa
[Change] Drop market
alphaonex86 Jun 24, 2023
c15fc91
[Fix] Remove last market part like database
alphaonex86 Jun 24, 2023
90ef7cf
[Change] Change the server preload function name to indicate the order
alphaonex86 Jun 25, 2023
77e770d
[Change] Now the default visibility algorithm take care of bandwitdh …
alphaonex86 Jun 25, 2023
c9ae667
[Fix] Small fix for the last commit
alphaonex86 Jun 25, 2023
c29f497
[Change] Add change for file DB
alphaonex86 Sep 24, 2023
69cfa5f
[Change] Little progress on DB FILE server
alphaonex86 Sep 30, 2023
ce5deb9
[Change] Continue on FILEDB
alphaonex86 Oct 7, 2023
2da7fc6
[Fix] Fix server DB FILE for server list
alphaonex86 Oct 8, 2023
d384b4d
[Fix] Fix SQL server
alphaonex86 Oct 15, 2023
7e013ef
[Change] Server DB FILE progress on char select
alphaonex86 Oct 17, 2023
57c8323
[Change] Add internal server var save for FILE DB
alphaonex86 Oct 17, 2023
ddd59dc
[Fix] Fix some client lib
alphaonex86 Oct 19, 2023
50d6b2f
[Fix] Fix protocol DDOS filter
alphaonex86 Oct 22, 2023
d8258c9
[Fix] Fix out of range into pathfinding
alphaonex86 Oct 22, 2023
05f25f6
[Fix] Fix for bot action tools
alphaonex86 Oct 23, 2023
bf552f8
[Fix] Fix bot action
alphaonex86 Oct 23, 2023
fcbf63f
[Fix] Fix Insert player on map
alphaonex86 Oct 26, 2023
0bb367d
[Change] Order map management to be more clear
alphaonex86 Oct 26, 2023
4d01a29
[Change] EpollClient -> EpollClientAdvanced to be more clear
alphaonex86 Oct 29, 2023
f47c049
[Fix] Remove the second file with very similar name and not used
alphaonex86 Nov 4, 2023
fd5ae39
[Fix] Fix client without lib
alphaonex86 Nov 5, 2023
fe754ef
[Fix] Fix epoll
alphaonex86 Nov 5, 2023
0f57ab7
[Change] API change to be more clear and all child have to override t…
alphaonex86 Nov 5, 2023
c9c0633
[Change] Now the API hashSha224 is included into the API
alphaonex86 Nov 6, 2023
aaa78fc
[Change] API change, drop not needed fonction
alphaonex86 Nov 14, 2023
2bba686
[Change] API datapack fonction into qt layer
alphaonex86 Nov 14, 2023
8dfd8c4
[Fix] Fix crash bug due to new server mode, early close, ...
alphaonex86 Dec 7, 2023
42df882
[Change] Start remove all embed libs
alphaonex86 Jan 22, 2024
9ad20f5
[Add] Add some tools rewriten in C
alphaonex86 Jan 22, 2024
1cd8b77
[Fix] Fix char select/creatrion for bot
alphaonex86 Jan 28, 2024
f9923a9
[Change] Update code for the libtiled update
alphaonex86 Jun 17, 2024
1e4b4b1
[Change] Fix the previous commit, to update libtiled
alphaonex86 Jun 17, 2024
6c5c413
[Change] Add wiki imagen
alphaonex86 Jun 24, 2024
04bf06e
[Change] Add reason of flat file choice
alphaonex86 Jun 24, 2024
7a5c3fb
[Change] More doc and tools
alphaonex86 Aug 18, 2024
a015c80
[Change] start the version 4
alphaonex86 Aug 18, 2024
de89d13
[Fix] Fix server code and error text
alphaonex86 Aug 19, 2024
4196536
[Fix] Fix new libtiled
alphaonex86 Aug 29, 2024
81b23df
Update README.md: Fix typos
jonadem Jan 2, 2025
72d210e
Merge pull request #18 from jonadem/patch-1
alphaonex86 Jan 2, 2025
fb2bcb1
[Change] Simpler map visibility
alphaonex86 Jan 6, 2025
9fbb8ad
[Changes] prepare flags to drop XML support and work from cache for t…
alphaonex86 Jan 23, 2025
cfa34ba
[Changes] Now map type is fixed, map limit is 65535, zones limit is 255
alphaonex86 Jan 23, 2025
9a8ff28
[Changes] Continue cleaning
alphaonex86 Jan 24, 2025
4facb0f
[Changes] Big database changes to load data by map
alphaonex86 Jan 27, 2025
4cd4ecb
[Changes] Continue cleaning
alphaonex86 Jan 27, 2025
08f487a
[Changes] Continue to change server structures
alphaonex86 Feb 2, 2025
bdcf22c
[Changes] Map list is more cleaner and with more comment
alphaonex86 Feb 20, 2025
46baefa
[Changes] Now use index on map, improve load from cache (drop resolut…
alphaonex86 Feb 21, 2025
1c88b5f
[Changes] Continue changes around map structure to improve performance
alphaonex86 Mar 3, 2025
cc56a52
[Changes] Less code is better
alphaonex86 Mar 12, 2025
f37ceed
[Changes] Continue migrate on mapIndex
alphaonex86 Mar 30, 2025
2fe0541
[Changes] More map loading in common
alphaonex86 Apr 16, 2025
3bee24c
[Changes] Continue clean code
alphaonex86 Apr 16, 2025
315afb8
[Changes] Drop old file
alphaonex86 Apr 16, 2025
8cc3648
[Changes] Continue on map loader common
alphaonex86 Jul 17, 2025
bedc279
[Changes] Fix last commit
alphaonex86 Jul 18, 2025
216c936
[Changes] Continue on new map loaded
alphaonex86 Jul 18, 2025
e7d3e39
[Changes] Restructure map resolver
alphaonex86 Jul 18, 2025
49b9dbf
[Changes] now can load folder (server) or files and related (client)
alphaonex86 Jul 21, 2025
4050f57
[Changes] Finish the common map loader
alphaonex86 Jul 24, 2025
00d0a15
[Changes] Finish base common code
alphaonex86 Jul 25, 2025
e737879
[Fix] Fix clang problem
alphaonex86 Jul 26, 2025
7e6e27f
[Changes] Do changes to allow multiple map list, to allow cliente/ser…
alphaonex86 Jul 27, 2025
85b1e85
[Changes] Continue on map changes
alphaonex86 Jul 30, 2025
98f4d4f
[Clean] More cleaner name for map server folder code
alphaonex86 Jul 30, 2025
2321b36
[Changes] Continue on map remake
alphaonex86 Jul 30, 2025
3663a57
[Changes] Continue on server remake
alphaonex86 Aug 2, 2025
f6f8e94
[Changes] Continue on the rework
alphaonex86 Aug 23, 2025
56ab0c3
[Update] Update doc and explain better and more
alphaonex86 Aug 24, 2025
dc30a21
[Fix] Continue improve internal structure
alphaonex86 Aug 25, 2025
c6da859
[Changes] Changes more files name to be more clear
alphaonex86 Aug 25, 2025
6d45413
[Changes] Continue on client/map structure remake
alphaonex86 Aug 25, 2025
05a970f
[Changes] Continue on general structure changes
alphaonex86 Sep 5, 2025
2a65980
[Changes] More cleaner Epoll implementation, More cleaner Client list
alphaonex86 Sep 7, 2025
77c0de6
[Changes] Continue to structure better the ClientList
alphaonex86 Sep 10, 2025
4becac2
[Changes] Some city/clan cleanup
alphaonex86 Sep 11, 2025
7f23cc7
[Changes] Drop duplicate variables, rename to be more clear, less var…
alphaonex86 Oct 31, 2025
10a610d
[Changes] Continue clean, drop and remake to be more clear
alphaonex86 Nov 1, 2025
11eeffc
[Changes] Protocol changed to send data by map
alphaonex86 Nov 4, 2025
1998d75
[Changes] Start map management
alphaonex86 Nov 12, 2025
82b4c63
[Changes] Finish map management
alphaonex86 Nov 17, 2025
7a667e6
[Changes] More clear names
alphaonex86 Nov 21, 2025
b11bd7c
[Changes] More clear names
alphaonex86 Nov 21, 2025
38e769f
[Changes] Ever more clear names
alphaonex86 Nov 21, 2025
15f0b1f
[Changes] Continue on server
alphaonex86 Nov 26, 2025
a6ff45e
[Fix] Fix new algo complexity to have O(1)
alphaonex86 Nov 27, 2025
e86d7f7
[Doc] Add more doc for next backbone
alphaonex86 Nov 27, 2025
3e8bf9b
[Doc] Improve more the P2P backbone
alphaonex86 Nov 28, 2025
4723e7b
[Doc] More detailed VPN
alphaonex86 Nov 28, 2025
18a4978
[Changes] Now the index of list is fixed
alphaonex86 Nov 28, 2025
a025dcc
[Doc] Improve README
alphaonex86 Nov 28, 2025
e505c8a
[Fix] Continue fix the new code
alphaonex86 Dec 18, 2025
02d7e54
[Fix] Fix new server code, just missing linker func
alphaonex86 Dec 25, 2025
8ad8920
[Fix] Server epoll now compile again
alphaonex86 Dec 29, 2025
d300061
[Doc] update more on doc
alphaonex86 Jan 1, 2026
109a854
[]
alphaonex86 Jan 11, 2026
8f33024
[Changes] Client API use now global type
alphaonex86 Jan 25, 2026
776adb8
[Fix] Fix client API for some loader
alphaonex86 Jan 26, 2026
412e099
[Changes] Defines map loader format for client
alphaonex86 Jan 31, 2026
17f5fcf
[Fix] Now compile the C++ client lib, most of map related is now load…
alphaonex86 Feb 5, 2026
a960310
[Changes] Better standard type and API, now taking care of new datapa…
alphaonex86 Feb 5, 2026
e0c56ae
[Fix] Continue fixing Qt lib for client
alphaonex86 Feb 7, 2026
049ffda
[Doc] Explain more how is structured the libcatchchallenger
alphaonex86 Feb 8, 2026
eb3926d
[Doc] Explain more how is structured the libcatchchallenger 2
alphaonex86 Feb 8, 2026
dd79eb8
[Improvament] Improve client lib
alphaonex86 Mar 5, 2026
fcbeb23
[Changes] Continue clean Qt lib client, now index is numeric, not string
alphaonex86 Mar 18, 2026
ee5a690
[docs] Improve the docs of this repository
alphaonex86 Mar 29, 2026
e8d4b6e
[docs] Add some images to README
alphaonex86 Mar 29, 2026
de6caa2
[Changes] Better folder
alphaonex86 Mar 29, 2026
46029d5
[Fix] Fix the map all, var, drop duplicate, pass all index to int
alphaonex86 Apr 3, 2026
ecc62f7
[Fix] Progress on new structure
alphaonex86 Apr 4, 2026
b70f3ff
[Fix] try claude fix
alphaonex86 Apr 5, 2026
35a2556
[Remake] Full remake by claude 4.6
alphaonex86 Apr 8, 2026
ddd9e1e
[Fix] Fix config
alphaonex86 Apr 9, 2026
28131b7
[Fix] drop bin
alphaonex86 Apr 9, 2026
0e91190
[Fix] Fix to have server working
alphaonex86 Apr 9, 2026
793833a
[Fix] Better check around datapack sync
alphaonex86 Apr 10, 2026
116f6d6
[Fix] Fix connecting bug
alphaonex86 Apr 10, 2026
c71965d
[Fix] Now the player view is center
alphaonex86 Apr 11, 2026
384e950
[Fix] Fix last commit
alphaonex86 Apr 11, 2026
9fec660
[Fix] Some fix for client
alphaonex86 Apr 12, 2026
40a3b24
[Add] Add tools site generator in C++
alphaonex86 Apr 12, 2026
03273fe
[Fix] Remove wrong file
alphaonex86 Apr 13, 2026
f27c04e
[Fix] Fix for single player
alphaonex86 Apr 13, 2026
3aafbb6
[Fix] Fix following monster
alphaonex86 Apr 13, 2026
e3e5b07
[Fix] More fixes
alphaonex86 Apr 13, 2026
ed3557a
[Doc] add more doc, more clean, more help
alphaonex86 Apr 13, 2026
3f4d9d1
[Changes] To test some stuff
alphaonex86 Apr 13, 2026
11ba0bd
[Fix] Fix openGL client
alphaonex86 Apr 14, 2026
2398006
[Fix] Lot of fix for multiplayer game
alphaonex86 Apr 14, 2026
a6aa43a
[Fix] Lot of fix around multiplayer, crash on client, ...
alphaonex86 Apr 14, 2026
3ac63a4
[Fix] Fix bot
alphaonex86 Apr 15, 2026
fe3098b
[Fix] drop bin
alphaonex86 Apr 15, 2026
a6f742d
[Clean] less database, less var, cleaner code
alphaonex86 Apr 16, 2026
5fd057c
[Fix] Fix and cleaner code/database
alphaonex86 Apr 16, 2026
b3ffb9a
[Fix] Better English name
alphaonex86 Apr 16, 2026
61e2df6
[Fix] Fix crash
alphaonex86 Apr 16, 2026
4988907
[Fix] Add more fixes in maprender
alphaonex86 Apr 16, 2026
2f36a9d
[Clean] clean debug message and wrong test
alphaonex86 Apr 16, 2026
41fe9b2
[Changes] Now expose correct method and not all data
alphaonex86 Apr 18, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
16 changes: 15 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,10 @@
/server/catchchallenger-server-cli-epoll
/client/catchchallenger

# generated output
/tools/map-procedural-generation/dest
/tools/datapack-explorer-generator-cli/datapack-explorer-generator

### Qt ###
# C++ objects and libs
*.so.*
Expand Down Expand Up @@ -61,6 +65,13 @@ Makefile*
*.qm
*.prl

.qtcreator
moc_*
ui_*
qrc_*
Makefile
.claude

# Qt unit tests
target_wrapper.*

Expand Down Expand Up @@ -94,4 +105,7 @@ tools/to-pack/data/windows-x*
# Configurations
/server/server-properties.xml
/client/datapack
/server/datapack
/server/datapack

client/qtopengl/catchchallenger
client/qtcpu800x600/catchchallenger
106 changes: 19 additions & 87 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,120 +1,52 @@
# Intro

The client and server is under GPL3. And part of the project:
http://catchchallenger.first-world.info/

## Description
This game is a MMORPG, Lan game and a single player game. It's mix of pokemon for the RPG part, lineage for the crafting/clan/MMORPG, X3 for the commerce/fabric/industry. With mod possibility, and datapack.
![structure](structure.png)

It's a pixel art game. The work is concentrated on the gameplay/performance/security/creativity/accessibility. The income is to paid the developping and the artwork. The game is fully open source (GPL3).

The gameplay have strong team part, but remain interresting in single player. Have clear advantage on 3G/wifi/TOR connexion or into the tiers world.
This game is a MMORPG, Lan game and a single player game. It's mix of pokemon for the RPG part, crafting/clan/TvT, industry. Modular datapck.

## License
client/tiled/ is extracted version of http://www.mapeditor.org/, https://github.com/bjorn/tiled
libogg and fileopus is extracted from other project
Interface UI is from buyed template (then under copyright)

## Programing

Asynchronous protocol with no influence of internet and server latency. Thread isolation for the important or heavy server task. It can be hosted on ADSL connection.

SGBD for Qt version: Mysql 5+, SQLite, PostgreSQL 9+. SGBD for epoll version (async to high performance): Mysql 5.5+, PostgreSQL 9+.
Interface UI is from bought template (then under copyright)

## Prerequisites

### Postgresql

You need to create this roles:
* catchchallenger-login
* catchchallenger-base

Then:
```sh
su -l postgres
cd server/databases/postgresql
echo 'CREATE DATABASE catchchallenger_login;' | psql postgres postgres
echo 'CREATE DATABASE catchchallenger_base;' | psql postgres postgres
echo 'CREATE DATABASE catchchallenger_common;' | psql postgres postgres
echo 'CREATE DATABASE catchchallenger_server;' | psql postgres postgres
psql catchchallenger_login postgres < catchchallenger-postgresql-login.sql
psql catchchallenger_base postgres < catchchallenger-postgresql-base.sql
psql catchchallenger_common postgres < catchchallenger-postgresql-common.sql
psql catchchallenger_server postgres < catchchallenger-postgresql-server.sql
echo 'GRANT ALL ON ALL TABLES IN SCHEMA public TO "catchchallenger-login";' | psql catchchallenger_login postgres
echo 'GRANT ALL ON ALL TABLES IN SCHEMA public TO "catchchallenger-base";' | psql catchchallenger_base postgres
echo 'GRANT ALL ON ALL TABLES IN SCHEMA public TO "catchchallenger-login";' | psql catchchallenger_common postgres
echo 'GRANT ALL ON ALL TABLES IN SCHEMA public TO "catchchallenger-login";' | psql catchchallenger_server postgres
```
# Target
- minimal dependency (searcg dependency hell, bug/security problem in dependency)
- no bloatware (no stupid features, no features used for only 1 person if imply lot of code or dangerous code, no unrelated features)
- async, support high latency, very low bandwidth (tipical of TOR/I2P)
- send datapack by internal protocol (overall compression to group similar part into multiple file) and http mirror, and when datapack is downloaded by client can be used to mount new server with same datapack
- most processing is cliend side

## Compiling

Use **C++11**
Use **C++11** to **C++23**, C++23 is preferred to use std::flat_map on read only data of datapack where apply (lower RAM and improve speed)

Dependency:
* zlib (can be disabled but it's for tiled map editor)
* zlib (can be disabled but it's for tiled map editor). zstd
* blake3 to have maximal performance and be future proof to replace sha224
* xxh to have light check for what file have changed, eg truncated to 32Bits datapack file list
* Client
* Qt openssl enabled to have QSslSocket or QtWebSocket
* Qt openssl enabled to have QSslSocket or QtWebSocket, QThread
* Server
* Qt if generic server
* db
* db driver (mysql, sqlite for game solo, postgresql, depands of you choice)
* Qt if generic server + Qt SQL drivers (mysql, sqlite for game solo, postgresql)
* libpq (postgresql in async) or raw binary file
* Gateway
* curl to download datapack via http

### Linux distro
**Ubuntu**: apt-get install build-essential gcc automake qt5-qmake qt5-default libzstd-dev zlib1g-dev libssl-dev libpq-dev libqt5sql5-psql libqt5websockets5-dev libqt5sql5-sqlite libqt5sql5-mysql qtdeclarative5-dev qtscript5-dev

**Debian stretch**: apt-get install build-essential gcc automake qt5-qmake libzstd-dev zlib1g-dev libssl-dev libpq-dev qttools5-dev qt5-default libqt5sql5-psql libqt5websockets5-dev libqt5sql5-psql libqt5sql5-sqlite libqt5sql5-mysql qtdeclarative5-dev qtscript5-dev

### Gui server
```sh
cd server/
qmake catchchallenger-server-gui.pro
make
git clone --depth=1 https://github.com/alphaonex86/CatchChallenger-datapack datapack
```

### CLI server
```sh
cd server/
qmake catchchallenger-server-cli.pro
make
git clone --depth=1 https://github.com/alphaonex86/CatchChallenger-datapack datapack
```

### Epoll server (linux only, high performance)
**Ubuntu**: apt-get install libzstd-dev zlib1g-dev libssl-dev libpq-dev

**Debian stretch**: apt-get install build-essential gcc automake qt5-qmake libzstd-dev zlib1g-dev libssl-dev libpq-dev qttools5-dev qt5-default

```sh
cd server/
qmake catchchallenger-server-cli-epoll.pro
make
git clone --depth=1 https://github.com/alphaonex86/CatchChallenger-datapack datapack
chmod a+x catchchallenger-server-cli-epoll
./catchchallenger-server-cli-epoll
```

### Client
**Debian stretch**: apt-get install build-essential gcc automake qt5-qmake libzstd-dev zlib1g-dev libssl-dev libpq-dev qttools5-dev qt5-default qtdeclarative5-dev qtscript5-dev

```sh
cd client/
qmake *.pro
make
git clone --depth=1 https://github.com/alphaonex86/CatchChallenger-datapack datapack
mkdir datapack
cd datapack
git clone --depth=1 https://github.com/alphaonex86/CatchChallenger-datapack internal
chmod a+x catchchallenger
./catchchallenger
```

# Sources
* The sources of the client/server: https://github.com/alphaonex86/CatchChallenger
* The sources of the datapack: https://github.com/alphaonex86/CatchChallenger-datapack
* The sources of the site: https://github.com/alphaonex86/CatchChallenger-site

# Hardware
You need CPU with support of unaligned access on 8/16/32Bits for the server at least (plan to support all CPU)

The server is actually 10-20MB of memory (1MB measured by massif) and 2KB by player
4 changes: 0 additions & 4 deletions THANKS

This file was deleted.

28 changes: 0 additions & 28 deletions client/.qmake.stash

This file was deleted.

11 changes: 11 additions & 0 deletions client/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
![client](cc-API-client.png)

# CPU client
*qtcpu800x600* folder, do into Qt widget + Qgraphicview, simple to modify via Qt creator, only 800x600 resolution

# GPU client
*qtopengl* folder, use OpenGL, responsive, mean auto change the content with the given resolution, perfect for smartphone

# lib
* *libcatchchallenger* C++ lib, just to convert binary protocol to function call, and parse datapack to in memory contant, should be able to be used as rust, python, ... lib
* *libqtcatchchallenger* Qt lib, used to load more advanced content like images/sound via Qt to don't have to do the work into Qt client
42 changes: 0 additions & 42 deletions client/android-sources/build.sh

This file was deleted.

Binary file removed client/android-sources/res/mipmap-xhdpi/icon.png
Binary file not shown.
Binary file removed client/android-sources/res/mipmap-xxhdpi/icon.png
Binary file not shown.
Binary file removed client/android-sources/res/mipmap-xxxhdpi/icon.png
Binary file not shown.
2 changes: 1 addition & 1 deletion client/catchchallenger-2.2.0.0.recipe
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
SUMMARY="Game MMORPG/single player game. You can fight, farming, crafting, trading"
DESCRIPTION="This game is a independent MMORPG or a single player game."
HOMEPAGE="https://catchchallenger.first-world.info/"
HOMEPAGE="https://catchchallenger.herman-brule.com/"
COPYRIGHT="2011-2019 BRULE Herman Jacques Roger (alpha_one_x86)"
LICENSE="GNU GPL v3"
REVISION="1"
Expand Down
14 changes: 5 additions & 9 deletions client/catchchallenger.pro
Original file line number Diff line number Diff line change
@@ -1,9 +1,5 @@
include(qtopengl/client.pri)
include(../general/general.pri)
include(qt/qt.pri)

linux:QMAKE_CXXFLAGS+="-Wno-deprecated-declarations"
linux:QMAKE_CFLAGS+="-Wno-deprecated-declarations"

DEFINES += OPENGL CATCHCHALLENGER_CACHE_HPS
TARGET = catchchallenger
include(qtopengl/catchchallenger-qtopengl.pro)
#DEFINES += DEBUG_PROTOCOLPARSING_RAW_NETWORK
#DEFINES += DEBUG_MESSAGE_CLIENT_SQL
DEFINES += CATCHCHALLENGER_CACHE_HPS
linux:QMAKE_LFLAGS += -fuse-ld=mold
Binary file added client/cc-API-client.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
15 changes: 0 additions & 15 deletions client/cpu/.qmake.stash

This file was deleted.

13 changes: 0 additions & 13 deletions client/cpu/catchchallenger.pro

This file was deleted.

Loading