Jump to content

Scallact

Community Members
  • Posts

    35
  • Joined

  • Last visited

Posts posted by Scallact

  1. A temporary solution I found, useful if you are not confident with copy-pasting into a hex editor, is with a nice little command line utility: Swiss File Knife.

    It's multiplatform, and doesn't even require an installation. Just put the executable near your files and run it in a terminal.

    The useful command it provides is "partcopy", which allows to copy part of a binary file to another.

    An example command, to transfer elevation from a 385x385 uncompressed 16 bits greyscale .tif to a large .pmp :

    ./sfk partcopy [source_name].tif 8 296450 [map_name].pmp 16 -yes

    The number in the middle is the number of bytes. It must be adapted to the map's size:

    map size        tif(px) bytes
    -----------------------------
    normal          257     132098
    medium          321     206082
    large           385     296450
    very large      449     403202
    giant           513     526338 

     

    • Thanks 1
  2. Yes !!! We need that !

    16 bits import ability is the only missing link between elevation files and the Atlas. I have a GIMP plugin nearly ready, for the creation of elevation files, but I'm hesitant to publish since the import learning curve is too high.

    Your idea of a GIMP plugin for .pmp export is nice too, that would perfectly fill the gap. Before anyone asks, I don't think I would be able to write such a plugin with my current python level. :-) I might still try to look at it in the (not near) future if nothing moves on this front.

  3. 27 minutes ago, LetswaveaBook said:

    So in all genius it was decided that the olive tree should be a source of food

    You surely meant "wood" instead of "food"? :D

    Too bad you didn't bring it up during the long release candidate testing?

    Like, it seems no one tested the Atlas during that phase, and now all textures are just a single color in the interface. (I'm a culprit too)

  4. 2 minutes ago, vladislavbelov said:

    In Atlas you can place entities (simulation objects, units you can control, etc) and actors (just visual objects without interaction). So you can make a 3D model, import in the game as an actor and place on a map.

    So we are back to the "external software - mesh import" model. Which is exactly what I do with my plugin.

    You know what would be extremely useful ? An Atlas mesh import function which doesn't crush the heightmaps to 8bits. :-)

  5. 18 minutes ago, smiley said:

    Not worth to reimplement any fancy image processing algorithms. Players can't wait too long. But if the underlying thing is some sort of gradient noise based, it might be doable.

    See above! TL;DR : yes, I use some advanced image processing algorithms ! ;-) At least, the "Solidify" G'Mic algorithm is the basic concept of it all.

  6. 2 minutes ago, vladislavbelov said:

    I'm afraid generating good mountains in JS might be very slow, especially if try to simulate an erosion process. Using precomputed assets (like heightmap mountain brushes) might work though.

    FYI, I don't use an iterative erosion process at all. But:

    • The base noise is generated by the "solid noise" GIMP algorithm
    • Then, some random pixels are spread with the "Poisson disks" (blue noise) algorithm (G'mic)
    • Those pixels sample the values on the noise layer
    • The main render is then computed by the "Solidify" G'Mic algorithm. It computes a Delaunay triangulation between the pixels and fills the triangles with the interpolated gradients.

    These above are the main ideas. Some operations are done twice and combined with specific layer modes. Some "distance map" from GIMP is used for more regular mountains. A general "sea sedimentation" layer is added to have different levels through the map.

    So yes, all of this would be quite involved to implement in JavaScript, and probably not very fast.

    To give you an idea, the script runs in ~13 sec on my machine (i7-6700K @ 4Ghz, Geforce GTX 1080)

    Apart from layers operations, apparently the most computationally intensive is the "Solidify" algorithm.

    BTW, those algorithms could be implemented (if possible) separately, and then used in by the map script itself.

  7. 2 minutes ago, smiley said:

    Cool stuff, I tried using some fractal generators with pretty boring results some time ago. Just ended up being a bit too "rolling hilly" instead of mountainy.

    I personally would suggest porting the code over to our Javascript map generation library, or at least publishing the scripts.

    Those mountains look better than handcrafted ones currently existing and we have basically no procedurally generated ones..

    Thanks for your feedback!

    Of course I will share the script! It's a fully readable python plugin.

    However, it's a GIMP plugin, and makes use of GIMP procedures. Furthermore, it requires the G'Mic-QT plugin as well, in fact some of it's advanced capabilities are the basis of the height-map creation method. So, a direct JavaScript implementation might be tricky, because one would have to grab the internal GIMP and G'Mic algorithms. Or have GIMP and G'Mic as dependencies for the Atlas, which I'm not sure is a good solution.

    I'm certainly not able to do that. But 'm ready to share and describe the algorithms I used if someone feels brave enough to implement it. All of this is open source anyway.

    • Like 1
    • Thanks 1
  8. Hi! I'm currently coding a python plugin for GIMP to help create elevation maps with mountains.

    The aim is not only to picture realistic mountains, but also to make them suitable for interesting game-play. I think that mountains and relief should not just serve as obstacles, but as tactical features where one can use elevation to it's advantage.

    Right now, the plugin only creates one type of mountains, mainly rocky / faceted mounts, but with a lot of possible variations inside that type. I'll soon add some erosion factors which will allow to make hills and older mountains.

    The first version of the plugin should also have an option for symmetrical height-maps.

    For now, the process is mainly random, i.e. procedural. But a lot of parameters are tweak-able (although I'm trying to simplify things a bit for the interface). Most notably, you can let the plugin choose it's seeds for the random generator well... randomly, and once it produces an interesting configuration you can fix some seeds and let the generator explore other variants inside that particular configuration. If that sounds complicated, it'll become clearer once you can try it. :-)

    Please note that the plugin only creates the height-map, it doesn't do any import into the Atlas. See this thread for that part, and scroll down to my tutorial for best quality import.

    But enough explanations, here are a few raw shots from 0 A.D's Atlas. Most mountains shown here are climbable.

    screenshot0017_m.png

    screenshot0024_m.png

    screenshot0026_m.png

    screenshot0034_m.png

    screenshot0035_m.png

    screenshot0040_m.png

    • Like 5
  9. P.S: A little word on the Long Dark: it's a survival game in its purest form. Most other survival games that I know have a first phase where surviving is a bit though, and then you just collect resources to build/craft more and more powerful things. Not at all in this game: it's survival from start to end. And the only possible ending is death (permanent in survival mode).

    It's the anti-hero of survival games, in a sense.

    And it's beautiful. Go check it if you like this kind of games.

×
×
  • Create New...