Author Topic: Map Editor  (Read 8985 times)

hailstone

  • Local Moderator
  • Battle Machine
  • ********
  • Posts: 1,568
    • View Profile
Map Editor
« on: 19 November 2008, 01:16:02 »
This is a continuation of posts from GAE 0.3 Planning

I think Qt and wxWidgets essentially achieve the same thing. Both run on different operating systems and as far as I know both can run on many Linux desktops.

The compiling would need to be changed to include the Meta-Object Compiler for Signals and Slots in Qt. Since wxWidgets is already included I don't see the need to change it.

Aslo Cross-Compiling Windows Applications on Linux (wxWdigets)
« Last Edit: 23 February 2009, 09:29:44 by hailstone »
Glest Advanced Engine - Admin/Programmer
https://sourceforge.net/projects/glestae/

modman

  • Guest
Re: Map Editor
« Reply #1 on: 24 February 2009, 02:30:29 »
I think that right now we should start to compile a list of new features we want to have in this map editor.  I've come up with a pretty comprehensive list myself, but bear with me because some are kind of repeats.

1)Better (more extensive) help
2)Players (up to 12?)
3)Cliffs
4)Glestimals
5)Glestimal bases
6)Portals
7)Cliffs
8)Cliff lines
9)Special objects (my really long post)
10)Caves?
11)Bridges
12)Fill entire map (with same object)
13)Geographic Layers
14)Set bedrock
15)Topographical (heights) view, which is the map editor now; I would appreciate lighter colors though (how 'bout tan?)
16)Set middle earth layer
17)Climate zones (regions of different climates, so more than one tileset will be used per map
18)Mountains
19)Set topsoil
20)Tutorial
21)Cover the basics (required data)
22)Water is height independent
23)Paths (also with width, will have pavement and underneath layer where each can be chosen from a list)
24)Rivers (width selection)
25)Climates:
      -Forest
      -Desert
      -Jungle
      -Arctic (Winter)
      -Hellish (Volcanic)
26)Set weather (basically placing rain and snow clouds, or just darkness or sunshine)
27)Place rogue glestimal
28)Snow zone
29)Rain zone
30)ZONES (each object will have a chance of occurring per zone; zones of like objects may not overlap)
31)View first person (Really would look cool for screenshots, and could be really majestic if looking over a cliff or up at a waterfall or something of that nature)
32)Place valley (impassible "crack" in the earth)
33)Undo
34)Redo
35)Set allowed techtree (#1 I hate techtree, #2 this would mean this map only works with magitech, etc)
36)LUA, I definitely think this could be done in the map editor, but it's not a priority
37)Volcanoes (rarely could explode at random times and wipe out a 10-tile radius of units, but with slow lava; thus only a threat to buildings
38)Group rogue glestimals together
39)Indigenous glestimals
40)Healing fountains (basically one of my highly described entities)
41)Wind direction
42)Player distances (helpful for judging how fair the map is for multiplayer)
43)Generate random map
44)Height markings, which are numbers placed on the topographical map
45)Map simplified image, which someone was talking about to be included with a new version of Glest to describe the map
45)Map description, which is the text portion of the description
46)View topsoil only (hides all objects, but not the water)
47)Road material
48)Signs/banners ("Ye who pass die")
49)Render actual map is a view setting which allows one to work with the map as if they were zoomed out of Glest far and fogofwar=0
50)View simplified symbols (this is polar opposite, and is easy on the graphics)
51)Date
52)Person (real name)
53)Author (forums username)
54)Map rating (the person would post a poll, then round up the average)
55)Set resource refresh rate/total amount (if you use up a resource, it may grow back; you can also override the total amount in the resource.xml from here and set the total amount before it is used up)
56)Base metadata off this map... (maybe you made two maps that were similar in many ways; you could simply copy metadata, which is everything that is not the objects and their locations and stuff like that, from the first map to the second)
57)Startup tips
58)Load new tileset
59)Help bubbles
60)LUA editor
61)Better merging of tiles
« Last Edit: 24 February 2009, 21:57:04 by modman »

gameboy

  • Guest
Re: Map Editor
« Reply #2 on: 24 February 2009, 07:57:15 »
61) better merging of tiles.

modman

  • Guest
Re: Map Editor
« Reply #3 on: 24 February 2009, 21:58:28 »
I added your idea to my post, Gameboy (to keep everything together).

daniel.santos

  • Guest
Re: Map Editor
« Reply #4 on: 24 February 2009, 23:13:27 »
wowzers! lots to address here.  Let me try to start with gameboy.  I'm highlighting all of my questions in blue (so please do respond to those).
61) better merging of tiles.
61) please elaborate on what you mean.

Now modman, very nice list, thanks!  What this sounds like is more of a full-blown map, scenario, campaign editor.  I don't have any conflicts with that per-se, just clarifying the scope.  I'm in favor of an iterative/multi-phasic development approach on this as opposed waterfall methodology (i.e., attempting to have all of this in the next release).  So we can get to project planning later, once we are more clear on what we want.

