game_machine 0.0.11 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (274) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +12 -1
  3. data/Gemfile.lock +32 -47
  4. data/Rakefile +0 -27
  5. data/bin/bundle_run.sh +1 -0
  6. data/bin/game_machine +29 -27
  7. data/config/cluster.conf +6 -5
  8. data/config/default.conf +164 -0
  9. data/config/game_machine.sql +33 -0
  10. data/config/game_messages.proto +87 -25
  11. data/config/gamecloud.conf +140 -0
  12. data/config/messages.proto +46 -53
  13. data/config/test.conf +149 -0
  14. data/game_machine.gemspec +10 -5
  15. data/games/boot.rb +3 -0
  16. data/games/example/data/game_data.yml +4 -4
  17. data/games/example/lib/aggressive_npc.rb +1 -1
  18. data/games/example/lib/game.rb +1 -2
  19. data/games/example/lib/player_register.rb +1 -1
  20. data/games/routes.rb +9 -0
  21. data/games/tutorial/boot.rb +12 -0
  22. data/games/tutorial/item_manager.rb +256 -0
  23. data/games/tutorial/object_store.rb +55 -0
  24. data/games/tutorial/seed.rb +52 -0
  25. data/games/tutorial/sql_store.rb +30 -0
  26. data/java/project/build.gradle +134 -0
  27. data/java/project/component.erb +719 -0
  28. data/java/{gradle.properties → project/gradle.properties} +1 -1
  29. data/java/project/gradle/wrapper/gradle-wrapper.jar +0 -0
  30. data/java/{gradle → project/gradle}/wrapper/gradle-wrapper.properties +2 -2
  31. data/java/{gradlew → project/gradlew} +0 -0
  32. data/java/{gradlew.bat → project/gradlew.bat} +0 -0
  33. data/java/project/local_lib/AdminUi.jar +0 -0
  34. data/java/{local_lib/protostuff-compiler-1.0.7-jarjar.jar → project/local_lib/protostuff-compiler-1.0.8-jarjar.jar} +0 -0
  35. data/java/project/local_lib/sigar/libsigar-amd64-freebsd-6.so +0 -0
  36. data/java/project/local_lib/sigar/libsigar-amd64-linux.so +0 -0
  37. data/java/project/local_lib/sigar/libsigar-amd64-solaris.so +0 -0
  38. data/java/project/local_lib/sigar/libsigar-ia64-hpux-11.sl +0 -0
  39. data/java/project/local_lib/sigar/libsigar-ia64-linux.so +0 -0
  40. data/java/project/local_lib/sigar/libsigar-pa-hpux-11.sl +0 -0
  41. data/java/project/local_lib/sigar/libsigar-ppc-aix-5.so +0 -0
  42. data/java/project/local_lib/sigar/libsigar-ppc-linux.so +0 -0
  43. data/java/project/local_lib/sigar/libsigar-ppc64-aix-5.so +0 -0
  44. data/java/project/local_lib/sigar/libsigar-ppc64-linux.so +0 -0
  45. data/java/project/local_lib/sigar/libsigar-s390x-linux.so +0 -0
  46. data/java/project/local_lib/sigar/libsigar-sparc-solaris.so +0 -0
  47. data/java/project/local_lib/sigar/libsigar-sparc64-solaris.so +0 -0
  48. data/java/project/local_lib/sigar/libsigar-universal-macosx.dylib +0 -0
  49. data/java/project/local_lib/sigar/libsigar-universal64-macosx.dylib +0 -0
  50. data/java/project/local_lib/sigar/libsigar-x86-freebsd-5.so +0 -0
  51. data/java/project/local_lib/sigar/libsigar-x86-freebsd-6.so +0 -0
  52. data/java/project/local_lib/sigar/libsigar-x86-linux.so +0 -0
  53. data/java/project/local_lib/sigar/libsigar-x86-solaris.so +0 -0
  54. data/java/project/local_lib/sigar/sigar-amd64-winnt.dll +0 -0
  55. data/java/project/local_lib/sigar/sigar-x86-winnt.dll +0 -0
  56. data/java/project/local_lib/sigar/sigar-x86-winnt.lib +0 -0
  57. data/java/project/model.erb +99 -0
  58. data/java/{settings.gradle → project/settings.gradle} +0 -0
  59. data/java/project/src/main/java/com/game_machine/authentication/DefaultAuthenticator.java +28 -0
  60. data/java/project/src/main/java/com/game_machine/authentication/PlayerAuthenticator.java +6 -0
  61. data/java/project/src/main/java/com/game_machine/authentication/PublicAuthenticator.java +20 -0
  62. data/java/{src → project/src}/main/java/com/game_machine/core/ActorFactory.java +0 -0
  63. data/java/{src → project/src}/main/java/com/game_machine/core/ActorUtil.java +13 -0
  64. data/java/project/src/main/java/com/game_machine/core/AuthorizedPlayers.java +23 -0
  65. data/java/project/src/main/java/com/game_machine/core/ClientMessageDecoder.java +36 -0
  66. data/java/project/src/main/java/com/game_machine/core/ClientMessageEncoder.java +19 -0
  67. data/java/project/src/main/java/com/game_machine/core/CloudClient.java +298 -0
  68. data/java/{src → project/src}/main/java/com/game_machine/core/CommandProxy.java +0 -0
  69. data/java/project/src/main/java/com/game_machine/core/Commands.java +20 -0
  70. data/java/project/src/main/java/com/game_machine/core/DatastoreCommands.java +43 -0
  71. data/java/project/src/main/java/com/game_machine/core/DbConnectionPool.java +72 -0
  72. data/java/project/src/main/java/com/game_machine/core/DefaultMovementVerifier.java +56 -0
  73. data/java/{src → project/src}/main/java/com/game_machine/core/EntitySerializer.java +0 -0
  74. data/java/project/src/main/java/com/game_machine/core/EntityTracking.java +119 -0
  75. data/java/{src → project/src}/main/java/com/game_machine/core/EventStreamHandler.java +1 -1
  76. data/java/project/src/main/java/com/game_machine/core/GameActor.java +73 -0
  77. data/java/project/src/main/java/com/game_machine/core/GameMachineLoader.java +43 -0
  78. data/java/project/src/main/java/com/game_machine/core/GameMessageActor.java +44 -0
  79. data/java/project/src/main/java/com/game_machine/core/Grid.java +255 -0
  80. data/java/{src → project/src}/main/java/com/game_machine/core/GridValue.java +0 -0
  81. data/java/project/src/main/java/com/game_machine/core/Hashring.java +66 -0
  82. data/java/{src → project/src}/main/java/com/game_machine/core/IActorFactory.java +0 -0
  83. data/java/project/src/main/java/com/game_machine/core/LocalLinkedBuffer.java +20 -0
  84. data/java/project/src/main/java/com/game_machine/core/MessageGateway.java +120 -0
  85. data/java/project/src/main/java/com/game_machine/core/MessagePersister.java +26 -0
  86. data/java/project/src/main/java/com/game_machine/core/MonoProxy.java +39 -0
  87. data/java/project/src/main/java/com/game_machine/core/MovementVerifier.java +7 -0
  88. data/java/{src → project/src}/main/java/com/game_machine/core/NetMessage.java +10 -6
  89. data/java/project/src/main/java/com/game_machine/core/PersistentMessage.java +9 -0
  90. data/java/project/src/main/java/com/game_machine/core/PlayerCommands.java +31 -0
  91. data/java/project/src/main/java/com/game_machine/core/TcpServer.java +100 -0
  92. data/java/project/src/main/java/com/game_machine/core/TcpServerHandler.java +54 -0
  93. data/java/project/src/main/java/com/game_machine/core/TcpServerInitializer.java +32 -0
  94. data/java/project/src/main/java/com/game_machine/core/UdpClient.java +86 -0
  95. data/java/{src → project/src}/main/java/com/game_machine/core/UdpServer.java +18 -27
  96. data/java/{src → project/src}/main/java/com/game_machine/core/UdpServerHandler.java +23 -26
  97. data/java/project/src/main/java/com/game_machine/core/Vector3.java +159 -0
  98. data/java/project/src/main/java/com/game_machine/orm/models/PlayerItem.java +118 -0
  99. data/java/project/src/main/java/com/game_machine/orm/models/TestObject.java +110 -0
  100. data/java/project/src/main/java/com/game_machine/tutorial/LootGenerator.java +26 -0
  101. data/java/{src → project/src}/main/resources/game_machine.java.stg +3 -1
  102. data/java/project/src/main/resources/logback.properties +13 -0
  103. data/java/project/src/main/resources/logback.xml +76 -0
  104. data/java/{src → project/src}/main/resources/protostuff.properties +0 -0
  105. data/java/src/main/java/game/MyGameActor.java +26 -0
  106. data/lib/game_machine.rb +17 -16
  107. data/lib/game_machine/actor.rb +1 -1
  108. data/lib/game_machine/actor/base.rb +8 -31
  109. data/lib/game_machine/actor/builder.rb +5 -6
  110. data/lib/game_machine/actor/game_actor.rb +55 -0
  111. data/lib/game_machine/actor/reloadable.rb +6 -1
  112. data/lib/game_machine/akka.rb +26 -32
  113. data/lib/game_machine/app_config.rb +39 -26
  114. data/lib/game_machine/application.rb +56 -62
  115. data/lib/game_machine/client_manager.rb +14 -8
  116. data/lib/game_machine/cloud_updater.rb +51 -0
  117. data/lib/game_machine/cluster_monitor.rb +3 -3
  118. data/lib/game_machine/commands.rb +1 -1
  119. data/lib/game_machine/commands/misc_commands.rb +4 -8
  120. data/lib/game_machine/commands/player_commands.rb +8 -0
  121. data/lib/game_machine/console.rb +1 -0
  122. data/lib/game_machine/console/build.rb +57 -24
  123. data/lib/game_machine/console/bundle.rb +95 -0
  124. data/lib/game_machine/console/deploy.rb +30 -0
  125. data/lib/game_machine/console/install.rb +70 -36
  126. data/lib/game_machine/console/server.rb +2 -69
  127. data/lib/game_machine/data_store.rb +111 -15
  128. data/lib/game_machine/data_stores/couchbase.rb +8 -3
  129. data/lib/game_machine/data_stores/gamecloud.rb +93 -0
  130. data/lib/game_machine/data_stores/jdbc.rb +98 -0
  131. data/lib/game_machine/default_handlers.rb +2 -0
  132. data/lib/game_machine/default_handlers/team_handler.rb +51 -0
  133. data/lib/game_machine/default_handlers/zone_manager.rb +30 -0
  134. data/lib/game_machine/endpoints.rb +0 -4
  135. data/lib/game_machine/endpoints/udp_incoming.rb +13 -5
  136. data/lib/game_machine/endpoints/udp_outgoing.rb +15 -9
  137. data/lib/game_machine/game_systems.rb +0 -2
  138. data/lib/game_machine/game_systems/agents/controller.rb +2 -2
  139. data/lib/game_machine/game_systems/entity_tracking.rb +0 -3
  140. data/lib/game_machine/game_systems/region_manager.rb +3 -2
  141. data/lib/game_machine/game_systems/region_service.rb +2 -2
  142. data/lib/game_machine/game_systems/remote_echo.rb +10 -0
  143. data/lib/game_machine/game_systems/team_manager.rb +2 -11
  144. data/lib/game_machine/grid.rb +5 -18
  145. data/lib/game_machine/handlers/authentication.rb +1 -9
  146. data/lib/game_machine/handlers/game.rb +27 -2
  147. data/lib/game_machine/handlers/player_authentication.rb +87 -0
  148. data/lib/game_machine/handlers/request.rb +9 -11
  149. data/lib/game_machine/hocon_config.rb +81 -0
  150. data/lib/game_machine/java_lib.rb +14 -1
  151. data/lib/game_machine/logger.rb +10 -23
  152. data/lib/game_machine/models.rb +1 -0
  153. data/lib/game_machine/mono_server.rb +6 -1
  154. data/lib/game_machine/object_db.rb +12 -6
  155. data/lib/game_machine/protobuf.rb +1 -1
  156. data/lib/game_machine/protobuf/game_messages.rb +13 -3
  157. data/lib/game_machine/protobuf/generate.rb +107 -5
  158. data/lib/game_machine/restart_watcher.rb +1 -1
  159. data/lib/game_machine/routes.rb +23 -0
  160. data/lib/game_machine/scheduler.rb +1 -1
  161. data/lib/game_machine/securerandom.rb +2 -0
  162. data/lib/game_machine/system_stats.rb +28 -7
  163. data/lib/game_machine/version.rb +1 -1
  164. data/lib/game_machine/wavefront_ext.rb +47 -0
  165. data/lib/game_machine/write_behind_cache.rb +24 -9
  166. data/mono/server/Makefile +1 -1
  167. data/mono/server/Newtonsoft.Json.dll +0 -0
  168. data/mono/server/build.bat +1 -1
  169. data/mono/server/callable.cs +9 -0
  170. data/mono/server/echo.cs +17 -0
  171. data/mono/server/message_router.cs +16 -23
  172. data/mono/server/messages.cs +1792 -417
  173. data/mono/server/protobuf-net.dll +0 -0
  174. data/mono/server/server.cs +120 -0
  175. data/mono/server/server.exe +0 -0
  176. data/pathfinding/astar.cpp +149 -0
  177. data/pathfinding/build.sh +6 -0
  178. data/pathfinding/build.txt +16 -0
  179. data/pathfinding/crowd.cpp +194 -0
  180. data/pathfinding/include/astar.h +49 -0
  181. data/pathfinding/include/common.h +5 -0
  182. data/pathfinding/include/crowd.h +43 -0
  183. data/pathfinding/include/micropather.h +511 -0
  184. data/pathfinding/include/navmesh.h +114 -0
  185. data/pathfinding/include/pathfinder.h +24 -0
  186. data/pathfinding/main.cpp +108 -17
  187. data/pathfinding/micropather.cpp +1062 -0
  188. data/pathfinding/navmesh.cpp +408 -0
  189. data/pathfinding/overrides/DetourCrowd.cpp +1446 -0
  190. data/pathfinding/overrides/DetourNavMeshQuery.cpp +3551 -0
  191. data/pathfinding/overrides/DetourNavMeshQuery.h +538 -0
  192. data/pathfinding/pathfinder.cpp +117 -0
  193. data/pathfinding/{bin → premake}/premake4 +0 -0
  194. data/pathfinding/premake/premake4.exe +0 -0
  195. data/pathfinding/premake4.lua +12 -3
  196. data/spec/actor/actor_spec.rb +0 -7
  197. data/spec/client_manager_spec.rb +1 -1
  198. data/spec/couchproxy_spec.rb +38 -0
  199. data/spec/entity_persistence_spec.rb +129 -0
  200. data/spec/game_systems/team_manager_spec.rb +2 -2
  201. data/spec/hashring_spec.rb +17 -39
  202. data/spec/java_grid_spec.rb +0 -2
  203. data/spec/misc_spec.rb +111 -0
  204. data/spec/mono_spec.rb +50 -3
  205. data/spec/reliable_message_spec.rb +38 -0
  206. data/spec/spec_helper.rb +4 -4
  207. data/spec/spec_helper_minimal.rb +10 -0
  208. data/web/app.rb +108 -86
  209. data/web/config/trinidad.yml +1 -0
  210. data/web/views/add_player.erb +25 -0
  211. data/web/views/index.erb +0 -0
  212. data/web/views/layout.erb +48 -0
  213. data/web/views/login.erb +25 -0
  214. data/web/views/players.erb +24 -0
  215. metadata +209 -94
  216. data/config/config.example.yml +0 -100
  217. data/config/regions.example.yml +0 -9
  218. data/games/example/lib/authentication_handler.rb +0 -69
  219. data/games/models.rb +0 -3
  220. data/games/models/clan_member.rb +0 -8
  221. data/games/models/clan_profile.rb +0 -9
  222. data/games/models/player.rb +0 -7
  223. data/games/plugins.rb +0 -1
  224. data/games/plugins/team_handler.rb +0 -49
  225. data/games/preload.rb +0 -13
  226. data/java/.gitignore +0 -1
  227. data/java/build.gradle +0 -95
  228. data/java/component.erb +0 -396
  229. data/java/gradle/wrapper/gradle-wrapper.jar +0 -0
  230. data/java/src/main/java/com/game_machine/core/GameMachineLoader.java +0 -25
  231. data/java/src/main/java/com/game_machine/core/Grid.java +0 -195
  232. data/java/src/main/resources/logback.xml +0 -14
  233. data/java/src/main/resources/logging.properties +0 -3
  234. data/lib/game_machine/actor/mono_actor.rb +0 -89
  235. data/lib/game_machine/auth_handlers/base.rb +0 -21
  236. data/lib/game_machine/auth_handlers/public.rb +0 -34
  237. data/lib/game_machine/endpoints/mono_gateway.rb +0 -87
  238. data/lib/game_machine/endpoints/tcp.rb +0 -51
  239. data/lib/game_machine/endpoints/tcp_handler.rb +0 -75
  240. data/lib/game_machine/endpoints/udp.rb +0 -88
  241. data/lib/game_machine/game_loader.rb +0 -46
  242. data/lib/game_machine/game_systems/region_settings.rb +0 -13
  243. data/lib/game_machine/hashring.rb +0 -48
  244. data/lib/game_machine/settings.rb +0 -11
  245. data/mono/server/actor.cs +0 -37
  246. data/mono/server/iactor.cs +0 -11
  247. data/mono/server/message_util.cs +0 -29
  248. data/mono/server/proxy_client.cs +0 -73
  249. data/mono/server/proxy_server.cs +0 -30
  250. data/mono/server/test_actor.cs +0 -33
  251. data/pathfinding/include/pathfind.h +0 -167
  252. data/pathfinding/pathfind.cpp +0 -174
  253. data/pathfinding/pathfinder.cs +0 -66
  254. data/script/server.sh +0 -109
  255. data/script/watch.sh +0 -11
  256. data/spec/commands/navigation_commands_spec.rb +0 -51
  257. data/spec/game_systems/entity_tracking_spec.rb +0 -64
  258. data/spec/navigation/detour_navmesh_spec.rb +0 -34
  259. data/spec/navigation/detour_path_spec.rb +0 -25
  260. data/spec/udp_server_spec.rb +0 -10
  261. data/web/controllers/auth_controller.rb +0 -19
  262. data/web/controllers/base_controller.rb +0 -16
  263. data/web/controllers/index_controller.rb +0 -7
  264. data/web/controllers/log_controller.rb +0 -47
  265. data/web/controllers/messages_controller.rb +0 -59
  266. data/web/controllers/player_register_controller.rb +0 -15
  267. data/web/views/game_messages.haml +0 -45
  268. data/web/views/index.haml +0 -6
  269. data/web/views/layout.haml +0 -41
  270. data/web/views/logs.haml +0 -32
  271. data/web/views/player_register.haml +0 -22
  272. data/web/views/player_registered.haml +0 -2
  273. data/web/views/register_layout.haml +0 -22
  274. data/web/views/restart.haml +0 -35
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ffff1acfb6c6991f5ec1bf5c1c6e4ad06ef0b588
4
- data.tar.gz: 32e1d7c2016cd8fe2f1b348b1ef9a01595da26d3
3
+ metadata.gz: 83203a07ca4230b58694d08b0c2a9990a884eeef
4
+ data.tar.gz: 68a0cbf2c6fb8e6bc1aab6ac632ebfbc3b1f0116
5
5
  SHA512:
