dama 0.1.0

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 (107) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +21 -0
  3. data/README.md +227 -0
  4. data/dama-logo.svg +91 -0
  5. data/exe/dama +4 -0
  6. data/ext/dama_native/.cargo/config.toml +3 -0
  7. data/ext/dama_native/Cargo.lock +3575 -0
  8. data/ext/dama_native/Cargo.toml +39 -0
  9. data/ext/dama_native/extconf.rb +72 -0
  10. data/ext/dama_native/src/audio.rs +134 -0
  11. data/ext/dama_native/src/engine.rs +339 -0
  12. data/ext/dama_native/src/lib.rs +396 -0
  13. data/ext/dama_native/src/renderer/screenshot.rs +84 -0
  14. data/ext/dama_native/src/renderer/shape_renderer.rs +507 -0
  15. data/ext/dama_native/src/renderer/text_renderer.rs +192 -0
  16. data/ext/dama_native/src/renderer.rs +563 -0
  17. data/ext/dama_native/src/window.rs +255 -0
  18. data/lib/dama/animation.rb +66 -0
  19. data/lib/dama/asset_cache.rb +56 -0
  20. data/lib/dama/audio.rb +47 -0
  21. data/lib/dama/auto_loader.rb +54 -0
  22. data/lib/dama/backend/base.rb +137 -0
  23. data/lib/dama/backend/native/ffi_bindings.rb +122 -0
  24. data/lib/dama/backend/native.rb +191 -0
  25. data/lib/dama/backend/web.rb +199 -0
  26. data/lib/dama/backend.rb +13 -0
  27. data/lib/dama/camera.rb +68 -0
  28. data/lib/dama/cli/new_project.rb +112 -0
  29. data/lib/dama/cli/release.rb +45 -0
  30. data/lib/dama/cli.rb +22 -0
  31. data/lib/dama/colors.rb +30 -0
  32. data/lib/dama/command_buffer.rb +83 -0
  33. data/lib/dama/component/attribute_definition.rb +13 -0
  34. data/lib/dama/component/attribute_set.rb +32 -0
  35. data/lib/dama/component.rb +28 -0
  36. data/lib/dama/configuration.rb +18 -0
  37. data/lib/dama/debug/frame_controller.rb +35 -0
  38. data/lib/dama/debug/screenshot_tool.rb +19 -0
  39. data/lib/dama/debug.rb +4 -0
  40. data/lib/dama/event_bus.rb +47 -0
  41. data/lib/dama/game/builder.rb +31 -0
  42. data/lib/dama/game/loop.rb +44 -0
  43. data/lib/dama/game.rb +88 -0
  44. data/lib/dama/geometry/circle.rb +28 -0
  45. data/lib/dama/geometry/rect.rb +16 -0
  46. data/lib/dama/geometry/sprite.rb +18 -0
  47. data/lib/dama/geometry/triangle.rb +13 -0
  48. data/lib/dama/geometry.rb +4 -0
  49. data/lib/dama/input/keyboard_state.rb +44 -0
  50. data/lib/dama/input/mouse_state.rb +45 -0
  51. data/lib/dama/input.rb +38 -0
  52. data/lib/dama/keys.rb +67 -0
  53. data/lib/dama/node/component_slot.rb +18 -0
  54. data/lib/dama/node/draw_context.rb +96 -0
  55. data/lib/dama/node.rb +139 -0
  56. data/lib/dama/physics/body.rb +57 -0
  57. data/lib/dama/physics/collider.rb +152 -0
  58. data/lib/dama/physics/collision.rb +15 -0
  59. data/lib/dama/physics/world.rb +125 -0
  60. data/lib/dama/physics.rb +4 -0
  61. data/lib/dama/registry/class_resolver.rb +48 -0
  62. data/lib/dama/registry.rb +21 -0
  63. data/lib/dama/release/archiver.rb +100 -0
  64. data/lib/dama/release/defaults/icon.icns +0 -0
  65. data/lib/dama/release/defaults/icon.ico +0 -0
  66. data/lib/dama/release/defaults/icon.png +0 -0
  67. data/lib/dama/release/dylib_relinker.rb +95 -0
  68. data/lib/dama/release/game_file_copier.rb +35 -0
  69. data/lib/dama/release/game_metadata.rb +61 -0
  70. data/lib/dama/release/icon_provider.rb +36 -0
  71. data/lib/dama/release/native_builder.rb +44 -0
  72. data/lib/dama/release/packager/linux.rb +62 -0
  73. data/lib/dama/release/packager/macos.rb +99 -0
  74. data/lib/dama/release/packager/web.rb +32 -0
  75. data/lib/dama/release/packager/windows.rb +61 -0
  76. data/lib/dama/release/packager.rb +9 -0
  77. data/lib/dama/release/platform_detector.rb +23 -0
  78. data/lib/dama/release/ruby_bundler.rb +163 -0
  79. data/lib/dama/release/stdlib_trimmer.rb +133 -0
  80. data/lib/dama/release/template_renderer.rb +40 -0
  81. data/lib/dama/release/templates/info_plist.xml.erb +19 -0
  82. data/lib/dama/release/templates/launcher_linux.sh.erb +10 -0
  83. data/lib/dama/release/templates/launcher_macos.sh.erb +10 -0
  84. data/lib/dama/release/templates/launcher_windows.bat.erb +11 -0
  85. data/lib/dama/release.rb +7 -0
  86. data/lib/dama/scene/composer.rb +65 -0
  87. data/lib/dama/scene.rb +233 -0
  88. data/lib/dama/scene_graph/class_index.rb +26 -0
  89. data/lib/dama/scene_graph/group_node.rb +27 -0
  90. data/lib/dama/scene_graph/instance_node.rb +30 -0
  91. data/lib/dama/scene_graph/path_selector.rb +25 -0
  92. data/lib/dama/scene_graph/query.rb +34 -0
  93. data/lib/dama/scene_graph/tag_index.rb +26 -0
  94. data/lib/dama/scene_graph/tree.rb +65 -0
  95. data/lib/dama/scene_graph.rb +4 -0
  96. data/lib/dama/sprite_sheet.rb +36 -0
  97. data/lib/dama/tween/easing.rb +31 -0
  98. data/lib/dama/tween/lerp.rb +35 -0
  99. data/lib/dama/tween/manager.rb +28 -0
  100. data/lib/dama/tween.rb +4 -0
  101. data/lib/dama/version.rb +3 -0
  102. data/lib/dama/vertex_batch.rb +35 -0
  103. data/lib/dama/web/entry.rb +79 -0
  104. data/lib/dama/web/static/index.html +142 -0
  105. data/lib/dama/web_builder.rb +232 -0
  106. data/lib/dama.rb +42 -0
  107. metadata +198 -0