First, let me elaborate on my current concepts for the new map format, map editor, etc.  When I think of the "map" I'm thinking of a very basic set of data that defines landscape, its ground cover and water.  I'm generally feeling that every thing else belongs somewhere outside of the core "map data", probably even the start locations!  While I'm not solid on this, here's how I'm thinking of it:

  • Geology: defines basic parameters for a substance that a portion of a celestial body may consist of and the images for its appearance.  Each layer will be defined under defined under ./data/game/geology/<layer_name>/<layer_name>.xml (relative to the project root) and will define the image files (which will be located under./data/game/geology/<layer_name>/images) for surface and eroded surface (probably a collection for variety) as well as some very rudimentary properties like erosion tendencies and tinsel strength (generally to be used only in the map editor when we get around to landscape generation through simulation in the distant future :) ). We should probably start with some really simple base types and expand upon them later when enough is implemented that it actually matters.  Example:
    • black_dirt: or maybe we use "dirt_black" with a noun_adjective type of naming convention (isn't that how you say things in Spanish?).  As example, this could have the following files
      • data/game/geology/black_dirt/black_dirt.xml - the definition file.  points to the images below
      • data/game/geology/black_dirt/images/black_dirt0a.png - an image for what it normally looks like when bare on a flat (i.e., zero-degree incline) surface
      • data/game/geology/black_dirt/images/black_dirt0b.png - a variant of the above
      • data/game/geology/black_dirt/images/black_dirt_fresh0a.png - an image for what it looks like when bare on a flat surface when recently exposed (dug up).  This wont be useful until we can dig trenches.
      • data/game/geology/black_dirt/images/black_dirt70a.png - an image of what it looks like when broken, cut, eroded, etc. at an incline of greater than 70 degrees
      • data/game/geology/black_dirt/images/black_dirt70b.png - a variant of the above
      This is just an example
    • brown_dirt
    • red_dirt
    • sand
    • limestone
    You may ask why I used the term "celestial body" instead of just saying planet or the Earth.  The reason is that somebody may want to write a set of maps, scenarios, faction trees, etc. that takes place on a moon or asteroid.  I like to keep possibilities open, especially where it causes no extra work aside from just considering it as possible.  This will keep the design as extensible as possible.
  • Map: roughly specified, the map will define the following:
    • Header information: current info plus all the other requests (like modman's items 51-53)
    • geological layers -- the substance will be one of those under Geology and the map format will define in some way the shape of each layer.  Geological layers really do curl up sometimes, so we can't reliably say that a geological layer for a given cell starts and stops at a specific altitude, so we'll either need a mechanism to specify one or more sets of lower_altitude, upper_altitude or some other mechanism (like defining the shape of a geological layer in terms of it's encapsulating verticies)
    • surface/ground cover:  this is analogous to the current ability to select a tile (road, grass, barren, etc.) but with a transparency layer to expose the texture of the underlying geological substance.
    • water levels: currently, there is a single static water level.  See my answer to items 22 & 24 below
    • cliffs, gullies, chasms, valleys, etc. (needs it's own discussion)
    • caves, tunnels, dugouts, etc. (maybe for a future revision of the map format)
    • non-interactive objects (statues, ruins, non-resource stones, etc.): probably each defined as entities.  As discussed before, the map format should have a list of objects used in a section after the header and for each object, one or more alternate object names can be specified so that if somebody doesn't have a particular object installed, it can use a replacement.
    • player start locations & resources?
    At the moment, I think that this is all that should be in the actual map data (obviously open for debate).  I put a question mark after start locations & resources because I have some questions about where it's best defined.  These two items go hand-in-hand so should be dealt with together.  Resource nodes also serve as barriers, a very important part of map design, so start locations & resources may be inseparable from the core map data (i.e., wouldn't make sense to swap them out with a a different meta-data layer) but I'm not 100% certain of this so I would like to leave this concept open for now.

    Lastly, I also see a few different avenues for the definition of the non-interactive objects.  If we define them in a meta-data layer and we allow multiple meta-data layers to be used at once (each one with the opportunity to override previous definitions) then maybe it makes more sense to store these in a meta-data layer and have each map define a default metadata layer.  This could also support putting start locations and resources in the meta-data, but still keep them tied to the map.
  • Entities: After a lot thought, I'm thinking that we need a separate concept called "entities" that will encapsulate Glestimals (a.k.a., "whats-its"), statues, ruins (all map objects) and even special objects that are not necessarily visible or corporal like quicksand, poisons plants, teleporters, spawn points/regions, spawn traps (or other types of traps), and maybe immutable bridges bridges (non-player built bridges that is, because when we implement player-induced map modifications like building trenches and moats, we'll need to allow units that can be built or created that act as bridges and are destructible --  more on that elsewhere), things like modman's exploding volcano (an invisible entity that resides at the mouth of the volcano),  etc.  Entities should be scriptable objects based upon built-in types (Glestimal/whats-it, traptrigger, etc.).  Their definitions & media files will probably reside under ./data/game/entities (from the root of the project) and the layout within there should probably be just like everywhere else in the game (units, etc.) with subfolders for each entity and from there, additional subfolders for content (sounds, images, models, etc.).
  • Map Meta-data: (EDIT: It may make more sense and to just have this be part of scenario data.  It would certainly decrease complexity.) I don't particularly like that name, but it's the best I can come up with for now.  This should be a swappable superimposed layer that adds to the base map data.  From this is where entities are pulled in,  placed on the map and (optionally) assigned input parameters.  Thus a volcano_eruption entity may take parameters like latency-time, latency-time-var, explosion-radius, explosion-radius-var and damage, a spawn point may take a list of entities it can spawn and their parameters, etc.  If we move the player start locations and resources from the core map data, then this is where they would end up.  This layer may also describe weather and climate and even expose multiple weather "aspects" or seasons.  Thus, the map meta-data may define general weather conditions for winter, spring, summer and fall or you may be able to use this to say that you want to see what this map would look like if it were a jungle.  This overlaps the current concept of tilesets, so that will need some thinking.

    I also think that it should be possible to combine meta data in layers.  Thus, it will also require the capability to remove a previously defined entity.
  • Scenario: The scenario extends upon all of this, specifying a map, zero or more map meta-data (possibly allowing alternate meta-data, I'm not sure) and would have all of the script-ability of Glest 3.2 scenarios plus whatever else we deem.  I still haven't gotten to play much with 3.2 and learn about it's new scenarios and campaigns, so I can't comment yet on what else it will need to have added. :(  But just suffice to say for now that it's distinct from the other meta-data.

So having said that, let me address modman's items point by point.  It sounds like we need to start working on a real specification doc however.

1, 20, 57 & 58) Better help, tutorial, help bubbles and tips: These are good ideas and they need should be grouped together (although not as a single requirement).
2) more players: I'm thinking max of 16 players.  It sounds like a big number, but nobody HAS to make a map that big or play a game that big.  But by using 16, I can cleanly use two bytes for a lot of the internal data that manages some things (like the map exploration data, etc.) that that way if there's ever a desire for more than 12 game slots, no hacking of bit mangling types of optimized code has to be jacked with.  (I'm thinking mostly of the map saved game data at the moment).
3 & 7) Cliffs: Yes, and in the core map data (I will post later on "cliffs, gullies, chasms & canyons")
4) Glestimals: I was initially thinking to define Glestimals in a tileset, but since I've come up with what I think is a better idea (discussed above)
5) Glestimal bases: Are you describing Warcraft-style bases where mobs hang out and guard treasure?  That should be supported with an entity and be able to pull it into the meta-data, but again, that doesn't belong in the map format its self.
6) Portals: (a.k.a., teleporters) Yea, but in the meta-data
8 ) Cliff lines: What are do you mean?
9) Special objects: Right, but definitely in the meta-data or scenario!  Although perhaps these can be encapsulated as scripted "entities" themselves and be pulled in where desired (in the map meta-data or scenario)
10) Caves: Yeesh, I don't like this one.  Not that I don't like the idea, but it's the challenge of cleanly integrating it.  Maybe we need a new discussion thread just for caves.
11) Bridges: yes.  But in the future, a tech tree will be able to define units that are walk-able and span gaps -- essentially be able to build bridges (even mobile deployable bridges like current day militaries have).  So at the moment, I'm thinking that the bridges that come with the map should be defined in the meta-data and be indestructible.  When we get to the point of being able to support player-made bridges, we'll need the ability to specify rather or not the bridges that are on the map when the game starts can be destroyed.  Thus, we should keep this in the design in advance.  This may be a matter as simple as a game setting (bridges can be destroyed) and if you turn on that game setting when using a faction tree that can't build bridges, then that's your mistake! :)  We should be able to override game settings in a scenario so that the scenario will be able to explicitly define rather or not the bridges are destructible.
12) Fill entire map: like cover the land in trees?  Maybe we just need bigger brushes?  I dunno, whatever you guys think?
13) Geological layers: hurray!  :)  Again, I assert that if a map maker doesn't want to jack with it, they can just have the entire ground be dirt.  The idea of the geological layers is to generate nice looking scenery with minimal actual work when creating the map by having geological layers defined in advance.  Also, we can eventually build a function that will just create the layers (to start with) based upon common occurrences in nature (like costal, plains, hill country, mountainous, volcanic island, atoll (what happens long after a volcanic island sinks), etc.).
14) What do you mean?
15) Change colors for topographical view: I have no problem with that.  I would also like a 3d view personally.
16) Set middle earth layer: Not sure what you mean.  Like in the geological layers?
17) Climate zones: Yea, like the difference between a mountain top and a valley or a dessert and an oasis.  That will take some thought for me personally (on how to best implement this).  See also item 25 (and this will break the tileset paradigm)
18 & 19) Mountains & top-soil: Yea I think this goes with geological layers (13)
20) good idea!  We'll have to solidify the actual editor before we go there though (because it will change!)
21) "Cover the basics" you mean like writing up a specification?  We're kinda hashing that out now
22 & 24) Water level & Rivers: Yea, I was thinking about this while on vacation last week.  It's normal for there to be different levels of water at different places in a map (i.e., lakes vs sea). I think that the best way to do this (scary as it may sound) is to specify water inlets and outlets as well as average precipitation & evaporation rather than defining bodies of water.  I think the map editor should take this and render it into water levels and current and that data should be on a per-cell basis.  Current isn't so important for now but it only takes 3 floats to specify.  Later, we can allow water current to effect units in the water (ships, ground units forging a river, etc.).  But most important for now is being able to specify water level on a per-cell basis and having the map editor be able to create lakes & rivers automatically based upon water sources and drains.  From there, it's a matter of running a simulation (in the map editor) to create the levels.  In the interim, we can just specify that the new map format will allow water level to be specified on a per-cell basis and an initial version of the map editor can just allow you to change that like you do the altitude of the ground.  So in summary:
  • map format: each cell contains a water level and possibly a float[3] containing current (a.k.a. water velocity).
  • phase one map editor: water level is edited like ground level with a function to flatten (i.e., reset to zero) and maybe to raise and lower the entire level?
  • phase x map editor: By specifying water inlets, water outlets, average precipitation and average evaporation, the map editor can run a simulation to create map-wide water levels.  If we wanted to get fancy later, we could even use this for erosion functions and to calculate vegetation based upon exposed geological layers (i.e., top soil, sand, etc.), precipitation, ground water tables, climate and weather patterns.  That is just a *possibility* for the future!
