Copy and Paste from the proposal page


Abstract:
Web based gaming has become an important branch of gaming with
advantages such as platform independence and accessibility from any
location. Most web games are currently single player, casual Flash
based games or multi-player HTML+Javascript based games with a PHP
backend.
Ruby on Rails, has shown that a strong framework with sensible
defaults tailored for web programming needs can improve productivity
enormously.
The aim of this project is apply the Ruby on Rails philosophy to web
game development and improve the web-games programming landscape in
the way that Rails improved the web programming landscape.
Specifically this project will create plug-ins and facilities to allow
easy creation of web games with the Ruby language. Our goal is to
create a flexible framework for multiplayer strategy and RPG games.
Content:

Why do you use Rails?

It is a framework with very sensible defaults and a strong emphasis on
REST-ful applications. This is the same philosophy that will be
applied to the web games framework.

How would you like to see it improve?

I would like to see rails as the killer framework in more contexts.
Some people may be intimidated by the MVC design philosophy that, at
first glance, seems to limited to problems that can be described in
terms of relation databases. I would like people to be able to unleash
their creativity and see rails as a totally different beast.

Why is this important to the Rails community at large?

Rails can become the de-facto standard when it comes to deploying web-
based games. As graphical capabilities of the web standards improves
(HTML5 will come with a 2D canvas, the Chronos group started the
design of web standards for 3D graphics), HTML-based gaming frameworks
will appear. With its ease of developing HTML content, Ruby on Rails
is poised to be a leading force in this field.

The aim of this project is 3-fold:

    * Successfully create a basic platform worthy of GSoC. Create
resources for web games using Ruby.

    *

      Kick off a long-term project. It is hoped that by September the
platform will attract some more contributors.
    *

       Create a community of game builders around the platform sharing
information and solutions (that will eventually make their way into
the platform much like Rails itself)

Why is this important to you?

I research about properties of games and the idea of using them for
useful purposes. Creating this platform will teach me a lot about
playability, design constraints, and other problems encountered in
game development. I am creating a similar platform for a much more
restricted kind of games (quiz-like games), and I hope creating both
platforms will help me better understand design patterns and create
more general and abstract solutions. Also I think it is very important
to have a platform that can be used to bootstrap new ideas and test
them in front of a large audience. Flash games have been doing this
for some time with success.

List the goals you'll meet for you to consider the project to be a
success.

The goal is to have a basic game engine working in an MVC fashion. On
completion of GSoC, the engine will be able to create a map from a
file, populate the map with characters, and move them around. The
characters will be able to trade their inventories and tell stories
that fit in to to a game-wide storyline. Players will be able to
register in the system and invite other players. Also they will be
able to interact with them sending them text messages and keep track
of the adventure with their journal.

Upon completing the implementation of a basic game world and character
support, the next step will be focus on the implementation of
inventories and resources and their integration into the map and game
logic. Time allowing, I will start working on these problems as part
of the GSoC.

