Fast travel world map

Any ideas or suggestions for improving the IB2 engine

Fast travel world map

Postby carademono » Wed Jul 20, 2016 7:46 pm

Howdy IceBlink community,

A couple weeks ago I stumbled on the IceBlink engine while playing around with some of my old RPG ideas, and I love the work you've done so far! Hopefully - if I can find a little time between work and being a new dad - I can join the community of developers here.

Have you considered including a fast travel world map, a la the Baldur's Gate series or Fallout 1/2? It seems to me this wouldn't be too hard to implement (it's just a JPG image with a few clickable spots that take the PC to area maps) and it would be a tremendous boon for giving a sense of place and distance to larger modules. I'm thinking of developing an adventure set in the medieval eastern Mediterranean, for example, and I'd love to be able to use an antique atlas as a fast travel world map.

Thanks very much for all your hard work! I'm looking forward to playing around with the next release of IB2.

-carademono
carademono
 
Posts: 3
Joined: Wed Jul 20, 2016 7:36 pm

Re: Fast travel world map

Postby slowdive » Wed Jul 20, 2016 10:20 pm

Yeah, we don't really have a world map system like baldurs gate or nwn2. The way it is now, we have a world map system more like what was in pools of radiance or like the overland map in NWN2:SoZ. I used it in lanterna 2 which worked well for me. When transitioning to the world map, the party token was changed to a small token showing four adventures on horses in a siloute of just black. A world map is just like any other map so you could use your single image map, place transitions at key locations, use a party token of anything that makes sense, etc. The player would then navigate the map square by square to travel to locations in the map. For fast travel, use a small grid with the map of maybe 8x8 or 16x16.
User avatar
slowdive
Site Admin
Site Admin
 
Posts: 2855
Joined: Wed Nov 21, 2012 11:58 pm

Re: Fast travel world map

Postby carademono » Thu Jul 21, 2016 12:04 am

Ah, I see. That would work! And 16x16 is the maximum possible map size, correct? Along with an 800x800 pixel JPG? Sorry for the beginner question.
carademono
 
Posts: 3
Joined: Wed Jul 20, 2016 7:36 pm

Re: Fast travel world map

Postby slowdive » Thu Jul 21, 2016 12:54 am

There isn't a hard restriction on the image size for a background image of an area so you could use something larger than 800x800, but it may cause issues on some mobile devices with limited ram. If you use tiles with no background image, you can have very large maps. I think my world map in lanterna 2 is 64x64 squares. Karl did create a system that will allow huge single image files to be used because it splits your image up into small tiles that area loaded as needed. He could explain more on how to use that option in IB2.
User avatar
slowdive
Site Admin
Site Admin
 
Posts: 2855
Joined: Wed Nov 21, 2012 11:58 pm

Re: Fast travel world map

Postby youngneil1 » Thu Jul 21, 2016 5:21 am

Welcome aboard, carademon :) !

As Jer just said, a fast travel world map is basically in already. You could change the party cursor to e.g a selection arrow or brackets and turn time per step to zero. This would make that area virtually a fast travel map (minus point and click via mouse).

Yes, IB2 allows optionally to use dynamic tile loading, even with very large hand drawn maps: the toolset will upon area creation break down any single image (must look whether there is a limit like 10k * 10k pix) into a myriad of small 50x50 px tiles. These will be loaded (and forgotten) on demand around the party.

Still, for design speed (and AI pathfinding speed) I would not use maps larger than 64x64 squares. Mayhaps even 32x32 squares as I paint on my smart ohone and that responds much more smoothly for a 1600px x 1600px than for a 3200x3200.

Now, for the player all maps painted can be made to appear seamlessly connected anyway. Just set them up as neighbours in area properties of the toolset. Once the party gets near the borders of current map the correct neighbour map tiles are loaded automatically. This way the player will not notice that he just switched from current map to neighbour map. Play around with this one, it's fun to create the illusion of a super huge world :D .
User avatar
youngneil1
Backer
Backer
 
Posts: 4467
Joined: Sat Dec 08, 2012 7:51 am

Re: Fast travel world map

Postby carademono » Thu Jul 21, 2016 6:09 pm

Thanks for the welcome, and for the comprehensive responses! I'd be very grateful for a quick tutorial on dynamic tile loading. I have an old map of Istanbul that's about 2000x1600 that I'd like to use in the game, and I couldn't figure out how to load images larger than 800x800. I cut it up into smaller chunks, which works pretty well, but you the are transitions are very apparent. My guess is, I'm doing everything wrong :?
carademono
 
Posts: 3
Joined: Wed Jul 20, 2016 7:36 pm

Re: Fast travel world map

Postby youngneil1 » Thu Jul 21, 2016 9:30 pm

Ooops :oops: sorry! Just found a bug in IB2beta20 while trying to explain it step by step:

In btnLoadMap_Click method of WorldMapEditor.cs ths here:

Code: Select all
 int columns = sourceBitmap.Width / 100;
 int rows = sourceBitmap.Height / 100;
 int cells = columns * rows;


must be changed to:

Code: Select all
int columns = sourceBitmap.Width / squarePixSize;
int rows = sourceBitmap.Height / squarePixSize;
int cells = columns * rows;


And it must be called after setting up squrePixSize (just a few lines slower).

Well, at least it works even now when using 100x100px per square (which costs a lot of memory compared to50x50, but looks cleaner around square edges) - here is a short tutorial for using it with 100x100:

0) Save map graphic (jpg/png) in graphics folder of your module and then start toolset (make sure the map graphic is square one, like 800x800 or 1600x1600)
1) Click "Edit" in toolset, then choose "Module properties".
2) Activate the "Properties" Tab on left hand side, bottom row (this shows all the possible setting on module level)
3) Set "UseAllTileSystem" to true.
4) Open the area of your choice.
5) Click on "area properties"
6) Activate the "Properties" Tab on left hand side, bottom row (if not open anyhow)
7) Set "use100pixSquares" to true
8) set the x and y size of the in left hand section of screen to map graphic/100 for x and y (e.g. 800x800 jpg would result in setting x and y to 8)
9) Click "Load" button which will allow you to choose the graphic for the map
10)Save and you should be done

When you want to seamlessly connect maps, set the neighbor map names under "area properties" (northern, southern, eastern and western). This will seamlessly connect the maps and - if the map graphics are drawn this way - the player will not notice when transversing to a neighbor map. Make sure neighbor maps have the same size just in case.
User avatar
youngneil1
Backer
Backer
 
Posts: 4467
Joined: Sat Dec 08, 2012 7:51 am


Return to Engine Ideas and Suggestions

Who is online

Users browsing this forum: No registered users and 1 guest