Archive for the ‘RPG Framework’ Category

The over-world

June 23, 2008

One of the things that I wanted to be able to do with the framework was to be able to re-implement games like Crono Trigger and The Secret of Mana. But in contemplating how the various “levels” of the game would interact I decided to rule out the possibility of an “over-world”. The over-world in Crono Trigger is where you’re running around in miniature form to the various points of interest on the world map. The over-world in The Secret of Mana is where you’re flying around on Flamie the dragon. The over-world in Crono Trigger is just lame. It looks retarded. The over-world in The Secret of Mana is actually pretty cool, but to generalize it to make it work, not on a particular map but on any map the game designer decided to create, would introduce a level of complexity that is unwarranted for a project of this type. In addition not all games will use a flying dragon for traveling around on the over-world. Seiken Densetsu 3 (aka. Secret of Mana 2), for example, uses a giant sea turtle (in addition to Flamie). So it’s just not possible to do this in a way that would apply to all games. Instead the over-world in ARF will be more like the over-world in “Zelda, A Link to the Past”. In this game, the over-world operates exactly like any other level except that while most of the “level” levels have only one exit / entrance, the over-world has many exit / entrances. It’s sort of an in-between level that connects all the other levels together. This doesn’t rule out things like canon travel (Secret of Mana) or teleportation, but the cut-scene that shows the characters flying through the air would not be handled by the framework.

Implementation Language

June 15, 2008

[Warning: this is a fairly technical post] So I’m pretty much set on writing the framework in Python with the aid of the pygame library. Python is a scripting language that I was introduced to when I was working at Intel which has a lot of advantages for beginning programmers. “Why not Java” you may ask being that I wrote Stakeout in Java and extolled the benefits of using Java for that project. Well, Java got on my nerves because of its sluggishness during startup. It is really slow, even on my new laptop, when booting up the virtual machine. Python is much faster at least as far as startup goes which, when you’re developing code, is where you spend most of your time anyway. Also being a compiled language, Java required a lot of preliminary explanation about how to get even the most basic of programs up and running. Since Python is an interpreted language, we can skip all of that. You just write your code and run it directly. In addition, the pygame library takes care of a lot of the lower level graphics stuff, so it’s even easier to work with visual applications. Pygame also has some other features that are specific to game programming (like collision detection) which I plan to take advantage of. Python, like Java, is also cross-platform, so we don’t loose anything there… So what do we lose by moving to Python? As of my last inquiry into the matter, Python did not have an adequate graphical debugger and since its not a strongly typed language, the error messages aren’t always as informative as you’d like. Using Java with the Eclipse development environment worked very smoothly. The debugging disadvantage is a big negative for Python, but given the other advantages (some not listed here), I think it was the right choice.

Prototype Plot #2

June 14, 2008

As mentioned previously, the other plot idea that my brother Michael and I came up with was more along the lines of the traditional fantasy RPG. It’s not a ground-breaking plot, but its just as good as any of the others I’ve seen. I’m open to any suggestions / alterations. I don’t really care what the plot is as long as there are cool weapons and spells to be had.

The crucible of life was used by the gods to populate the world with living things. The world was a peaceful haven until one of the gods took the crucible for himself and began to create beings which were ugly, vile, and evil. An argument arose over the creation of these creatures and a great battle ensued among the gods. Seeing the terrifying power that the crucible had when used for evil, the gods forged a magical hammer with which they intended to destroy the crucible. The evil one was subdued but it required the united effort of all five other gods, such is the power of evil. Even in light of his own defeat and the threat of his own destruction, the evil one refused out of spite to reveal where he had hidden the crucible. With no other choice, they destroyed the evil one intending to then find the crucible on their own. But unbeknown even to them, the gods were all connected having come from a single source. And death begets death… so their power faded over time and they too disappeared from the earth… and the crucible was lost and became merely a legend.

The story begins several centuries later. A power-hungry general fights for his king to win glory for himself but secretly curses the king and the fact that he himself was not born with royal blood. His men serve him but only because he serves the king. Without the king, he is nothing. In one of his foreign campaigns he stumbles upon the hiding place of the crucible of life. Using the designs left by the evil one, he discovers its secret power and how with it he can create beings without wills of their own; beings that will obey him and him alone. With it too he discovers the power of dark magic. While the evil one can no longer exist in his own right, the power of his spirit can be channeled by those who know how to invoke it. And so he builds an army intending to take over the world…

