Map Editor improvements

36 replies [Last post]
Posts: 150
CP: 0

Here's a list of things that I think would improve the map editor. I'm sticking them here so people can tell me how dumb some of them are and add some of their own.

Resizable window (you can do this now, but it doesn't resize the game view),
Zoom in/Zoom out (not sure how much work this would end up being)
Overview (so that you can see the whole map while you're working on one section, and click parts to move to them)
Playthrough - as in, you'd click play and it'd let you run about the level without connecting to the server (maybe just in the map view that's already in the editor). Now I'm guessing that this might be quite a bit of work, so this is a bit of a "this would be totally cool, if only we had the time :<" feature.

Not much at the moment, but then I haven't spent a load of time playing with different parts of the editor. If anybody has anything to add we could turn this into a general list of improvements for the map editor.

Posts: 454
CP: 0

Overview, like a strategy game minimap?
http://ra.nv17.com:8000/untested/screenshots/2002-02-10%20Check%20Out%20... (top right)

small side question: what dimensions does support?(size)

I post the most embarrising questions here Laughing out loud

Thanks for all your nice replies (I know I would be annoyed by myself slightly Laughing out loud)

Posts: 531
CP: 967

I assume thats what he means zanval, i suppose it works like it does in photoshop too.

There are 10 types of people in this world - Those who understand Binary and those who don't.

Posts: 150
CP: 0

Yup, that sort of thing.

Posts: 1647
CP: 26119

Mmm, not sure about overview since a lot of games will do it differently.

Posts: 226
CP: 0

I'd assume it would just need to be a zoomed out version of the map so you could easily jump to different parts of it, only in the map editor, so it wouldn't really differ much?

Posts: 455
CP: 0

I find overview really nice to use (I implement it in my own editors). It makes map layout much better, otherwise even though on the micro level the map might be good in some places, overall it might be bad. Its really just a minimap though (or atleast thats what im thinking hes saying).

Posts: 1647
CP: 26119

Oh whoops, when I initially read this I thought the "overview" was like the vbGORE mini-map. I'm definitely fine with adding that, and zooming, to the map editor. Make the issue reports for it and I'll get to it some day. I probably won't do the "playable map" thing, but zooming should be easy as it should only require changing the scale value on the camera.

Posts: 150
CP: 0

Well the playthrough thing isn't really that big an issue anyway, it's easy enough to jump between maps in the client. It wouldn't really save that much time.

Issues reported. See issues #75 and #76.

I only added the overview and resizeable window to the bugtracker since it looks like you've already done zooming!

Posts: 454
CP: 0

yeah also having AIs etc "test" the map at the same time is much better.
If you test it offline with 1 player, you might not see any AI related bugs or anything else...

its better to have a testserver running for such cases

btw i had an edit question to my post:

what are netgores mapsize limits?

vbgore had very small maps for an mmorpg in some cases....

I post the most embarrising questions here Laughing out loud

Thanks for all your nice replies (I know I would be annoyed by myself slightly Laughing out loud)

Posts: 1647
CP: 26119

zanval wrote:
what are netgores mapsize limits?

Technically, "undefined". Realistically, whatever you can fit into a float.

The only part of maps that aren't very scalable is the NPCs (NPCs will sleep unless there is at least one player in the map) and the packets sent to the whole map (many of which could suffice being sent to a large area instead). The latter is a pretty big issue for movement, but it could be altered in the future. NPCs can easily do a very fast .Any() query to the spatial for a large area around them to see if they need to wake up. If not, they just sleep for another few seconds.

Posts: 454
CP: 0

ok sounds huge enough....
so with fixing the AI and how netgore loads stuff (ie change everything "mapglobal" to wide aread)
one could support huge maps? stop me if im thinking in a stupid way.
it would be better than having X maps hooked to eachother.

this is thinking in the "seamless mapchange" direction

I post the most embarrising questions here Laughing out loud

Thanks for all your nice replies (I know I would be annoyed by myself slightly Laughing out loud)

Posts: 1647
CP: 26119

Probably, yeah. Though honestly, huge maps and seamless maps aren't really a concern of mine.

Posts: 454
CP: 0

i know and probably my team will have to sit down and really talk about if we need this feature or if the game can be as good without it.
but enough off this for now, this isnt the correct topic and it was a side question, thanks for the answers. Smile

I post the most embarrising questions here Laughing out loud

Thanks for all your nice replies (I know I would be annoyed by myself slightly Laughing out loud)

Posts: 174
CP: 0

1 map = whole game Laughing out loud

Yey, who needs seamless maps. (I know this would be a really bad idea >.> don't insult my intelligence)

EDIT:
(Here comes darkfrost)

Formerly known as NotExistant/Existance0.
Real Name: Arie Miller

Posts: 1647
CP: 26119

Ariler wrote:
1 map = whole game Laughing out loud

Yey, who needs seamless maps. (I know this would be a really bad idea >.> don't insult my intelligence)

Not as bad as you think, actually. Some of you might remember that I was working on an old game in C for a while that I used to play around 10 years ago (Mercenaries of Astonia; my version was Land of Aston). They literally just had one huge map for the whole game. It was tile-based, so spatial queries were a LOT faster and easier, but still, we're talking about a game with pretty interactive AI that ran well enough even on hardware from around 1998.

Its definitely not the ideal approach, but just wanted to throw it out there that it is possible. Productivity-wise, it may be the better way to go just since you get things working faster.

Posts: 454
CP: 0

I tried to make a 99999x99999 map (or was it 999999? dunno it was a big 999... number)

the mapeditor froze.
a small window "this is a stupid idea" would be cooler.

I post the most embarrising questions here Laughing out loud

Thanks for all your nice replies (I know I would be annoyed by myself slightly Laughing out loud)

Posts: 174
CP: 0

Do it again before you go to bed and when you wake up it'll be there and your computer will lock up every few seconds. Laughing out loud

Formerly known as NotExistant/Existance0.
Real Name: Arie Miller

Posts: 1647
CP: 26119

Surprisingly enough, the engine actually accepts such insane numbers just fine. I just did 999,999 x 999,999 and it was nearly instantly applied as long as you increase the spatial grid size. The default size is 256, so trying to create a 999999x999999 map with a grid of 256 units would result in 15258759 segments, requiring maybe 100 MB per spatial. Boost the default size up to 16384 though, and a map that size will only need 3726 segments, which is about 4100x less.

Of course, each segment being 16384 pixels large is huge, and querying the spatial will probably be around 100x slower on average, but a value more in the range of 1024 isn't too unreasonable.

So there you go, as long as you make the SendToMap() just send to a large area instead, you can easily create a 1,000,000x1,000,000 pixel map in NetGore. Tongue

Posts: 454
CP: 0

i dont know anythiing about sendtomap() etc xD
didnt look into it yet, just said that my editor killed my pc and was unsure if it was me overseeing anything (as you just said)

I post the most embarrising questions here Laughing out loud

Thanks for all your nice replies (I know I would be annoyed by myself slightly Laughing out loud)

Posts: 1003
CP: 7799

2 more suggestions:

1. Definable wall attached to the grh (e.g. when you got a grh that represents a tree, that should always have a wall because people can't walk onto trees) so you don't have to add walls manually for everything.

2. Have 'freehand' when drawing walls, rather than just rectangles. For example: you draw a line around the edge of a cliff with your mouse, just have to make sure when drawing you end where you begin so it defines the area that should be a wall. I know this is somewhat harder but it would definitely be awesome.

Posts: 1647
CP: 26119

Skye wrote:
1. Definable wall attached to the grh (e.g. when you got a grh that represents a tree, that should always have a wall because people can't walk onto trees) so you don't have to add walls manually for everything.

Already in. Has been there for like a year. Just double-click the GrhData. Tongue

Skye wrote:
2. Have 'freehand' when drawing walls, rather than just rectangles. For example: you draw a line around the edge of a cliff with your mouse, just have to make sure when drawing you end where you begin so it defines the area that should be a wall. I know this is somewhat harder but it would definitely be awesome.

Eh?

Posts: 123
CP: 0

I think he means "Like the magnetic lasso brush in PS. But with walls.."

AKA : Ace

Posts: 135
CP: 0

Maybe not a lasso (since that seems really tough to code, as it would require some sort of graphics/color analysis). More like a pencil/paintbrush that would allow you to freehand wall shapes/lines. Which still seems tough, I think.

Posts: 123
CP: 0

I think, what I WOULD like to see, is when holding shift, make the walls go in a straight direction when placing. If that made sense.

AKA : Ace

Posts: 1647
CP: 26119

Savant wrote:
Maybe not a lasso (since that seems really tough to code, as it would require some sort of graphics/color analysis). More like a pencil/paintbrush that would allow you to freehand wall shapes/lines. Which still seems tough, I think.

Doesn't really make sense to have seeing as we only have rectangular-shaped walls.

Posts: 1003
CP: 7799

Well rectangular walls are really not that suitable for several things actually so yeah that pencil thingy Savant was talking about would be cool.

Posts: 135
CP: 0

What about a pixel based wall tool? Basically when you use that tool, wherever you l-click, that pixel becomes a wall. That would probably be easier to program/implement and still provide improved flexibility and speed in creating "free-form" walls. Thoughts, Spodi?

Posts: 1003
CP: 7799

Yeah I like that Smile

Posts: 1647
CP: 26119

"Free-form" collision blocks are definitely not happening, as that would be an insane amount of overhead and mathematical complexity. Stamping down small blocks would be quite a bit of overhead still, and would likely require a runtime optimizer to cluster them together to use as few rectangles as possible. Sounds like a lot of work still. Maybe someone else will do it.

Posts: 135
CP: 0

Ah, so really, it's in our best interest to keep walls as rectangular as possible, regardless, to help limit overhead in the map checks, yes?