Expand
-
Collapse
Browser-Game
Procedures
Registration procedure
Make sure the user account is only used once
An AJAX request may give the user faster feedback
If required make also sure that the email is used once
Another AJAX request might be helpful here
Both passwords must match as verification
Non-required form fields are checked only if there is content for XSS or other bad things
Encrypt/hash the password (should always be performed)
Complete the registration by adding the user account to the database
Registered partners shall be notified with different ways
XML-RPC is the default
Different notifiers shall also be possible
This might be queueable to avoid long waiting times for slow partner pages
Send out confirmation mail if requested by configuration
Redirect the user to a new page
Default is the "Registration completed" page
Home page shall be chooseable
Other URLs can be used as well
Alternatively login to the internal area
The account is not useable if email is not confirmed
Login procedure
General
Most steps shall be done by an intercepting filter pattern
Pseudo-3D graphics
Still graphics
Different ships
Passenger ship
Oil tanker
Container ship
Misc small ships
Buildings
Shipyard
Dry dock
Terminal building
Vehicles
Container carrier
Crane
All pics should be self-shooted
This avoids copyright conflicts
The requested buildings/vehicles must be found in reality
Slightly moved graphics (GIF)
Water surface
Sky texture
Tick-based simulation
Cronological job (cron)
Addional requirement for installation
Click-based simulation
User clicks a button, action performed
Fully XHTML 1.0
Latest Internet standard
Older browsers will make lesser trouble
Should validate with the W3C HTML Validator
http://validator.w3.org
Design is CSS-based
Themes are possible
Nice AJAX features
Website structure
External guest area
News on the front page (home)
The news source can be choosen from different
Previously typed and stored in database
Local XML files
Hint: Created by external generators
Remote XMLs like RSS feeds
The typer can choose a category
New categories can be suggested by the typer
An admin can create new categories
Comments are allowable
Logged-in users
Guests as well
Secured with CAPTCHA
One object for all news should be fine
Do not use one object per news entry!
The object receives a "Requestable" object
Obtain page number and sent comment data from it
Registration form
One single page
Multiple pages
Login form
With guest login (disable by the admin)
Password reminder
Link to the registration form
Different login methods configureable by admin:
By username+password
By email+password
By username/email+password
Wether cookie-based or session-based login
This shall be configureable by admin
Screenshot gallery
Comments are allowable
Should be kept simple
List of enabled features
Statistics of the game (not whole network!)
List of playing users
With link to their public profiles
Pillory
Should be used to combat abuse
Child pornography
Nacy activities
Spam attempts
Username (who got locked)
Date&Time
The admin
Stated reason
Small extra pages
Imprint (required in Germany)
Privacy policy (required in some countries)
Internal game area
News on first login page
Like on "home" page except that there is no captcha required
Including history of recent events since last login
Announcements in special sub-category for newly founded shipping/travel companies
Create new game character
The gamer can have all varriants
This may be limitable by admin
The player still cannot make contracts with own characters
It should cost somewhere a fee
The fee shall be payed from user account
For first character creation he shall have enougth game money plus some extra
Types of characters
Shipping company founder
This includes the fee for funding new company
A news for the community shall be placed
The admin/mod can still moderate it
Travel company founder
Like shipping company...
Jobholder
Starts unemployed
Some money left for sending applications out
May ask goverment for financial help
Has to pay monthly fees
Rent for a "fake" house
Meal and drinks (faked)
Others costs like phone,electricity
Merchant
Raw resources
Constructed ship parts
Smaller complete ships
Marketing Agency
Sells marketing/merchandising products
This is only possible if account is activated
"Load" existing character
Contains link to "Create new character"
Player sees some basic data about listed characters
Locked characters should not be removed instead marked with "Locked"
Refill account points
The admin may choose if the in-game can be converted with a low rate to account points
This option might be disabled by admin
Then the gamer can only refill in-game money per character
Update gamer/user profile
Enter the current account password
Send email to the user only if no email has changed, or if ...
Has the email been changed?
Send new confirmation to new email
Send notifier to old email
Change account password
Enter current account password
Enter new password twice
Send an email to the user
General infrastructures
Point system (in-game money)
A.I. goverment
Shall help unemployed gamers staying alive (but not becoming rich)
May later on collect taxes from companies
For paying unemployed people
Financial support for broken companies
May ofer social security services
Goverment is not playable at the moment
It should be "played" abstractly by the server
Gamers may help each other with financial support
Strict coding guidelines for clean PHP code
General code structure
Fully object-oriented
Use of different but practical design patterns
Factory-method pattern for smother initializing of objects
Template method pattern where it matches
MVC pattern for the website core
Only one index.php shall provide access to the whole game
Slower in PHP5
Documentation
In-line documentation
Script header with full copyright and license as requested by GNU GPL 3
Method headers with Doxygen compatible tags
Comments above single lines for better understanding what is happening
Files in directory "docs"
COPYING*
License files
Conception
As OpenDocument and later PDF as well
NEWS
Latest news around the game (coeer and gamer)
README
Includes installation instructions and general gaming guidelines
ArgoUML diagram
For visualization of the class structure
FreeMind document
...
THANKS
All people helped in some direct or indirect way, less or more.
minmap_yyyymmdd.html
Exported FreeMind maps to HTML with CSS and JavaScript
Folding of the code
Tabs and spaces