23) Paths: Hmm, please clarify this.  I may understand some of what you are saying here (and may have already covered part of all of it)
25 & 26) I'll have to get back to you on this. Climate is closely tied to the tileset.  You mentioned wind direction later in your list and that's related to weather, but it's also what I categorize as "simplified weather".  Maybe we can revisit this after we nail down some of the other stuff.  Essentially, this will break the tileset paradigm, which may need to be broken anyway, but that will add a lot of complication.
27) Place rogue glestimal: belongs in Scenario / map meta-data
28 & 29) Weather zones: You mean like specifying a region where it always rains or snows?  What I'm starting to get here is different weather systems in different parts of a map -- that's not unreasonable.  Remember that the current concept of tilesets is designed to encapsulate both weather patterns as well as vegetation, precipitation and exposed geology.  It uses a lot of "short cuts", rather than attempting to look at the components that cause these things, it just says, "bah, it looks like this -- KISS (i.e., keep it simple)".  But what we're trying to do is break out of that paradigm to have more flexibility.  Also, remember that the advanced weather system will supersede all of this by using more real weather simulation algorithms (but simplified) to determine weather systems.  I think we're still far off on that, so perhaps being able to specify weather patterns in the map (or map meta-data) would be a good feature for the interim period.
30) please elaborate (do you mean zones where statues & such may appear?)
31) In-game or in the map editor?  I can already get a psudo-1st person view by tweaking the camera settings in the .ini.  I actually have some vague plans for a future FPS/RTS combo type of game where you can play heros in 1st person, or have a teammate (player who shares control of your faction and/or team shared control or something) who plays the heros in 1st person while another player manages the rest of the faction.  So this doesn't need to be in the map editor, although a 3d view with camera controls similar to what GAE has now should be a nice improvement

