oosyrag's Recent Forum Activity

  • Alternatively, as I always like to suggest, use an invisible helper sprite object pinned to the text object. Putting them in a container together would help facilitate picking as well.

  • I got the cell centers. Next to get the vertices. dropbox.com/s/dr6abkphr8k4egd/Noise%20graph.c3p

    reddit.com/r/proceduralgeneration/comments/mriko7/reverse_worleyvoronoi_noise

    Basically followed the first reply for finding the local minimum by checking each adjacent pixel iteratively. Might be resource intensive to do so in real time? But should be negligible if you do it one time on start of layout to build an array with all the node coordinates.

    The second reply would be how to proceed to get vertices.

    Third reply seems to be an elegant way to extrapolate the nearest minimum or maximum by just comparing the neighbors of a single point and their slopes. I vaguely understand the concept, but haven't really wrapped my head around how to implement it.

  • Thought about this some more... Since cellular noise and Voronoi noise using the same seed results in the same cells, you can run a search from any given point using the cellular noise data. Check each adjacent pixel (or other arbitrary resolution) from that point to see which has a higher value, loop until you reach the highest value. That would be the origin of that cell, which can be transposed on to the Voronoi noise map.

    If you have a set of node coordinates for each cell, you can use Delaunay triangulation to build a second set of coordinates, which would be the vertices. From those you can define edges which would be the cell borders.

  • I believe there is an angry birds type example on the start page.

    Edit: editor.construct.net

  • Sounds like a good excuse to have the customer keep you on a retainer for updates.

    I do think it's a valid concern though, and I don't think it is currently possible in C3. It's going to be one of those compromises you'll have to accept for using a third party engine as your primary development software.

    Perhaps file a suggestion

    at construct3.ideas.aha.io

    Edit: Note that this is probably undesired for most people by default. Besides the loss of optimization, it's very easy for end users to abuse the accessibility of assets, leading to the game being broken or cheating. Imagine what could happen if you made a particular object bigger or smaller, or transparent when is is supposed to be obscuring, ect. Normally you want only the developer to be able to modify game assets. So your customer can license C3 and you can provide them with the project file to edit themselves, or they can retain you to update the game for them when they send you new assets.

  • Int does removes the decimals. It effectively rounds towards 0.

    Floor rounds towards negative infinity.

    Ceil rounds towards positive infinity.

    Random gives you any number from the lower bound up to but not including the upper bound.

    Round(random(0.5,100.5)

    Floor(random(1,101)

    Int(random(1,101)

    Floor(random(100))+1

    Int(random (100))+1

    Are all equivalent, use whatever whatever you like.

    Ceil(random(100)

    Is also basically the same thing, except you have a negligible chance of actually getting 0. And since I'm being needlessly pedantic now, I believe JavaScript uses a 53 bit float, so the actual chance world be around 1 in 90 quadrillion or so.

    int(random(1,100)) can never result in a 100 though, while round(random(0.5,100.49)) has a 1% less chance to get 100 compared to 1-99, and round(random(1,100)) would have half the chance of getting 1 or 100 compared to the other numbers.

  • I believe so.

  • Try Construct 3

    Develop games in your browser. Powerful, performant & highly capable.

    Try Now Construct 3 users don't see these ads
  • (int(random(1,101)) if you want to include 100.

  • To check an object with other instances of the same object, use a family.

    To check neighboring positions, use the overlapping at offset.

    To check multiple positions, right click the event to change it into an or block.

    Alternatively, you can use the system condition pick overlapping point to check the 4 neighboring positions, then check if pickedcount is < 5, including the center object.

  • Normally you would use an array for this, which already has indexes built in and easily accessible.

    As for spelling something gradually, you might look into the left, right, and len system expressions, to get part of a string.

    Tokenat is also an option, as a method to store and retrieve multiple values as part of a single string.

  • Use mysql with android apk ? php or json

    Yes. Use the AJAX plugin to request post to a php URL with a mysql database behind it. construct.net/en/make-games/manuals/construct-3/plugin-reference/ajax

    There is a JSON plugin as well.

    construct.net/en/make-games/manuals/construct-3/plugin-reference/json

    Use Facebook login with android apk ? "maybe see friends"

    Yes, you can use Facebook log in. I don't believe the plugin has any functionality to access the friend list, although you might be able to do something directly with JavaScript, which C3 also supports.

    construct.net/en/make-games/manuals/construct-3/plugin-reference/facebook

    Otherwise, the Facebook Instant Games platform may have different functionality you might be interested in.

    construct.net/en/make-games/manuals/construct-3/plugin-reference/instant-games

  • I also ran into this logical roadblock when dabbling with procedural generation. How to get nodes and edges from a procedural Voronoi map? The data is there but how to get to it to utilize it...

    I think if I had continued I would tried layering it on top of another procedural map, for example terrain/elevation, to further further modify the elevation values or add terrain features to suit a particular biome, based strictly on the value returned by the Voronoi noise at each coordinate.

    Another idea I had, if using the Voronoi noise pattern to define spaces like on a board/tactical game for example, would be to use some sort of flood fill algorithm on any given spot until the returned value changes. Then at least I would be able to get the top/bottom/left/right bounds of any cell area, and maybe use the center of that as a node position. Defining edges between nodes should be simple enough from there.

    For a more accurate node position, you might be able to count and weigh the number of tiles/pixels in any particular cell and see how many fall in each quadrant relative from the "center". That might be just running the actual Voronoi noise algorithm backwards, I don't know. The formula should be out there.

    No ideas on how to get vertices and their edges though, to draw borders between cells or implement something like a river between biomes...

    Sorry if this doesn't help much, just thinking out loud. I didn't get very far in my experiments myself. I suspect you'll find more insight at /r/proceduralgeneration/ than on these forums, even if they aren't familiar with Construct. They would probably have more ideas and experience on how to use and apply the results by themselves even when the generation of the noise is obfuscated.

oosyrag's avatar

oosyrag

Member since 20 Feb, 2013

Twitter
oosyrag has 39 followers

Trophy Case

  • 12-Year Club
  • Forum Contributor Made 100 posts in the forums
  • Forum Patron Made 500 posts in the forums
  • Forum Hero Made 1,000 posts in the forums
  • Regular Visitor Visited Construct.net 7 days in a row
  • Steady Visitor Visited Construct.net 30 days in a row
  • Enduring Visitor Visited Construct.net 90 days in a row
  • Unrelenting Visitor Visited Construct.net 180 days in a row
  • Continuous Visitor Visited Construct.net 365 days in a row
  • RTFM Read the fabulous manual
  • Email Verified

Progress

22/44
How to earn trophies