Large maps for RPGs

Hi,

I’ve been thinking about making a game for a while now, and while I think I know how to do a few things, I’m really unsure how to create or handle a map. I want to make it using jogl or something like that, because aside from making a game, I’m looking for an excuse to learn opengl programming.

My initial thinking is an isometric map, sort of like ultima 8/online, but I’ve also been tossing around the idea of doing it sort of like Wizardry 8. But eitherway, I still need a world to walk around in. I’d like to have a large seamless map, think Oblivion/Morrowind, and with different, possibly distrinct regions, like in WoW. I’m obviously not aiming for those kinds of graphical detail, but I want something big.

So my questions are how do I define such a space, do I need to model it in a 3d app first? If I want to be simple and just flat, can I use some sort of 2d/tile based thing, and view it at an angle? How would I represent this in classes? And lastly, when moving around, I know I don’t want to have to load the whole map into memory when the game starts, so different areas would load when you get close, right? How would I handle things like that?

I know that’s a lot of questions right off the bat, but any advice or ideas would be greatly appreciated.

Thanks,
David.

hmmm… don’t know anywhing about that… but maybe guys from wurm online would be able to point you?
Think they are on forums, but check out also www.wurmonline.com

There’s a big difference between an isometric tile based map, and 1st perspective. If you went to some of the earlier Wizardy’s you could get away with a simple tile definition of you maps, but I am pretty sure by Wiz8, they had gone beyond this. The first thing I would do is decide what you really want. I have always found projects go smoother if you can focus instead of chasing several approaches…

For a starter project, i’d go with a simple tile based map, and then build upon your engine. Something like:

Phase 1: Draw a map based on a 100x100 tile grid. Represent each tile as an index into your tile info collection. Just focus on getting tiles to draw, and the map scrolling around. Ideally, load the data from a file.
Phase 2: Fix you rendering routine so the map wraps left to right, top to bottom. You now have a globe (actually a donut, but we’re used to donut worlds).
Phase 3: Create a structure to hold 9 of these 100x100 grids, arranged in a 3x3 fashion. You render from the middle 100x100 grid. Update your rendering routine to pull tile index from these other structures when you are on one of the edges of your grid.
Phase 4: Update your movement so when you leave the center grid, the 9x9 structures are updated so the new grid is now the center grid. Load new grids as needed.

You now have the ability to render an infinite size tile map.

robertATpm, that is one of the best evolutionary write-ups I’ve seen. I am working on a basic tile map engine and haven’t had to think too much about the “growing” part yet, but that gives a nice road to follow.

Thanx!

Sure. I’ve spent way too much time coding tile based engines. Figure I’m going to be here picking peoples brains about some of the stuff I’m playing with (SGS based Space Trader RTS), that I’d give back on things I could. Good Luck!

Hi,

Thanks for the tips Robert. That makes alot of sense, and I’ll try that out. :slight_smile:

Sorry for not posting back sooner.

David

robertATpm,
This sounds almost exactly like what I did in one of my games… And it works very well.

If anyone wants to take a look at source, it’s over at http://eternalrealms.kortham.net/.