Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

One map


ploxie
 Share

Recommended Posts

@Ðr.ÐeviL:

> are all the maps together?

This isn't possible with the current version of Eclipse (though, the one that's currently in Development is said to support it).
Well, it might be possible, but it would lag the server unimaginably

What hippo is saying, is that you edit your config.ini, make one map (100x100) and have it scrolling.  Though, it's better (and faster for the server) to just have several small maps (since you can use the "Up", "Down", "Left" and "Right" sections in the map properties to connect the maps, to make it seem to go endlessly).
Link to comment
Share on other sites

@Ðr.ÐeviL:

> what is scrolling and on the maps there should be no "walls"
> like if you go to the east side of the map then you would see a new map and dont have to go on the wall

Scrolling, is where the map is big, and the whole world scrolls with you while you walk (this is already a feature in Eclipse).

And whether it's scrolling or not, if you walk off the side of the east map, you'll appear on the map "next" to it, on the west.  That's the only settings possible atm.

Now, it is possible to have one massive map (even if a source edit can overcome the 100x100 max), but you would have to let the player load the ENTIRE world at once, and trying to process all that stuff will lag the server into tomorrow.
Link to comment
Share on other sites

Instead of loading the entire map in to the backbuffer at once, which is what I gather is the norm around here, simply set up a camera class which controls the current 'view field' of the character.

This would have to be updated each loop.

Then, it's only a simple task to re-program the maps to be set dynamically rather than through a set size. Add a couple of new bytes of data to the maprec:

```
SizeX as byte
SizeY as byte

```
Then, change the map's tile array to be handled dynamically.

```
Tile() as Tilerec 'not sure on variable name

```
And then, whenever the map is edited, loaded or sent to the client do a quick re-dim on the array.

```
'Client example
Redim Map.Tile(0 to Map.SizeX, 0 to Map.SizeY)

'Server example
For i = 0 to MaxMaps
    Redim Map(i).Tile(0 to Map.SizeX, 0 to Map.SizeY)
next

```
If you're using any matrix-driven AI system, such as A* theorem then you'll also want to set these up in an array, instead of having a single static matrix size.

Once you've done that, remove MAX_MAPX and MAX_MAPY and change any calls to that to be:

```
Map(mapnum).SizeX
Map(mapnum).SizeY
```
Or, in the client's case:

```
Map.SizeX
Map.SizeY
```
It's all very simple. I'm not allowed to advertise any of my own public domain projects here, but ask around and you might find the one I released which had dynamic map sizes.

Yours,
_Robin_
Link to comment
Share on other sites

@Robin:

> No one should know where to put that, it's an example.
>
> I explained the basic principles behind the feature, gave him some background on dynamic arrays.
>
> What he does with it is his own business.

Sure, but he might not understand that either.

Mine was an example too.
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...