5 A multi-player puzzle solving and creation game for minetest.
7 The game is meant to be run as a multiplayer puzzle-creating server.
8 Players can connect and either play boxes, or create new ones.
10 The basic concept of the game is boxes. This is an area in which the
11 player needs to find one or more objectives (keys). The player then
12 needs to bring these objectives to a slot (keyhole). Once all the
13 secrets have been found and returned, an exit opens that allows the
14 player out, completing the puzzle box.
16 This minetest game is strongly inspired by the "parcels" MC player
17 map. I did not want to replicate the map itself, even though the
18 conversion tools exist to mostly do this, but more because giving
19 it a multiplayer spin sounds much more appealing, and a far better
20 tribute to the map itself. The possibility of having hundreds of
21 puzzle boxes created also sounds much more appealing.
26 A player can choose to play available boxes. Selecting an available
27 level to play will create a private copy of the level box and teleport
28 the player to the starting point of the level. The starting point is
29 in a hallway or entry room. There can be some clues left, and there
30 should be some information of the builder, and perhaps difficulty,
31 time spent by players in the level, popularity, rating information.
33 From the hallway the player should have some visual on the inside of
34 the box. This will help players recognize boxes easier so they can
35 skip ones they have played before, or gauge difficulty, etc..
37 The player moves through a door to the level. This may trigger a
38 teleport to a starting location, or not. On the side of the wall
39 somewhere is displayed a large number corresponding with the box ID.
41 In the box there is a collection area. In the collection area there
42 are 1 or more collection slots. The slots all require to be filled
43 with a "key" item. These items are found anywhere in the level. The
44 player picks up the item and brings them to the collection slots.
46 The box largely contains unbreakable nodes. The box may contain certain
47 digging tools to break nodes in the box (e.g. an axe to break certain
48 wood blocks, a pickaxe to break stone blocks, or a shovel to dig
49 sand blocks). The player may be forced to use these tools to reach
50 new areas in the box, or to create bridges or ladders to climb up.
52 The player can not physically exit the box. The box is surrounded by
53 unbreakable blocks uncluding invisible ceilings where needed. The
54 player has an "escape" button that, when used, removes the player
55 from the game and returns the player to the general lobby.
57 The player may take damage in the box through falling or lava
58 or cacti, or other methods. The player recovers lost health somewhat
59 quickly, but some errors may be deadly.
61 Once the player collects all the needed items, an exit doorway opens
62 or becomes reachable. The player moves through the exit doorway and
63 ends in an exit lobby/hallway.
65 In the exit lobby/hallway, the player can leave feedback or ranking
66 votes for the level. Last, there is a method for the player to return
67 to the general lobby. The player also receives a ranking/score
68 about their performance in the box itself, but only on the first
69 attempt. The performance includes time spent in the box, times died,
75 Players can construct new boxes. They do this by entering a pristine
76 box that is created on the fly for them. In this box, the player
77 receives full editing privileges. The player can construct and modify
78 the collection point, place the secrets, place any node or liquid,
79 fire, TNT or other element provided to them.
81 The entry hallway has a spot for a sign hint that the constructor can
82 modify. It also has an interface for modifying the box parameters,
83 such as name and size, and variations such as entry/exit gate locations
84 and collection point stations.
89 Points act as a measure of commitment. The more actions a player does
90 that are in the interest of the community, the more points a player
91 gains. These points can be exchanged for privileges.
93 For each level played and rated the player earns points.
95 A player may lose points for dying a lot in boxes, or dying a lot
96 in boxes in general. A player may also lose points for other actions,
97 such as going idle in a box, never rating boxes or always rating
98 boxes the same level of hearts. This lowers the input their
99 actions they have into the system. E.g. if a player continuously
100 dies many times in a few boxes, their scoring values are reduced
101 in the averages by a factor, reducing their impact on ratings.
103 Privileges that can be reached through gaining points are:
104 - ability to create new boxes
105 - ability to submit more boxes for trials
106 - ability to choose larger level boxes
107 - moderation of boxes that are eligible for moderation
108 - moderation of other players with a lower point level
113 Boxes are rated/ranked per players. Good boxes are promoted to box
114 series that can be accessed from the main lobby easily ("play this
115 months' top boxes") and ultimately make it in to a list of ultimate
116 box boxes. This level series of boxes will only ever grow, and the
117 player can track his progress through these series and continue at
120 A Random box can be chosen from the lobby.
122 A player can test trial boxes. Trial boxes are not yet finished
123 but submitted by the creator for review. The player can rate and
124 provide comments ("can't continue", "fell and stuck in a hole",
125 "too easy") to the creator so they may modify the box.
127 Points are scored for time spent. More time equals more points, except
128 when players are leaving before finishing, which subtracts points.
130 Points are scored for player rating. 0-5 hearts can be given.
132 Points are scored for damage taken by players, but subtracted for
133 multiple deaths of the same player. In general, a player dying once
134 in a level is OK, as long as it is instructional to the player and
135 they understand afterwards how to overcome an obstacle. Subsequent
136 deaths of a player may subtract points (note: need to account for
142 Series are curated boxes that can be played in succession. A
143 series of boxes grows one box at a time (interval to be
144 determined) and the newest box is always the top ranked box that is
145 not yet in that series. It may be that a fixed amount of scoring points
146 needs to be gained before a box can be promoted to a series.
148 - Master Series: A series of best rated boxes over time. These are
149 boxes that have exceeded a certain amount of points. They are
150 permanently added to the master series forever.
152 - The trial Series: Unranked and unfinished boxes. These are marked
153 "can be played" but "review requested". Players can recieve extra
154 points when they play and rank these.
156 - The Newest Series: Best ranked boxes in a certain time frame. These
157 are up and coming boxes that are relatively new, but have been past
158 review already (no longer "review requested"). Players are encouraged
159 to play these boxes every week and rate.
164 These are suggested game play modes to vary game play a bit.
166 - Random rated or Random unrated box: Play a random box.
167 - Box Race: Several players each attempt the same box separately.
168 - Coop: Try boxes together with another player.
173 - Admin: reserved role for a player that can always moderate players
174 and/or boxes, ban/kick players, edit all boxes, remove boxes.
175 - Moderator: may suspend players, may suspend boxes.
176 - Player: no privileges.
181 Inside The Box uses lsqlite3 to store player, box, series and score
182 data. This assures that large amounts of data can be stored easily
183 with reasonably good performance and reliability.
185 For creation and playing of maps, a virtual `plot` is reserved per
186 player in a random location on the map away from the static lobby. This
187 reservation is destroyed when the box is no longer needed.
189 The box contents are stored in the sqlite database and restored for
190 each player that attempts to play the box. This assures that multiple
191 players can separately try the same box without conflicts.
193 The sqlite backend also allows efficient storing and retrieval of
194 scores for players or boxes and creating ranks, modifying or inspecting
195 state of boxes or players.
197 Placement of boxes will use VoxelManips as well as additional metadata
198 where needed to connect dynamic elements inside the box. These are
199 subsequently connected to assure proper functioning of the box.
204 1. Install insidethebox in the `games` folder like a normal game.
206 2. Install `luarocks` for Lua 5.1. Your distribution most likely will
207 not have it - you'll have to compile it from source code. You
208 can find instructions on how to do this for instance here:
209 - https://stackoverflow.com/questions/20321560/how-do-install-libraries-for-both-lua5-2-and-5-1-using-luarocks
211 3. Use `luarocks` to `install` `lsqlite3`. Make sure to use the luarocks
212 version you compiled for Lua 5.1. This should create a file called
213 `lsqlite3.so` that Minetest will try to find. If Minetest can not
214 find this file, it will print out the folders that it was looking
215 for. If that happens, try copying the `lsqlite3.so` file to one
216 of the folders that Minetest prints out.
218 4. Add `secure.trusted_mods` to the `minetest.conf` file and add `db`.
219 If you plan on using the `irc` mod or other mods, you will need
220 to add them here. Add them without spaces but with commas:
221 `secure.trusted_mods = db,irc`
223 5. You will need a `localmusic` mod. Copy the mod from inside the
224 `.../games/insidethebox/mods/music/localmusic` to your
225 `.../worlds/<worldname>/worldmods/` folder.
227 6. Configure your admin account by setting `name = adminname` in the
228 `minetest.conf` setting for this world. The admin gets a creative
229 inventory access while players do not. There is no need to run the
230 world in `creative` mode.
232 After that, you should be able to log in and start building a lobby,
233 and use the commands to create and play boxes.
235 Additional world settings you may need to change later are:
238 Optional world settings are:
241 lobby_respawn_center = (<x>,<y>,<z>) -- where to respawn players who come back
243 lobby_respawn_radius = <min>,<max> -- use this radius around the center
245 tutorial_required = <true,false> -- are players required to complete this
246 tutorial_series = <id> -- number of the tutorial series
247 tutorial_entry_lobby = <id> -- tutorial entry lobby box_id
248 tutorial_exit_lobby = <id> -- tutorial exit lobby box_id
249 tutorial_exit = (<x>,<y>,<z>) -- where to teleport player at end of tutorial
251 announce_irc_admins = "john,frank" -- no spaces, lists irc names that will receive admin announcements