Opened 3 years ago

Closed 3 years ago

Last modified 2 years ago

#4354 closed enhancement (fixed)

Hannibal Barca's maps

Reported by: elexis Owned by:
Priority: Should Have Milestone: Alpha 22
Component: Maps Keywords: patch
Cc: hannibal, FeXoR, Niek Patch:

Description (last modified by elexis)

Hannibal Barca has created a number of maps, of which at least strips seems acceptable to me. These maps should be reviewed and either polished and merged or rejected:

https://github.com/user8239/oad_dev/tree/maps

https://wildfiregames.com/forum/index.php?/topic/21519-new-maps-for-a22/

Attachments (11)

commands_ambush_frontier_hill.txt (12.2 KB) - added by elexis 3 years ago.
commands_arctic_summer_error.txt (7.9 KB) - added by elexis 3 years ago.
two_rulers.jpg (182.2 KB) - added by elexis 3 years ago.
african_map.jpg (282.4 KB) - added by elexis 3 years ago.
africanwetseason.png (1.5 MB) - added by elexis 3 years ago.
Another proposed map in the repository uploaded after the first quick review.
artic_tundra.js (9.8 KB) - added by FeXoR 3 years ago.
Fixed version of arctic_tundra.js - still a warning about undefined var "counts"
island_tropics.js (14.4 KB) - added by FeXoR 3 years ago.
Fixed version of island_tropics.js
polar_sea.js (8.8 KB) - added by FeXoR 3 years ago.
Fixed version of polar_sea.js
extinct_volcano.js (13.9 KB) - added by FeXoR 3 years ago.
Fixed version of extinct_volcano.js
african_plains.js (9.9 KB) - added by elexis 3 years ago.
african_plains.json (518 bytes) - added by elexis 3 years ago.

Change History (30)

comment:1 Changed 3 years ago by elexis

  • The BUILDING_ANGlE argument must be removed from the placeCivDefaultEntities calls.

Skirmish Map:

  • Two Rulers seems a bit one-dimensional gameplay wise as there are only the two main islands, so it will be a similar gameplay as on Island Stronghold (though getting docks on the islands is still important to saturate the enemy shoreline faster).

