Giter Club home page Giter Club logo

modulargaming's Introduction

Modular Gaming is a open source persistent browser based game framework built upon Kohana 3.3 with modules such as ORM and KOstache.

Released under a BSD license, Modular Gaming can be used legally for any open source, commercial, or personal project.

Requirements

  • PHP 5.3.3+
  • MySQL
  • Composer (Dependency Manager)

Installation

Step 1: Download

Download Modular Gaming from Github and install composer dependencies.

    $ git clone https://github.com/modulargaming/modulargaming.git
    $ cd modulargaming

    $ curl -s https://getcomposer.org/installer | php
    $ php ./composer.phar install --dev

Alternatively you can also use composer create-project to download the project and the dependencies.

    $ composer create-project modulargaming/modulargaming modulargaming dev-master

If you cannot use Composer you can download a packaged copy of Modular Gaming from http://www.sourceforge.net/projects/modulargaming/files/

Step 2: File Permissions

$ chmod 0777 application/{cache,logs}
$ chmod 0777 assets
$ chmod 0777 media

Step 3: Run the installer

Open .htaccess and make the following changes:

  • Set the correct RewriteBase

Start the installer and follow the instructions by browsing to the Modular Gaming install with your web browser.

  • Once you have completed install, delete the install.php file.

Step 4: Admin

Register your admin account at /user/register. Promote your newly created account to admin by using the minion task:

$ php minion User:Promote --username=admin

You should now verify that you have admin access by accessing the administration panel at /admin/.

Step 5: Cron jobs

$ php ./minion Pet:Decrease
$ php ./minion Item:Restock

Step 6: Configuration of modulargaming

Open .htaccess and make the following changes:

  • Set the correct environment, either development or production.

Open application/bootstrap.php and make the following changes:

  • Set the default directory for your application if it does not automatically work

  • Set the default cookie salt

  • Set the default timezone for your application

Open application/config/auth.php and make the following changes:

  • Set the default hash key

Open application/config/email.php and make the following changes:

  • Set the default from address

Testing

We use BDD, with 2 different tools, phpspec and behat.

$ curl -s https://getcomposer.org/installer | php
$ ./composer.phar install --dev

Documentation

The userguide module included in all Modular Gaming releases also allows you to view the documentation locally. It is accessible from your site via /guide

Reporting bugs

If you've stumbled across a bug, please help us out by reporting the bug you have found. Simply log in or register and submit a new issue, leaving as much information about the bug as possible, e.g.

  • Steps to reproduce
  • Expected result
  • Actual result

This will help us to fix the bug as quickly as possible, and if you'd like to fix it yourself feel free to fork us on GitHub and submit a pull request!

Contributing

Contributions are encouraged and welcome; however, please review the Developer Certificate of Origin in the LICENSE.md file included in the repository. All commits must be signed off using the -s switch.

modulargaming's People

Contributors

hinton avatar lewis avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

modulargaming's Issues

Pet - Pet profiles

Pets should have a profile which includes the following as a minimum:

Image
Name
Gender
Race
Colour
Owner

Event notification

For event notification we currently use Hint. Should we also look into keeping an event log? Or should we leave it as it is.

Pet - Hunger/happiness levels

A pet should have hunger and happiness levels which gradually go down and are restored using items.

What should we use for lowering the hunger and/or happiness levels? Minion task?

Admin - Basic admin panel

Basic Admin panel. We will later create issues for admin panel to have more features.

This may require #9 to be complete first if we are going to use ACL rather than just checking for roles that the user has.

Private Messaging with multiple recipients for a message

Messaging needs to be completed.

Regarding multiple recipients, would it make sense to wait and use a form of private forum for this to work? Or should we duplicate messages to each receiver id? I believe the better way would be to have a form of private forum?

Messaging system

Users should be able to view, delete, send and receive messages.

Should we wait until forum and use private topics for messaging? So that it will support multiple recipients.

Pagination

We should have a class to use pagination for database results in the view.

Custom error pages

We should extend the HTTP_Exception_ classes for custom errors paged instead of the default error pages when in Production environment.

Search

It should be possible to search for users, forum posts, news and more.

Inventory - Item Types

  • Food
  • Toys
  • Paintbrushes
  • Recipes

Stick to the above for Modular Gaming. Corepets will require body parts too.

Pet - Battle system

You can teach your pets unique abilities and attacks, and they will use these abilities when battling other pets. As they fight and win battles, your pets will gain experience and level up. Can equip items and body parts which give advantages and disadvantages.
pet trainer NPCs who will offer experience and achievements for your pets.

Pet stats will be required. They should be in a separate table?

CREATE TABLE IF NOT EXISTS pet_stats (

id int(6) NOT NULL,
pet_id int(6) NOT NULL,
hp int(6) NOT NULL,
max_hp int(6) NOT NULL,
strength int(6) NOT NULL,
defence int(6) NOT NULL,
agility int(6) NOT NULL,
level int(6) NOT NULL,
xp int(6) DEFAULT NULL,
max_xp int(6) DEFAULT NULL,
energy int(6) NOT NULL,
max_energy int(6) NOT NULL,
zone_id int(6) NOT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

Customisable user profiles

Customisable user profiles. Firstly we should have completed user/view/id to show a basic profile of a user. Secondly they should contain information which the user can customise, for now maybe just an 'about me' box.

Inventory - Crafting

Create new items with recipes and ingredients

  • Admin page for managing recipes
  • Assign items as recipe
  • Inventory cook-corner

Kohana Environment switch

Kohana Environment should be set to production if not on localhost. Should be set to development if on localhost.

Profiling and cache should be set depending on the environment.

Write test feature for register

Should be good training for you to write a few test scenarios for user register.

There should be one that registers the user, and you validate it with a database check, and a bunch of validation errors, (duplicated username, email?, to short password).

For documentation regarding behat, check http://behat.org/.

Forum - HTML Editor

Full power of HTML can be utilized for post mark-up - safely. A rich text editor is available to make adding flair to your post easy.

We could use HTML Purifier and TinyMCE? What are the options?

Forum - Avatars

Avatars for users. This should be customisable in user profile or should we use Gravatar?

Email

We need a way to email users, welcome email, password reset, notifications.

There are a few existing solutions, mostly wrappers around swift mailer.

Inventory - User shops

  • Index
    • Upgrade the user shop's inventory size (if allowed by admin)
    • Update the shop's title and description
  • Create (charge a creation fee if it's set in the config)
  • Stock
    • Inventory: delete or modify item's price
  • Logs
    • Collect the shop's earnings
  • View a shop
    • Buy an item

View a message

You should be able to view a message and be able to reply (It should automatically fill in the receiver id).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.