Need Advice on Making an RPG!

Hey



I'm pretty new to jME tbh, and kinda new to java, although I understand the concept and have written quite a few non-game related programs.



I was thinking about writing an RPG in jME. I have Max 3ds 2009 and was wondering a few things …


  1. How could I dynamically load a very large landscape?


  2. Would it be possible to import different animations made in 3ds for different game states, for example I would make a knight running without a sword and if the player equipts a sword I would load a new animaion of the knight holding the sword. How else could I do that?


  3. Would it be possible to create my entire landscape in max 3ds, and just load it bit by bit into the game?





    I have this feeling that my ideas would make the game extremely slow.



    I've also been testing out standard game, the idea of different game states is brilliant, I just don't really understand  how and when you need to use the openGL thread. I'm having trouble simply setting up a sky box with StandardGame as I'm unable to pre-load textures. Are there any futher tutorials on standard game I can read up on?



    Or is it worth subclassing base game, as I find that MUCH easier to deal with, but impractical for larger games.



    Are there any currently fully completed open source games written using jME? It would be really usful if somone could provide my an example of a finished game, preferrably using StandardGame ;), I've looked everywhere, but the best i can find is the flag rush tutorial.





    Thanks!


there are tons of informations in the wiki, just use the wiki search, enter StandardGame or GameState and read through everything you find :slight_smile:



as for OpenSource projects:

http://www.jmonkeyengine.com/wiki/doku.php?id=sample_games_and_demos

Core-Dump said:

there are tons of informations in the wiki, just use the wiki search, enter StandardGame or GameState and read through everything you find :)

as for OpenSource projects:
http://www.jmonkeyengine.com/wiki/doku.php?id=sample_games_and_demos


I've read most of the wiki tbh, much there's nothing explaining standard game in depth. I learn best from examples, but there don't seem to be any good examples of use of standard game.

That is because StandardGame is not really where you would be programming… you would be using GameStates and therefore you should be looking at them… and they are basically as easy to use as SimpleGame. StandardGame is simply a framework to use several threads to do rendering, etc… And the two or three tutorials on this are reasonable after you get the concept.

duenez said:

That is because StandardGame is not really where you would be programming... you would be using GameStates and therefore you should be looking at them... and they are basically as easy to use as SimpleGame. StandardGame is simply a framework to use several threads to do rendering, etc... And the two or three tutorials on this are reasonable after you get the concept.


Right ... so you can use game states without touching standard game? I can see how that works I suppoase, what are the advantages of standard game then? I suppoase it is faster and more reliable, makes best use of the users computer system?

Also is it possible to create a landscape on max 3ds and load it into jME, then manipulate it to make it dynamic, for example when a player steps in water, the water splashes, and when a player cuts down a tree, there is just a stump model left. Would it be possible to detatch and attach chilren to nodes created in max 3ds, and is there anywhere I can maybe find a tutorial/example of it? ;)

Create trees as seprate models. If there are many trees, you can use shared meshes, on cutting it down, switch in a new Model which will fall down. It may look better if the cutting down of a tree is part of the animation within the model.



You need to define all the types of models in the game for maximum flexibility. You may decide that models are split between static and animated. The animated ones have may have data relating to the animation sequence ( eg RUN, STAND, CHOP_DOWN, RE_GROW ) so you are able to play the correct animation sequence at the appropiate time.



All in all there is alot to define. Treat JME as a client, separate your data between back middle and front tiers.

As the lead developer on Fyrestone, here is my advice on making an RPG:



-Write a project outline. You need goals, deadlines, etc. If you just try to implement whatever you feel like whenever you feel like it, you're not going to get anywhere. You need things like "We need to develop our terrain system, then we need to implement our character, then controls, then networking, then GUI, then…" and you need to make sure you follow that. Don't focus on small things, but on the overall picture.



-You'll want to figure out a way to dynamically load your terrain, and probably thread it. I designed our first tile-loader and now it's becoming problematic because of how horribly inefficient it is.



-In my experience 3ds models are the easiest to load and have the best options for animations.



-Find a map editing software (or make one) and develop your terrain loader around that.

Thanks a load for the replys, really guiding me in the right track :slight_smile:




Trussell said:


-You'll want to figure out a way to dynamically load your terrain, and probably thread it. I designed our first tile-loader and now it's becoming problematic because of how horribly inefficient it is.



I've been thinking about that for a while, but as I have no past experience in game programming I really don't know where to start. I was thinking of storing locations of the map in a text file, as the user reaches new coords on the map, the text file with the world's terrain stored in it would be loaded and the next terrain block would be loaded before the player is able to see it.

Or well, somthing like that, it's hard to explain.

But I think this idea would have serious flaws. Is there a standard way of dynamically loading terrain? Also how would you make sure the terrain fits inside the skydome/skybox?


I have also been looking for terrain creators/ editors. From what I have read PnP TerrainCreator seems to be the best, I downloaded and tried the free version, but I really didn't understand how it worked. I tried to import a height map, but nothing happened basically, this might be because my graphics card doesn't support it. I couldn't find any tutorials at all for beginners, so I gave up on that program.

I also found FreeWorld3D, which actaully works pretty well and seems to do the job I want. I'm still trying to learn though ;)

I did also finbd a number of other programs which I didn't try, on of them was some massive terrain editing program, L3DL or somthing, can't remember, although that one was mean to be quite good, I didn't bother with it, I was more interested on reading up on dynamic animation. And there were others, can't be bothered to list them ;)

I you know any good ones which export as max 3ds it would really help :)


And also, yeah I have a plan for the game basically, it has been in my head for a while, and is really the reason I started reading up on game programming, I have always had an interest in it. The first thing I will be working on is the terrain and animation, then networking, then combat.

Posts have really been helpful :) I still have many questions though! ;)

What you described is how our tile loader works.



EDIT: Keep in mind FreeWorld3D doesn't support the Alphas you'll need for TerrainSplatting.

Ryanz said:

The first thing I will be working on is the terrain and animation[...]

maybe you should first start with more basic (programming)stuff like: walking(jumping?), collisions,interactions, npc movement, etc.
At the beginning of your project there should be no need for fancy 3d models and landscapes(IMO)
emanuel2 said:

Ryanz said:

The first thing I will be working on is the terrain and animation[...]

maybe you should first start with more basic (programming)stuff like: walking(jumping?), collisions,interactions, npc movement, etc.
At the beginning of your project there should be no need for fancy 3d models and landscapes(IMO)


I disagree... I would recommend taking it like this

-Terrain (TestIsland)
-Put a simple box on the terrain (TestThirdPersonController)
-Create controls for it and make it hug the ground (TestThirdPersonController)
-Change the box to a model (Test3dsToJme)
-Network?
-Rest of game: AI, Quests, etc.


Make sure you make a system that is EASILY expandable. You don't want to create a good framework for a small game when you'll need to be making a big one later. Find ways to easily drop in new parts of the world, add new quests, NPCs, etc.
Trussell said:

What you described is how our tile loader works.

EDIT: Keep in mind FreeWorld3D doesn't support the Alphas you'll need for TerrainSplatting.


Using a text file? and how bigs are your blocks? ... and do they include trees and houses ect. or do you use meshes for them?

What would you recommend I use to create my terrain?

Thanks for the advice btw :)

Well I have been using 128x128 heightmaps and loading them dynamically but I am now finding out that my system is way too inefficient (creating new terrain pages every time instead of reusing old ones) so I am going to see if I can implement jME terra.



I'll start a new thread about it.