... once again, my post is greater than 20k characters, so will have to make two posts of it

EDIT: October 18th, 2009: I usually use blue font for my edits, but since I've already used blue in this post, my edits (above) are highlighted in yellow.
« Last Edit: 18 October 2009, 15:52:14 by daniel.santos »

daniel.santos

  • Guest
Re: Map Editor
« Reply #5 on: 24 February 2009, 23:14:10 »
32) Already covered with geological layers and cliffs, but will discuss the concept of cliffs, gullies, etc. more later because I have some technical issues I need to address with it.
33 & 34) Undo & Redo: Yea, really needed!
35) Set allowed techtree: Scenario only, that doesn't belong in the map or meta-data IMO
36) Lua: Scenario, entities, etc.  But I don't see a need for scripting in the map.  We will probably eventually need an interface to edit the map in-game and that can have a scripting interface, but not in the map data its self.
37) Volcanoes: I'm thinking that is best left as partially implemented in both the map and the map meta-data or scenario.  The volcano its self will have to be made in the map (visually etc.), but we should be able to play on that same map with an inactive volcano and not need another copy of the map that's slightly altered.  Thus, the exploding volcano (like your other ideas for quicksand, etc.) probably belong implemented as an "entity" and pulled in by either a scenario or map metadata. (maybe it's defined in one metadata layer and a scenario can pull that in if it needs an active volcano).
38)  Group rogue glestimals together: Hmm, like have hostile non-faction-controlled units (or Glestimals) function as a group?  Define "rogue glestimal".  Are you talking about something similar to a herd of animals/flock of birds or do you mean something like a band of goblins?  If we're talking about something that can fight, flee, die, etc., we've moved beyond Glestimal/what's-it and we're now a full-blown unit.  I'm not sure how to best deal with this distinction yet.
39) Indigenous glestimals: Like being able to define that particular types of animals are local to a tileset? (i.e., tropical tile set gets tropical animals, jungle tileset gets jungle animals, etc)?
40) Healing fountains: This should already get covered under scriptable entities.  Then, the metadata can define where it is on the map and what it's properties are (i.e., how much it heals or how fast or whatever).
41) Wind direction: You mean to specify the wind direction from the map editor?  I suppose it could make sense to specify it in terms of wind-direction, average-wind-speed, average-gust-speed and that could feed the GAE 0.3-planned simple weather implementation.
42) Please elaborate
43) Generate random map: There is already that feature, but it's quite limited IMHO (I don't use the map editor much).
44) topographical map: Good idea!  How about an overlay you can turn on and off that will give a topographical overlay with the altitudes?  Of course, that will be work, but a more simple interim solution could be the ability to toggle on and off the height being written over every cell or ever other cell or some such.  Also, altitude of a cell can be shown in the status bar (along with the x, y coordinates) when you mouse over them.
45, 51, 52, 53 & 54) First off, you have two items with the number 45 :)  But these should all go in the map header except for item 54 (map rating).  Sorry, I don't like that idea personally since ratings can change it shouldn't be a part of the map.  Ratings for mods of all types should be pulled from a web site only (if displayed in game).  Plus, if you make a map, it's only natural for one to say "it's the greatest!!"
46) View topsoil only: Good idea.  show/hide wherever useful
47) Road material: Yea, I mentioned this as well under "surface/ground covering" of Map format above.
48) Signs/banners: Definitely!  This will work perfectly as an entity.  When specifying it in the metadata, you just use a generic sign entity and you specify the text you want it to have as parameters.  Perhaps you can even have multiple models for the sign entity and you specify which model to use as a parameter as well.  As far as the sign text, I'm thinking that you don't see the text unless you click on it.  If you want the text to appear the 1st time you come near it, you can script that in the scenario.  Alternately, you can define a sign that will always display to the player the first time one of their units come near it.  Either way, that part can be done via Lua.  If you wanted the sign text to be visible on the model/skin that could get tricky, but not impossible.  OpenGL (as well as other 3d layers) do allow you to print text on a surface, and that could be printed on a model's skin texture as well, but I don't support messing with that at this time (maybe far in the future or if somebody really wants/needs it can they implement it).
49) 3d map view: Yea, I mentioned 3d view earlier.  I agree that this can be SO helpful!
50) Please elaborate.  What symbols?
55) Set resource refresh rate/total amount: Hmm, I agree, but how and where to specify it I'm not certain of.  For example, it could go in the game settings, in the metadata, the scenario, etc.  Also, would you want resources to only regrow if you haven't harvested them all or just have them regrow anyway?  Should it happen en-mass on a timer or just regenerate a little at a time?  Should we code this in the game & map format or just leave it up to the modder to script it with Lua?  Lots of questions on this.  One more item, can you currently set the amount or a multiplier when you put in resources with the map editor now?  If not, then I definitely agree that's needed.  In addition, there should eventually be a game setting for a resource multiplier to have this same effect when starting a new game.  (on that topic, I also like the idea of the types of game rules from Rise of Nations, it would be cool if you could specify global resource injections & such in the game settings).
56) Base metadata off this map: I misunderstood when I first read this.  I thought you said to define a base metadata file for each map, so that it loads that metadata along with the map by default (unless overridden).  Of course, I'm using the term "metadata" to define something else entirely.  Because what I'm proposing is such a radical departure from what is current, this idea may not make much sense anymore.