6
- metadata.gz: e2fa98eec04da15ebd1c057675ca5032878d4959b6eef3b2d1f9dc60fc70d5e05df3b185805c695931d63ea963e982197c8a41983350f457344d18b699d4e5f2
7
- data.tar.gz: ced35f7f4bc12fae21af3e2ef05dcca6d20692a44ae51133341a5196eb04fd6874e05d523659593df3480ea94e401ecbd9d2d1f56c94a504f5e0df79ba7afc61
6
+ metadata.gz: d25d5ef4fdf7f35987e9cde8ca76f9d03f0d8b606aa5df819280b19b1973730b471a5065b0af1bb15001d8bd184bd7760f2c91b7ce6bd139391abc1dea6bb8a5
7
+ data.tar.gz: 68b8384a54d54985bc0d9f1c6a339a2cad6dfb9ee77eb76172bf12af7d656252923d5026d086b60c8296dec911c014383154ff6842b2b635ffdbe4b08ecf9c29
data/Gemfile CHANGED
@@ -1,4 +1,15 @@
1
1
  # A sample Gemfile
2
2
  source "https://rubygems.org"
3
3
 
4
- gemspec
4
+ gem 'i18n'
5
+ gem 'json'
6
+ gem 'ffi'
7
+ gem 'sinatra'
8
+ gem 'sinatra-contrib'
9
+ gem 'rack-flash3'
10
+ gem 'activesupport'
11
+ gem 'wavefront'
12
+ gem 'puma'
13
+ gem 'faraday'
14
+ gem 'bcrypt'
15
+ gem 'bundler'
@@ -1,55 +1,31 @@
1
- PATH
2
- remote: .
3
- specs:
4
- game_machine (0.0.10)
5
- consistent-hashing
6
- ffi
7
- haml
8
- i18n
9
- json
10
- rjack-logback
11
- settingslogic
12
- sinatra
13
- sinatra-contrib
14
- webrick
15
-
16
1
  GEM