Random Maps:

  • African Plains looks very nice, and maps like these (mainland style) are welcome by the players after so many _kali style maps
  • Ambush-Frontier: As the name suggests it's a mix of two maps, which still seems like it should do something different, unique. Also in one generations hills were painted with the grass texture, see replay attached.
  • Arctic-Summer:
    • oWood is not defined, the scope { ... } starting in line 4 should be removed to fix it.
    • The terrain shape looks very good to me. Enemies can be reached by both land and ships, a condition which is rarely met by maps that have both water and land.
    • The green texture seems a bit too saturated.
    • Got a warning, replay attached
      `WARNING: JavaScript warning: maps/random/rmgen/utilityfunctions.js line 230
      reference to undefined property counts[i]`
      
    • Just like many other maps, should guarantee every player one decent forest. The replay mentioned above shows one player that has a bit too few wood for my opinion. We might want to find a solution that works for all maps (helper function) perhaps (independent ticket).
  • Artic Tundra:
    • Arctic?
    • oWood is not defined, undefined property counts[i]
    • Seems to be similar to the above one. Perhaps we should pick the better one. Treasure often disabled by players. Perhaps this map is more focused on building trade, like anatolian plateau?
    • As we can see on the screenshot (and often on the Hell's Pass map), random seas often leave one player with no useful territory at all.
  • Carthaginian Coast:
    • Almost entirely a duplicate of Phoenician Levant. Perhaps we should fix that map's island positioning if that is too biased sometimes.
  • Danube
    • Works, though I don't like these river maps that always end in massive trade and long buildups before any action occurs. Visually it should receive some more variety, especially the ground texture.
  • Extinct Volcano:
    • Missing array in L437
      ERROR: JavaScript error: maps/random/rmgen/placer.js line 525
      TypeError: this.elements[Symbol.iterator] is not a function
        SimpleGroup.prototype.place@maps/random/rmgen/placer.js:525:1
      ...
        @maps/random/extinct_volcano.js:435:1
      
    • Should perhaps, perhaps not become renamed, as we already have that name in one map.
    • The terrain shouldn't be entirely flat, become inspired by some other maps that use heightmaps (hyrcanian shores, oasis)
    • Does that volcano have to be in the middle always? Furthermore if it's duplicate code from volcanic_lands.js, it should be moved to a helper function to avoid the redundancy. There could be few smaller volcanoes (which would reuse the same placeVolcano function just with a different height argument)
    • The trees placed on the volcanic ground paint the grass texture, which seems out of place. There should be either more and consistent grass texture around the forest, or no forest on that floor at all.
  • India
    • Monotexture, no terrainshaping
  • Island Tropics
    • Looks like cycladic archipelago with different textures. It should become different from that by for example having player islands not placed in a perfect circle but perhaps moving some islands more towards the center.
    • Should also have some height differences on the islands.
  • Palm Islands
    • is the same as Island Tropics?
  • Polar Sea
    • I like the textures, not happy seeing another map with the lake shape though
    • 4500 starting treasure wood and not a single tree is certainly a new concept
    • Would need a note in red (like nomad or survival of the fittest) to not disable treasure
  • Ravines
    • What was the intention of the map?
    • It looks very similar to ambush, it would have to be more unique. Much of this is attributed to using the randombiome functions in _kali's alpha 20 maps. See _kali's Alpha 21 maps on how to change the textures in use.
  • Strips2
    • I like the unique terrain/water shape.
    • Iberian walls broken on this map, don't place them (or only the turrets like on cycladic archipelago).
    • Sometimes a CC is too close to water (or partially submerged). The initial player area should be painted like on archipelago.
    • Some resources are underwater - those (if the intention is of artistical nature) should become actors, so that they don't block ships and units won't even think about gathering them.
    • To incentivize naval interaction, there could be more fish all over the place. Its probably though #4294 and not the fault of this map that we can't find the fish that ought to be placed.
    • Not sure if this map is better with the randombiome or manually specified textures. Randombiome probably isn't the worst idea here.
  • Strips Random
    • Title says "strips2"
    • Underwater ground texture missing
    • I like the transparent water, making those things underwater more visible
    • Seems like this strips variant is placing more land area and some hills. Seems okay too, perhaps you can merge both variants and flip a coin which to chose when starting a game on this map (if you dont want to nuke this variant)?
  • Github is ideally used by cloning the repository, editing the files in that directory, and then pushing the changes back to github. Thus it is actually possible to see that only one line changed in a file, instead of replacing the entire file or repository even. (Even better would be visiting https://github.com/0ad/0ad clicking on fork, cloning that one to the local harddrive, creating a maps branch and then adding those maps. Then the 0AD code itself (f.e. rmgen libraries) can also be changed without having to copy entire files from one unspecified directory to another. But not required for now).
  • Unneeded comments should be removed, for example:
    // create fish
    log("Creating fish...");
    

Changed 3 years ago by elexis

Changed 3 years ago by elexis

Changed 3 years ago by elexis

Attachment: two_rulers.jpg added

Changed 3 years ago by elexis

Attachment: african_map.jpg added

comment:2 Changed 3 years ago by hannibal

Palm Islands removed, wasn't meant for reviewing in current state

comment:3 Changed 3 years ago by elexis

Milestone: Alpha 22Work In Progress

Moving to the new WIP milestone.

Changed 3 years ago by elexis

Attachment: africanwetseason.png added

Another proposed map in the repository uploaded after the first quick review.

comment:4 Changed 3 years ago by FeXoR

  • Agaen See: Why is that in?
  • African Plains: Very nice!
  • African Wetseason: OK. Many actors, thick distance fog.
  • Ambush-Frontier: Very nice map concept with those cliffs! Start positions choice is sometimes very unfair: With 3 players 2 of them can only reach each other through the 3rd players base ;p Cliffs often are pushed back by the distance from the start locations and IMO that circle shapes destroy much of the beauty - I suggest using rectangularSmoothToHeight at the start loacations instead of pushing the cliffs back.
  • Artic Summer: OK. Similar issues with very noticable start location avoidance
  • Artic Tundra: ERROR: JavaScript error: maps/random/rmgen/misc.js line 177 TypeError: invalid 'in' operand kwargs placeCivDefaultEntities@maps/random/rmgen/misc.js:177:1 @maps/random/artic_tundra.js:130:2
  • Carthaginian Coast: OK. Very similar to Phoenician Levant. Iberian walls collide with hills. The isle should IMO contain more resources.
  • Danube: OK. Very similar to Agaen Sea.
  • Extinct Volcano: ERROR: JavaScript error: maps/random/rmgen/misc.js line 177 TypeError: invalid 'in' operand kwargs placeCivDefaultEntities@maps/random/rmgen/misc.js:177:1 @maps/random/extinct_volcano.js:110:2
  • India: Not sure. Terrain texture and elevation noise to uniform. Not very interesting IMO.
  • Island Tropics: Same error as above.
  • Polar Sea: Same error as above.
  • Ravines: Good. Iberian walls should be torned off though!
  • Strips2/stripsrandom: Not finished IMO! Strips are to narrow. Artifacs at map border (Fail by one?).

comment:5 Changed 3 years ago by FeXoR

The errors mentioned above come from wrong usage of placeCivDefaultEntities argument kwargs. To solve: replace e.g. placeCivDefaultEntities(fx, fz, id, BUILDING_ANGlE); with placeCivDefaultEntities(fx, fz, id, { 'orientation': BUILDING_ORIENTATION }); (In this specific case it won't do anything different though than leaving that argument ungiven). There are several other bugs though like usage of oWood (deprecated).

Last edited 3 years ago by FeXoR (previous) (diff)

Changed 3 years ago by FeXoR

Attachment: artic_tundra.js added

Fixed version of arctic_tundra.js - still a warning about undefined var "counts"

Changed 3 years ago by FeXoR

Attachment: island_tropics.js added

Fixed version of island_tropics.js

Changed 3 years ago by FeXoR

Attachment: polar_sea.js added

Fixed version of polar_sea.js

Changed 3 years ago by FeXoR

Attachment: extinct_volcano.js added

Fixed version of extinct_volcano.js

comment:6 Changed 3 years ago by elexis

Will commit african plains if the following things are addressed:

  • Mappreview image (use alt+d to zoom out far, take a screenshot, cut out the relevant area, use 400x300 pixels, resize without scale to 512x512 with black borders (compare to other mappreviews)
  • Map description is missing (copy from arctic summer)
  • Perhaps slightly less traggler trees to make some more space for siege engines? (similarly problematic as the a21 tree balancing of rouen)

Fixed with the attached patch:

  • Removing that the braces in L4 and L52. Variables should be defined in the most outer scope they are used in (global here).
  • Copying the entire JS code to www.jshint.com revealed at least six unused variables, safely to be removed, a missing and an unneeded semicolon. (Notice we use ES6 and that there are some undefined warnings as jshint doesn't know about the other functions in random/rmgen/). Asking jshint for syntax improvements is something that should be done for the other maps before committing them as well.
  • Removing tabs after the equal sign in places like tGrassShrubs = ["savanna_shrubs_a"];
  • Removes whitespace in empty lines and trailing whitespace
  • Uses tabs instead of spaces in the indentation
  • Removed comments that are redundant with the code
  • Removing old chicken placement code redundant with the new placeDefaultChicken
  • The two arrays passed with createFood should have the same number of items
  • createFood\n( -> createFood(
  • var types used only once, we can inline that
  • Following wiki:Coding_Conventions, [] should be used instead of new Array if possible
  • Missing var in L150

Changed 3 years ago by elexis

Attachment: african_plains.js added

Changed 3 years ago by elexis

Attachment: african_plains.json added

comment:7 Changed 3 years ago by hannibal

New version of african_plains.js up on github, modified:

  • avoidclasses clhill added for lions, giraffes and elephants
  • forests are now a bit farther from each other

Carthaginian coast modified a bit to look less similar to Phonecian Levant, added a chain of islands in the sea(screenshot provided)

comment:8 Changed 3 years ago by elexis

Description: modified (diff)
Priority: Should HaveNice to Have

comment:9 Changed 3 years ago by elexis

African Plains committed in r19221

comment:10 Changed 3 years ago by elexis

Polar Sea committed in r19254

comment:11 Changed 3 years ago by elexis

In 19434:

Danubius random map script with reoccuring gaia ships that take control of the river and ungarrison units to attack the players.

Places a fortified gaia village, some gaia units performing a ritual and some towers garrisoned on islands.
The attacker and ship count increases over time.
The attacker composition is randomized per ship and switches from citizen soldiers to champions, heroes and siege engines.
One in three matches takes place at night.

Differential Revision: https://code.wildfiregames.com/D204
Map generation based on patch by Hannibal Barca
Reviewed By: bb, FeXoR
Refs #4354

comment:12 Changed 3 years ago by elexis

In 19447:

Random map script India.

Differential Revision: https://code.wildfiregames.com/D363
Patch By: Hannibal Barca
Refs #4354

comment:13 Changed 3 years ago by elexis

Description: modified (diff)
Milestone: Work In ProgressAlpha 22

comment:14 Changed 3 years ago by elexis

In 19635:

Extinct Volcano random map script with rising water.
Minimap updated by Sandarac in D344.

Differential Revision: https://code.wildfiregames.com/D229
Refs #4354
Map generation based on patch by: Hannibal_Barca
Calling it Reviewed By: bb

comment:15 Changed 3 years ago by elexis

In 19647:

River Archipelago random map script.

Differential Revision: https://code.wildfiregames.com/D467
Refs #4354
Patch By: Hannibal_Barca
Description by: Phormio

comment:16 Changed 3 years ago by elexis

In 19662:

Arctic Summer random map script.

Differential Revision: https://code.wildfiregames.com/D465
Refs #4354
Patch By: Hannibal_Barca

comment:17 Changed 3 years ago by elexis

Keywords: rfc removed
Priority: Nice to HaveShould Have
Resolution: fixed
Status: newclosed

Thanks for the maps, after some polishing and trigger scripts, we really have something amazing to present!

comment:18 Changed 3 years ago by elexis

In r19548:

Botswanan Haven random map.

Differential Revision: ​https://code.wildfiregames.com/D362
Patch By: Hannibal_Baraq

comment:19 Changed 2 years ago by elexis

In 20264:

Remove unneeded waterheight init loop from River Archipelago (refs #4354, D467).
Remove unneeded waterheight init loop (with awkward 1 tile sized bump) that is redundant with the SmoothElevationPainter? above from Corinthian Isthmus (since introduction in rP12839).

Note: See TracTickets for help on using tickets.