Ragnarok Online Monk Rendering

Lum, Darrell
CSC 471-01 Spring 2006
6 June 2006
Z. Wood
Default view of the monk
The default view of the monk with a poring.

Short summary:

Monks are 2-2 class characters in the game Ragnarok Online. They manifest their strength through the use of spirit spheres that orbit their bodies. This program demonstrates the most powerful skill at their disposal: Guillotine Fist. Before monks can cast that skill, however, they must be in a "Fury" state and have five spirit spheres available. To enter the fury state, a monk must again have five spirit spheres available. Porings are the among the weakest monsters of the game (even though they're the game's mascots) and splat really well...

The Program

(Unzip and run final.exe)

Keyboard commands:

CommandFunction
z Summon Spirit Sphere
x Fury (requires five spirit spheres)
c Guillotine Fist (requires fury state and five spirit spheres)
= increase monk DEX by 5 (decrease cast time)
- decrease monk DEX by 5 (increase cast time)
a/A move to the left of the current gaze (rotation)
d/D move to the right of the current gaze (rotation)
w/W move forward in the scene along the current gaze
s/S move backward in the scene along the current gaze
g/G toggle the world grid
m/M toggle drawing the world as a texture mapping
i toggle the idle function (animation)
r/R reset the camera to its original orientation and position
h display the help information
q quit

Screenshots and designs:

Casting Summon Spirit Sphere
Display of the monk casting "Summon Spirit Sphere".
The aura surrounding the monk uses transparency and is composed of several glVertex3f() calls that were bent down, pushed outward, and spun around in a circle.
All five spheres out
Display of the monk with five spirit spheres out.
Each sphere is a GLUT solid sphere that is lighted by the overhead light.
Casting Fury
Display of the monk casting "Fury".
This aura and many others can be drawn just by modifying how many triangles you want to draw and the other parameters as previously mentioned. Although the code-structure of the model is hierarchical in form, I didn't use my wireframe creation program to create the body parts one at a time; rather, I drew up the entire model in one file. Thus, since the parts don't start drawn at the origin, I had to translate a few to the origin first before doing operations like rotation and then translate them back.
Casting Guillotine Fist
Display of the monk beginning to cast "Guillotine Fist".
The characters aren't anything fancy; I just pulled the phrase off of a common text document on the Internet and then created a bitmap image from it.
Finishing Guillotine Fist
Display of the monk killing the poring.
I had a hard time getting timers to work in VC++ 6.0, so most of the effects (like the "particle" splitting of the poring) are executed using my own timing system (mainly through getting the current tick and keeping track of when events initialized).
After casting Guillotine Fist
Display of the monk after a successful cast.
This aura, unlike the other two, continues beyond the cast cycle of the skill and animates according to the delay time of the skill.

Other design notes:

Resources:

OpenGL/VRML Materials: A site with a small number of materials.
Wings 3d: A wireframe modeling program that I used to create the monk and poring, and coloring for each of the models.