17
2
  remote: https://rubygems.org/
18
3
  specs:
19
- avl_tree (1.1.3)
4
+ activesupport (4.1.6)
5
+ i18n (~> 0.6, >= 0.6.9)
6
+ json (~> 1.7, >= 1.7.7)
7
+ minitest (~> 5.1)
8
+ thread_safe (~> 0.1)
9
+ tzinfo (~> 1.1)
20
10
  backports (3.6.0)
21
- consistent-hashing (1.0.0)
22
- avl_tree (>= 1.1.3)
23
- descriptive_statistics (1.1.2)
24
- diff-lcs (1.2.5)
11
+ bcrypt (3.1.7-java)
12
+ faraday (0.9.0)
13
+ multipart-post (>= 1.2, < 3)
25
14
  ffi (1.9.3-java)
26
- haml (4.0.5)
27
- tilt
28
- i18n (0.6.9)
15
+ i18n (0.6.11)
29
16
  json (1.8.1-java)
17
+ minitest (5.4.1)
30
18
  multi_json (1.10.1)
19
+ multipart-post (2.0.0)
20
+ puma (2.9.1-java)
21
+ rack (>= 1.1, < 2.0)
31
22
  rack (1.5.2)
23
+ rack-flash3 (1.0.5)
24
+ rack
32
25
  rack-protection (1.5.3)
