gameoverseer 0.1.7 → 0.1.8

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 28c2eb4a05934b78327ce681c1fbc76de3a4f8b9
4
- data.tar.gz: e06290e98d2ec47fdfedd0a098c0dfd4de7e413b
2
+ SHA256:
3
+ metadata.gz: 3e94d93ad8f7415966ba80cb878b7f26ae0e11d89ce50d62869c1b9f6546e784
4
+ data.tar.gz: e269d8f3cfc4efbd3afb4ac875d7ebb4fceafb61147eee49effc93e757910bab
5
5
  SHA512:
6
- metadata.gz: 7d605106b5a488bc26459782ad154d17e07d24bbb51c5e650ef48a0e30b76b4999cfeacea96a0c52683dd397d07e8868e846a0ae9d21f778e6ec2a6d86180871
7
- data.tar.gz: c47f9d0de2fd48b97732b07db2bbc0bed6a1f7e034c52192b95b9d85b2a5dd5f795d45da5833458fc341309619eba035938bda72244336d75b60073a6753543f
6
+ metadata.gz: 4223befcd3e0f716dfc4efeaacfe8a85b74328d07060dcdd906f3376596d9847f00003892585fc0222152633df3dee1896743a00838e5f822fd61b4687c4b1dd
7
+ data.tar.gz: 2fd5c5d5078c4f54181ae7aaca5997177b8b885c3e195898b7d165718186fe7ac6f751ed8388542b49c43594c146986b1726abb5cb3e120a94738e88bf69867d
data/.gitignore CHANGED
@@ -1,4 +1,4 @@
1
- log-*.txt
2
- .yardoc/*
3
- protocol.md
4
- *.gem
1
+ log-*.txt
2
+ .yardoc/*
3
+ protocol.md
4
+ *.gem
data/Gemfile CHANGED
@@ -1,3 +1,3 @@
1
- source "https://rubygems.org"
2
-
3
- gemspec
1
+ source "https://rubygems.org"
2
+
3
+ gemspec
@@ -1,30 +1,30 @@
1
- PATH
2
- remote: .
3
- specs:
4
- gameoverseer (0.1.2)
5
- concurrent-ruby
6
- gosu (= 0.10.6)
7
- multi_json
8
- renet
9
-
10
- GEM
11
- remote: https://rubygems.org/
12
- specs:
13
- concurrent-ruby (1.0.1)
14
- concurrent-ruby (1.0.1-java)
15
- gosu (0.10.6)
16
- gosu (0.10.6-x64-mingw32)
17
- gosu (0.10.6-x86-mingw32)
18
- multi_json (1.11.3)
19
- renet (0.2.1)
20
-
21
- PLATFORMS
22
- java
23
- x64-mingw32
24
- x86-mingw32
25
-
26
- DEPENDENCIES
27
- gameoverseer!
28
-
29
- BUNDLED WITH
30
- 1.11.2
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ gameoverseer (0.1.2)
5
+ concurrent-ruby
6
+ gosu (= 0.10.6)
7
+ multi_json
8
+ renet
9
+
10
+ GEM
11
+ remote: https://rubygems.org/
12
+ specs:
13
+ concurrent-ruby (1.0.1)
14
+ concurrent-ruby (1.0.1-java)
15
+ gosu (0.10.6)
16
+ gosu (0.10.6-x64-mingw32)
17
+ gosu (0.10.6-x86-mingw32)
18
+ multi_json (1.11.3)
19
+ renet (0.2.1)
20
+
21
+ PLATFORMS
22
+ java
23
+ x64-mingw32
24
+ x86-mingw32
25
+
26
+ DEPENDENCIES
27
+ gameoverseer!
28
+
29
+ BUNDLED WITH
30
+ 1.11.2
data/README.md CHANGED
@@ -1,51 +1,53 @@
1
- [![Code Climate](https://codeclimate.com/github/cyberarm/rewrite-gameoverseer/badges/gpa.svg)](https://codeclimate.com/github/cyberarm/rewrite-gameoverseer)
2
- [![Inline docs](http://inch-ci.org/github/cyberarm/rewrite-gameoverseer.svg?branch=master)](http://inch-ci.org/github/cyberarm/rewrite-gameoverseer)
3
-
4
- # GameOverseer
5
- A game server, designed to be able to play host to up to 4 players in Planet Wars.
6
-
7
- This repo is a complete rewrite of [GameOverseer](https://github.com/cyberarm/gameoverseer).
8
-
9
- # Status
10
- In development.
11
- Any examples given are subject to be outdated at anytime.
12
-
13
- # Install
14
- ### Using bundler
15
- Add this to your Gemfile
16
- ``` ruby
17
- gem "gameoverseer"
18
- ```
19
- and run to install.
20
- ```
21
- bundle install
22
- ```
23
-
24
- ### Or using RubyGems
25
- ```
26
- gem install gameoverseer
27
- ```
28
-
29
- # Usage
30
- ``` ruby
31
- require 'gameoverseer'
32
-
33
- # Write a service for your game
34
- class GameWorld < GameOverseer::Service
35
- def setup
36
- channel_manager.register_channel('game_world', self)
37
- end
38
-
39
- def process(data)
40
- # Do stuff with the data hash.
41
- end
42
-
43
- def version
44
- "1.3.75"
45
- end
46
- end
47
-
48
- host = "localhost"
49
- port = 56789
50
- GameOverseer.activate(host, port)
51
- ```
1
+ [![Code Climate](https://codeclimate.com/github/cyberarm/rewrite-gameoverseer/badges/gpa.svg)](https://codeclimate.com/github/cyberarm/rewrite-gameoverseer)
2
+ [![Inline docs](http://inch-ci.org/github/cyberarm/rewrite-gameoverseer.svg?branch=master)](http://inch-ci.org/github/cyberarm/rewrite-gameoverseer)
3
+ [![Join the chat at https://gitter.im/gameoverseer/Lobby](https://badges.gitter.im/gameoverseer/Lobby.svg)](https://gitter.im/gameoverseer/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
4
+
5
+ # GameOverseer
6
+
7
+ A game server, designed to be able to play host to up to 4 players in Planet Wars.
8
+
9
+ This repo is a complete rewrite of [GameOverseer](https://github.com/cyberarm/gameoverseer).
10
+
11
+ # Status
12
+ In development.
13
+ Any examples given are subject to be outdated at anytime.
14
+
15
+ # Install
16
+ ### Using bundler
17
+ Add this to your Gemfile
18
+ ``` ruby
19
+ gem "gameoverseer"
20
+ ```
21
+ and run to install.
22
+ ```
23
+ bundle install
24
+ ```
25
+
26
+ ### Or using RubyGems
27
+ ```
28
+ gem install gameoverseer
29
+ ```
30
+
31
+ # Usage
32
+ ``` ruby
33
+ require 'gameoverseer'
34
+
35
+ # Write a service for your game
36
+ class GameWorld < GameOverseer::Service
37
+ def setup
38
+ channel_manager.register_channel('game_world', self)
39
+ end
40
+
41
+ def process(data)
42
+ # Do stuff with the data hash.
43
+ end
44
+
45
+ def version
46
+ "1.3.75"
47
+ end
48
+ end
49
+
50
+ host = "localhost"
51
+ port = 56789
52
+ GameOverseer.activate(host, port)
53
+ ```
@@ -0,0 +1,2 @@
1
+ require "bundler/gem_tasks"
2
+
@@ -1,22 +1,22 @@
1
- # -*- encoding: utf-8 -*-
2
- $:.push File.expand_path("../lib", __FILE__)
3
- require "gameoverseer/version"
4
-
5
- Gem::Specification.new do |s|
6
- s.name = "gameoverseer"
7
- s.version = GameOverseer::VERSION
8
- s.authors = ["Cyberarm"]
9
- s.email = ["matthewlikesrobots@gmail.com"]
10
- s.homepage = "https://github.com/cyberarm/rewrite-gameoverseer"
11
- s.summary = "Generic game server."
12
- s.description = "GameOverseer is designed to simplify the making of multiplayer games by providing a way to simply and easily write a game server."
13
-
14
- s.files = `git ls-files`.split("\n")
15
- s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
16
- s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
17
- s.require_paths = ["lib", "bin"]
18
-
19
- s.add_runtime_dependency "concurrent-ruby"
20
- s.add_runtime_dependency "renet", "~> 0.2", ">= 0.2.2"
21
- s.add_runtime_dependency "multi_json"
22
- end
1
+ # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path("../lib", __FILE__)
3
+ require "gameoverseer/version"
4
+
5
+ Gem::Specification.new do |s|
6
+ s.name = "gameoverseer"
7
+ s.version = GameOverseer::VERSION
8
+ s.authors = ["Cyberarm"]
9
+ s.email = ["matthewlikesrobots@gmail.com"]
10
+ s.homepage = "https://github.com/cyberarm/rewrite-gameoverseer"
11
+ s.summary = "Generic game server."
12
+ s.description = "GameOverseer is designed to simplify the making of multiplayer games by providing a way to simply and easily write a game server."
13
+
14
+ s.files = `git ls-files`.split("\n")
15
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
16
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
17
+ s.require_paths = ["lib", "bin"]
18
+
19
+ s.add_runtime_dependency "concurrent-ruby"
20
+ s.add_runtime_dependency "renet", "~> 0.2", ">= 0.2.2"
21
+ s.add_runtime_dependency "multi_json"
22
+ end
@@ -1,73 +1,73 @@
1
- require "set"
2
- require "openssl"
3
-
4
- require "concurrent"
5
- require "renet"
6
-
7
- require_relative "gameoverseer/version"
8
-
9
- begin
10
- require_relative "gameoverseer/console/console"
11
- rescue => e
12
- require_relative "gameoverseer/console/namespace_creator"
13
- require_relative "gameoverseer/console/console"
14
- end
15
-
16
- require_relative "gameoverseer/channels/channel_manager"
17
-
18
- require_relative "gameoverseer/messages/message_manager"
19
-
20
- require_relative "gameoverseer/clients/client_manager"
21
-
22
- require_relative "gameoverseer/services/service"
23
- require_relative "gameoverseer/services/services"
24
-
25
- require_relative "gameoverseer/input_handler/input_handler"
26
-
27
- require_relative "gameoverseer/packet_handler/packet_handler"
28
- require_relative "gameoverseer/packet_handler/json_packet_handler"
29
- require_relative "gameoverseer/packet_handler/messagepack_packet_handler"
30
- require_relative "gameoverseer/encryption_handler/encryption_handler"
31
-
32
- require_relative "gameoverseer/server/renet_server"
33
-
34
-
35
- Thread.abort_on_exception = true
36
- # General purpose game server that uses services (plugins) for logic.
37
- module GameOverseer
38
-
39
- # Start server
40
- def self.activate(host, port, use_inbuilt_console = false, packet_handler = JsonPacketHandler, encryption_handler = nil)
41
- begin
42
- if use_inbuilt_console
43
- require "gosu"
44
- GameOverseer::Console.log "Using inbuilt console"
45
- end
46
- rescue LoadError
47
- fatal "Install gosu 0.10.8 or later to use inbuilt console."
48
- end
49
-
50
- GameOverseer::ChannelManager.new
51
- GameOverseer::MessageManager.new
52
- GameOverseer::ClientManager.new
53
-
54
- @console = GameOverseer::Console.new if use_inbuilt_console
55
- @server = GameOverseer::ENetServerRunner.new
56
-
57
- Thread.new {@server.start(host, port, packet_handler, encryption_handler)}
58
- @console.show if use_inbuilt_console
59
- sleep
60
-
61
- at_exit do
62
- GameOverseer::Console.instance.close if use_inbuilt_console
63
- @server.supervisor.terminate if defined?(@server.supervisor.terminate)
64
- GameOverseer::Console.log "Server Shutdown"
65
- end
66
- end
67
-
68
- # Stop server
69
- def self.deactivate
70
- puts "ALERT \"CONSOLE CLOSED. LOST CONTROL OF SERVER.\""
71
- @server.supervisor.terminate
72
- end
73
- end
1
+ require "set"
2
+ require "openssl"
3
+
4
+ require "concurrent"
5
+ require "renet"
6
+
7
+ require_relative "gameoverseer/version"
8
+
9
+ begin
10
+ require_relative "gameoverseer/console/console"
11
+ rescue => e
12
+ require_relative "gameoverseer/console/namespace_creator"
13
+ require_relative "gameoverseer/console/console"
14
+ end
15
+
16
+ require_relative "gameoverseer/channels/channel_manager"
17
+
18
+ require_relative "gameoverseer/messages/message_manager"
19
+
20
+ require_relative "gameoverseer/clients/client_manager"
21
+
22
+ require_relative "gameoverseer/services/service"
23
+ require_relative "gameoverseer/services/services"
24
+
25
+ require_relative "gameoverseer/input_handler/input_handler"
26
+
27
+ require_relative "gameoverseer/packet_handler/packet_handler"
28
+ require_relative "gameoverseer/packet_handler/json_packet_handler"
29
+ require_relative "gameoverseer/packet_handler/messagepack_packet_handler"
30
+ require_relative "gameoverseer/encryption_handler/encryption_handler"
31
+
32
+ require_relative "gameoverseer/server/renet_server"
33
+
34
+
35
+ Thread.abort_on_exception = true
36
+ # General purpose game server that uses services (plugins) for logic.
37
+ module GameOverseer
38
+
39
+ # Start server
40
+ def self.activate(host, port, use_inbuilt_console = false, packet_handler = JsonPacketHandler, encryption_handler = nil)
41
+ begin
42
+ if use_inbuilt_console
43
+ require "gosu"
44
+ GameOverseer::Console.log "Using inbuilt console"
45
+ end
46
+ rescue LoadError
47
+ fatal "Install gosu 0.10.8 or later to use inbuilt console."
48
+ end
49
+
50
+ GameOverseer::ChannelManager.new
51
+ GameOverseer::MessageManager.new
52
+ GameOverseer::ClientManager.new
53
+
54
+ @console = GameOverseer::Console.new if use_inbuilt_console
55
+ @server = GameOverseer::ENetServerRunner.new
56
+
57
+ Thread.new {@server.start(host, port, packet_handler, encryption_handler)}
58
+ @console.show if use_inbuilt_console
59
+ sleep
60
+
61
+ at_exit do
62
+ GameOverseer::Console.instance.close if use_inbuilt_console
63
+ @server.supervisor.terminate if defined?(@server.supervisor.terminate)
64
+ GameOverseer::Console.log "Server Shutdown"
65
+ end
66
+ end
67
+
68
+ # Stop server
69
+ def self.deactivate
70
+ puts "ALERT \"CONSOLE CLOSED. LOST CONTROL OF SERVER.\""
71
+ @server.supervisor.terminate
72
+ end
73
+ end
@@ -1,48 +1,48 @@
1
- module GameOverseer
2
-
3
- # Handles routing packets to the services that subscribe to channels
4
- class ChannelManager
5
- CHAT = 0
6
- WORLD= 1
7
- HANDSHAKE = 2
8
- FAULT=3
9
-
10
- def initialize
11
- @channels = {}
12
- ChannelManager.instance = self
13
- end
14
-
15
- # Enables a service to subscribe to a channel
16
- # @param channel [String]
17
- # @param service [Service]
18
- def register_channel(channel, service)
19
- _channel = channel.downcase
20
- unless @channels[_channel]
21
- @channels[_channel] = service
22
- GameOverseer::Console.log("ChannelManager> mapped '#{_channel}' to '#{service.class}'.")
23
- else
24
- raise "Could not map channel '#{_channel}' because '#{@channels[data[_channel]].class}' is already using it."
25
- end
26
- end
27
-
28
- # Routes packet to {Service}
29
- # @param client_id [Integer] ID of client that sent the packet
30
- # @param data [Hash] data from packet
31
- def send_to_service(client_id, data)
32
- @channels[data['channel']].client_id = client_id
33
- @channels[data['channel']].process(data)
34
- end
35
-
36
- # Returns instance of active {ChannelManager}
37
- # @return [ChannelManager]
38
- def self.instance
39
- @instance
40
- end
41
-
42
- # Sets instance of {ChannelManager} that is used through out the system
43
- # @param _instance [ChannelManager]
44
- def self.instance=_instance
45
- @instance = _instance
46
- end
47
- end
48
- end
1
+ module GameOverseer
2
+
3
+ # Handles routing packets to the services that subscribe to channels
4
+ class ChannelManager
5
+ CHAT = 0
6
+ WORLD= 1
7
+ HANDSHAKE = 2
8
+ FAULT=3
9
+
10
+ def initialize
11
+ @channels = {}
12
+ ChannelManager.instance = self
13
+ end
14
+
15
+ # Enables a service to subscribe to a channel
16
+ # @param channel [String]
17
+ # @param service [Service]
18
+ def register_channel(channel, service)
19
+ _channel = channel.downcase
20
+ unless @channels[_channel]
21
+ @channels[_channel] = service
22
+ GameOverseer::Console.log("ChannelManager> mapped '#{_channel}' to '#{service.class}'.")
23
+ else
24
+ raise "Could not map channel '#{_channel}' because '#{@channels[data[_channel]].class}' is already using it."
25
+ end
26
+ end
27
+
28
+ # Routes packet to {Service}
29
+ # @param client_id [Integer] ID of client that sent the packet
30
+ # @param data [Hash] data from packet
31
+ def send_to_service(client_id, data)
32
+ @channels[data['channel']].client_id = client_id
33
+ @channels[data['channel']].process(data)
34
+ end
35
+
36
+ # Returns instance of active {ChannelManager}
37
+ # @return [ChannelManager]
38
+ def self.instance
39
+ @instance
40
+ end
41
+
42
+ # Sets instance of {ChannelManager} that is used through out the system
43
+ # @param _instance [ChannelManager]
44
+ def self.instance=_instance
45
+ @instance = _instance
46
+ end
47
+ end
48
+ end