metadata ADDED
@@ -0,0 +1,198 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: dama
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Caiubi Fonseca
8
+ bindir: exe
9
+ cert_chain: []
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
+ dependencies:
12
+ - !ruby/object:Gem::Dependency
13
+ name: ffi
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - "~>"
17
+ - !ruby/object:Gem::Version
18
+ version: '1.17'
19
+ type: :runtime
20
+ prerelease: false
21
+ version_requirements: !ruby/object:Gem::Requirement
22
+ requirements:
23
+ - - "~>"
24
+ - !ruby/object:Gem::Version
25
+ version: '1.17'
26
+ - !ruby/object:Gem::Dependency
27
+ name: ruby_wasm
28
+ requirement: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - "~>"
31
+ - !ruby/object:Gem::Version
32
+ version: '2.8'
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - "~>"
38
+ - !ruby/object:Gem::Version
39
+ version: '2.8'
40
+ - !ruby/object:Gem::Dependency
41
+ name: zeitwerk
42
+ requirement: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - "~>"
45
+ - !ruby/object:Gem::Version
46
+ version: '2.7'
47
+ type: :runtime
48
+ prerelease: false
49
+ version_requirements: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - "~>"
52
+ - !ruby/object:Gem::Version
53
+ version: '2.7'
54
+ description: |
55
+ dama-rb is a 2D game engine that lets you write games in Ruby using a
56
+ declarative DSL. The engine renders via a Rust/wgpu backend (Metal, Vulkan,
57
+ DX12, WebGPU), so your game code is pure Ruby while GPU-accelerated graphics
58
+ run at native speed. Games can run natively or in the browser via ruby.wasm.
59
+ email:
60
+ - caiubi@icloud.com
61
+ executables:
62
+ - dama
63
+ extensions:
64
+ - ext/dama_native/extconf.rb
65
+ extra_rdoc_files: []
66
+ files:
67
+ - LICENSE
68
+ - README.md
69
+ - dama-logo.svg
70
+ - exe/dama
71
+ - ext/dama_native/.cargo/config.toml
72
+ - ext/dama_native/Cargo.lock
73
+ - ext/dama_native/Cargo.toml
74
+ - ext/dama_native/extconf.rb
75
+ - ext/dama_native/src/audio.rs
76
+ - ext/dama_native/src/engine.rs
77
+ - ext/dama_native/src/lib.rs
78
+ - ext/dama_native/src/renderer.rs
79
+ - ext/dama_native/src/renderer/screenshot.rs
80
+ - ext/dama_native/src/renderer/shape_renderer.rs
81
+ - ext/dama_native/src/renderer/text_renderer.rs
82
+ - ext/dama_native/src/window.rs
83
+ - lib/dama.rb
84
+ - lib/dama/animation.rb
85
+ - lib/dama/asset_cache.rb
86
+ - lib/dama/audio.rb
87
+ - lib/dama/auto_loader.rb
88
+ - lib/dama/backend.rb
89
+ - lib/dama/backend/base.rb
90
+ - lib/dama/backend/native.rb
91
+ - lib/dama/backend/native/ffi_bindings.rb
92
+ - lib/dama/backend/web.rb
93
+ - lib/dama/camera.rb
94
+ - lib/dama/cli.rb
95
+ - lib/dama/cli/new_project.rb
96
+ - lib/dama/cli/release.rb
97
+ - lib/dama/colors.rb
98
+ - lib/dama/command_buffer.rb
99
+ - lib/dama/component.rb
100
+ - lib/dama/component/attribute_definition.rb
101
+ - lib/dama/component/attribute_set.rb
102
+ - lib/dama/configuration.rb
103
+ - lib/dama/debug.rb
104
+ - lib/dama/debug/frame_controller.rb
105
+ - lib/dama/debug/screenshot_tool.rb
106
+ - lib/dama/event_bus.rb
107
+ - lib/dama/game.rb
108
+ - lib/dama/game/builder.rb
109
+ - lib/dama/game/loop.rb
110
+ - lib/dama/geometry.rb
111
+ - lib/dama/geometry/circle.rb
112
+ - lib/dama/geometry/rect.rb
113
+ - lib/dama/geometry/sprite.rb
114
+ - lib/dama/geometry/triangle.rb
115
+ - lib/dama/input.rb
116
+ - lib/dama/input/keyboard_state.rb
117
+ - lib/dama/input/mouse_state.rb
118
+ - lib/dama/keys.rb
119
+ - lib/dama/node.rb
120
+ - lib/dama/node/component_slot.rb
121
+ - lib/dama/node/draw_context.rb
122
+ - lib/dama/physics.rb
123
+ - lib/dama/physics/body.rb
124
+ - lib/dama/physics/collider.rb
125
+ - lib/dama/physics/collision.rb
126
+ - lib/dama/physics/world.rb
127
+ - lib/dama/registry.rb
128
+ - lib/dama/registry/class_resolver.rb
129
+ - lib/dama/release.rb
130
+ - lib/dama/release/archiver.rb
131
+ - lib/dama/release/defaults/icon.icns
132
+ - lib/dama/release/defaults/icon.ico
133
+ - lib/dama/release/defaults/icon.png
134
+ - lib/dama/release/dylib_relinker.rb
135
+ - lib/dama/release/game_file_copier.rb
136
+ - lib/dama/release/game_metadata.rb
137
+ - lib/dama/release/icon_provider.rb
138
+ - lib/dama/release/native_builder.rb
139
+ - lib/dama/release/packager.rb
140
+ - lib/dama/release/packager/linux.rb
141
+ - lib/dama/release/packager/macos.rb
142
+ - lib/dama/release/packager/web.rb
143
+ - lib/dama/release/packager/windows.rb
144
+ - lib/dama/release/platform_detector.rb
145
+ - lib/dama/release/ruby_bundler.rb
146
+ - lib/dama/release/stdlib_trimmer.rb
147
+ - lib/dama/release/template_renderer.rb
148
+ - lib/dama/release/templates/info_plist.xml.erb
149
+ - lib/dama/release/templates/launcher_linux.sh.erb
150
+ - lib/dama/release/templates/launcher_macos.sh.erb
151
+ - lib/dama/release/templates/launcher_windows.bat.erb
152
+ - lib/dama/scene.rb
153
+ - lib/dama/scene/composer.rb
154
+ - lib/dama/scene_graph.rb
155
+ - lib/dama/scene_graph/class_index.rb
156
+ - lib/dama/scene_graph/group_node.rb
157
+ - lib/dama/scene_graph/instance_node.rb
158
+ - lib/dama/scene_graph/path_selector.rb
159
+ - lib/dama/scene_graph/query.rb
160
+ - lib/dama/scene_graph/tag_index.rb
161
+ - lib/dama/scene_graph/tree.rb
162
+ - lib/dama/sprite_sheet.rb
163
+ - lib/dama/tween.rb
164
+ - lib/dama/tween/easing.rb
165
+ - lib/dama/tween/lerp.rb
166
+ - lib/dama/tween/manager.rb
167
+ - lib/dama/version.rb
168
+ - lib/dama/vertex_batch.rb
169
+ - lib/dama/web/entry.rb
170
+ - lib/dama/web/static/index.html
171
+ - lib/dama/web_builder.rb
172
+ homepage: https://github.com/caiubi/dama-rb
173
+ licenses:
174
+ - MIT
175
+ metadata:
176
+ rubygems_mfa_required: 'true'
177
+ homepage_uri: https://github.com/caiubi/dama-rb
178
+ source_code_uri: https://github.com/caiubi/dama-rb
179
+ bug_tracker_uri: https://github.com/caiubi/dama-rb/issues
180
+ changelog_uri: https://github.com/caiubi/dama-rb/blob/main/CHANGELOG.md
181
+ rdoc_options: []
182
+ require_paths:
183
+ - lib
184
+ required_ruby_version: !ruby/object:Gem::Requirement
185
+ requirements:
186
+ - - ">="
187
+ - !ruby/object:Gem::Version
188
+ version: '3.4'
189
+ required_rubygems_version: !ruby/object:Gem::Requirement
190
+ requirements:
191
+ - - ">="
192
+ - !ruby/object:Gem::Version
193
+ version: '0'
194
+ requirements: []
195
+ rubygems_version: 3.6.9
196
+ specification_version: 4
197
+ summary: A cross-platform 2D game engine with a Ruby DSL and Rust rendering backend
198
+ test_files: []