33
26
  rack
34
27
  rack-test (0.6.2)
35
28
  rack (>= 1.0)
36
- rake (10.1.0)
37
- rjack-logback (1.7.0-java)
38
- rjack-slf4j (>= 1.6.5, < 1.8)
39
- rjack-slf4j (1.7.6.0-java)
40
- rspec (3.0.0)
41
- rspec-core (~> 3.0.0)
42
- rspec-expectations (~> 3.0.0)
43
- rspec-mocks (~> 3.0.0)
44
- rspec-core (3.0.2)
45
- rspec-support (~> 3.0.0)
46
- rspec-expectations (3.0.2)
47
- diff-lcs (>= 1.2.0, < 2.0)
48
- rspec-support (~> 3.0.0)
49
- rspec-mocks (3.0.2)
50
- rspec-support (~> 3.0.0)
51
- rspec-support (3.0.2)
52
- settingslogic (2.0.9)
53
29
  sinatra (1.4.5)
54
30
  rack (~> 1.4)
55
31
  rack-protection (~> 1.4)
@@ -61,16 +37,25 @@ GEM
61
37
  rack-test
62
38
  sinatra (~> 1.4.0)
63
39
  tilt (~> 1.3)
40
+ thread_safe (0.3.4-java)
64
41
  tilt (1.4.1)
