https://www.reanimated.co.uk/w/index.php?title=Special:NewPages&feed=atom&hideredirs=1&limit=50&offset=&namespace=0&username=&tagfilter=&size-mode=max&size=0RPGWNN - New pages [en]2024-03-29T09:52:12ZFrom RPGWNNMediaWiki 1.30.0https://www.reanimated.co.uk/docs/InstallationInstallation2013-12-12T23:48:09Z<p>Simon: /* Database */ Added information about running the application</p>
<hr />
<div>== Pre-requisites ==<br />
<br />
A working installation of Perl, including the CPAN module.<br />
<br />
MySQL (or another database supported by Dancer)<br />
<br />
=== Perl modules ===<br />
<br />
RPGWNN requires a few Perl modules to be installed in addition to<br />
the core modules that come with any modern Perl installation.<br />
<br />
We've tried to keep it to a minimum by using the Dancer micro<br />
web application framework which itself has very few requirements.<br />
Unfortunately as more features were added, the list of dependencies<br />
became rather longer than hoped for.<br />
<br />
PSGI is an interface between Perl web applications and web servers,<br />
and Plack is a Perl module and toolkit that contains PSGI middleware,<br />
helpers and adapters to web servers.<br />
<br />
Information about Dancer can be found at [http://perldancer.org/ perldancer.org]<br />
<br />
Information about Plack can be found at [http://plackperl.org/ plackperl.org]<br />
<br />
=== Automatic installation of prerequisites ===<br />
<br />
The "quick" method is to install the RPGWNN Bundle found in this<br />
distribution. The only downside is that it may unneccessarily<br />
upgrade modules that you may already have installed on your system.<br />
<br />
$ cd lib && perl -MCPAN -e 'install Bundle::RPGWNN'<br />
<br />
=== Manual installation ===<br />
<br />
If you don't want to do the automated method, you can install the key<br />
modules manually. Specifically, these modules should provide any dependencies that are also required.<br />
<br />
* Dancer<br />
* Plack<br />
* Template (Template Toolkit)<br />
* YAML::Any (replacement for YAML)<br />
<br />
Installation of these modules and their dependencies can be done<br />
(assuming you have CPAN installed) using the following command.<br />
<br />
$ perl -MCPAN -e 'install Plack; install Dancer; install Template; install YAML::Any;'<br />
<br />
== Source installation ==<br />
<br />
Clone the master repository from Github<br />
<br />
$ git clone https://github.com/rpgwnn/framework.git <br />
<br />
Then change into the framework directory for the later commands.<br />
<br />
$ cd framework<br />
<br />
== Database ==<br />
<br />
As a MySQL administrator account, you need to create a database and grant<br />
permissions to the user.<br />
<br />
By default, we use the database name "rpg_db", with a username of<br />
"rpg_user" and password of "rpg_pass"<br />
If you wish to change these defaults (and you should probably change<br />
at least the password) simply replace them in the instructions below.<br />
<br />
mysql> CREATE DATABASE rpg_db;<br />
mysql> GRANT ALL ON rpg_db.* TO 'rpg_user'@'localhost' IDENTIFIED BY 'rpg_pass';<br />
<br />
If all is well, you should be able to run the following command at<br />
a shell prompt and connect to the database.<br />
<br />
$ mysql -urpg_user -prpg_pass rpg_db<br />
<br />
If you change the database details, also ensure that config.yml is<br />
updated with the new information.<br />
<br />
Next, run the database schema deployment script to create the table<br />
structure.<br />
<br />
'''******* WARNING *** WARNING *** WARNING *** WARNING *** WARNING ********'''<br />
<br />
This step '''WILL''' destroy any tables that have already been created.<br />
<br />
$ perl scripts/deploy_db_schema.pl<br />
<br />
Next we need to create the basic map - due to database foreign key constraints, you can only create a new character if there is a map tile for them to start in (which makes sense really if you think about it).<br />
<br />
$ perl scripts/create_map.pl <br />
<br />
== Running it ==<br />
<br />
If everything above has completed successfully, you should be able to run the following command<br />
<br />
$ plackup -p 8003 bin/app.pl<br />
<br />
and then access http://localhost:8003/ - from there, you can create an account, create a character and start playing as that character.</div>Simonhttps://www.reanimated.co.uk/docs/BRPGBRPG2013-12-12T23:13:36Z<p>Etherdrifter: I* In Depth Specification */ - Inventory and Items</p>
<hr />
<div>BRPG - Basic RPG<br />
<br />
<br />
==Basic Idea==<br />
<br />
Functionality<br />
<br />
<br />
Log in + char creation<br />
<br />
Move around map<br />
<br />
Basic player interactions<br />
<br />
Basic items<br />
<br />
Basic skills<br />
<br />
Basic NPC/Quest Interaction<br />
<br />
<br />
<br />
Map Tiles<br />
<br />
<br />
Grass - passable, can find stick 20%, stone 20% and gold coin 10%<br />
<br />
Forest - passable, can find healing herb 10%, stick 30%, gold coin 20%<br />
<br />
Stream - passable (double ap cost), can find stone 50%<br />
<br />
Mountain - impassable world border<br />
<br />
<br />
<br />
Map Items<br />
<br />
<br />
Fist (unseen and non discardable) - 1 damage 20% base<br />
<br />
Sword - 2 damage 20% base<br />
<br />
Bow - 3 damage 20% base, costs 1 arrow per shot<br />
<br />
Stone - No use<br />
<br />
Stick - No use<br />
<br />
Arrow - Used as ammo for shooting, can be crafted from 1 stick and 1 stone (makes 2) and 1ap, stacks<br />
<br />
Healing Salve - Restores 5hp, can be crafted from 2 healing herbs and 1ap, grants 2exp when used on wounded player/npc (not <br />
self), 25% chance 1 exp granted for crafting<br />
<br />
Healing Herb - Restores 2hp, stacks, grants 1exp when used on wounded player/npc (not self)<br />
<br />
Gold Coin - No use, stacks<br />
<br />
<br />
<br />
NPCs<br />
<br />
<br />
Wolf - 10hp, 2 damage 30% chance, exp per kill (2), drops 1gc per kills<br />
<br />
Deer - 5hp, no damage, exp per kill (1), can start wounded (1hp)<br />
<br />
Bob (Trader) - Cannot be attacked, offers items in exchange for gold. Also offers "training quest"<br />
<br />
<br />
<br />
Skills (each costs 5 exp)<br />
<br />
<br />
Sword Swinging - 10% bonus to hit with sword<br />
<br />
-Sword Striking - 15% bonus to hit with sword<br />
<br />
-Sword Charge - Special action, 1/2 hit chance double damage.<br />
<br />
<br />
Bow Shooting - 10% hit bonus<br />
<br />
-Fletching - Allows arrow crafting<br />
<br />
-Aimed Shot - Special action, costs 2ap but doubles chance to hit<br />
<br />
<br />
Salve Making - Allows salve crafting<br />
<br />
-Healing - Increases salve heal amount bt 2<br />
<br />
-Herb Hunting - Can use "herb hunt" option in forests.<br />
<br />
<br />
-Specialrewardskill stamina - Grants +5ap max and +5hp max<br />
<br />
<br />
<br />
Base character info<br />
<br />
<br />
20ap, 15hp, 10 inventory slots, option to "give", "attack", "speak", "search" and "drop"<br />
<br />
1 ap granted per 5 mins<br />
<br />
<br />
<br />
Quests<br />
<br />
<br />
Training<br />
<br />
Visit each type of tile once, item of choice (Sword, bow and 5 arrows or 10 healing herbs)<br />
<br />
<br />
Hunt A Deer (only gettable after training done)<br />
<br />
Kill 1 deer, reward specialrewardskill stamina<br />
<br />
<br />
<br />
Trader<br />
<br />
<br />
Sword - 5 gold coins<br />
<br />
Bow - 5 gold coins<br />
<br />
Arrow - 1 gold coin for 2<br />
<br />
Healing potion - 2 gold coins<br />
<br />
<br />
<br />
Char creation<br />
<br />
<br />
Name - Shartak style<br />
<br />
Gender - M/F<br />
<br />
Race - Human (no changes), Elf (+4% bow accuracy, -5% sword accuracy), Dwarf (+5% sword accuracy, -4% bow accuracy) or <br />
Pixie (+1 salve healing, -3 max hp)<br />
<br />
Starting skill - Sword Swinging, Bow Shooting or Salve Making<br />
<br />
<br />
<br />
Herb hunt action<br />
<br />
<br />
Costs same ap (1) as search. Gives a 50% herb find rate, 0% anything else though.<br />
<br />
<br />
<br />
Some maths<br />
<br />
<br />
Sword 0 skill 0.4 damage per ap (dwarf 0.5, elf 0.3)<br />
<br />
Sword 1 skill 0.6 damage per ap (dwarf 0.8, elf 0.5)<br />
<br />
Sword 2 skill 0.9 damage per ap (dwarf 1, elf 0.8)<br />
<br />
Bow 0 skill 0.6 damage per ap (dwarf 0.48, elf 0.72)<br />
<br />
Bow 1 skill 0.9 damage per ap (dwarf 0.78, elf 1.02)<br />
<br />
<br />
<br />
<br />
<br />
<br />
The purpose of this little game<br />
<br />
It showcases a lot of features, especially if we later add some basic mods to complement it (extra tiles, an extra npc or item, maybe another skill.<br />
<br />
If this idea is approved I will spend some more time on the maths and balance (this is just a rough idea). We have an artist who can do icons and tiles.<br />
<br />
<br />
==In Depth Specification==<br />
<br />
===Database Tables (Inventory)===<br />
<br />
<br />
Table : Items<br />
<br />
<br />
ItemId : int (key)<br />
<br />
ItemName : str(26)<br />
<br />
NumData : intarray<br />
<br />
StrData : strarray<br />
<br />
Type : str(>10)<br />
<br />
Core : boolean (Not used in BRPG at the moment)<br />
<br />
<br />
Table : Inventory<br />
<br />
<br />
CharID : int (complexkey)<br />
<br />
ItemID : int (complexkey)<br />
<br />
Quantity : int<br />
<br />
<br />
===Inventory Display===<br />
<br />
<br />
[Attack] <DropdownTarget> with <DropdownWeapons><br />
<br />
[Use] <DropdownUsables> on <DropdownTarget><br />
<br />
{InventoryList}<br />
<br />
<br />
===Inventory Generation===<br />
<br />
GetCharID<br />
<br />
Lookup CharID in inventory table and return matching item numbers and Quantity<br />
<br />
For each item number returned<br />
<br />
getType<br />
<br />
if type=weapon then add itemId to DropDownWeapons (hidden) and print ItemName<br />
<br />
if type=usable then add itemId to DropdownUsables (hidden) and print ItemName<br />
<br />
add ItemName to InventoryList + "x" + Quantity<br />
<br />
end for loop<br />
<br />
<br />
Point of clarity : When adding items to the dropdown lists a similar method to shartak might be best (the itemId is needed to get the item type from the database for actions, the name is for the end user to see what they are using!)</div>Etherdrifterhttps://www.reanimated.co.uk/docs/TasksTasks2013-12-12T22:28:27Z<p>Etherdrifter: </p>
<hr />
<div>==Framework To-Do List==<br />
<br />
<br />
If you want to sort something out just put your name next to it, once it's done score it through.<br />
<br />
<br />
<br />
* <del>Login/Users/Accounts</del><br />
<br />
<br />
* Characters<br />
** Inventory<br />
** Skills<br />
** HP<br />
** EXP<br />
** AP<br />
<br />
* Maps<br />
** Tiles<br />
*** Get tile type (tile image/description linked in)<br />
*** Get tile<br />
*** Get players on tile<br />
*** Get surrounding tiles<br />
*** Get player numbers<br />
** Movement<br />
*** N,S,E,W,NE,NW,SE,SW<br />
*** Movement cost (tile type?)<br />
*** Z movement<br />
*** Interior/exterior movement<br />
<br />
<br />
* Interactions<br />
** Get players on tile<br />
** Attack<br />
*** Get weapons in inventory<br />
*** Populate attack list with players on tile<br />
*** When attacking get target, modify hit rate if needed, roll to hit, take base damage from weapon, apply any reduction (armour on target?), modify target hp, modify user ap<br />
** Use Item on Other<br />
*** Populate inventory list for items that are usable, for those populate applicable lists for players on tile<br />
*** When used get item script, get target id, apply script with target id as a variable<br />
** Chat (local, whisper)<br />
*** Local, send message to all players on tile (get player, add message)<br />
*** Whisper, send message to target player (get player, add message)<br />
<br />
<br />
* AP system (for now), maybe use a background "server ticks" option with AP as something that replaces n mins of ticks?<br />
** AP columns in database<br />
** Regen tick for server<br />
<br />
<br />
* Inventory/Items<br />
** Database based, linking table used<br />
<br />
<br />
* Skills<br />
<br />
<br />
* NPCS<br />
** AI</div>Etherdrifterhttps://www.reanimated.co.uk/docs/Main_PageMain Page2013-12-12T00:46:52Z<p>Simon: /* Legacy Materials */ github link edit</p>
<hr />
<div>==Latest News==<br />
<br />
=== July 2016 ===<br />
<br />
We've switched back to Perl and are now using [http://www.catalystframework.org Catalyst] as the underlying framework. It requires a lot of extra Perl modules, but these can be installed quite easily even if you don't have root access (in fact, it's recommended not to install them system-wide).<br />
<br />
== Older News ==<br />
<br />
We switched briefly to developing the framework in Python, all original Perl materials are available at the bottom of this page.<br />
<br />
==Contents==<br />
<br />
* [https://github.com/reanimatedprojects/rpgcat/blob/master/README.md Installation] - how to install the RPGCat (Perl/Catalyst) framework<br />
* [[Tasks]] - all the things that need to be done<br />
* [[BRPG]] - Basic RPG. This is the demo game we're aiming to bundle with the framework for people to experiment with<br />
<br />
==Resources==<br />
<br />
Find RPGWNN at any of the following:<br />
<br />
* You can ask questions on Discord [https://discord.gg/MeSscUG in #public]<br />
* GitHub - [https://github.com/reanimatedprojects/ Reanimated Projects and Games organisation]<br />
* the experimental Python framework source at [https://github.com/reanimatedprojects/pyrpgwnn GitHub]<br />
* [https://trello.com/b/n1LWFgdc/framework To-do list at trello.com]<br />
* Twitter [https://twitter.com/rpgwnn/ @rpgwnn]<br />
<br />
Company links:<br />
<br />
* [https://www.facebook.com/pages/Reanimated-Projects-and-Games-Ltd/393365607356361 Facebook]<br />
* https://www.reanimated.co.uk/<br />
<br />
==Legacy Materials==<br />
<br />
* [[Installation]] - Old framework install instructions<br />
* Old Perl source available at https://github.com/reanimatedprojects/framework</div>MediaWiki default