daniel.santos

  • Guest
Follow up on cliffs
« Reply #6 on: 24 February 2009, 23:27:03 »
Follow up: modman, maybe for item 58 above "Cliff lines" you meant a way to specify that the difference in altitude between two cells shouldn't be gradual but sudden?  This is exactly the quandary that I've been trying to sort out (why I said I would post later on cliffs, gullies, etc.).  When Glest loads a map, it uses a pair of right triangles for each square cell.  The 4 points that define these two triangles are attained by averaging the height of the cell with the height of the adjacent cells, giving appropriate weight to each adjacent cell.  But I'm guessing that we need a way to tell Glest not to do this and instead just allow a drop off at some X angle?  I'm not sure, so I thought I would post my thoughts on that.

wciow

  • Behemoth
  • *******
  • Posts: 968
    • View Profile
Re: Map Editor
« Reply #7 on: 25 February 2009, 00:35:54 »
Ok heres my 2 pence.

Maybe we should have definable Gaias which work on map metadata.

Essentially working in the same way as the current map-tileset relationship.

Topographical, weather, water and other map information should be stored in the map.
The tileset then works essentially the same as now, adding superficial details (i.e models,textures)

Information about more game orientated features is stored in the second map file (metadata or whatever)
The selected Gaia then interprets the information and adds special features in the same way as the tileset.