65
- webrick (1.3.1)
42
+ tzinfo (1.2.2)
43
+ thread_safe (~> 0.1)
44
+ wavefront (0.1.2)
66
45
 
67
46
  PLATFORMS
68
47
  java
69
48
 
70
49
  DEPENDENCIES
71
- descriptive_statistics
72
- game_machine!
73
- rake
74
- rspec
75
- rspec-expectations
76
- rspec-mocks
50
+ activesupport
51
+ bcrypt
52
+ bundler
53
+ faraday
54
+ ffi
55
+ i18n
56
+ json
57
+ puma
58
+ rack-flash3
59
+ sinatra
60
+ sinatra-contrib
61
+ wavefront
data/Rakefile CHANGED
@@ -9,30 +9,3 @@ RSpec::Core::RakeTask.new
9
9
 
10
10
  task :default => :spec
11
11
 
12
- namespace :game do
13
- task :demo do
14
- cp 'lib/demo/boot.rb', 'boot.rb'
15
- end
16
-
17
- task :none do
18
- rm 'boot.rb'
19
- end
20
- end
21
-
22
- namespace :java do
23
- gradlew = File.join(File.dirname(__FILE__), 'java','gradlew')
24
-
25
- task :clean do
26
- FileUtils.rm_f 'java/lib/*.jar'
27
- FileUtils.rm_f 'java/src/main/java/com/game_machine/entity_system/generated/*.java'
28
- end
29
-
30
- task :all => [:clean] do
31
- system "cd java && #{gradlew} clean && #{gradlew} codegen && #{gradlew} build && #{gradlew} install_libs"
32
- end
33
-
34
- task :build do
35
- system "cd java && #{gradlew} build && #{gradlew} install_libs"
36
- end
37
- end
38
-
@@ -0,0 +1 @@
1
+ GEM_PATH=vendor/gem_home/jruby/1.9 ADMIN_UI=true java -jar jruby-complete-1.7.13.jar bin/game_machine s
@@ -1,5 +1,9 @@
1
1
  #!/usr/bin/env jruby
