An old remake of a friend's PBBG (persistent browser-based game), created as a junior developer and university student
lib | bazaar re-init | 2010-11-18 23:01:29 |
---|---|---|
public | bazaar re-init | 2010-11-18 23:01:29 |
tpl | bazaar re-init | 2010-11-18 23:01:29 |
.bzrignore | bazaar re-init | 2010-11-18 23:01:29 |
LICENSE | Converted to Github repo. | 2013-10-02 23:50:07 |
README.md | Converted to Github repo. | 2013-10-02 23:50:07 |
cron.php | bazaar re-init | 2010-11-18 23:01:29 |
daemon.sql | added installation instructions | 2010-11-24 01:32:04 |
php.ini | added installation instructions | 2010-11-24 01:32:04 |
The game was never planned to be released in public, so it's designed for the LAMP stack it was originally hosted on. Basically the code assumes some software versions and settings, and will propably break on different configuration.
Prepare database tables using attached SQL file.
Configure PHP using attached INI file.
Upload game code into server.
Download PHPTAL library and upload it into lib subdirectory,
you should now have lib/PHPTAL.php
, lib/PHPTAL/Context.php
etc.
Enter your hosting's configuration panel and set the public
subdir
as a domain root, so other files won't be accessible from the Net.
Configure crontab: set the cron.php
file to be executed every day.
And now the tricky part: create a config file (or files) and upload
it into cfg
subdirectory. It's a long and weird topic, details below.
The game configuration is handled by the Daemon_Config
class
(lib/daemon/config.php
file), which uses it to overwrite its public
properties. Consult the class' constructor for details.
The file's content is simple, it should do nothing more than to return an associative array of settings. Here's an example of minimal config:
<?php
return array(
'applicationUrl' => 'http://example.com/foo/bar/baz/',
'applicationMail' => 'daemon@example.com',
'dbHost' => 'localhost',
'dbSchema' => 'daemon_db',
'dbUser' => 'username',
'dbPassword' => 'some_password',
);
The tricky part is the config's filename. As you can see in the class'
constructor, it must be exactly the same as the domain on which
the game is hosted, plus the .php
extension.
For example, if the game is hosted on example.com
, then the filename
is example.com.php
. This is designed to prevent accidental overwrites
with config for other machines...
There is also another tricky part: if you execute a script from the
command line instead of URL, then the script uses a special _cron.php
file instead of normal config. So you should create that file too.
Or change the Daemon_Config
's constructor ;)