Isometric Grid?

Not favoritedFavorited Favorited 1 favourites
  • 13 posts
From the Asset Store
Snap to visible grid - perfect solution for any game genre
  • Hi everyone, I would like to know whether Construct 2 can properly support building an isometric farm/Island Paradise–style game.

    My main challenge is implementing a functional isometric grid for object placement.

    For example, when the player buys a plot of land and places it on the ground, I need a system that checks the exact grid cell, ensures correct spacing, prevents overlapping objects, and blocks placement if that isometric tile is already occupied.

    Because Construct 2 uses rectangular bounding boxes for sprites, I considered using smaller “sensor” sprites to detect tile occupancy, but this feels inefficient.

    Is there an ideal workflow or technique for handling a true isometric grid, tile snapping, and placement validation in Construct 2? I have been stuck on this for weeks and would greatly appreciate any guidance.

    PS: In the image, you can see the green tiles I placed to behave as “sensor” cells where plots can be positioned. However, I am not managing to make this system work correctly. The sensors are supposed to define which isometric grid cells are free or occupied, but the placement logic keeps failing. What would you recommend as the best way to handle tile detection, occupancy checking, and plot placement in an isometric grid in Construct 2?

    Any advice would be greatly appreciated. Thank you very much for any help.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • Snapping can be done by converting the xy positions to isometric, snapping that and converting it back to xy.

    Xy to iso:

    ix=y+x/2

    iy=y-x/2

    ISO to xy:

    X=ix-iy

    Y=(ix+iy)/2

    You can modify those slightly to align the grid from somewhere different than (0,0) to say (cx,cy):

    Xy to iso:

    ix=y-cy+(x-cx)/2

    iy=y-cy-(x-cx)/2

    ISO to xy:

    X=ix-iy+cx

    Y=(ix+iy)/2+cy

    And finally the snapping formula:

    Int(X/grid)*grid

    Combined snapping to an isometric grid would look like this:

    set x to sprite.x-corner.x
    Set y to sprite.y-corner.y
    Set ix to int((y+x/2)/grid)*grid
    Set iy to int((y-x/2)/grid)*grid
    Set x to ix-iy+corner.x
    Set y to (ix+iy)/2+corner.y

    After snapping you only need to check grid positions to see if an object is there. Whether that be picking objects at an xy or the closest to an xy that’s a small distance away. You could also check if an object is overlapping a point if you setup the collision polygon to only overlap the base of the object. You could also use an array to store the object’s snapped isometric coordinates *grid. But you’d need to select a corner so that those values aren’t negative.

    The simplest is probably just setting the object’s collision polygon to just cover the base, then put all your isometric objects in a family. Then you’d know if a space was occupied with a condition like:

    System: family overlaps point x,y

  • I considered using smaller “sensor” sprites to detect tile occupancy, but this feels inefficient.

    Why do you think that’s inefficient? That’s actually how I’d handle it - place invisible sensor sprites in the layout editor and use them for tile detection, positioning, and grid snapping.

  • Thank you for replying!

    I don't know but I can't make it work right, would de create a exemple please? Or sell me a template of it please? I can't make it right T-T

  • I’d rather help convey ideas and suggestions that you can implement instead of making the game for you or taking your money.

    What specifically are you having trouble with? I’m sure showing what you have and listing what’s not working can allow more people to maybe help.

    If there’s ever something you can’t figure out how to do, there also is some simpler variation you can do to build your skills.

    For example: have you tried your hand at doing all that logic with just squares instead of with an isometric grid? That would be one approach to work out the logic easier and you’d just make it isometric afterwards.

    Or you could forget all the math and do it a different way.

    1. Add a sprite for an isometric square and call it “square”. Draw it as an isometric square and put the image origin at the bottom corner.

    2. Place a bunch of them down in the editor to make your iso grid just like the image of a grid you posted. To assist, you can turn on the editor’s grid and make the grid width to half the square’s width, and the height to half the square’s height.

    3. Add another sprite for the isometric objects you want to move around. For example a “cube.” Draw an isometric cube and set the origin at the bottom corner. You can customize the collision polygon so it matches the image better if you like. Place one or more of those on the layout on top of the squares.

    4. Next let’s get it ready for events. Add the drag drop behavior to the cube, and add an instance variable number to the square sprite and call it “occupied.”

    5. Ok now events. The logic we are going for is to lock the cube objects to the nearest squares when not dragging. And we set the square’s occupied variable to true when there’s a cube on it so we can tell if a square is free or not.

    Then events would look like:

    Start of layout
    — square: set occupied to 0
    
    Start of layout
    For each cube
    Square: occupied=0
    Square: pick closest to cube
    — cube: set position to square
    — square: set occupied to 1
    
    Cube: on drag start
    Square: pick closest to cube
    — square: set occupied to 0
    
    Cube: on drop
    Square: occupied=0
    Square: pick closest to cube
    — cube: set position to square
    — square: set occupied to 1
    
    For each cube ordered by cube.y ascending
    — cube: move to front

    And viola! Basically no math to snap objects to empty spaces on an isometric grid. And ripe to be heavily tweaked to any more complex behavior you like.

  • Hi R0J0hound, good evening! First thank you very mutch for your time and trying to help me, very kind of you.

    Let me be clearer, in 2012 I played a game called Island Paradise by Meteor Games, it was very relaxing because it was a beach farm game, and this game ended because the company invested in 5 games at the same time and couldn't sustain itself, however, to this day I have this dream of recreating this game, and my reasons are:

    1. I am a 2D illustrator and animator, graphic designer and compositor, and I like to create, this first reason led me to believe that I could make a game like that. (of course, at the time I had no idea what programming was, so in 2018 I chose Construct 2 because it is more intuitive and doesn't require C# code, for example)

    2. I loved playing this game and I miss it.

    3. I know that many people still want this game back today.

    4. From 2018 to 2025, I managed to overcome many obstacles on my own. I managed to create a makeshift system that mimics isometric views in Construct 2, with animations of waves around the island, a day, afternoon, night, and dawn cycle, grass that randomly grows in the island's green area, different types of footstep sounds for different types of terrain, fireflies appearing at night, the swaying of tree foliage in the wind—in short, I managed to create this part of the natural environment that was important to me. I also bought a course (the only course I could find on the face of the earth about how to create a farm game in Construct 2, and it teaches mechanics that I'm putting into the game, such as the action bar and the shop, for example...). So, this is why I don't want to give up on my dream, considering all the time and resources I've already invested in it.

    5. I want to publish this game on Steam because it's not a clone of Island Paradise. It has similar mechanics, but there's something that differentiates my project, and I want to be able to finish and publish this game.

    6. I haven't found anything anywhere on the internet. I've already asked for help here on the forum, on Discord, in all the YouTube videos I've watched, I've searched on various websites that sell templates and tutorials, and nothing. The closest I've come to getting help is here with your answer.

    7. My last reason for wanting to finish this game is that I have a wife who believes in me, even when I don't believe in myself anymore, and I want to do this for her too, and see her playing and having fun in a co-op game. I have to succeed.

    Neither the GPT chat nor Claude could help me; they don't understand Construct 2. They understand the mechanics, but they can't create an effective tutorial. I've tried dozens of times, and I'm still trying. I'm frustrated right now. Sometimes I stop and dedicate myself to polishing other areas of the game, producing music, sound effects, graphics, but in the code part, I feel like I'm going around in circles for too long. I don't have time to be a full-time game developer; I have to work, I have two young children, so the free time I'm dedicating to this project is precious, and I need to make it worthwhile. I need to make this system work.

    If you could sell me a template, it would help me a lot.

    I can share a video of the exact mechanics from a short gameplay, here is the link:

    youtube.com/watch

    Please help me get past this stage because it's fundamental to this project, and I can't do it alone.

    Thank you very mutch in advance.

  • If you are using C2, you can open the project in the free version of C3 to see how it's done.

    dropbox.com/scl/fi/y5eouixm70c7lim0oqnse/IsometricFarming.c3p

  • Hello, good afternoon dop2000.

    So, the reason I'm still using Construct 2 is because I started the project in it in 2018, and I wanted to make sure I could assemble the entire project in it before migrating to Construct 3.

    Thank you for your example, I'm trying to understand how it works now and adapt it to my version of Construct 2, but Construct 3 has much more functionality than Construct 2, I noticed that as soon as I started looking at your template, I don't know if I'll be able to do this conversion, and I don't want to invest in Construct 3 without being sure I'll be able to finish the project in it, so I'm having this dilemma.

    Thank you very much so far! (I contacted you on Facebook)

  • Consider that your isometric grid is just an array, you can even use a real array to store the data. The placement and angle of the cells is just math, where you need to offset each cell.

    Write a function that compares data in an array and returns true/false value. Then write another function that calls this function for each adjacent cell.

    Or am I misunderstanding something? Seems pretty straight forward to me.

  • Thanks RadioWaves for your explanation. I fully understand that for you this may seem straightforward, but even though I started using Construct 2 back in 2018, I was never able to study it in depth, because I had to work, and my background is in art, not programming. I really wish this were easier for me, but that is not my reality at the moment. I hope it won’t take me another five years to finish this project.

    I truly appreciate your help. If possible, I would like to ask if you could build a small template or example project using your array + function approach. Ideally the template would include:

    A sprite representing a character, who performs actions such as placing a plot of land, planting a seed, watering, and then waiting a certain time to harvest.

    The logic for allocating terrain cells via arrays, and for managing adjacent-cell checks via functions as you described.

    I’m willing to pay for this template. I really want to continue with my project and this would help me a lot. Thank you very much for your time and assistance.

  • I should clarify that I don’t make or sell templates. I can appreciate the desire to take on a coder to implement the game mechanics but I’m not your guy since I’m not available for such a time commitment.

    With my limited time I like answering posts with ideas or concepts on how to do things. But rarely am I able to provide complete solutions that don’t have to be adapted to your project.

    Anyways. There’s already a few examples to try here in this topic. Dops example can be made in c2 no problem. It’s not using any new c3 features. Isn’t it possible to just recreate a c2 project in the same way as the c3 one?

  • Thank you for your example, I'm trying to understand how it works now and adapt it to my version of Construct 2, but Construct 3 has much more functionality than Construct 2

    You can definitely recreate my example in Construct 2 — it has all the features you need. It just requires a bit of effort on your part, rather than waiting for someone else to put the whole project together for you.

  • Good morning everyone! First of all, thank you very much for all the help and examples, I think with this I should be able to do it.

    Regarding effort on my part, I put in a lot of effort, every day after work, and when my two children are asleep I develop the project until the power goes out, yesterday was no different, I went until 4:30 in the morning and with your help I managed to advance this part of the farm, and I started developing the store as well.

    I just asked for a template and offered to pay for the service (I didn't mean to offend anyone, it would just be good to have help with the code so I can focus my limited time on the artistic part which also takes a lot of time, drawings, animations, sound effects, music, you know how it is, right?)

    Regarding the difference between Construct 3 and 2, yes, they are quite different, apparently Construct 3 has many more settings that Construct 2 doesn't have, so adapting a file from 3 to 2 is already a mission that requires technical effort.

    But yeah, I believe that with what has been said here I should be able to do it, so thank you very much to everyone who responded kindly!

Jump to:
Active Users
There are 0 visitors browsing this topic (0 users and 0 guests)