2
2
 
3
+ ENV['APP_ROOT'] ||= File.expand_path(Dir.pwd)
4
+ ENV['JAVA_ROOT'] = File.join(ENV['APP_ROOT'],'java','project')
5
+ ENV['GAME_ENV'] = 'development'
6
+
3
7
  require 'rubygems'
4
8
  require 'fileutils'
5
9
 
@@ -11,36 +15,41 @@ def load_game_machine
11
15
  end
12
16
  end
13
17
 
18
+ def load_config
19
+ require_relative '../lib/game_machine/app_config'
20
+ GameMachine::AppConfig.instance.load_config
21
+ end
22
+
14
23
  ARGV << '--help' if ARGV.empty?
15
24
 
16
25
  aliases = {
17
- "n" => "new",
18
26
  "b" => "build",
19
- "s" => "server",
20
- "sl" => "server_loop"
27
+ "s" => "server"
21
28
  }
22
29
 
23
30
  command = ARGV.shift
24
31
  command = aliases[command] || command
25
32
 
26
- ENV['APP_ROOT'] ||= File.expand_path(Dir.pwd)
27
- ENV['JAVA_ROOT'] = File.join(ENV['APP_ROOT'],'java')
28
- ENV['GAME_ENV'] = 'development'
29
-
30
33
  require_relative '../lib/game_machine/console'
31
34
 
32
- if command == 'new'
35
+
36
+ if command == 'install' || command == 'upgrade'
33
37
  bin_path = File.dirname(__FILE__)
34
38
  install_source_path = File.expand_path(
35
39
  File.join(bin_path,'../')
36
40
  )
37
- GameMachine::Console::Install.new(ARGV,install_source_path).run!
41
+ GameMachine::Console::Install.new(command,ARGV,install_source_path).run!
38
42
 
