rgss 0.0.1
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 +7 -0
- data/.clang-format +6 -0
- data/.gitignore +167 -0
- data/.yardopts +6 -0
- data/CHANGELOG.md +4 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +21 -0
- data/Rakefile +9 -0
- data/ext/rgss/cglm-v0.7.9.tar.gz +0 -0
- data/ext/rgss/color.c +599 -0
- data/ext/rgss/entity.c +373 -0
- data/ext/rgss/extconf.rb +53 -0
- data/ext/rgss/font.c +135 -0
- data/ext/rgss/game.c +469 -0
- data/ext/rgss/game.h +99 -0
- data/ext/rgss/gl.c +3217 -0
- data/ext/rgss/glad.c +1140 -0
- data/ext/rgss/glad.h +2129 -0
- data/ext/rgss/glfw.c +1453 -0
- data/ext/rgss/graphics.c +324 -0
- data/ext/rgss/image.c +274 -0
- data/ext/rgss/input.c +745 -0
- data/ext/rgss/khrplatform.h +290 -0
- data/ext/rgss/mat4.c +279 -0
- data/ext/rgss/pax_global_header +1 -0
- data/ext/rgss/point.c +253 -0
- data/ext/rgss/rect.c +449 -0
- data/ext/rgss/rgss.c +56 -0
- data/ext/rgss/rgss.h +241 -0
- data/ext/rgss/stb_image.h +7762 -0
- data/ext/rgss/stb_image_write.h +1690 -0
- data/ext/rgss/stb_rect_pack.h +628 -0
- data/ext/rgss/stb_truetype.h +5011 -0
- data/ext/rgss/utf8.h +1652 -0
- data/ext/rgss/uthash.h +1133 -0
- data/ext/rgss/vec.c +114 -0
- data/ext/rgss/vec.h +192 -0
- data/ext/rgss/vec2.c +489 -0
- data/ext/rgss/vec3.c +751 -0
- data/ext/rgss/vec4.c +681 -0
- data/lib/rgss.rb +140 -0
- data/lib/rgss/batch.rb +57 -0
- data/lib/rgss/blend.rb +47 -0
- data/lib/rgss/game_object.rb +28 -0
- data/lib/rgss/plane.rb +95 -0
- data/lib/rgss/renderable.rb +158 -0
- data/lib/rgss/rgss.so +0 -0
- data/lib/rgss/shader.rb +94 -0
- data/lib/rgss/shaders/sprite-frag.glsl +40 -0
- data/lib/rgss/shaders/sprite-vert.glsl +17 -0
- data/lib/rgss/sprite.rb +139 -0
- data/lib/rgss/stubs/color.rb +318 -0
- data/lib/rgss/stubs/gl.rb +1999 -0
- data/lib/rgss/stubs/glfw.rb +626 -0
- data/lib/rgss/stubs/rect.rb +324 -0
- data/lib/rgss/stubs/rpg.rb +267 -0
- data/lib/rgss/stubs/tone.rb +65 -0
- data/lib/rgss/texture.rb +132 -0
- data/lib/rgss/tilemap.rb +116 -0
- data/lib/rgss/version.rb +3 -0
- data/lib/rgss/viewport.rb +67 -0
- data/rgss.gemspec +44 -0
- data/test.png +0 -0
- metadata +178 -0
@@ -0,0 +1,65 @@
|
|
1
|
+
module RGSS
|
2
|
+
##
|
3
|
+
# A structure for altering the "balance" of colors and/or applying a grayscale effect. While it may appear similar to
|
4
|
+
# color, it is not. It represents an **alteration** to a color, not the color itself. Internally this class is
|
5
|
+
# represented as a typical 4 component vector, with 32-bit floating point values. Ruby uses a 64-bit `double` for
|
6
|
+
# floating point numbers, which have a higher precision (about 13 digits) compared to a 32-bit `float` (about 7
|
7
|
+
# digits), so bear this in mind and do not rely on any precision or accuracy of values beyond 6-7 digits, they should
|
8
|
+
# be ignored beyond that point.
|
9
|
+
#
|
10
|
+
# For the RGB components, it adjusts the output color by simply adding/subtracting on a component-wise basis, where a
|
11
|
+
# value of `0.0` has no effect, `-1.0` completely removes the component, and `1.0` is full output. The grayscale
|
12
|
+
# component is calculated independently, and is a linear scaling factor on how strong the effect will be, where `0.0`
|
13
|
+
# is no effect, and `1.0` is fully "shades of gray", with no color.
|
14
|
+
#
|
15
|
+
# @note All out of range values are automatically clamped to their respective limits.
|
16
|
+
#
|
17
|
+
# @note Unlike RGSS Maker games, the grayscale has no negative performance effect to use, as the exact same
|
18
|
+
# calculations are performed in the fragment shader with each draw, regardless of its value. Whether you use a value
|
19
|
+
# of `0.0` or `1.0`, it will have absolutely no effect on FPS or resource usage.
|
20
|
+
#
|
21
|
+
# @note All relevant methods implemented in `Object` (i.e. `#dup`, `#clone`, Marshalling, equality) have also been
|
22
|
+
# properly implemented/overridden, but have been omitted from the documentation for brevity.
|
23
|
+
class Tone
|
24
|
+
|
25
|
+
##
|
26
|
+
# The value of the red color component.
|
27
|
+
# @return [Float] a normalized value between `-1.0` amd `1.0`.
|
28
|
+
attr_reader :r
|
29
|
+
|
30
|
+
##
|
31
|
+
# The value of the green color component.
|
32
|
+
# @return [Float] a normalized value between `-1.0` amd `1.0`.
|
33
|
+
attr_reader :g
|
34
|
+
|
35
|
+
##
|
36
|
+
# The value of the blue color component.
|
37
|
+
# @return [Float] a normalized value between `-1.0` amd `1.0`.
|
38
|
+
attr_reader :b
|
39
|
+
|
40
|
+
##
|
41
|
+
# The amount of grayscale that will be applied, where `0.0` is none, and `1.0` is fully gray (i.e. "black & white").
|
42
|
+
# @return [Float] a normalized value between `0.0` and `1.0`.
|
43
|
+
attr_reader :gray
|
44
|
+
|
45
|
+
##
|
46
|
+
# Creates a new instance of the {Tone} class.
|
47
|
+
#
|
48
|
+
# @param red [Float] the value of the red color component, a normalized value between `-1.0` and `1.0`.
|
49
|
+
# @param green [Float] the value of the green color component, a normalized value between `-1.0` and `1.0`.
|
50
|
+
# @param blue [Float] the value of the blue color component, a normalized value between `-1.0` and `1.0`.
|
51
|
+
# @param gray [Float] the value of the grayscale factor to apply, a normalized value between `0.0` and `1.0`.
|
52
|
+
def initialize(red, green, blue, gray = 0.0)
|
53
|
+
end
|
54
|
+
|
55
|
+
alias_method :red, :r
|
56
|
+
alias_method :green, :g
|
57
|
+
alias_method :blue, :b
|
58
|
+
alias_method :grey, :gray
|
59
|
+
|
60
|
+
##
|
61
|
+
# A full grayscale {Tone} instance.
|
62
|
+
GRAY = Tone.new(0.0, 0.0, 0.0, 1.0)
|
63
|
+
|
64
|
+
end
|
65
|
+
end
|
data/lib/rgss/texture.rb
ADDED
@@ -0,0 +1,132 @@
|
|
1
|
+
|
2
|
+
module RGSS
|
3
|
+
|
4
|
+
class Texture < GameObject
|
5
|
+
|
6
|
+
attr_reader :width
|
7
|
+
attr_reader :height
|
8
|
+
|
9
|
+
include GL
|
10
|
+
|
11
|
+
def initialize(*args, **opts)
|
12
|
+
super(glGenTexture)
|
13
|
+
|
14
|
+
image = nil
|
15
|
+
case args.size
|
16
|
+
when 1
|
17
|
+
source = args.first
|
18
|
+
image = source.is_a?(String) ? Image.new(source) : source
|
19
|
+
raise(TypeError, "#{source} is not a String or Image") unless image.is_a?(Image)
|
20
|
+
when 2
|
21
|
+
image = Image.new(*args, **opts)
|
22
|
+
else
|
23
|
+
raise(ArgumentError, "wrong number of arguments (given #{args.size}, expected 1, 2)")
|
24
|
+
end
|
25
|
+
|
26
|
+
glActiveTexture(GL_TEXTURE0);
|
27
|
+
glBindTexture(GL_TEXTURE_2D, self.id);
|
28
|
+
|
29
|
+
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, image.width, image.height, 0, GL_RGBA, GL_UNSIGNED_BYTE, image.address);
|
30
|
+
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
|
31
|
+
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
|
32
|
+
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
|
33
|
+
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
|
34
|
+
|
35
|
+
@width = image.width
|
36
|
+
@height = image.height
|
37
|
+
image.dispose
|
38
|
+
@fbo = 0
|
39
|
+
end
|
40
|
+
|
41
|
+
def size
|
42
|
+
Size.new(@width, @height)
|
43
|
+
end
|
44
|
+
|
45
|
+
def rect
|
46
|
+
Rect.new(0, 0, @width, @height)
|
47
|
+
end
|
48
|
+
|
49
|
+
def bind(target = 0)
|
50
|
+
glActiveTexture(GL_TEXTURE0 + target)
|
51
|
+
glBindTexture(GL_TEXTURE_2D, self.id);
|
52
|
+
end
|
53
|
+
|
54
|
+
def target(area = nil)
|
55
|
+
raise(LocalJumpError, "block required") unless block_given?
|
56
|
+
|
57
|
+
area ||= Rect.new(0, 0, @width, @height)
|
58
|
+
|
59
|
+
Graphics.project(area.x, area.y, area.width, area.height) do
|
60
|
+
|
61
|
+
bind_framebuffer
|
62
|
+
glViewport(area.x, area.y, area.width, area.height)
|
63
|
+
glScissor(area.x, area.y, area.width, area.height)
|
64
|
+
yield
|
65
|
+
end
|
66
|
+
|
67
|
+
Graphics.restore
|
68
|
+
self
|
69
|
+
end
|
70
|
+
|
71
|
+
def blit(src, src_rect, dst_rect, opacity = 1.0)
|
72
|
+
raise(ArgumentError, "source Texture cannot be nil") unless src
|
73
|
+
|
74
|
+
|
75
|
+
end
|
76
|
+
|
77
|
+
def clear
|
78
|
+
target do
|
79
|
+
glClearColor(nil)
|
80
|
+
glClear(GL_COLOR_BUFFER_BIT)
|
81
|
+
end
|
82
|
+
end
|
83
|
+
|
84
|
+
def fill_rect(rect, color)
|
85
|
+
target(rect) do
|
86
|
+
glClearColor(color)
|
87
|
+
glClear(GL_COLOR_BUFFER_BIT)
|
88
|
+
end
|
89
|
+
end
|
90
|
+
|
91
|
+
def to_image
|
92
|
+
pixels = "\0" * @width * @height * 4
|
93
|
+
bind_framebuffer { glReadPixels(0, 0, @width, @height, GL_RGBA, GL_UNSIGNED_BYTE, pixels) }
|
94
|
+
Image.new(@width, @height, pixels)
|
95
|
+
end
|
96
|
+
|
97
|
+
def valid?
|
98
|
+
self.id.nonzero? && glIsTexture(self.id)
|
99
|
+
end
|
100
|
+
|
101
|
+
def dispose
|
102
|
+
if @fbo && @fbo.nonzero?
|
103
|
+
glDeleteFramebuffer(@fbo)
|
104
|
+
@fbo = nil
|
105
|
+
end
|
106
|
+
glDeleteTexture(self.id)
|
107
|
+
super
|
108
|
+
end
|
109
|
+
|
110
|
+
protected
|
111
|
+
|
112
|
+
def bind_framebuffer
|
113
|
+
if @fbo.zero?
|
114
|
+
@fbo = glGenFramebuffer
|
115
|
+
glBindFramebuffer(GL_FRAMEBUFFER, @fbo);
|
116
|
+
glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, self.id, 0);
|
117
|
+
else
|
118
|
+
glBindFramebuffer(GL_FRAMEBUFFER, @fbo);
|
119
|
+
end
|
120
|
+
|
121
|
+
if block_given?
|
122
|
+
yield
|
123
|
+
glBindFramebuffer(GL_FRAMEBUFFER, GL_NONE)
|
124
|
+
end
|
125
|
+
|
126
|
+
end
|
127
|
+
|
128
|
+
def undbind_framebuffer
|
129
|
+
glBindFramebuffer(GL_FRAMEBUFFER, GL_NONE)
|
130
|
+
end
|
131
|
+
end
|
132
|
+
end
|
data/lib/rgss/tilemap.rb
ADDED
@@ -0,0 +1,116 @@
|
|
1
|
+
require 'ox'
|
2
|
+
|
3
|
+
module RGSS
|
4
|
+
|
5
|
+
module TMX
|
6
|
+
|
7
|
+
class MapObject
|
8
|
+
|
9
|
+
attr_reader :properties
|
10
|
+
|
11
|
+
def initialize(node)
|
12
|
+
|
13
|
+
end
|
14
|
+
|
15
|
+
protected
|
16
|
+
|
17
|
+
def parse_color(value)
|
18
|
+
return Color::NONE unless value
|
19
|
+
c = value.sub(/^#/, '').scan(/../).map { |a| a.to_i(16) / 255.0 }
|
20
|
+
Color.new(c[1], c[2], c[3], c[0])
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
|
25
|
+
class Map < MapObject
|
26
|
+
|
27
|
+
def self.parse(xml)
|
28
|
+
|
29
|
+
end
|
30
|
+
|
31
|
+
def self.load(path)
|
32
|
+
opts = Ox.default_options
|
33
|
+
opts[:symbolize_keys] = true
|
34
|
+
doc = Ox.load_file(path, opts)
|
35
|
+
new(doc.root)
|
36
|
+
end
|
37
|
+
|
38
|
+
attr_reader :version
|
39
|
+
attr_reader :orientation
|
40
|
+
attr_reader :render_order
|
41
|
+
attr_reader :width
|
42
|
+
attr_reader :height
|
43
|
+
attr_reader :tile_width
|
44
|
+
attr_reader :tile_width
|
45
|
+
attr_reader :side_length
|
46
|
+
attr_reader :stagger_axis
|
47
|
+
attr_reader :back_color
|
48
|
+
|
49
|
+
def initialize(node)
|
50
|
+
super(node)
|
51
|
+
|
52
|
+
@version = node[:version]
|
53
|
+
@orientation = node[:orientation].to_sym
|
54
|
+
@render_order = node[:renderorder].sub('-', '').to_sym
|
55
|
+
@width = node[:width].to_i
|
56
|
+
@height = node[:height].to_i
|
57
|
+
@tile_width = node[:tilewidth].to_i
|
58
|
+
@tile_height = node[:tileheight].to_i
|
59
|
+
@side_length = node[:hexsidelength].to_i
|
60
|
+
@stagger_axis = node[:staggeraxis].to_i
|
61
|
+
@infinite = !!node[:infinite]
|
62
|
+
@back_color = parse_color(node[:backgroundcolor])
|
63
|
+
|
64
|
+
@tilesets = node.locate('./tileset').map { |child| Tileset.new(child) }
|
65
|
+
@layers = []
|
66
|
+
end
|
67
|
+
|
68
|
+
def infinite?
|
69
|
+
@infinite
|
70
|
+
end
|
71
|
+
|
72
|
+
def size
|
73
|
+
Size.new(@width, @height)
|
74
|
+
end
|
75
|
+
|
76
|
+
def tile_size
|
77
|
+
Size.new(@tile_width, @tile_height)
|
78
|
+
end
|
79
|
+
|
80
|
+
def pixel_width
|
81
|
+
@width * @tile_width
|
82
|
+
end
|
83
|
+
|
84
|
+
def pixel_height
|
85
|
+
@height * @tile_height
|
86
|
+
end
|
87
|
+
|
88
|
+
|
89
|
+
|
90
|
+
private_class_method :new
|
91
|
+
|
92
|
+
end
|
93
|
+
|
94
|
+
class Tileset < MapObject
|
95
|
+
|
96
|
+
def self.parse(xml)
|
97
|
+
|
98
|
+
end
|
99
|
+
|
100
|
+
def self.load(path)
|
101
|
+
|
102
|
+
end
|
103
|
+
|
104
|
+
def initialize(node)
|
105
|
+
super(node)
|
106
|
+
|
107
|
+
end
|
108
|
+
end
|
109
|
+
|
110
|
+
end
|
111
|
+
end
|
112
|
+
|
113
|
+
map = RGSS::TMX::Map.load('/home/eric/Desktop/tiled-master/examples/rpg/island.tmx')
|
114
|
+
p map.version
|
115
|
+
p map.orientation
|
116
|
+
p map.render_order
|
data/lib/rgss/version.rb
ADDED
@@ -0,0 +1,67 @@
|
|
1
|
+
|
2
|
+
module RGSS
|
3
|
+
|
4
|
+
class Viewport < Renderable
|
5
|
+
|
6
|
+
# include GL
|
7
|
+
|
8
|
+
attr_reader :batch
|
9
|
+
attr_accessor :back_color
|
10
|
+
|
11
|
+
def initialize(*args)
|
12
|
+
super(Graphics.batch)
|
13
|
+
|
14
|
+
@batch = Batch.new
|
15
|
+
rect = Rect.new(*args)
|
16
|
+
@ortho = Mat4.ortho(0, rect.width, 0.0, rect.height, -1.0, 1.0)
|
17
|
+
|
18
|
+
self.location = rect.location
|
19
|
+
self.size = rect.size
|
20
|
+
|
21
|
+
@texture = Texture.new(self.width, self.height)
|
22
|
+
@framebuffer = glGenFramebuffer
|
23
|
+
glBindFramebuffer(GL_FRAMEBUFFER, @framebuffer);
|
24
|
+
glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, @texture.id, 0)
|
25
|
+
glBindFramebuffer(GL_FRAMEBUFFER, GL_NONE)
|
26
|
+
|
27
|
+
vertices =
|
28
|
+
[
|
29
|
+
0.0, 1.0, 0.0, 1.0, # Bottom-Left
|
30
|
+
1.0, 0.0, 1.0, 0.0, # Top-Right
|
31
|
+
0.0, 0.0, 0.0, 0.0, # Top-Left
|
32
|
+
1.0, 1.0, 1.0, 1.0, # Bottom-Right
|
33
|
+
].pack('f*')
|
34
|
+
vertex_setup(vertices, nil, GL_STATIC_DRAW)
|
35
|
+
@back_color = nil
|
36
|
+
end
|
37
|
+
|
38
|
+
|
39
|
+
def render(delta)
|
40
|
+
return unless @visible && @opacity > 0.0
|
41
|
+
|
42
|
+
glBindFramebuffer(GL_FRAMEBUFFER, @framebuffer)
|
43
|
+
glClearColor(@back_color)
|
44
|
+
glClear(GL_COLOR_BUFFER_BIT)
|
45
|
+
glViewport(0, 0, self.width, self.height)
|
46
|
+
|
47
|
+
|
48
|
+
Graphics.project(@ortho) do
|
49
|
+
@batch.each { |obj| obj.render(delta) }
|
50
|
+
end
|
51
|
+
Graphics.restore
|
52
|
+
|
53
|
+
super(delta)
|
54
|
+
@texture.bind
|
55
|
+
glBindVertexArray(@vao)
|
56
|
+
glDrawElements(GL_TRIANGLES, 6, GL_UNSIGNED_BYTE, nil)
|
57
|
+
glBindVertexArray(GL_NONE)
|
58
|
+
end
|
59
|
+
|
60
|
+
def dispose
|
61
|
+
super
|
62
|
+
glDeleteFramebuffer(@framebuffer)
|
63
|
+
glDeleteTexture(@texture)
|
64
|
+
end
|
65
|
+
|
66
|
+
end
|
67
|
+
end
|
data/rgss.gemspec
ADDED
@@ -0,0 +1,44 @@
|
|
1
|
+
require_relative 'lib/rgss/version'
|
2
|
+
|
3
|
+
Gem::Specification.new do |spec|
|
4
|
+
spec.name = 'rgss'
|
5
|
+
spec.version = RGSS::VERSION
|
6
|
+
spec.authors = ['Eric Freed']
|
7
|
+
spec.email = ['efreed09@gmail.com']
|
8
|
+
|
9
|
+
spec.summary = %q{High-performance Ruby game framework strongly influenced by the RPG Maker series by Enterbrain.}
|
10
|
+
spec.description = %q{
|
11
|
+
IN ACTIVE DEVELOPMENT.
|
12
|
+
High-performance Ruby game framework strongly influenced by the RPG Maker series by Enterbrain. The library contains
|
13
|
+
multiple levels of abstraction, leveraging the power of modern OpenGL (C bindings built-in) and shaders, but building
|
14
|
+
upon these low-level abstractions to create the user-friendly components that are to be expected in a 2D game framework,
|
15
|
+
including sprites, textures, fonts, colors, etc. Those experienced with low-level graphics APIs have all the tools at their
|
16
|
+
fingertips already built-in (OpenGL, GLFW, OpenAL, sound/font/image decoding, etc) and ready to build their own engine from,
|
17
|
+
while those who have no interest in such can get started right away with powerful higher-level abstractions. While the
|
18
|
+
library's API surface similar in many ways to RPG Maker XP/VX/VXA, bear in mind that it is merely incluenced by those,
|
19
|
+
and liberal design changes have been taken to not limit the API or add restriction.
|
20
|
+
}
|
21
|
+
spec.homepage = 'https://github.com/ForeverZer0/rgss'
|
22
|
+
spec.license = 'MIT'
|
23
|
+
spec.required_ruby_version = Gem::Requirement.new('>= 2.3.0')
|
24
|
+
|
25
|
+
spec.metadata['homepage_uri'] = spec.homepage
|
26
|
+
spec.metadata['source_code_uri'] = 'https://github.com/ForeverZer0/rgss'
|
27
|
+
spec.metadata['changelog_uri'] = 'https://github.com/ForeverZer0/rgss/CHANGELOG.md'
|
28
|
+
|
29
|
+
spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do
|
30
|
+
`git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
31
|
+
end
|
32
|
+
|
33
|
+
spec.metadata['msys2_mingw_dependencies'] = 'glfw openal sndfile'
|
34
|
+
|
35
|
+
spec.bindir = 'bin'
|
36
|
+
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
37
|
+
spec.require_paths = ['lib']
|
38
|
+
|
39
|
+
spec.add_development_dependency 'rake', '~> 13.0'
|
40
|
+
spec.add_development_dependency 'rake-compiler', '~> 1.1'
|
41
|
+
spec.add_development_dependency 'yard', '~> 0.9'
|
42
|
+
|
43
|
+
spec.add_runtime_dependency 'ox', '~> 2.14'
|
44
|
+
end
|
data/test.png
ADDED
Binary file
|
metadata
ADDED
@@ -0,0 +1,178 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: rgss
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Eric Freed
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2021-01-15 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: rake
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '13.0'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '13.0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rake-compiler
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '1.1'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '1.1'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: yard
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0.9'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0.9'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: ox
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '2.14'
|
62
|
+
type: :runtime
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '2.14'
|
69
|
+
description: "\n IN ACTIVE DEVELOPMENT.\n High-performance Ruby game framework
|
70
|
+
strongly influenced by the RPG Maker series by Enterbrain. The library contains\n
|
71
|
+
\ multiple levels of abstraction, leveraging the power of modern OpenGL (C bindings
|
72
|
+
built-in) and shaders, but building\n upon these low-level abstractions to
|
73
|
+
create the user-friendly components that are to be expected in a 2D game framework,
|
74
|
+
\n including sprites, textures, fonts, colors, etc. Those experienced with
|
75
|
+
low-level graphics APIs have all the tools at their\n fingertips already built-in
|
76
|
+
(OpenGL, GLFW, OpenAL, sound/font/image decoding, etc) and ready to build their
|
77
|
+
own engine from, \n while those who have no interest in such can get started
|
78
|
+
right away with powerful higher-level abstractions. While the \n library's
|
79
|
+
API surface similar in many ways to RPG Maker XP/VX/VXA, bear in mind that it is
|
80
|
+
merely incluenced by those,\n and liberal design changes have been taken to
|
81
|
+
not limit the API or add restriction.\n "
|
82
|
+
email:
|
83
|
+
- efreed09@gmail.com
|
84
|
+
executables: []
|
85
|
+
extensions: []
|
86
|
+
extra_rdoc_files: []
|
87
|
+
files:
|
88
|
+
- ".clang-format"
|
89
|
+
- ".gitignore"
|
90
|
+
- ".yardopts"
|
91
|
+
- CHANGELOG.md
|
92
|
+
- Gemfile
|
93
|
+
- LICENSE.txt
|
94
|
+
- Rakefile
|
95
|
+
- ext/rgss/cglm-v0.7.9.tar.gz
|
96
|
+
- ext/rgss/color.c
|
97
|
+
- ext/rgss/entity.c
|
98
|
+
- ext/rgss/extconf.rb
|
99
|
+
- ext/rgss/font.c
|
100
|
+
- ext/rgss/game.c
|
101
|
+
- ext/rgss/game.h
|
102
|
+
- ext/rgss/gl.c
|
103
|
+
- ext/rgss/glad.c
|
104
|
+
- ext/rgss/glad.h
|
105
|
+
- ext/rgss/glfw.c
|
106
|
+
- ext/rgss/graphics.c
|
107
|
+
- ext/rgss/image.c
|
108
|
+
- ext/rgss/input.c
|
109
|
+
- ext/rgss/khrplatform.h
|
110
|
+
- ext/rgss/mat4.c
|
111
|
+
- ext/rgss/pax_global_header
|
112
|
+
- ext/rgss/point.c
|
113
|
+
- ext/rgss/rect.c
|
114
|
+
- ext/rgss/rgss.c
|
115
|
+
- ext/rgss/rgss.h
|
116
|
+
- ext/rgss/stb_image.h
|
117
|
+
- ext/rgss/stb_image_write.h
|
118
|
+
- ext/rgss/stb_rect_pack.h
|
119
|
+
- ext/rgss/stb_truetype.h
|
120
|
+
- ext/rgss/utf8.h
|
121
|
+
- ext/rgss/uthash.h
|
122
|
+
- ext/rgss/vec.c
|
123
|
+
- ext/rgss/vec.h
|
124
|
+
- ext/rgss/vec2.c
|
125
|
+
- ext/rgss/vec3.c
|
126
|
+
- ext/rgss/vec4.c
|
127
|
+
- lib/rgss.rb
|
128
|
+
- lib/rgss/batch.rb
|
129
|
+
- lib/rgss/blend.rb
|
130
|
+
- lib/rgss/game_object.rb
|
131
|
+
- lib/rgss/plane.rb
|
132
|
+
- lib/rgss/renderable.rb
|
133
|
+
- lib/rgss/rgss.so
|
134
|
+
- lib/rgss/shader.rb
|
135
|
+
- lib/rgss/shaders/sprite-frag.glsl
|
136
|
+
- lib/rgss/shaders/sprite-vert.glsl
|
137
|
+
- lib/rgss/sprite.rb
|
138
|
+
- lib/rgss/stubs/color.rb
|
139
|
+
- lib/rgss/stubs/gl.rb
|
140
|
+
- lib/rgss/stubs/glfw.rb
|
141
|
+
- lib/rgss/stubs/rect.rb
|
142
|
+
- lib/rgss/stubs/rpg.rb
|
143
|
+
- lib/rgss/stubs/tone.rb
|
144
|
+
- lib/rgss/texture.rb
|
145
|
+
- lib/rgss/tilemap.rb
|
146
|
+
- lib/rgss/version.rb
|
147
|
+
- lib/rgss/viewport.rb
|
148
|
+
- rgss.gemspec
|
149
|
+
- test.png
|
150
|
+
homepage: https://github.com/ForeverZer0/rgss
|
151
|
+
licenses:
|
152
|
+
- MIT
|
153
|
+
metadata:
|
154
|
+
homepage_uri: https://github.com/ForeverZer0/rgss
|
155
|
+
source_code_uri: https://github.com/ForeverZer0/rgss
|
156
|
+
changelog_uri: https://github.com/ForeverZer0/rgss/CHANGELOG.md
|
157
|
+
msys2_mingw_dependencies: glfw openal sndfile
|
158
|
+
post_install_message:
|
159
|
+
rdoc_options: []
|
160
|
+
require_paths:
|
161
|
+
- lib
|
162
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
163
|
+
requirements:
|
164
|
+
- - ">="
|
165
|
+
- !ruby/object:Gem::Version
|
166
|
+
version: 2.3.0
|
167
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
168
|
+
requirements:
|
169
|
+
- - ">="
|
170
|
+
- !ruby/object:Gem::Version
|
171
|
+
version: '0'
|
172
|
+
requirements: []
|
173
|
+
rubygems_version: 3.1.4
|
174
|
+
signing_key:
|
175
|
+
specification_version: 4
|
176
|
+
summary: High-performance Ruby game framework strongly influenced by the RPG Maker
|
177
|
+
series by Enterbrain.
|
178
|
+
test_files: []
|