For example, if you have a group of glestimals defined in metadata the Gaia will interpret this and place animals which are based on set rules. A friendly Gaia would place a group of friendly pigs. A belligerent Gaia would place vicious wild boars.

As another example if the player placed a natural event (volcanoes,earthquakes,tornadoes) the Gaia will decide factors such as the frequency, duration and strength of these events.

Of course specific Gaias could be written for each map but there would probably be a few general use ones.

Just an idea  :D

Check out my new Goblin faction - https://forum.megaglest.org/index.php?topic=9658.0

modman

  • Guest
Re: Map Editor
« Reply #8 on: 25 February 2009, 02:03:14 »
I am so happy you reply to my ideas!  A lot of times I spew ideas I think are good, but then nobody ever posts there.
I had to leave to go somewhere last night, and so I had something typed in addition to the above, but it was deleted;  >:( so I typed it again.  Also, to show I'm not a jerk and I type only one line after 30k+ characters, I emailed daniel when I got to school (I hope he got it).

I am using the theology that the tileset will define what the Glestimal can be.  Each Glestimal will fall into three categories: Territorial, which tries to stay in the same area, rogue malicious, which roams around the map to find any unit (not other Glestimals!) to attack.  The third is rogue helpful glestimals that will roam the map; however they will avoid all units.  They will give you or your units small or large bonuses depending upon what exactly they are, but in this way all Glestimals are classified.  When you place a Glestimal in the map editor, you are really defining only the starting location of the glestimal and their type.  Certain tilesets may also have different individual glestimals for each category; the specific unit it is being determined only once the map is selected for use in the game (there can be more variety this way).  A Glestimal base refers to the territorial glestimals and to where they will try to protect, as well as the places rogue ones will spawn from (after ten seconds).  This can be used to protect places with lots of resources so it is hard to get to them.
Water is another issue.  Water basically creates only a few things, but it can look pretty cool.  It can create different types of rivers such as streams and rapids based on the width and speed the water moves at, and it can create waterfalls when it passes over a cliff.  Cliffs are determined using cliff lines, which tell the engine where the cliff is.  Then the differences in heights are rendered and behave like a cliff instead of a very steep hill (which is still passable).  The waterfall will be cool, but I have no idea how to make it realistic.  River directions are another thing.  To make them more realistic, water that passes over a cliff should automatically go down the cliff of course.  Thus the entire river on both sides of the cliff would move accordingly.  If water does not pass over a cliff, we should assume it is stagnant, and thus the user must specify a direction for the water to flow.  With a tool, they would also be able to set water speed at certain points (this number must be greater than zero so the river doesn’t run backwards!) so you could create rapids at one place and then a lazy river just around the corner.  The big thing new would be water’s height independence, which allows for waterfalls and cool stuff like that.  Also, it’s much easier to just draw the river rather than to have to worry about the heights of the land and the depths of the water.
   In this new map version, I think that water should be passable, but slow your units down 50% while you are inside of the river.  Also, if the water is moving fast enough, it can sweep your unit away; this could lead to death by falling off a waterfall (see, I got my death by falling off of cliffs in there anyhow!).
   Bridges are an item, but they relate to water.  Bridges should basically show their position before you place them, and then they would “snap” into place when you click.  This way it ensures that the bridges are in applicable positions at runtime.  There is a downside to using bridges, however: even though they may save you from the raging rapids below for some time, when enough units pass over them (the amount is determined in the bridge’s XML) the bridge will break, dropping your men into the rapids to possible doom and also destroying the bridge forever.  Never fear, however, because there should also be an ability to build bridges with each faction.  I haven’t decided whether other factions’ bridges should be passable to the other factions (Should Magic be able to cross Tech’s bridges?), but there could be discussion on that.  Bridges can also cross between cliffs, but only if the cliffs are close enough together.  The breakability also applies here, but in this case units only lose 10h+10 HP where h is the height of the cliff and the “+10” accounts for the wood that could hit them, the possible arch in the bridge etc..  This makes sense, because then a drop of 8 would kill most.  Units should also be able to attack bridges, but I’ve been going off topic for a while now, and this is where I’m going to stop.
   You’ve got my idea down for the geological layers, except that I was only thinking of having three; a small blast would rip away one layer (and also lower the level of the ground by two), showing the dirt, and a larger blast would rip both the topsoil and “middle earth” layer (because I couldn’t think of any better name) away, showing the bedrock and lowering the ground level by six, because the dirt between bedrock and topsoil is far thicker than the topsoil is.  You have something about erosion and stuff like that in your post, but I guess I was thinking far too literally and I only thought of a need of the blast effects.  The weathering and erosion stuff is fine, but I think it’s going to make things a little more complicated than Glest needs.
   For the scenario editor, I was thinking of something really simple for noobs so they would create Glest maps and scenarios.  I have this free software called Scratch that’s really a compiler, but it works with visual blocks that you drag and drop into place.  Since this is really not that extensive as to what it will actually be creating, I was thinking that it could be put on pretty much last priority to make this, but I think it would be nice.  The way I see it is the more similar things that can be done in one place, the better.
   The interface of this program is nothing special.  I think it would be best to stick to something similar to Wesnoth’s map editor, which has menus on the top and a toolbox on the side to place items, and to control common operations like zoom and resizing.  I have designed a similar interface for this application, but of course it would follow Glest’s color theme (dark green, brown, and yellow, which is sort of like the old forums when it wouldn’t let me on for some reason).
   The help is the last thing I have to talk about.  Because of Glest’s large community, after the map editor is made, the next version could probably include a help screen, and I’m hoping that the Glest community can pull together and be as clear and concise as possible.  To make it easier, and since most have no programming background, I think the editor’s help should be in HTML format, which is (relatively) easy to code in, universally used, and will allow all to pitch in.  This map editor is easily ten times as complicated, so we will need a little (actually, a lot) more than “Left mouse click: draw; Right mouse drag: move; Center mouse drag: zoom” help that the old editor had.  I would say that to complete the entire project, if done in a northern hemisphere summer (because most people live in the northern hemisphere), could be completely written, edited, and finished within one to two months or even less.  No matter what type of program it is, it is far nicer and more user friendly when it has a fine help system.  Hopefully we as the Glest community can make that happen.

14)Setting bedrock is simply the bottom layer of topography; it applies to the blast amount and is shown after a large explosion.
16)Middle earth layer is the layer directly above the bedrock.
21)Since some things are just optional, but some things are required, this would be a wizard that pops up when you open it, or if you have required data left to be specified.  These are things like author, player starting places, map description and image, etc.
23)Paths are simply the roads that units usually walk on; this is covered in dirt and in the current editor is simply a surface
30)In any particular zone, an object has a set percent chance of being there; zones do not overlap
31)First-person is for the map editor; this would be cool ingame too!
42)Player distances draws lines from each player to each other player, hiding all other things (for the moment) and labeling distances in meters.  This is like in geometry when they give you a figure to figure stuff out from.
50)The symplified symbols would make the map look far less like in Glest and more like a roadmap/fantasy map (see Wesnoth main screen).  This is simply to take it easy on the graphics, especially if you have a big map.