39
- elsif command == 'build'
40
- require_relative '../java/local_lib/protostuff-compiler-1.0.7-jarjar.jar'
43
+ elsif command == 'build' || command == 'bundle'
44
+ require_relative '../java/project/local_lib/protostuff-compiler-1.0.8-jarjar.jar'
41
45
  require_relative '../lib/game_machine/protobuf/game_messages.rb'
42
46
  require_relative '../lib/game_machine/protobuf/generate.rb'
43
- GameMachine::Console::Build.new(ARGV).run!
47
+ if command == 'bundle'
48
+ GameMachine::Console::Build.new(ARGV,true).run!
49
+ else
50
+ GameMachine::Console::Build.new(ARGV).run!
51
+ end
52
+
44
53
 
45
54
  elsif command == 'server'
46
55
  # Need to set environment vars before loading everything.
@@ -51,29 +60,22 @@ elsif command == 'server'
51
60
  # Run the server
52
61
  server.run!
53
62
 
54
- elsif command == 'server_loop'
55
- GameMachine::Console::Server.run_in_loop
56
63
  else
57
64
 
58
65
  puts <<EOF
59
66
  Usage:
60
67
 
61
- game_machine server [options] Start the server
62
- -r, --restartable If tmp/gm_restart.txt should trigger a restart
63
- -s, --server=name Server name
64
- -c, --config=name Configuration file
65
- -e, --environment=name Specifies the environment to run under (development/production).
66
- Default: development
68
+ game_machine server Start the server
69
+
70
+ game_machine build [clean] Build java and protobuf messages
67
71
 
68
- game_machine server_loop Runs server in loop that restarts when tmp/gm_restart.txt
69
- is present. On restart it will run build then server -r.
72
+ game_machine bundle Build and bundle gems for deployment
70
73
 
71
- game_machine build Generate and compile protobuf messages
74
+ game_machine install [path] Install Game Machine to [path]
72
75
 
73
- game_machine new [path] Create a new Game Machine application at the
74
- specified path
76
+ game_machine upgrade [path] Upgrade the Game Machine installation at [path]
75
77
 
76
78
  EOF
77
- end
78
-
79
79
 
80
+ exit 1
81
+ end
@@ -1,5 +1,4 @@
1
1
 
