game_machine 0.0.11 → 1.0.2

Sign up to get free protection for your applications and to get access to all the features.
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
+