Lets talk Isometric

This forum is currently in read-only mode.
0 favourites
From the Asset Store
Who wants to be a Millionaire Clone. An educational coding source
  • Come to think of it, you would need some way of setting up a grid internally.

    Off the top of my head I would probably go with

    For each object (ordered)

    Family object terrain

    ordered by x ascending.

    Used in conjunction with the array object you should be able to get x, y, and z stored fairly easy.

  • iso behaviour would be nice, since all iso stuff is pretty much doing the same thing. although i doubt any devs would have time for it so close to the 1.0 release and end of school year.

  • and you could always do your own map editor in construct

    plus, you've got square tiles, triangular tiles and hexagonal tiles. They're all made with just flat sprites (no skewing needed!) but placing is different. You can even do them using tilemaps (which I eagerly await ). It's very ad-hoc so I'd say it's better to do a map editor oneself.

  • The grid suggestions are decent and you should put them on the feature tracker; they'll definitely make it into 2.0.

  • Rich

    All right, added offset grid to the tracker. Although we dont really need it for iso, it would be a big help visually. Plus it could be used with other types of maps like hex.

    Quasi

    Yeah I figure we better start figuring out exactly what we need, just saying we need an iso behavior is going to leave things way to open, especially since there are so many ways to do it.

    We need to start identifying any features, optimizations, before someone starts making a behavior.

  • iso movement, with elevation possibilities and iso path finding. those are basic things that it needs

  • Ok well one way to create an iso movement would be to use the grid behavior on a separate layer.

    You then rotate that layer 45 degrees, and set its zoom to x= 200.

    But any thing on that layer will be rotated, and scaled by twice its width.

    http://dl.getdropbox.com/u/666516/isogrid2.cap

    I suppose you could compensate beforehand by rotating, and scaling the sprite.

    Better would be to figure out how to have another layer set to normal, but the sprite would follow a dummy sprite on the rotated layer.

    As you can see from the cap the sprite will get x,y from what ever layer its on regardless of what you tell it to follow.

  • 45 degrees

    ...30 degrees. Well, 35.264 degrees to be exact.

    In any case, that'd work for floor tiles but anything with height looks crappy with that effect. It's not how isometrism works.

  • iso behaviour would be nice, since all iso stuff is pretty much doing the same thing.

    Just occurred to me: wouldn't be the Grid Movement be really helpful here?

    I tried and it lacks some really simple stuff to work.

    -instant displacement if speed is set to zero (having a really large speed works but it's kind of inelegant).

    -move vertically AND horizontally: currently you can tell it to move either vertically or horizontally. Custom grids can take any shape but they're regular and you can always fit them into a square grid with some redundance. In an iso grid you'd move 1down+1left, 1up+1right, 2left or 2right. The grid would be half the width of a tile and the height of a tile, centered on a tile.

    With vertical+horizontal grid movement you can even do hexagonal tiles or any weird regular discrete mappings you can come up with. No idea about Z though if it's a multiple of tile height it would work with this too. Maybe a custom movement axis?

    Perhaps this is simple enough to implement?

  • > 45 degrees

    >

    ...30 degrees. Well, 35.264 degrees to be exact.

    In any case, that'd work for floor tiles but anything with height looks crappy with that effect. It's not how isometrism works.

    It depends on the angle of the tiles, yes 30 degrees is the standard measurement, and 26.565 is for pixel perfect. You can set the angle to what ever you want, and adjust for it in the zoom.

    Im not sure what you mean by effect, the angle, or layer rotation?

    > iso behaviour would be nice, since all iso stuff is pretty much doing the same thing.

    >

    Just occurred to me: wouldn't be the Grid Movement be really helpful here?

    I tried and it lacks some really simple stuff to work.

    -instant displacement if speed is set to zero (having a really large speed works but it's kind of inelegant).

    -move vertically AND horizontally: currently you can tell it to move either vertically or horizontally. Custom grids can take any shape but they're regular and you can always fit them into a square grid with some redundance. In an iso grid you'd move 1down+1left, 1up+1right, 2left or 2right. The grid would be half the width of a tile and the height of a tile, centered on a tile.

    With vertical+horizontal grid movement you can even do hexagonal tiles or any weird regular discrete mappings you can come up with. No idea about Z though if it's a multiple of tile height it would work with this too. Maybe a custom movement axis?

    Perhaps this is simple enough to implement?

    Yeah grid movement has exactly what we need for movement, just needs a few more commands to be useful.

    Then again if you wanted a Diablo-esque type of game all you would need is the rts behavior.

    That is if you use the layer rotation way I posted.

  • I'm making my own isometric engine and i can tell you now, the hardest thing to do is the Z sorting

    Movement and height i've got done, collisions are almost done (bit of a physics problem)

    But sorting has be completely stumped.

    I've tried (Y + Z) / 2 which would -seem- logical but i suppose i'm also trying to make 2x2x2 size objects work with the same logic as 1x1x1 and it's not quite working as intended

    There's no need for any other grid, you don't even actually have to have the typical diamond shape squares, the movement is the same regardless unless you're going for a more of a retro look

    I'm using true isometric though rather than oldschool iso so the old '2 across, 1 up' doesn't exactly apply

    basically, i've got a proper iso engine IF you don't want to have the Z axis. Sorting with the Z axis is a pain and if anyone can help me please do

  • Well... I made a little iso engine that seemed to deal with the Z order problem okay.

    You just have a layer for each depth, and then order objects within each layer by their Y position. It's really limiting if you want to have completely variable heights (like how X and Y coordinates are continuous), but if you just want simple floors, it seems to work reasonably okay.

    (I think there are probably at least six better ways to do it, but if you want to look at the engine, you can. This one only solves the problem for the character, but I was able to make one that updated all the terrain as needed, using a similar method.

    http://dl.getdropbox.com/u/906550/iso%20demo.cap

    I hated this engine so much that I scrapped it and started over, hoping to make something based on a built-in map editor. But nothing to show for that yet.)

  • That's pretty sweet bro, reminds me of fallout perspective + echochrome

    I'm not sure if mine would work with your method as i'm having/going to have lots of variable heights (eg: moving elevators, jumping etc)

    I've uploaded various caps over this engine's production, if anyone wants me to upload the newest one i can, however the problem is pretty much the same in all of them.

    I was gonna say i don't like people stealing my code but i don't mind if you credit me if you use it

    But i guess i just did lol

    I've redone the graphics to be a little more consistant with the height variables and such that i was using. I made the graphics relatively hi res because you can zoom in with the mouse wheel and slow time with E and Q, i put those in for finding bugs

    wasd for moving, player always turns towards mouse. I kinda like the idea of fps type controls in an iso game, allows for precision combat (when i put it in)

    http://www.mediafire.com/?xyjvkxvtmo2

  • Currently there is no real support for an isometric type of game, so I figure if we want it in the future we better start talking about what features are needed, and what can be done with what we already have.

    To start off one feature I think would help out a bunch is a way to configure the grid to make it easier to place tiles. The thing is there are two problems with a grid like this. First off the grid would need two different sets of rows. One row starting at the edge of the layer, then the next offset by half a cell's size.

    <img src="http://dl.getdropbox.com/u/666516/triangledotpaper.jpg">

    Secondly the ability to have tiles overlap. I suppose what would be needed is a way to force tiles to snap to grid points at hotspots, or image points.

    <img src="http://dl.getdropbox.com/u/666516/iso1.png">

    Next the user would need a way to change the standard 8 directions, to compensate for the change in angles.

    Now I realize this stuff can be done already with a few workarounds, Im just saying this stuff would help a lot. Feel free to add any other suggestions.

    Also Im sure many of have seen the 3d proof of concept demo posted here many months ago.

    http://dl.getdropbox.com/u/666516/3dproofOfConcept.exe

    Even though this isn't true isometric, I think its worth delving into for this type of game.

    Im pretty sure the demo uses 3d boxes, so that means in order to use them there would have to be a few additions to that object, like the ability to find a certain face, and the ability to change textures on the fly, etc.

    I really don't like to bring up old post but newt do you happen to have the cap to this file.

    if you don't can you make a new one please!

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • Sorry don't have the cap, and as I remember the cap stopped loading several versions ago.

    I think Glamthaus was it's creator.

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