Era Online 3

As explained in the shoutbox, server-side code adjustment is necessary. This happens in Sub PlayerMove. In Case DIR_UP where you have:
Call SetPlayerY(index, GetPlayerY(index) - 1)

You need to add under that:
Call SetPlayerX(index, GetPlayerX(index) - 1)

And then you do a similar process in the other direction cases.

Otherwise the movement doesn’t function correctly, as I did try it without.

There is something else, called Sub ForcePlayerMove, which I adjusted but haven’t tested it’s functionality. This is only ever used TILE_TYPE_SLIDE which I doubt I’ll ever use so haven’t bothered testing yet.

Apart from that, Sub PlayerMove is the only part of the server script that needs adjusting to work with diagonal movement.

Video displaying diagonal movement in SkyWyre v10:

https://youtu.be/dlD-5NDSJOM

Isometric can be easily achieved by offseting every second (x) column by a few pixels up or down, giving it a 15-30 degree angle between tiles.

It’s a lot of work. I’m not in a rush to release the game, I might give it a bash and see what happens but it’ll be tricky to convert the current rendering system. It’s nowhere near as simple as you think it might be.

It’s honestly not a lot of work at all.

You can have isometric without 8 way movement meaning they’d only be able to go in the basic 4 directions, but 8 way movement would make it feel more complete.

I wrote 8 way movement for EO long long ago, but I’m sure the source is kicking around somewhere.

As for isometric movement, it’s really not that hard, you are over thinking the solution. Absolutely nothing needs to be changed server-side because your X,Y variables are going to remain the same, just the way in which you render the map changes. When you cycle through and draw each tile, on your for Y = 1 to Map.MaxY, you’ll want to offset each Y by say 16 pixels. When you call DrawPlayer, you just account for the Y Offset as well. Nothing too major, you should be able to tackle the whole process in a couple of hours.

Hope that helps point you in the right direction.

Cheers

Rob

Is that just for making the character walk diagonally though? Because I already did that. Or are you talking about a real isometric system using real isometric graphics? Because the issue with the isometric graphics is that, for example, ground tiles have to over lap each other. The diamond shape of the graphic means that the actual tile has blank spaces in each corner where the next tiles would go.

alt text

The graphics rendering would have to be rewritten to solve this issue, so that the tile system is diamond shaped instead of square.

Everything uses X and Y, and pixel width and height. That means straight across and straight down. The entire graphics system in EO is based on -------- and |

The whole system needs to be rewritten to have this kind of shape

That’s a complicated way of doing it, you could totally mimic the isometric feeling by doing something like this…
alt text

I may have to forget the idea of isometric, unless I stick with the idea of 45 degree isometric, but then I’d have to make my own tiles 😞

This post is deleted!
Log in to reply