Misterios de Munrrael

  • strict warning: Non-static method view::load() should not be called statically in /home/codecomp/public_html/codecompiling.net/mai.www/sites/all/modules/views/views.module on line 906.
  • strict warning: Declaration of views_handler_filter::options_validate() should be compatible with views_handler::options_validate($form, &$form_state) in /home/codecomp/public_html/codecompiling.net/mai.www/sites/all/modules/views/handlers/views_handler_filter.inc on line 607.
  • strict warning: Declaration of views_handler_filter::options_submit() should be compatible with views_handler::options_submit($form, &$form_state) in /home/codecomp/public_html/codecompiling.net/mai.www/sites/all/modules/views/handlers/views_handler_filter.inc on line 607.
  • strict warning: Declaration of views_handler_filter_boolean_operator::value_validate() should be compatible with views_handler_filter::value_validate($form, &$form_state) in /home/codecomp/public_html/codecompiling.net/mai.www/sites/all/modules/views/handlers/views_handler_filter_boolean_operator.inc on line 159.
  • strict warning: Declaration of views_plugin_style_default::options() should be compatible with views_object::options() in /home/codecomp/public_html/codecompiling.net/mai.www/sites/all/modules/views/plugins/views_plugin_style_default.inc on line 24.
  • strict warning: Declaration of views_plugin_row::options_validate() should be compatible with views_plugin::options_validate(&$form, &$form_state) in /home/codecomp/public_html/codecompiling.net/mai.www/sites/all/modules/views/plugins/views_plugin_row.inc on line 134.
  • strict warning: Declaration of views_plugin_row::options_submit() should be compatible with views_plugin::options_submit(&$form, &$form_state) in /home/codecomp/public_html/codecompiling.net/mai.www/sites/all/modules/views/plugins/views_plugin_row.inc on line 134.


I'm writing this on English for two reasons: The first one is to practice my written English, so if you, reader, find any mayor mistakes through the text, please take a moment to comment this post and criticize it. The second one... well, I will not disclose the second one, I'll only tell that right now I have some hopes on the second one.

Some times I hate my own English, I mean, when I think I have it exactly where I want it to be, I try to write something like this only to end very disappointed with the results (grrr!). My wife says that text is basically OK, she says it's not so badly written, that I'm just a maniac perfectionist... I hope she is right.

Now to the topic

“Misterios de Munrrael” is a WEB based Massively Multiplayer Online Role-Playing Game (MMORPG). It was developed by four of my students along B2010 courses of Software Engineering and Database Systems. Those courses are taught using the RAIS teaching strategy, so the main objective to be reached at the end of both courses is the development of an usable product. The game is a "no flash nor applets" WEB based game so it has no stunning visual effects or 3D animations. Though it has very complex rules and it's very feature rich considering it's only a final course project developed by undergrad students.

Features are simple, very standard and common to many existing MMORPG games:

A player can register and create a set of five avatars at most. Each created avatar can either be Human, Elf or Dwarf. Avatars can also be Warriors, Wizards or Archers. Once the player has created an avatar, he can select it and enter in Munrrael's world commanding his avatar through lots of features and adventures.

(Click image to enlarge it)

Initially, avatars will have a set of fixed base skills, but the more the player uses his avatar, the more it gains experience, new levels and new skills.

(Click image to enlarge it)

Once in game, the avatar can move around Munrrael's cities and around each city's set of zones. The cities are arranged in a graph like structure and an avatar can't go from it's current city to every other city, it can only go to the adjacent cities. Also there is a gold cost required to travel from one city to another, so if the avatar has not enough gold then it's stuck in the current city until he can collect enough gold to do the trip.

(Click image to enlarge it)

Also, there are resources, creatures, non-player characters and other avatars inside each zone, with whom an avatar can interact. Avatars can collect resources and combine them to create new equipment. For example, ten units of iron with one unit of wood and a “blacksmith service” bought from a blacksmith NPC can be combined to get a basic iron sword. Another example, one unit of healing herbs, five units of water and one bottle can be combined to create a healing potion. Allowed combinations and their results are constrained to a fixed set of recipes.

