gamefic-sdk 3.3.0 → 3.4.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 415641494cfa86591a96b85167ac9cba4f1a013d79da063e82d1c561e9435bb3
4
- data.tar.gz: d44f03b6d4c6d3af3b532b84dc5347a19c04f40affeb6ca6f9691ce4442feb79
3
+ metadata.gz: 7fa038497ffa370ceb79dc943824850c60d6cf67b71c39191ab0220a4277b72e
4
+ data.tar.gz: 83891f88d0ccad744ca541fb235ed531b11bc525f2814a8766f423d12fcea21f
5
5
  SHA512:
6
- metadata.gz: 53e1393eae8835b4c69ab12c99a24d39095577665c2fc02aa52ab7aa457c2f69593cea18d28727ee2aabc72808568cc82f22dc839bb94c5b3cc37f3ae1bf9cab
7
- data.tar.gz: 46c7288a4a3246c20a7b5d4af70054f89a058658bd1ed73e8c7cc02e8f8d817534f21429881ac4a2c2032e2824266c764e92e0903ebc7a30dddf905bc881990a
6
+ metadata.gz: 6b0851ee5fa6100379e88fbf866060a8360b18bc6f294e8d358f833aae68ba057111a97651bda50aea7c61be40bd22696d8ff5f52bd6c2d379f9c3331abd420a
7
+ data.tar.gz: 49c7b1e652fe7482b6bce546877a8073189546d7ebf09a29fe091729b28b65008f90a1060bd4a4a44daab3310d8e9b676c2476c629640d8ddc9c2483d0916542
data/CHANGELOG.md CHANGED
@@ -1,4 +1,9 @@
1
- ## 3.3.0
1
+ ## 3.4.0 - October 19, 2024
2
+ - Reorder project requires
3
+ - Add Common module to project scaffold
4
+ - Lock gamefic-sdk-3 to react-gamefic-1
5
+
6
+ ## 3.3.0 - September 10, 2024
2
7
  - Add chapter to project scaffold
3
8
  - Remove superfluous no_scripts calls
4
9
 