2
-
3
2
  cluster {
4
3
 
5
4
  default-pinned-dispatcher {
@@ -14,14 +13,16 @@ default-pinned-dispatcher {
14
13
  akka {
15
14
 
16
15
  cluster {
17
- seed-nodes = [SEEDS]
16
+ #seed-nodes = [SEEDS]
18
17
  acceptable-heartbeat-pause = 10 s
19
18
  auto-down-unreachable-after = 10s
20
19
  }
21
20
 
21
+ #log-config-on-start = on
22
+ log-dead-letters = "off"
22
23
  actor.debug.unhandled = "on"
23
24
  jvm-exit-on-fatal-error=false
24
- loglevel = "WARNING"
25
+ loglevel = "INFO"
25
26
 
26
27
  actor {
27
28
  serializers {
@@ -32,13 +33,14 @@ default-pinned-dispatcher {
32
33
 
33
34
  serialization-bindings {
34
35
  "[B" = bytes
35
- "java.io.Serializable" = java
36
36
  "com.dyuproject.protostuff.Message" = myown
37
37
  "GameMachine.Messages.ClientMessage" = myown
38
38
  "GameMachine.Messages.Entity" = myown
39
39
  "GameMachine.Messages.ObjectdbGet" = myown
40
40
  "GameMachine.Messages.ObjectdbPut" = myown
41
41
  "GameMachine.Messages.ObjectdbUpdate" = myown
42
+ "java.io.Serializable" = java
43
+
42
44
  }
43
45
  provider = "akka.cluster.ClusterActorRefProvider"
44
46
  #serialize-messages = on
@@ -48,7 +50,6 @@ default-pinned-dispatcher {
48
50
  log-remote-lifecycle-events = off
49
51
 
50
52
 
51
- #enabled-transports = ["akka.remote.netty.tcp"]
52
53
  netty.tcp {
53
54
  hostname = "HOST"
54
55
  port = PORT
@@ -0,0 +1,164 @@
1
+
2
+ gamemachine {
3
+
4
+ environment = development
5
+ use_regions = false
6
+ orm = false
7
+ mono_enabled = false
8
+
9
+
10
+ client {
11
+
12
+ # Sets the protocol and host/port used by the client. If set to TCP or UDP then those protocols are enforced.
13
+ # ANY lets the client use it's own values
14
+ protocol = ANY
15
+ }
16
+
17
+ handlers {
18
+
19
+ # Team handler
20
+ team = "GameMachine::DefaultHandlers::TeamHandler"
21
+
22
+ # Authentication handlers.
23
+
24
+ #PublicAuthenticator allows any user/password combination to work
25
+ #auth = "com.game_machine.authentication.PublicAuthenticator"
26
+
27
+ # The default. Uses salted password hash (bcrypt)
28
+ auth = "com.game_machine.authentication.DefaultAuthenticator"
29
+
30
+ }
31
+
32
+ routers {
33
+
34
+ # IMPORTANT - You don't need that many routers to handle a lot of traffic. 5 is sufficient to handle several hundred
35
+ # messages per second. We suggest starting with the defaults and only increasing these numbers as necessary.
36
+
37
+ # Size of the router for incoming message from all clients
38
+ game_handler = 5
39
+
40
+ # Also in the pipeline for all incoming requests, should be set the same as
41
+ # game_handler_routers
42
+ request_handler = 5
43
+
44
+ # router size for the udp actor that handles all incoming udp messages
45
+ udp = 5
46
+
47
+ # Router size for the data/object store.
48
+ objectdb = 5
49
+ }
50
+
51
+ datastore {
52
+ # What data store the object database will use. Valid options are gamecloud, couchbase, jdbc, mapdb,
53
+ # memory, or redis
54
+ store = gamecloud
55
+
56
+ # How protobuf messages will be serialized to the datastore. Valid options are json or bytes.
57
+ # Json is easier to debug but slower and more cpu intensive under load. bytes is the native protocol
58
+ # buffer binary format.
59
+ serialization = json
60
+
61
+ # minimum time in milliseconds between writes to the backing store for the same key. When a message
62
+ # exceeds the limit it is either enqueued, or if already enqueued, it's value is updated.
63
+ # -1 disables caching. 1000 is a good starting value.
64
+ cache_write_interval = -1
65
+
66
+ # Total writes per second to the backing store that an actor will allow, across all keys. Note this is on a per actor
67
+ # basis. If you want to limit total writes per second to your database, this value should be a multiple of the number
68
+ # of write behind cache actors that are started. -1 disables caching. 100 is a good starting number.
69
+ cache_writes_per_second = -1
70
+ }
71
+
72
+
73
+ gamecloud {
74
+
75
+ # The gamecloud is a hosted data store with a REST api backed by couchbase. It is offered as a service by
76
+ # Game Machine.
77
+
78
+ user = me
79
+
80
+ host = "cloud.gamemachine.io:80"
81
+ api_key = myapikey
82
+
83
+ }
84
+
85
+ grids {
86
+ default = "4000, 50, 1"
87
+ aoe = "4000, 5, 1"
88
+ local_chat = "4000, 10, 10"
89
+ }
90
+
91
+ couchbase {
92
+ bucket = gamemachine
93
+ password = pass
94
+ servers = ["http://127.0.0.1:8091/pools"]
95
+ }
96
+
97
+ jdbc {
98
+
99
+ // Postgres
100
+ hostname = 127.0.0.1
101
+ port = 5432
102
+ database = gamemachine
103
+ url = "jdbc:postgresql://127.0.0.1:5432/gamemachine"
104
+ ds = "org.postgresql.ds.PGSimpleDataSource"
105
+ driver = "org.postgresql.Driver"
106
+ username = gamemachine
107
+ password = gamemachine
108
+
109
+ // Mysql
110
+ #hostname = 127.0.0.1
111
+ #port = 3306
112
+ #database = gamemachine
113
+ #url = "mysql://127.0.0.1:3306/game_machine"
114
+ #ds = "com.mysql.jdbc.jdbc2.optional.MysqlDataSource"
115
+ #driver = "com.mysql.jdbc.Driver"
116
+ #username = gamemachine
117
+ #password = gamemachine
118
+
119
+ }
120
+
121
+ http {
122
+ enabled = true
123
+ host = 0.0.0.0
124
+ port = 3000
125
+ }
126
+
127
+ udp {
128
+ enabled = true
129
+ host = 127.0.0.1
130
+ port = 24130
131
+ }
132
+
133
+ tcp {
134
+ enabled = true
135
+ host = 127.0.0.1
136
+ port = 8910
137
+ }
138
+
139
+ akka {
140
+ host = 127.0.0.1
141
+ port = 2551
142
+ }
143
+
144
+
145
+
146
+ # Seeds are akka nodes that should already be in the cluster. We use them as first points of contact to join against
147
+ # If the seeds list is empty, we start the cluster by joining to ourself. The case of joining ourself should only happen
148
+ # if we are the only node, or if we are the first node.
149
+ #seeds = ["127.0.0.1:9991","127.0.0.1:9992"]
150
+ seeds = []
151
+
152
+
153
+ admin {
154
+ user = admin
155
+ pass = pass
156
+ }
157
+
158
+ regions = [
159
+ ["zone1","GameMachine::DefaultHandlers::ZoneManager"],
160
+ ["zone2", "GameMachine::DefaultHandlers::ZoneManager"]
161
+ ]
162
+ }
163
+
164
+