(Click image to enlarge it)

Avatars can also fight creatures and others avatars. In each combat an avatar will gain defense and attack experience. If an avatar wins a battle it might also earn some gold and some items. For example, an avatar will get between 2 to 5 gold coins and a rat tail if it wins a fight against a rat.

If an avatar fights against another avatar, then the winner of the fight will get all the gold carried by the looser and randomly some of it's opponent belongings: weapons, armors, potions or any other item carried by the looser avatar. If a player don't want to risk loosing his avatar's gold or belongings in a fight, he can deposit his avatar's gold in a bank and his belongings in a chest.

The game also allows buying and selling resources and items from or to other NPCs or avatars, generating this way some kind of economic system.

Now to the technical details

From the software point of view the game is implemented using a two tier architecture (sorry to disappoint you if you were expecting a three tier architecture, we lost the third tier somewhere in the middle). The first tier is the presentation / logic tier. It implements all the user interface and all the game logic.

The user interface is implemented in an MVC fashion using Nextapp Echo3, which is a framework / component library that allows implementing rich WEB applications without the need of writing JavaScript or HTML code. All the user interface is server-side coded in Java using an API very similar to Swing, then Echo3 takes care of generating all the needed JavaScript and HTML (Cool, isn't it?). This comes very handy within the courses I teach because students are not required to know JavaScript or HTML to develop their projects, though they still can implement nice AJAX WEB user interfaces using Echo3.

There is also a persistence layer implemented using in-house developed Data Access Objects (DAO pattern). Though I teach ORM frameworks in my Database Systems course, I require my students to use DAOs instead of ORM frameworks like Hibernate. This is mostly because I want them to feel the pain of writing SQL and dealing with the required architecture to access the database. I need them to learn it the hard way before I can show them the easy way to go.

The next figure was taken from the project's final document and shows the architecture:

The bottom line

“Misterios de Munrrael” is just only one of the games developed this way. Last two semesters two other MMORPG were also developed in the Software Engineering and Database Systems courses context: BloodTime a dark vampire based MMORPG and “Lanter Corps Academy” (LCA for short), which is a game based in the Green Lantern world created by DC Comics. Some screenshots of those games follows.

(Click image to enlarge it)

All the source code is GPL licenced and is published in the following google codes:


Consider that the games are student projects, so some things may work well, and others might not even work at all. There is no support and no warranties. The only documentation on how to start the games can be found in:


If you plan to do anything with the games take in consideration that images used were taken from the Internet by the students without any kind of permission from authors. We believe that as non-commercial student oriented projects there will be no problems about this issue, but if you want to do something else with the games you may have trouble.

Also the games have been donated to the University Game Development Student Group (a weird translation of "Semillero de Programación de Juegos"), and I hope development will continue in the future. In fact, the initial development team of "Misterios de Munrrael" is already making changes to the source code and improving some aspects of the game architecture.

By the way, this semester we are also creating three games (sorry, only in Spanish), but this time we are not doing MMORPGs, I got bored of those the last semester, so we are exploring new frontiers :)

I really would like to thank the Misterios de Munrrael's team: Anna Lezama, Alejandro Mujica, Miguel Flores and Fabio Paredes. I also would like to thank all the teams that made possible BloodTime and LCA during the B2009 and B2010 courses. All the developed products were a very interesting experience for me as a teacher, software developer and RAIS (project) executive chief.


It's too late, my time has come // Sends shivers down my spine // Body's aching all the time // Goodbye everybody - I've got to go // Gotta leave you all behind and face the truth // Mama, ooo // I don't want to die // I sometimes wish I'd never been born at all

Queen - Bohemian Rhapsody
As a personal favor:
if youtube link is ever broken,
please warn me!