gameoverseer 0.1.7 → 0.1.8

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