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 -~----------~----~----~----~------~----~------~--~---