Long time goal is a platform to build games like Travian [http://
www.travian.com/] or Ikariam [http://www.ikariam.org/]

How will you measure progress?

This GSoC project will focus on the models and controllers needed to
building games. The initial views will be very basic, created mostly
for debugging purposes. These views should be further elaborated and
developed after the conclusion of GSoC or by other developer with a
proper library to create 2D canvas drawings and Javascript from the
underlying data.

The following is this project's proposed timeline:

    * Until May 26:    Community bonding. Discussion on ML and with
mentor over priorities, drafts of the design, create page, mailing
list, etc. about the project.
    * May 26 - June 12:  Players : authentication, invitations,
players communication mechanisms (on game and off game), notepad,
profile, characters etc.
    * June 13 - June 27:  Map as 2D addressable X/Y surface with basic
functionality. Each tile can potentially have:
          o                     Portal to other map (enter in a house
for instance) with or without menu (travel agency)
          o                      Characters

      June 28 - July3 :  Characters (stats, capabilities in the world)

      July 4 - July 14 : Characters integrated in the map (moving) and
player management (creation, deletion, etc.)
    * July 15 - August 3:   Basic game engine. Trading. Story line
support.
    * August 4 - August 13:  Telling stories and trading for NPCs (non
playable characters)
    * August 14 - August 20: Documentation and GSoC report

Some predefined models are needed for the platform to work. For
instance a model for players. Thus the platform will define some base
models with some basic properties considered general enough to be
useful in a good percentage of use cases.

For the sake of simplicity, I will choose an authentication/
registration/login solution and integrate it with the invitation
system. Each player will have his own URL in the system (derived from
the player name), that can be given when other players register. With
different levels of protection, players will have inbox, outbox,
notepad, portrait, etc resources.

Maps are 2D and tile based, so a simple schema with X/Y data should be
enough. GET will discover extra resources of each tile.  

Most of the
work will be focused on the game engine. Most controllers actions will
in one way or another call the game engine. It will ensure the whole
is coherent. It will also get most of the configuration and is
responsible of loading the game data. For instance the trade system.
In the variant where the game sells to the user (via special shops or
characters). The engine loads the tables from all the asserts
available in the game. A Seller base class has the methods to define
what asserts is selling and possible modifiers to the base properties
of the asserts. 
The user of the framework will insert in the map a
object that inherit from Seller and select the desired asserts.

Background on the type of games to be implemented

(This reference section is not needed to understand the GSoC proposal)

The GSoC will be the first step in an effort for an engine to run
strategy and RPG games. These games have several characteristics that
are to be considered as to be supported in a long time goal

The following non-exhaustive list are general characteristics found in
RPG or strategy games:

    *  Maps. Either the world map or the map the player is interacting
with or both. Maps are 2D tiled zoomable canvas connected via portals
where each tile is potentially of a different class where events can
happen (characters, buildings, etc.)

        * Buildings (outside this GSoC project scope)
        * Events (outside this GSoC project scope)
        * Tile (or terrain) properties, resources (outside this GSoC
project scope)
        * Visual representation (outside this GSoC project scope)

    *

      Characters. Playing and not playing characters will have stats
(strength, level, etc.), leveling up policy, biography, portrait,
capabilities in the world, inventory, AI, etc.
    *

      Buildings. Can have maps and characters inside. Provide special
properties.
    *

       Players. Each player will have his own stats. One or more
character under control, inbox, outbox, notepad, preferences, etc.
    *

      Players' groups. Players can make groups, with in-group and
intra-group communication capabilities.
    *

       High scores. From players and players groups. Hall of fame
pages, milestones, etc.
    *

       Artificial Intelligence. Many characters in the world has
simple missions like give information, trade, give quests or exchange
items. Many have path based movement.
    *

       Fight. Fundamental in most games y usually based in simple
parameters and rules.
    *

      Authentication. Authentication must be build in. Also a unique
address for each player, usable to invite other people to the game.
    *

       Resources/Inventory. Gathering, dropping, constraints, etc.

Biography

My name is Jordi Polo Carres (mumi...@gmail.com), I finished computer
science and electronic engineering as undergraduate and master
studies, currently I am a PhD student at the Natural Language
Processing Lab at Nara Advanced Science and Technology Institute.

I
am contributor of several open source projects so I am used to work
with the usual set of tools (git, etc) and procedures (mailing list,
bug tracking, etc).

I have written most of my code in C++, but since for the past year, I
have been using Ruby for most of my personal projects and prototypes.
I am currently using Ruby on Rails to create Quiz like-games for data
acquisition. The research is about usefulness and characteristics of
playability. I hope that both projects can create positive synergies
that will let me improve the framework with a better insight (and
share code as both would be open-sourced). I plan to work on this
framework 30/35 hours per week.

My native language is Spanish, but I am perfectly comfortable with
both written and spoken English. Currently I live in Japan.


On Mar 30, 11:09 pm, Federico Builes <federico.bui...@gmail.com>
wrote:
>  > The proposal URL:
>  >http://socghop.appspot.com/student_proposal/show/google/gsoc2009/jord...
>  > (anyone can see this or should I copy here the text?)
>
> "You do not have the required role."
>
> You might want to send a copy of the proposal to the mailing list or upload
> it somewhere else.
>
> --
> Federico
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Core" group.
To post to this group, send email to rubyonrails-core@googlegroups.com
To unsubscribe from this group, send email to 
rubyonrails-core+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-core?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to