Ragnarok Online-like Graphics Engine
Well I'm fairly new to Java. It's my second year and I have successfully completed many programs such as Windows Calculator Replication (Only 4 func.), Minesweeper, Breakout, and a few other spiffy games. I am fairly comfortable with 'GUI' in the application sense, but I do not like applets. I have not worked with Threads too much yet (not enough to understand them on my own), or GridBagLayout. GridBag I did use in a few apps but it was mostly trial and error.
Anyways, that was just some background on myself. Now, on to my topic...
I'm trying to make a 'MMO' (I guess) RPG myself. It's always been my dream since I was a child to make a game (Selphee *Teehee* laugh here). So now I find myself wanting that challenge. Basically I got to thinking about the logic behind actually making a game... and... wow. It seems rather... lengthly.
More or less I can't figure out for the life of me how I can get the psuedo-3D environment that RO (Ragnarok Online) has. Specifically, how the 'camera' can move around your character at sooo many angles. I do think my answers lies somewhere within Trig and the 'unit circle', but seeing as how I'm just now in Trig (Junior year in HS), I have no idea where to start that...
Any feedback would be great as to how to make or find a graphics engine similar to that of RO's.
[1359 byte] By [
Sange] at [2007-9-30 17:51:43]

the world itself in that game is done by an actual 3D engine. The characters are just sprites drawn in that world. There's nothing psuedo about it :)
You sound like just like me two years ago :)
So what exactly are you looking for? Generally 3D games in java are written in Java3D, or or with OpenGL binding like JOGL.
Java3D:
http://java.sun.com/products/java-media/3D/
http://java.sun.com/developer/onlineTraining/java3d/
JOGL:
https://jogl.dev.java.net/
http://today.java.net/pub/a/today/2003/09/11/jogl2d.html
If I remember correctly, Ragnarok Online was played in a 3D environment, but all of the sprites where 2D. However, in a game like that, I believe that sprites and moveable objects are generally also 3D objects, but they are flat, and have 2D textures mapped on them.
If you're a beginner, I would recommend writing your own 'engine', rather than using somebody elses prewritten higher level api, or an editor. That way you have a better understanding of what actually is happening behind the scenes.
Check out these websites:
http://www.javagaming.org
http://www.gamedev.net/
Uhh... Well, I'd say don't engage in large projects. If I were you I'd create a desktop application instead of an applet. They give you a lot more control over files and other stuff than applets. The only reason I would use an applet is to transfer data from my website.
Yes, I was planning on it being an Application. And ty for the links. I'll be sure to check them out.
Sange at 2007-7-6 14:27:06 >

Hmmm this is all very useful, but all overwhelming. It says I must download a parser and some other stuff. While, that's fine... I have no problem with that. It's just computers and their programming language(s) intrique me. Could I just download this 3D stuff and go thru with it? Yes, but how does it work? I don't understand the 3D concept of it all. Meh, I guess I just invisioned myself writing most of the code, not downloading it.
What about big-time companies like SquareEnix, BioWare, and all of the others. Do they just pay for a graphics engine and editor? That seems a bit easy. While, I'm not trying to put down anyone's methods... just I had invisioned myself doing that part of it. Both parts of the game, rather....
But I guess I'll download it and check out how to work with some 3D stuff.... I'll look at the source a bit later and try to figure it all out.
Sange at 2007-7-6 14:27:06 >

Snage Are you from philippines? keep it up and good luck to your developement!
if your looking at learning the basics of openGL programming check outnehe.gamedev.netStarts with the real basics like creating a window and goes from there. There are also JOGL ports for most of the lessons so you don't have to know C++goodluck
Is your interest in this that you want to learn more about computers and computer programming, or do you mostly want to write games? If you just want to build games and do animations, you should definitely start with OpenGL which runs with Java or C++ and maybe other things. I would suggest that to get comfortable with OpenGL you start by creating a floating spinning "hello world". As I recall, it's not too hard.
By the way, this is a perfectly valid level of understanding for computer graphics. There are tons of jobs at dreamworks, ILM, pixar, for people who are whizes with OpenGL and just building cool looking graphics.
DO NOT, under any circumstances, unless you're really brave, try to build your own game engine. The way that these engines are built is basically to build a giant physics model with things like lighting, ray tracing, diffuse and specular reflections, etc. In fact, the entire world in these games boils down to a list of triangles in a matrix that are multiplied through a 'world' matrix representing your POV, and then flattening. You were asking about how the camera rotates around in a game? the formula is
R(x) = [[cos x][sin x]][[-sin x][cos x]]
since you said you're only getting started with trig, I don't know that it makes sense to start worrying about implementing trigonometric rotation matrices, matrix multiplication, etc
If you're interested in the actual programming aspects of computer graphics work, read on.
> What about big-time companies like SquareEnix,
> BioWare, and all of the others. Do they just pay for
> a graphics engine and editor? That seems a bit easy.
A lot of them do, but a lot of them also develop their own in-house 3D environments that are in development or already in production.
Why would a company buy a graphics engine? It's simple. It's hard, expensive work trying to build your own, and by the time you get it done, you're probably going to be months behind the competition. I believe that many 3D games out there today lease the Unreal engine and they start with that as a base.
> While, I'm not trying to put down anyone's
> s methods... just I had invisioned myself doing that
> part of it. Both parts of the game, rather....
Most people don't realize this, but there is more money in video games today than in movies. Video game budgets these days routinely go into the 10's of millions of dollars to produce, and most games get dropped before they make it to market. It's a very risky tumultuous industry.
Also, video games have an incredibly short lifespan. 6 months after the've been realeased the graphics look dated. So getting games out on time is extremely important. In order to speed up the process it helps to start with a stable game engine and just build on that.
>
> But I guess I'll download it and check out how to
> work with some 3D stuff.... I'll look at the source a
> bit later and try to figure it all out.
how do i make my own ragnarok online ...like what program do i need ...pls help i always wanet to make one ...that my dream my aim is max159juan or msn maxboyz159@hotmail.com or yahoo.com ramfy_diaz
1) Learn how to program2) Learn how to create your own threads
I think the responses here were a little too intimidating. I don't want you to be scared off. Let me tell you how I went about learning about and creating a 3D engine.
First, it will take a while for you to get up to where you want to be. I'd say around a half-year if you work hard. But don't let that hinder you, the process is fun.
The Ragnarok Engine is actually a fairly straightforward 3D engine. There's no fancy stuff like raytracing and all that jazz. You don't have to worry about it.
I'd recommend picking up the book Java Game Programming, and working through that. Once you finish that, I guarantee you, you'll have a very good idea what it is you're trying to create, and you'll realize it's not beyond your grasp.
After reading that book, you'll realize that your code is going to run a little slow. At that point, check out some openGL bindings (like LWJGL or JOGL) to speed things up. Again don't be scared off, the concepts are all really simple.
Reading what you've done and know I believe that you're ready to tackle this problem. I was around there when I started my engine.
-Good luck on your endeavor. And most importantly, i'm sure you can do it.
Wow almost after two years I have returned to this thread. That is some crazy stuff. Can't believe I actually got more replies.
Thank you everyone for the replies. I have a much better understanding of programming now. Especially after I got thru Calc and upper-level college math. Crazy stuff.
Thanks again everyone, and I will be posting some of my work in the near future.
Sange at 2007-7-6 14:27:06 >

You'll need that calc and "college level stuff". I made a 3D rendering applet in Java2D in 8th grade. You need a good understanding of Vector math in 3D Space. My dream is to make 1st person shooter on-line APPLET. Which has much of the same 3d perspectiving in it.