Hopefully I answered all of your questions; I really like this project!
« Last Edit: 25 February 2009, 22:09:42 by modman »

modman

  • Guest
Re: Map Editor
« Reply #9 on: 27 February 2009, 19:58:11 »
I will make buttons for the map editor.  There will be a bunch of them, but that's OK.  I will make them 128x128 and everything around the picture will be alpha (invisible).  For instance in the below image, all but the G will be alpha.  This is so the image can grow when you click it, without covering other buttons.  Also, I think it would be cool if they glowed when you moused over them; should I make a second copy of each image with the glow, or could that be programmed in (to save space)?
Code: [Select]
[img]http://cellcraftindia.org/google_icon.png[/img]
« Last Edit: 21 October 2016, 23:34:28 by filux »

Omega

  • MegaGlest Team
  • Dragon
  • ********
  • Posts: 6,167
  • Professional bug writer
    • View Profile
    • Personal site
Re: Map Editor
« Reply #10 on: 1 March 2009, 12:04:42 »
You do have some very good ideas, Modman (60+1!). However, I just can't see how neccessary it is to have bedrock, and all these soil layers. It's nice eye toys, but how would they look at times? They could get out of hand too with some maps? Wind seems a bit unneccessary too.

Rendering the map would be nice, so that we can see it properly. Having resources grow back might be troublesome for when you're trying to clear a path.

Most of the ideas are very good though. I'm curious, how possible would it be to do some of these though? The map editor can't be an easy thing to code, and then there's also the fact it would need a new map format, and glest would have to be able to load this format...
Edit the MegaGlest wiki: http://docs.megaglest.org/

My personal projects: http://github.com/KatrinaHoffert

modman

  • Guest