There are five different types of good magic, one pertaining to each of the good gods. People usually have an affinity for one type of magic or another. Incidentally some have an affinity for two or even three types of good magic but none have been found to have an affinity for all five. Only one who can harness the power of all five gods will be able to defeat the minion of the evil one and wield the magical hammer, or so the legend goes. But the hammer, the only thing which can save the world, has been lost. Like the crucible, the memory of it had faded over time.

A humble farmer boy finds a hammer in an ancient cave. In his hands it feels light and yet powerful. He inquires with the elders as to its origin and discovers that it is the legendary hammer. What surprises them even more is that the boy is able to wield it while no one else can bear its weight. It turns out that this unlikely boy has an affinity for all types of magic, but he is entirely untrained. He will have to travel to five different lands to learn the magic of the good gods so that he can harness them all together to defeat the evil general. His quest is long and perilous and he must travel alone. Will he be able to complete his mission and save the world?

That’s pretty much it. I’m not going to go to the trouble to fill in the details just yet. There’s plenty of time for that. In the meantime I have a lot of code to write. My future posts will deal more with the technical details of the framework: things that will limit the types of games that a designer will be able to make. In fact, in one of my next posts I’ll explain how the framework will fail to achieve one of my initial goals (i.e. to be able to re-implement Crono Trigger). I have good reasons! Lots more to come…

Prototype Plot #1

June 6, 2008

As with Stakeout, I plan to make a prototype game implementation to show how the framework can be used to create a game. The first step in implementing a prototype is coming up with a plot / storyline. I brainstormed with some of my brothers this past weekend and came up with a couple of different ideas…

One idea was to create a story around the (tentative) name for the framework. In other words, a story where the protagonist is a dog. My brother Nathan (9) latched on to this idea and ran with it. The proposal goes like this: The existence of dogs is the only thing that has kept feline race from taking over the world which is currently dominated by humans. [This brings to mind many scenes from "Get Fuzzy", one of my favorite comic strips.] But the cats have discovered the source of dog power which is concentrated within the bone of dogness. If the cats can find this precious artifact and destroy it, there will be nothing left in their way from taking over the world. The protagonist is a member of a team of dogs who are tasked with “fetching” the legendary bone of dogness and protecting it from the evil cat overlords thus saving the world from a tragic fate…

It’s a rather ridiculous story but somewhat amusing. I sort of like it because it builds on the (tentative) branding of the framework. Such a story would certainly be unique. I don’t think I’ve ever seen an RPG where the protagonist was a canine. But I tend to like the traditional fantasy RPG where you have swords, armor, and magic so I’m leaning more towards the other idea… [see next post]

Vision

May 28, 2008

The important thing to establish initially is where to draw the line between what the framework will handle and what the user will be required to program. My goal is to supply a minimalistic framework that will allow the user to create and play an entire game (plot) from beginning to end without having to do any real programming. To play a game from beginning to end, the user will need to be able to do the following things:

  • Show cut-scenes
  • Move around in the world
  • Interact with other characters and objects
  • Acquire items
  • Engage in combat

Just because the player has to be able to do these things in order to play through the game, doesn’t mean it has to be fun. For example, a minimalistic battle could simply be a situation where the enemy spontaneously dies as soon as he approaches the protagonist. Such a game would be trivial to beat because the protagonist could never die. This would not make the game very fun. It would be reduced to a simple walk-through. But that’s the motivation for the student: make your game fun. Combat systems are unique from game to game. So implement your own unique combat system to incorporate whatever you want: different types of attacks, magic spells, blocking, dodging, etc.

Similarly for items: the user will probably need to acquire certain items as part of the plot in order to complete the game (e.g. you have to bring the magic hammer to the blacksmith so that he can reforge the sword of light which you need to defeat the dark lord). Some items will be discovered in the world, some will appear after you defeat an enemy, some will have to be purchased. Usually items have some sort of effect on the player. The most obvious are things such as weapons and armor. Usually these will increase your attack or defense attributes. But outside of the acquisition of the item and its ability to influence the progression of the plot, the framework will not determine the effects that items have on a player.

This is what I mean by a minimalistic framework.

Purpose

May 27, 2008

I’m creating this blog to air some ideas that I have for an RPG (role-playing game) framework in the hopes that I will be able to generate some interest and get some feedback. The purpose of the framework itself is to create an engaging context in which someone could be introduced to the world of programming. See Stakeout for a similar project that I have developed. I’m moving away from Stakeout because of the pre-designed nature of the game. With the RPG framework, the student is the one who designs the game (plot, characters, story-line, artwork, etc.) and uses the framework to implement it. The fact that the student creates his own game should generate a higher level of ownership and interest. After creating the game, the student is encouraged to learn programming in order to extend the framework to make it more interesting.