data/README.md CHANGED
@@ -1,158 +1,158 @@
1
- # Gamefic SDK
2
-
3
- **A Ruby Interactive Fiction Framework**
4
-
5
- The Gamefic SDK provides development tools for writing games and interactive fiction with Gamefic.
6
-
7
- ## Installation
8
-
9
- Install the gem:
10
-
11
- $ gem install gamefic-sdk
12
-
13
- ## Usage
14
-
15
- This section provides a fast and simple introduction to using the SDK. Go to
16
- the [Gamefic website](https://gamefic.com) for in-depth guides and
17
- documentation.
18
-
19
- ### Creating a New Project
20
-
21
- Create a new project and go to its directory:
22
-
23
- $ gamefic init my_game
24
- $ cd my_game
25
-
26
- Test the project by running the game on the command line:
27
-
28
- $ rake ruby:run
29
-
30
- The Ruby game works like a traditional text adventure:
31
-
32
- Hello, world!
33
- >
34
-
35
- You can enter commands at the `>` prompt, but you haven't written any content,
36
- so there's not much to do yet. Enter `QUIT` to exit the game.
37
-
38
- ### The Script Code
39
-
40
- The plot for your narrative is defined in the `plot.rb` file. It should look
41
- something like this:
42
-
43
- ```ruby
44
- module Example
45
- class Plot < Gamefic::Plot
46
- UUID = 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'
47
-
48
- include Gamefic::Standard
49
-
50
- script do
51
- introduction do |actor|
52
- actor.tell "Hello, world!"
53
- end
54
- end
55
- end
56
- end
57
- ```
58
-
59
- `UUID` is a globally unique identifier. It can be useful if you want to
60
- add your game to online catalogs, such as the [Interactive Fiction Database](https://ifdb.tads.org/),
61
- but it's safe to delete if you don't need it.
62
-
63
- ['gamefic-standard'](https://github.com/castwide/gamefic-standard) is a collection
64
- of baseline features that are frequently useful for interactive fiction. [Inform](http://inform7.com/)
65
- developers should find it similar to Inform's Standard Rules. It defines common
66
- components like Rooms and Characters, along with in-game commands like `GO`,
67
- `GET`, and `DROP` to enable basic interactivity.
68
-
69
- `script` is where you write the story itself. In the starter project,
70
- the only thing in the script is an introductory message.
71
-
72
- ### Modifying the Script
73
-
74
- Replace the contents of `plot.rb` with the following:
75
-
76
- ```ruby
77
- module Example
78
- class Plot < Gamefic::Plot
79
- UUID = 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'
80
-
81
- include Gamefic::Standard
82
-
83
- seed do
84
- @living_room = make Room, name: 'living room', description: 'This is your living room.'
85
- @bedroom = make Room, name: 'bedroom', description: 'This is your bedroom.'
86
- connect @living_room, @bedroom, 'north'
87
- @backpack = make Room, name: 'backpack', description: 'Your trusty backpack.', parent: @bedroom
88
- @book = make Room, name: 'book', description: 'Your favorite novel.', parent: @living_room
89
- end
90
-
91
- script do
92
- introduction do |actor|
93
- actor.parent = @living_room
94
- actor.tell "You're in your house."
95
- end
96
- end
97
- end
98
- end
99
- ```
100
-
101
- Enter `rake ruby:run` to test the game. Now that it has rooms and objects, you
102
- can perform in-game commands like `LOOK AROUND`, `GO NORTH`, and `TAKE THE BACKPACK`.
103
-
104
- ### Making Games for the Web
105
-
106
- The default game project includes tasks for building "web" apps using HTML,
107
- CSS, and JavaScript. Generate the code for a web build with the following
108
- command:
109
-
110
- ```
111
- $ rake web:generate
112
- ```
113
-
114
- Test the game in a browser by starting a server:
115
-
116
- ```
117
- $ rake web:run
118
- ```
119
-
120
- Open `http://localhost:9000` to run the game in debug mode.
121
-
122
- Build a standalone web game:
123
-
124
- ```
125
- $ rake web:build
126
- ```
127
-
128
- The game's HTML file and related assets will be generated in the
129
- `web/build` directory. The SDK uses opal](https://github.com/opal/opal)
130
- to compile Ruby code to JavaScript, so the web build does not require a
131
- Ruby interpreter. Open `index.html` in a browser to play the game.
132
-
133
- Note: building the web app requires [Node.js](https://nodejs.org).
134
-
135
- ### Example Projects
136
-
137
- The gamefic-sdk repo includes several example projects that provide more
138
- complete demonstrations of Gamefic's features. To run an example, copy
139
- its `plot.rb` file to your own project.
140
-
141
- ### Learning More
142
-
143
- Go to the [Gamefic website](https://gamefic.com) for more information about
144
- developing and building apps with Gamefic.
145
-
146
- ## Development
147
-
148
- After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
149
-
150
- To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
151
-
152
- ## Contributing
153
-
154
- Bug reports and pull requests are welcome on GitHub at https://github.com/castwide/gamefic-sdk.
155
-
156
- ## License
157
-
158
- The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
1
+ # Gamefic SDK
2
+
3
+ **A Ruby Interactive Fiction Framework**
4
+
5
+ The Gamefic SDK provides development tools for writing games and interactive fiction with Gamefic.
6
+
7
+ ## Installation
8
+
9
+ Install the gem:
10
+
11
+ $ gem install gamefic-sdk
12
+
13
+ ## Usage
14
+
15
+ This section provides a fast and simple introduction to using the SDK. Go to
16
+ the [Gamefic website](https://gamefic.com) for in-depth guides and
17
+ documentation.
18
+
19
+ ### Creating a New Project
20
+
21
+ Create a new project and go to its directory:
22
+
23
+ $ gamefic init my_game
24
+ $ cd my_game
25
+
26
+ Test the project by running the game on the command line:
27
+
28
+ $ rake ruby:run
29
+
30
+ The Ruby game works like a traditional text adventure:
31
+
32
+ Hello, world!
33
+ >
34
+
35
+ You can enter commands at the `>` prompt, but you haven't written any content,
36
+ so there's not much to do yet. Enter `QUIT` to exit the game.
37
+
38
+ ### The Script Code
39
+
40
+ The plot for your narrative is defined in the `plot.rb` file. It should look
41
+ something like this:
42
+
43
+ ```ruby
44
+ module Example
45
+ class Plot < Gamefic::Plot
46
+ UUID = 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'
47
+
48
+ include Gamefic::Standard
49
+
50
+ script do
51
+ introduction do |actor|
52
+ actor.tell "Hello, world!"
53
+ end
54
+ end
55
+ end
56
+ end
57
+ ```
58
+
59
+ `UUID` is a globally unique identifier. It can be useful if you want to
60
+ add your game to online catalogs, such as the [Interactive Fiction Database](https://ifdb.tads.org/),
61
+ but it's safe to delete if you don't need it.
62
+
63
+ ['gamefic-standard'](https://github.com/castwide/gamefic-standard) is a collection
64
+ of baseline features that are frequently useful for interactive fiction. [Inform](http://inform7.com/)
65
+ developers should find it similar to Inform's Standard Rules. It defines common
66
+ components like Rooms and Characters, along with in-game commands like `GO`,
67
+ `GET`, and `DROP` to enable basic interactivity.
68
+
69
+ `script` is where you write the story itself. In the starter project,
70
+ the only thing in the script is an introductory message.
71
+
72
+ ### Modifying the Script
73
+
74
+ Replace the contents of `plot.rb` with the following:
75
+
76
+ ```ruby
77
+ module Example
78
+ class Plot < Gamefic::Plot
79
+ UUID = 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'
80
+
81
+ include Gamefic::Standard
82
+
83
+ seed do
84
+ @living_room = make Room, name: 'living room', description: 'This is your living room.'
85
+ @bedroom = make Room, name: 'bedroom', description: 'This is your bedroom.'
86
+ connect @living_room, @bedroom, 'north'
87
+ @backpack = make Room, name: 'backpack', description: 'Your trusty backpack.', parent: @bedroom
88
+ @book = make Room, name: 'book', description: 'Your favorite novel.', parent: @living_room
89
+ end
90
+
91
+ script do
92
+ introduction do |actor|
93
+ actor.parent = @living_room
94
+ actor.tell "You're in your house."
95
+ end
96
+ end
97
+ end
98
+ end
99
+ ```
100
+
101
+ Enter `rake ruby:run` to test the game. Now that it has rooms and objects, you
102
+ can perform in-game commands like `LOOK AROUND`, `GO NORTH`, and `TAKE THE BACKPACK`.
103
+
104
+ ### Making Games for the Web
105
+
106
+ The default game project includes tasks for building "web" apps using HTML,
107
+ CSS, and JavaScript. Generate the code for a web build with the following
108
+ command:
109
+
110
+ ```
111
+ $ rake web:generate
112
+ ```
113
+
114
+ Test the game in a browser by starting a server:
115
+
116
+ ```
117
+ $ rake web:run
118
+ ```
119
+
120
+ Open `http://localhost:9000` to run the game in debug mode.
121
+
122
+ Build a standalone web game:
123
+
124
+ ```
125
+ $ rake web:build
126
+ ```
127
+
128
+ The game's HTML file and related assets will be generated in the
129
+ `web/build` directory. The SDK uses opal](https://github.com/opal/opal)
130
+ to compile Ruby code to JavaScript, so the web build does not require a
131
+ Ruby interpreter. Open `index.html` in a browser to play the game.
132
+
133
+ Note: building the web app requires [Node.js](https://nodejs.org).
134
+
135
+ ### Example Projects
136
+
137
+ The gamefic-sdk repo includes several example projects that provide more
138
+ complete demonstrations of Gamefic's features. To run an example, copy
139
+ its `plot.rb` file to your own project.
140
+
141
+ ### Learning More
142
+
143
+ Go to the [Gamefic website](https://gamefic.com) for more information about
144
+ developing and building apps with Gamefic.
145
+
146
+ ## Development
147
+
148
+ After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
149
+
150
+ To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
151
+
152
+ ## Contributing
153
+
154
+ Bug reports and pull requests are welcome on GitHub at https://github.com/castwide/gamefic-sdk.
155
+
156
+ ## License
157
+
158
+ The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
@@ -12,7 +12,7 @@ module Gamefic
12
12
 
13
13
  # Generate a web app using NPM.
14
14
  #
15
- def generate version = '@latest'
15
+ def generate version = '@1.6.1'
16
16
  puts "Node version #{check_for_npm} detected. Preparing the web app..."
17
17
  web_path = File.join(absolute_path, 'web')
18
18
  FileUtils.mkdir_p web_path
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Gamefic
4
4
  module Sdk
5
- VERSION = '3.3.0'
5
+ VERSION = '3.4.0'
6
6
  end
7
7
  end
@@ -7,6 +7,6 @@ module <%= camelcase(name) %>
7
7
  # the plot.
8
8
  #
9
9
  class Chapter < Gamefic::Chapter
10
- include Gamefic::Standard
10
+ include Common
11
11
  end
12
12
  end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module <%= camelcase(name) %>
4
+ # A single container for modules that are shared among plots, chapters, and
5
+ # subplots.
6
+ #
7
+ module Common
8
+ extend Gamefic::Scriptable
9
+
10
+ include Gamefic::Standard
11
+ # Add more shared modules here
12
+ end
13
+ end
@@ -6,12 +6,10 @@ module <%= camelcase(name) %>
6
6
  class Plot < Gamefic::Plot
7
7
  UUID = 'fe5d62a7-7036-45c0-b5cb-39c336bf1b5a'
8
8
 
9
- include Gamefic::Standard
9
+ include Common
10
10
 
11
- script do
12
- introduction do |actor|
13
- actor.tell "Hello, world!"
14
- end
11
+ introduction do |actor|
12
+ actor.tell "Hello, world!"
15
13
  end
16
14
  end
17
15
  end
@@ -7,6 +7,6 @@ module <%= camelcase(name) %>
7
7
  # branch.
8
8
  #
9
9
  class Subplot < Gamefic::Subplot
10
- include Gamefic::Standard
10
+ include Common
11
11
  end
12
12
  end
@@ -4,7 +4,8 @@ require 'gamefic'
4
4
  require 'gamefic-standard'
5
5
 
6
6
  module <%= camelcase(name) %>
7
- require '<%= name %>/plot'
7
+ require '<%= name %>/common'
8
8
  require '<%= name %>/chapter'
9
+ require '<%= name %>/plot'
9
10
  require '<%= name %>/subplot'
10
11
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  RSpec.describe <%= camelcase(name) %>::Plot do
2
4
  let(:plot) { <%= camelcase(name) %>::Plot.new }
3
5
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  RSpec.describe <%= camelcase(name) %>::Subplot do
2
4
  let(:plot) { <%= camelcase(name) %>::Plot.new }
3
5
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  RSpec.describe 'gameplay' do
2
4
  let(:plot) { GAMEFIC_PLOT_CLASS.new }
3
5
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gamefic-sdk
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.3.0
4
+ version: 3.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Fred Snyder
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-09-10 00:00:00.000000000 Z
11
+ date: 2024-10-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: gamefic
@@ -248,6 +248,7 @@ files:
248
248
  - scaffolds/project/Rakefile.gf.erb
249
249
  - scaffolds/project/lib/__name__.rb.gf.erb
250
250
  - scaffolds/project/lib/__name__/chapter.rb.gf.erb
251
+ - scaffolds/project/lib/__name__/common.rb.gf.erb
251
252
  - scaffolds/project/lib/__name__/plot.rb.gf.erb
252
253
  - scaffolds/project/lib/__name__/subplot.rb.gf.erb
253
254
  - scaffolds/project/main.rb.gf.erb