Re: Map Editor
« Reply #11 on: 2 March 2009, 02:32:46 »
Actually, a lot of the ideas aren't mine; I only compiled them together so we could get going.  Eye candy is important though; if Glest had crappy art because there were no Tuchos available, I probably wouldn't have bothered with Glest.  Eye candy draws short-term interest that content cannot bring immediately.

wciow

  • Behemoth
  • *******
  • Posts: 968
    • View Profile
Re: Map Editor
« Reply #12 on: 2 March 2009, 14:00:46 »
Yes eyecandy is what immediately draws people into games but gameplay is what keeps them.

I've lost count of the amount of amazing looking shooters which I have played once or twice and then forgotten about.
The replay value on most shooters is low despite the huge effort that goes into their cutting edge graphics.

On the other hand I've been playing Hearts of Iron 2 for about three years because it is massively re-playable. It's graphics would best be described as eye-gouging rather than eye-candy.

Another example is Mount and Blade which just won the indie game award on Moddb. It has built up a massive fanbase and huge popularity for its superb genre breaking gameplay, not its Half Life 1 style graphics. 

Sorry for the massive OT but I just had to post this  :D

Check out my new Goblin faction - https://forum.megaglest.org/index.php?topic=9658.0

modman

  • Guest
Re: Map Editor
« Reply #13 on: 3 March 2009, 02:45:39 »
Lets not worry about game play in Glest; I love it, and RTS draws lots of people!

Omega

  • MegaGlest Team
  • Dragon
  • ********
  • Posts: 6,167
  • Professional bug writer
    • View Profile
    • Personal site
Re: Map Editor
« Reply #14 on: 4 March 2009, 15:51:26 »
True, gameplay keeps them playing, but no bodies even going to see the gameplay if they aren't drawn to it. I think Glest's graphics are great, though it could use a new GUI and a better map editor (the purpose of this topic). However, I'm more concerned about features than graphics in the editor. It's more for slightly advanced players.
Edit the MegaGlest wiki: http://docs.megaglest.org/

My personal projects: http://github.com/KatrinaHoffert

modman

  • Guest
Re: Map Editor
« Reply #15 on: 21 March 2009, 02:43:45 »
OK, here's an idea: what if this map editor is attached to the exe like in some other games?  Then you wouldn't have to restart Glest every time you test a map!

It would be from the main menu above options: "Map Editor".

Also, I was playing Stronghold, which has the map editor like I previously described, and, low and behold, there was a scenario editor to go along with it!  The scenarios in Stronghold are part of the map file, and so that tends to save a little confusion (no more "cannot find specified map 'xxxxxxxxxxx') and the scenario editor is extremely easy to use.  Everything is under either triggers or actions.  A trigger would be like "Kill enemy Lord" and a action would be like "wolf attack" (which then allows you to specify the points of generation and the wolves' target) or "you lose".  You can also set delays of months (this is the measure of time in the game; I always find it odd that it takes a month for a sheep shearer to sheer the sheep and take it to the stockpile, where the wool is stored!) before an action or cause/effect takes place or occurs.

Not that the map editor should be exactly like Stronghold's, but they are professional and why should we reinvent the wheel?

Mark

  • Guest
Re: Map Editor
« Reply #16 on: 5 July 2009, 01:35:31 »
Modman said he would make the image files, but i have them.

PDN (Paint Dot Net default file format, allows alpha): http://www.mediafire.com/download.php?3kmtkjzetjd
JPEG (Smaller Files): http://www.mediafire.com/download.php?mcmyvzmwiyy

Come to think of it, instead of PDN, i should have saved them as TGA, because i don't know if photoshop and gimp can open PDNs.

John.d.h

  • Moderator
  • Airship
  • ********
  • Posts: 3,757
  • I have to go now. My planet needs me.
    • View Profile
Re: Map Editor
« Reply #17 on: 11 July 2009, 21:12:58 »
Come to think of it, instead of PDN, i should have saved them as TGA, because i don't know if photoshop and gimp can open PDNs.
PNG would probably be better.  Everyone can open it and it allows alpha, and it's much smaller than TGA.

Omega

  • MegaGlest Team
  • Dragon
  • ********
  • Posts: 6,167
  • Professional bug writer
    • View Profile
    • Personal site
Re: Map Editor
« Reply #18 on: 13 July 2009, 02:47:40 »
PNG is the ultimate format if you need alpha (be sure its 32 bit) and JPG is the best for everything without alpha (be sure 100 quality if you want the original picture, or else a slight degrading takes place).

BTW: If you need map image files, I spent hours for the omega map pack. Go to the mod download center on my web page and look for that. You just have to click the map name to get a fancy-dancy lightbox with the image of the map (zoomed out to see the whole thing). Note that the tileset is evergreen on every map except a few. Very good images, all JPG large resolution.
Edit the MegaGlest wiki: http://docs.megaglest.org/

My personal projects: http://github.com/KatrinaHoffert