Jump to content


Photo

Isometric Battlemap Engine

design feedback

  • Please log in to reply
26 replies to this topic

#1 True_Predator

True_Predator

    GMC Member

  • GMC Member
  • 655 posts
  • Version:GM:Studio

Posted 06 February 2014 - 08:18 PM

Project CoinPurse Isometric Engine

 
First, I will start off with this is a discussion on the development of an Isometric engine that I am currently working on as well as isometric and it's use in games as well, but given I am having a lot of success with it so far I want to make it available for other forum member's projects once I have it completed. The design is aimed at specifically Tactic style battle maps, where the map isn't going to be a large over world map, but instead a small section that battles take place in, like nearly every tactics game. With this in mind you can add in a few more effects and manipulation then you could if the map was really large and not take the performance hit.
 

Edit: Updated Information
:::

Currently there is no ETA on when it will be available, I am currently waiting for some of the newer functions and optimizations coming with GM:S 1.3 so I can streamline certain parts of the engine further so it will be much more efficient. Using early access will get me a heads up on it, but it's still not really usable for everyone even then. As there is no ETA on GM:S 1.3 itself (/cries)  I can't say how long but I really want to use the newer features with that version, but if push comes to shove it can be optimized later.

 

You can see a few more screenshots on my imageshack link found here: https://imageshack.com/a/rrVq/1 there as some graphics there as well I used to explain how I handle depth which I will make a blog post on soon using those so try not to pay to much attention to those ;).

:::

 

Older in-editor screenshot of tile stacking.

w2ej.png

 
 
Some notes on how the engine currently works:

  • Everything is setup in a 2D grid and uses this grid for movement, collision checking, or pathing options. This is translated based on the grid cell size into isometric coords then is drawn to the screen. While using the mouse or moving a character everything is being translated to appear in the correct positions. This is great for using GM's built in path finding and was a major focus to have it compatible to make it much easier to implement movement.
  • Mouse coordinates are translated in reverse to get it's current position on the grid and thus the position in the isometric field. There are options to tweak this so players/ dev's can change how the mouse behaves over the screen when it comes to selecting tiles.
  • While movement is based on grid-locking you can easily move about like normal but the engine relies on the fact stuff is locked to a grid to maintain certain effects such as grass on a tile overlapping a character on that tile and free movement can cause a few glitches. Depending on the size of your isometric tiles you will have range of effective depth per tile for effects like grass or the player, so there is freedom for multiple effects per tile and order in correct depth.
  • As with any isometric engine it's hard to take into account anything larger then a single tile when it comes to depth. I have a few tricks I think may work but again it will still be an issue.
  • The terrain IS tiles and because we have everything locked to a grid it is not hard to find the tile you are currently on, since on that space we know our depth and our position we know the tiles as well and is a quick look up

Demo
As the status update I made the other day mentions, I came across a fun effect when I was messing with terrain smoothing functions. This can be found here: http://host-a.net/u/...ult-1.0.0.1.zip
This is just a demo of the effect I mentioned, but you can mess with the terrain a little. It is an older build and things have changed with how some aspects are handled mainly the actual tiles. But some instructions on how to use:
 
"Left Click": Raises terrain
"Right Click": Lowers terrain
"Enter": Disables/Enables the Shockwave constant refresh
"R": Randomizes terrain
"T": Flattens Terrain
"P": Applies a first pass of smoothing on the terrain (shockwave works by constant running this script)
 
When raising or lowering the terrain you are only moving the tile at that position! So it will not fill in under it. Remember this is more a tech demo and proof of concept.
 


Water Effects

One of the harder things to do is add water in an isometric engine. You can place standard water tiles to be sure and work fine but everyone always asks for reflective water.

p4jz.png

 

 

This is an older screenshot and have currently changed how I achieve this but the effect is still the same, using xygthop3's ripple shaders found here http://gmc.yoyogames...howtopic=586380 big thanks for those, and some surface manipulation+texture I can get water that will ripple and maintain depth depending on whats in front or behind the water. I am still heavily working on this as there are still some bugs but I will make note about the main thing: Reflections. You can't simply "flip" and isometric sprites and have a reflection, try finding an isometric image and making a copy and flip it to see what I mean. Because of the angle we use it's not a real good way to do so. I "cheat" on my example above by the fact the tiles are very simple ;). It really depends on how you have your sprites made, some isometric sprites with a little modification pass for reflections and some obviously do not xD. I can not guarantee that this might make it in a public release simply because I am not gonna say there is water with reflections and get bombarded with messages saying peoples reflections look weird xD.

I also have working animated water using a strip of backgrounds without a real performance hit (my setup could handle 5k tiles being animated at normal speed) and given the aim is for WAY smaller maps it should be a feasible alternative.
 
 
 
 
 
 

Discussion Points

The engine is being made for a personal project and performs the functions needed currently, but I want input from the community on what an ideal engine for them might be.
 
What kind of features would you like to see?
 
What might you want to be able to do on a combat map in a tactics game that you have seen in other games or perhaps you haven't seen?
 
Would features like the ability to go over and under terrain like bridges and arches be something you'd want? This pertains to using the tiles int he map and not other objects in the game to simulate the effect.
 
What about water? What are some things you'd love to see differently done?
 
Terrain features? Map editors? with effects like Noise/Perlin? Hill tools? Randomized terrain? importing height maps?
 
What kind of engine features would you like to see that helps make it easier for your end?
 
 
 
I appreciate any input or idea's you may have :D


Edited by True_Predator, 19 September 2014 - 10:40 PM.

  • 8

My deviantart page: http://truepredator....rt.com/gallery/    
My Imageshack: https://imageshack.c...r/true_predator :: Signup yourself by visiting this link *please :D*: https://imageshack.c...HZpaelpWdkphpng

Visit my dev blog on my Isometric Engine. Subscribe / follow!   http://vohjiindev.blogspot.com/

 

Software used: GameMaker: Studio,  Spine Professional http://esotericsoftware.com/ 


#2 Panzergeist

Panzergeist

    Insane Box Man

  • GMC Member
  • 1241 posts
  • Version:GM8

Posted 06 February 2014 - 09:19 PM

Woah. Bro. That. Is. Frickin' coo.

 

Features I would like to see?

 

LIGHTING


Edited by DANT3, 06 February 2014 - 09:20 PM.

  • 0

[ ._.]> Where am I...


#3 True_Predator

True_Predator

    GMC Member

  • GMC Member
  • 655 posts
  • Version:GM:Studio

Posted 06 February 2014 - 09:34 PM

Very rudimentary lighting is in place....and I mean very very basic. I have resources for possibly more interesting lighting potential (even the terrain casting appropriate shadows). Seeing how it's 2D and isometric on top of that things like lighting and water become much harder. I have messed around in 3D mode and made a basic test but it doesn't have the same look to me, so I am sticking to 2D, but of course my overall 3D knowledge in GM isn't all that impressive so it may be much more feasible for a 3D mode with proper drawing but it seems 3D is more involved for most people then what they want.

 

Still on the idea board if I can get the look and feel I am wanting though and thanks for the comments :)

 

EDIT

 

Here is a screenshot of the shadow map being generated based on the terrains height and angle of the light. It's very early work you can see some area's not getting shaded and others getting a tad to much. Work in progress but is on the list.
vw9p.png


Edited by True_Predator, 06 February 2014 - 09:39 PM.

  • 1

My deviantart page: http://truepredator....rt.com/gallery/    
My Imageshack: https://imageshack.c...r/true_predator :: Signup yourself by visiting this link *please :D*: https://imageshack.c...HZpaelpWdkphpng

Visit my dev blog on my Isometric Engine. Subscribe / follow!   http://vohjiindev.blogspot.com/

 

Software used: GameMaker: Studio,  Spine Professional http://esotericsoftware.com/ 


#4 Braffolk

Braffolk

    Lumenus Team

  • GMC Member
  • 1010 posts
  • Version:GM:Studio

Posted 09 February 2014 - 02:06 PM

Nice!

Dynamic shadows would be cool  ;)


Edited by Braffolk, 09 February 2014 - 02:07 PM.

  • 1

xOVkpik.png

Custom sprite framework(GML): http://gmc.yoyogames...howtopic=669935

My main project ^o^ 2Volution GMC | GameJolt


#5 True_Predator

True_Predator

    GMC Member

  • GMC Member
  • 655 posts
  • Version:GM:Studio

Posted 09 February 2014 - 04:59 PM

If it was done in 3D to be sure ;D, which I currently have a rough mock up working as well, but 3D is another beast itself xD. Shadows are always tricky to do on 2D isometric when you deal with certain directions, but I have a few idea's that might provide a nice effect regardless, on the list when  get to it. Actually you gave me a few more idea's when you said dynamic, I haven't been working on shadows at the moment mostly optimizing how I am working with the tiles and getting basic terrain editing in.

At the moment only diamond shaped isometric maps are made but any type should be supported. Easily makes 300x300 maps with no problems, that's 90,000 tiles with little if any frame loss on my PC. When I work through some more scripts to optimize I will probably make a WiP topic so I can get some of the basics in a demo for some testing on other machines to get an idea of where I should place limits.

 

Thanks for feedback :D

 

 

Edit:

 

I have started a personal development blog and here i'll be posting updates on the current progress of my Isometric engine along with any other projects I happen to be working on. Be sure to check it out and leave suggestion/comments on current development and with how I am blogging as I am very new it.


Edited by True_Predator, 10 February 2014 - 12:20 AM.

  • 1

My deviantart page: http://truepredator....rt.com/gallery/    
My Imageshack: https://imageshack.c...r/true_predator :: Signup yourself by visiting this link *please :D*: https://imageshack.c...HZpaelpWdkphpng

Visit my dev blog on my Isometric Engine. Subscribe / follow!   http://vohjiindev.blogspot.com/

 

Software used: GameMaker: Studio,  Spine Professional http://esotericsoftware.com/ 


#6 Yal

Yal

    Even though the GMC may be gone, our love will prevail eternally

  • Global Moderators
  • 11774 posts
  • Version:GM:Studio

Posted 10 February 2014 - 11:50 AM

What might you want to be able to do on a combat map in a tactics game that you have seen in other games or perhaps you haven't seen?

 

Objects that are treated as tiles for purposes like dynamic shadows and pathfinding? I'm thinking crates you can walk on, push, maybe lift-throw around. A bit game-specific, though.

 

Layered tiles (bridges etc) would also be really cool, especially if they could be found by the pathfinding algorithm easily. That could let you design cool stages for your tactics game, such as a spiral staircase.

 

And if I haven't stated this flat-out, an included path-finding algorithm (or, I mean a basic A* algorithm that returns all cells you can reach from a certain cell given a start height and a maximal move and jump up/jump down parameter). Even if the tile engine is snazzy, it will be hard to use for a TRPG if you don't know how to set up pathfinding because the tiles are stored in a complicated way in the engine.

 

 

 

Tip BTW: Check out this article, it is about stacking tiles and might have a tip or two you can use.


  • 0

- The above is my personal opinion and in no way representative of Yoyogames or the GMC, except when explicitly stated -

 

Open this spoiler for my games:

Spoiler

Some useful game engines, music and other resources at affordable prices:

My collection of game resources at itch.io

 

New user? Can't draw but want to look unique? You can request a new avatar in this thread!


#7 True_Predator

True_Predator

    GMC Member

  • GMC Member
  • 655 posts
  • Version:GM:Studio

Posted 10 February 2014 - 02:25 PM

Objects that are treated as tiles for purposes like dynamic shadows and pathfinding? I'm thinking crates you can walk on, push, maybe lift-throw around. A bit game-specific, though.

 

Currently there is a "feature layer" on the map where such objects can be set. This is meant as a layer for tree's, barrels, crates or any object that might interact with a "Unit" and it's ability to move. This is meant to actually spawn objects in the game for interaction and the objects themselves can modify the "flow map" to slow or hinder movement.

 

 

Layered tiles (bridges etc) would also be really cool, especially if they could be found by the pathfinding algorithm easily. That could let you design cool stages for your tactics game, such as a spiral staircase.

Tip BTW: Check out this article, it is about stacking tiles and might have a tip or two you can use.

 

The difference currently is simply map size,  single layer 30x30 map saves out with just random values to 53kb. Now make it a cubed map at 30x30x30 and its 1.5 megs which is still very respectable size and not bad at all. This is with saving several variables per tile as the idea would be to cut back on the actual calculations the game would have to run and instead have most of it done in an editor and let the game read the data it needs. This is something I am working on to find a nice balance for and hopefully make it very easy for everyone. I am working on different way to save maps both to keep size down and let for bigger maps though honestly the whole idea for the engine is for small battle maps but it has worked so far for making large terrain you can move across.

 

I have so many separate articles from that site bookmarked individually its just not funny xD. It makes so many good points on a lot of design idea's and issues that everything there is worth a read.

 

 

 if I haven't stated this flat-out, an included path-finding algorithm (or, I mean a basic A* algorithm that returns all cells you can reach from a certain cell given a start height and a maximal move and jump up/jump down parameter). Even if the tile engine is snazzy, it will be hard to use for a TRPG if you don't know how to set up pathfinding because the tiles are stored in a complicated way in the engine.

 

This is where the plan to do everything on a normal, flat, top down grid then translate into isometric comes in. I already gave the built in pathfinding functions in GM a quick test and it seemed to be working great. It does have limitations though, the project the engine is deigned for, we actually want "Units" to be able to scale vertical tiles that it couldn't walk to (given a certain height). This is where I have a "Flow Layer" in the map where for each tile I store information regarding how it effects "unit" movement. I have spent nearly 2 weeks so far on the project and most (solid week+) of that has been directed at idea's and articles regarding isometric movement, different pathing algorithms, and many articles on Isometric design itself. 

 

The main goal was to let people use the built in GM pathfinding paired with information saved to the map create obstacles and general have a basic movement in using familiar functions. Obviously for my project I can't really use GM's built in one though I probably will at times for my own sake. but custom pathfinding scripts that can take into account terrain height even perhaps determine "jumping" tile gaps is on my future plans as I require them myself. I may release those as well with the engine, it's a lot of work and has been so far xD

 

.


Edited by True_Predator, 10 February 2014 - 02:28 PM.

  • 0

My deviantart page: http://truepredator....rt.com/gallery/    
My Imageshack: https://imageshack.c...r/true_predator :: Signup yourself by visiting this link *please :D*: https://imageshack.c...HZpaelpWdkphpng

Visit my dev blog on my Isometric Engine. Subscribe / follow!   http://vohjiindev.blogspot.com/

 

Software used: GameMaker: Studio,  Spine Professional http://esotericsoftware.com/ 


#8 True_Predator

True_Predator

    GMC Member

  • GMC Member
  • 655 posts
  • Version:GM:Studio

Posted 12 February 2014 - 02:05 AM

Spiral Staircase?... challenge accepted..

 

d5yu.png

(well it wasn't as pretty or dramatic as I wanted and I know a demo would be better..which is coming when I get certain things nailed down)

 

Well most of the challenge, until I get my rotate script working properly I had to judge on the back tiles as I don't have a "see behind" feature, which I won't really need once map rotation works... >.<, But the blue square can climb the stairs and keep his depth properly, even if the method was wonky it worked. Right now I am storing tile data in a 3D array using grids and lists that I am still working on to better support having multiple layers of tiles and make it more efficient.

 

Most if not all things I am currently trying to achieve at this moment is directly related to map editing. The idea is as well as providing scripts to draw maps into isometric along with other objects there will also be a map editor for people to get things made quicker and without having to make one themselves. I made a blog post on this on my newly started blog where I have been and will be discussing and blogging more on this project as I go. http://vohjiindev.blogspot.com/   (self promotion...new blog, forgive the very simplistic nature of it for now..)

 

Any and all feedback is appreciated, I have started looking at many other map editors that deal with isometric to get idea's of what might be wanted and transferring this over to being compatible yet efficient coding for when the game is running. Most of the hard work is simply letting the user edit and move the tile, ideally once the map is rendered in the game, there won't be a need to further change any one tiles values and as such we can condense a lot of the information down into a smaller file that is quicker to load and easier to use.


Edited by True_Predator, 12 February 2014 - 02:06 AM.

  • 0

My deviantart page: http://truepredator....rt.com/gallery/    
My Imageshack: https://imageshack.c...r/true_predator :: Signup yourself by visiting this link *please :D*: https://imageshack.c...HZpaelpWdkphpng

Visit my dev blog on my Isometric Engine. Subscribe / follow!   http://vohjiindev.blogspot.com/

 

Software used: GameMaker: Studio,  Spine Professional http://esotericsoftware.com/ 


#9 Braffolk

Braffolk

    Lumenus Team

  • GMC Member
  • 1010 posts
  • Version:GM:Studio

Posted 12 February 2014 - 12:29 PM

Awesome :D

Now do lighting!

 

P.S. Vitality???


  • 0

xOVkpik.png

Custom sprite framework(GML): http://gmc.yoyogames...howtopic=669935

My main project ^o^ 2Volution GMC | GameJolt


#10 True_Predator

True_Predator

    GMC Member

  • GMC Member
  • 655 posts
  • Version:GM:Studio

Posted 12 February 2014 - 09:40 PM

haha I will attempt the monumental task that is lighting when I have the core basics of the engine (tile handling) down and working without a hitch ;). Right now I just completed the ability to rotate the isometric map either clockwise or counter clockwise which I am super excited about because it's super fun to mess with. Once I finish that up (applying it to all layers) I will work on the mirroring effects (Vert, Horz, Diagonally) and make sure there is no further errors or glitches with the tile system after that. Currently not only can tiles be created and moved , they can be stacked on top of each other as well and each tile can have a height of it's own. The upper tiles still need scripts for checking if they should move or not depending if they are "touching" or within range to be moved. I have no collision detecting on current tiles so upper layers can be adjusted below others and a whole host of other little discrepancies I need to address and find solutions for. Most of the bulk work is setting up the needed code for proper map editing.

 

I blame Yal for mention spiral staircase.....I was fine with just 1 layer of tiles... but dammit it if she wasn't right that it would be cool to have battles on spiral staircases....

 

P.S. no worries, Vitality has priority and I'm sure you'll see more soon ;)


Edited by True_Predator, 12 February 2014 - 09:40 PM.

  • 0

My deviantart page: http://truepredator....rt.com/gallery/    
My Imageshack: https://imageshack.c...r/true_predator :: Signup yourself by visiting this link *please :D*: https://imageshack.c...HZpaelpWdkphpng

Visit my dev blog on my Isometric Engine. Subscribe / follow!   http://vohjiindev.blogspot.com/

 

Software used: GameMaker: Studio,  Spine Professional http://esotericsoftware.com/ 


#11 sub

sub

    EVIL GENIUS

  • GMC Member
  • 1905 posts
  • Version:GM6

Posted 13 February 2014 - 12:30 AM

nice work. (reminds me of ogre tactics)

 

...What might you want to be able to do on a combat map in a tactics game that you have seen in other games or perhaps you haven't seen?

 

...it would be cool to have battles on spiral staircases....
 

i've always wanted to interact with terrain and scenery pieces in battle

(it could've been simple as something like a 10% combat bonus if a furniture piece was adjacent?)

 

the potential to knock an opponent over a cliff, off a bridge (or a spiral staircase) would make for interesting tactics


  • 0

#12 True_Predator

True_Predator

    GMC Member

  • GMC Member
  • 655 posts
  • Version:GM:Studio

Posted 13 February 2014 - 01:06 AM

i've always wanted to interact with terrain and scenery pieces in battle

(it could've been simple as something like a 10% combat bonus if a furniture piece was adjacent?)

 

the potential to knock an opponent over a cliff, off a bridge (or a spiral staircase) would make for interesting tactics

 

Furniture could be tiles or an object either way the information would be there in the save file to do those sort of effects. You will also be-able to read the height anywhere on the map, with the tile layers this becomes a little trickier you will have to make checks for tiles at each layer till you hit a tile and get the overall height of the drop from there, but it is doable and I will make a note about that aspect (potentially a script to do get the fall depth depending on the tile your on and the direction the fall is going). Most of that wouldn't be exactly features included but the idea will be that IF you had an idea like that there should be a script for you to use to get the required information you need.

 

One thing I will point out when regarding many of the features is it relies on everything being in a nice grid, you can create a flat map for RTS style games and have free movement but when you start getting into multiple levels, rotation, and depth everything really needs to be snapped to key positions. I use this fact when dealing with the information stored in the datastructures as it makes looking up information very quick and you don't have to search through anything with for loops.

I appreciate the feedback and suggestions :D


  • 0

My deviantart page: http://truepredator....rt.com/gallery/    
My Imageshack: https://imageshack.c...r/true_predator :: Signup yourself by visiting this link *please :D*: https://imageshack.c...HZpaelpWdkphpng

Visit my dev blog on my Isometric Engine. Subscribe / follow!   http://vohjiindev.blogspot.com/

 

Software used: GameMaker: Studio,  Spine Professional http://esotericsoftware.com/ 


#13 Yal

Yal

    Even though the GMC may be gone, our love will prevail eternally

  • Global Moderators
  • 11774 posts
  • Version:GM:Studio

Posted 13 February 2014 - 09:45 AM

Now make it a cubed map at 30x30x30 and its 1.5 megs

 

30x30x30 is 27000. 53KiB*27000 = 1397.5MiB. All right, I guess I can't blame you for not trying to keep the size down since you're a factor 1000 smaller than the expected value ...wait a sec, I'm wrong, you have 30 times more data, not 30^3 times :P. When you increase the number of map data with a factor 30 (introducing height) you blow up the data size with a factor 30. Sounds feasible. I think... you could make this more efficient, by only storing [full] tiles and not [empty] tiles (since MOST tiles will be empty). But maybe you prioritize speed over size?


  • 0

- The above is my personal opinion and in no way representative of Yoyogames or the GMC, except when explicitly stated -

 

Open this spoiler for my games:

Spoiler

Some useful game engines, music and other resources at affordable prices:

My collection of game resources at itch.io

 

New user? Can't draw but want to look unique? You can request a new avatar in this thread!


#14 True_Predator

True_Predator

    GMC Member

  • GMC Member
  • 655 posts
  • Version:GM:Studio

Posted 13 February 2014 - 01:43 PM

Oh that was with the data structures(all 30) full of random bits (well each cell contained 5 values that was randomized between 001 and 999), it is indeed much smaller because I don't save empty tiles (they have effective value of just 0). This was to test pre-calculating certain map aspects ahead of time (doing all the for loops and certain effect checks) and store the result in the map save so the actual game part wouldn't have to run through these kinds of checks.

 

With using so many arrays and data structures I am hoping I can get away with it in the map editor and the actual scripts for the game be much simpler and not require as much data manipulation, so the game will have that much more resources for other things.


  • 0

My deviantart page: http://truepredator....rt.com/gallery/    
My Imageshack: https://imageshack.c...r/true_predator :: Signup yourself by visiting this link *please :D*: https://imageshack.c...HZpaelpWdkphpng

Visit my dev blog on my Isometric Engine. Subscribe / follow!   http://vohjiindev.blogspot.com/

 

Software used: GameMaker: Studio,  Spine Professional http://esotericsoftware.com/ 


#15 Yal

Yal

    Even though the GMC may be gone, our love will prevail eternally

  • Global Moderators
  • 11774 posts
  • Version:GM:Studio

Posted 13 February 2014 - 06:39 PM

You'll probably only ever have 1 map loaded in memory at a time in most games, that might be good to keep in mind. And most of the time you won't fill the entire map with tiles, either, rather using tall tiles whenever possible to save some map space. OK, then it sounds a bit better on the mem demands.

 

I like the idea of precomputing stuff like that, I've noticed that some map aspects get quite slow when you need to loop through them. In Shattered World, I had to replace for-loop-drawing the map with spawning tiles becuase of speed reasons, the compiled draw loop was heaps faster than my interpreted one.


  • 0

- The above is my personal opinion and in no way representative of Yoyogames or the GMC, except when explicitly stated -

 

Open this spoiler for my games:

Spoiler

Some useful game engines, music and other resources at affordable prices:

My collection of game resources at itch.io

 

New user? Can't draw but want to look unique? You can request a new avatar in this thread!


#16 True_Predator

True_Predator

    GMC Member

  • GMC Member
  • 655 posts
  • Version:GM:Studio

Posted 13 February 2014 - 09:23 PM

For my project to reduce as much load (and for loops) as possible I decided to pre-calculate almost everything I would need and store it in an array and simply use where the instance is to find the exact value I needed at any given spot. Then just on map load put down the tiles in the correct depths and use the database to tell instances what there depth needs to be, which I can do currently just by the position on screen without needing that information in the array (everything is locked to a grid and I can use this as very quick reference for what I need to know). Doing tiles this way I won't have all the extra information (the null for no tile) taking memory as when I'm loading the map I am only loading the tiles I need.

 

 

It has the disadvantage that after the map is loaded you really can not edit it any more. Though with the shockwave effect that would be really fun to see the terrain react to spells such as earthquake more then just shaking the screen...actually change the battlefield layout. My project does not involve spells so that kind of manipulation in the game isn't needed BUT I am definitely going to try and squeeze in that possibility outside of the editor. I'm building the editor more robust in terms of tile manipulation and making the scripts to use in the actual game as stream lined, optimized and efficient as I can. 

 

 

At anytime if ANYONE has an idea of how to do something in a better way please post it.... xD


  • 0

My deviantart page: http://truepredator....rt.com/gallery/    
My Imageshack: https://imageshack.c...r/true_predator :: Signup yourself by visiting this link *please :D*: https://imageshack.c...HZpaelpWdkphpng

Visit my dev blog on my Isometric Engine. Subscribe / follow!   http://vohjiindev.blogspot.com/

 

Software used: GameMaker: Studio,  Spine Professional http://esotericsoftware.com/ 


#17 Yal

Yal

    Even though the GMC may be gone, our love will prevail eternally

  • Global Moderators
  • 11774 posts
  • Version:GM:Studio

Posted 20 February 2014 - 08:36 AM

One way you could reduce load....

 

I take all tiles must be the same size (so you can access a tile's data by using its coordinates)? But you might be able to save some space by having tiles able to be multiple tile-snaps big, and have one "pointer" 3d grid that contains the ID of the tile in this grid cell, or 'none'. So to get data,

  • Compute grid cell
  • Get pointer
  • Go there and fetch data

It adds an extra lookup of overhead, but you could save space using it since you can merge tiles. In fact, you can have tiles that are other shapes than rectangles this way, you could for instance loop through and merge all identical tiles (boxsprite, decoration, ...) into one in order to save less data into the file. The only data that can't be combined is movement/neighbour data, since it applies to cells rather than tiles.


  • 0

- The above is my personal opinion and in no way representative of Yoyogames or the GMC, except when explicitly stated -

 

Open this spoiler for my games:

Spoiler

Some useful game engines, music and other resources at affordable prices:

My collection of game resources at itch.io

 

New user? Can't draw but want to look unique? You can request a new avatar in this thread!


#18 True_Predator

True_Predator

    GMC Member

  • GMC Member
  • 655 posts
  • Version:GM:Studio

Posted 20 February 2014 - 03:36 PM

Tiles, when created are stored in a ds_grid so I wouldn't have to use the tile coordinate functions. To find the tile simply find the position in the map with a layer value compare it to the ds_grid to grab the tile (or simple input the position/layer your wanting the tile information for). The whole idea is to translate what amounts to a top down game into an isometric projection by translating it's top down coords into an isometric one. Everything really relies on being arranged in a grid, it doesn't matter it's size or shape but as long as  A: Has it's origin located in 1 grid cell and B: Is defined by at least 1 layer to help differentiate the multiple tiles. Layers are not necessary (this is where the 3D array came in) but they have solved nearly every major depth issue so far and often you only really need a few layers. The thought was it would be much simpler to grasp and use for everyone if done this way and makes many more things like pathing even simpler to do or even use GM's built in functions.

 

Most of this honestly is to make editing the map that much easier, the actual data held within the game is way less, since in the game you don't need to find tiles (presumably), the depth for the tile was pre determined by the editor and saved as a value so layers are no longer needed nor do they need to be saved or used in a game. This makes the editor very heavy in tile manipulation and data storage but when it comes to using the map in a game the overhead on everything is dramatically reduced by having a single ds_grid that contains the important information such as the height, movement ability, objects present, and features at any given position on the map. This was the idea anyway to store any kind of information you may have to look up in a ds_grid so you do not have to worry about finding anything and reduce the amount of extra look up work needed in a game at the cost of a little memory being used by the ds_grid.

 

Combining tiles though... when I think about it I sorta had that concept early on, but I have not at all thought about that. If several tiles stack on top of each other were in the same position I could just combine those or combine all similar tiles on the same layer. Must look into this, I never considered the amount of information saved by using "larger" tiles to fill in any possible empty places, depth shouldn't be any real issue with this I will have to test.

 

Thanks :D


  • 0

My deviantart page: http://truepredator....rt.com/gallery/    
My Imageshack: https://imageshack.c...r/true_predator :: Signup yourself by visiting this link *please :D*: https://imageshack.c...HZpaelpWdkphpng

Visit my dev blog on my Isometric Engine. Subscribe / follow!   http://vohjiindev.blogspot.com/

 

Software used: GameMaker: Studio,  Spine Professional http://esotericsoftware.com/ 


#19 Mr. RPG

Mr. RPG

    GMC's Forum Troll

  • GMC Member
  • 3227 posts
  • Version:GM:Studio

Posted 20 February 2014 - 04:16 PM

Like I said on your status update about the game, I really like what I'm seeing so far. I love tactical RPGs!

I'm curious though, what does "Project CoinPurse" mean? What can you tell us about the game (besides the technical details and engine)?
  • 0

#20 True_Predator

True_Predator

    GMC Member

  • GMC Member
  • 655 posts
  • Version:GM:Studio

Posted 20 February 2014 - 05:22 PM

In short Bandit Tactics, the game premise revolves around managing a gang of bandits then looting, raiding, and ambushing caravans / passerby's.

 

Using key locations along paths and roads you setup and ambush your targets while playing out the entire scenario in a tactic's style game play. Manage your bandits loyalty levels to keep them inline and there mouths shut if caught, keep the loot coming and recruit more bandits to increase your power. Defend yourself against guardsmen, vigilantes, thieves, and even the kings army should you become that great of a threat. Establish your lair to build fortifications and buildings to better train your bandits, start from a humble cave or shack and move up to a bandit fort or beyond. Hire fences and townsfolk to get information on shipments and layout your plan to ambush and capture these valuable resources.

 

Be the Bandit King ;)


  • 0

My deviantart page: http://truepredator....rt.com/gallery/    
My Imageshack: https://imageshack.c...r/true_predator :: Signup yourself by visiting this link *please :D*: https://imageshack.c...HZpaelpWdkphpng

Visit my dev blog on my Isometric Engine. Subscribe / follow!   http://vohjiindev.blogspot.com/

 

Software used: GameMaker: Studio,  Spine Professional http://esotericsoftware.com/ 


#21 Panzergeist

Panzergeist

    Insane Box Man

  • GMC Member
  • 1241 posts
  • Version:GM8

Posted 20 February 2014 - 05:32 PM

This is getting very interesting. Still watching with interest :)


  • 0

[ ._.]> Where am I...


#22 tek0

tek0

    GMC Member

  • New Member
  • 19 posts
  • Version:GM:Studio

Posted 21 February 2014 - 11:38 PM

Looking great!


  • 0

aka GearedGeek

 

In order to be old and wise, you first must be young and stupid.


#23 redspark

redspark

    GMC Member

  • GMC Member
  • 156 posts
  • Version:GM:Studio

Posted 26 February 2014 - 11:12 AM

It looks very well thought out and an elegant yet simple design.  I'm eager to see what comes next.


  • 0

#24 True_Predator

True_Predator

    GMC Member

  • GMC Member
  • 655 posts
  • Version:GM:Studio

Posted 26 February 2014 - 08:53 PM

Looking great!

 

 

It looks very well thought out and an elegant yet simple design.  I'm eager to see what comes next.

 

Thanks! Right now I am working to make sure the very core of the engine is solid and works near flawless. Then get in some more advanced functions (map editor, some simple shadows potentially, water) as well as all the scripts needed for anyone's projects. After that I will continue to work on adding extra features when time is available or if it's popular enough and people want those features I may try to set something up to put more time into the engine. If your wondering what such features are: custom A* pathing algorithm to move in an Isometric environment, water shaders, more advanced lighting, real-time terrain modification (see my shockwave example). These are all on my "future list" of things I would like to put in but take a fair amount of dedication and time to get working(which I have several other projects going on at the same time as this so "time" is well sparse)


  • 0

My deviantart page: http://truepredator....rt.com/gallery/    
My Imageshack: https://imageshack.c...r/true_predator :: Signup yourself by visiting this link *please :D*: https://imageshack.c...HZpaelpWdkphpng

Visit my dev blog on my Isometric Engine. Subscribe / follow!   http://vohjiindev.blogspot.com/

 

Software used: GameMaker: Studio,  Spine Professional http://esotericsoftware.com/ 


#25 Codex7

Codex7

    GMC Member

  • New Member
  • 4 posts
  • Version:GM:Studio

Posted 08 August 2014 - 01:31 PM

Hi True Predator - have this discussion moved to your blog? Will follow it there ....


  • 0

#26 xPac7x

xPac7x

    Genetix

  • GMC Member
  • 1084 posts
  • Version:GM:Studio

Posted 08 August 2014 - 03:23 PM

I'm not sure how hard it would be to implement in the game while running... Land destruction/creation would be very cool. Although that is certainly a step away from the combat elements, turning this into a sandbox to build something with could very cool on it's own.

 

Another hard task, the possibility of rotating the view maybe by 90 degrees to simulate a 3d build... That might require rebuilding the room but it would be cool to see the back of that spiral staircase....

 

Besides these things (which are perhaps overkill) the project really looks great so far, the water is beautiful!


  • 0

Please check out Rogue Harvest on Steam: http://store.steampo....com/app/409490

Please also check out my Google Play games: https://play.google....745135653735703

Thanks x1000 for any & all support!  :bunny: 


#27 True_Predator

True_Predator

    GMC Member

  • GMC Member
  • 655 posts
  • Version:GM:Studio

Posted 08 August 2014 - 09:24 PM

Because I have been working on another Project (Vitality) I have not had much other time to work on the isometric engine itself. Mostly at this stage the bulk of work is creating a user friendly map editor as most the map loading/saving and game interaction is complete, but as I have said before you would either have to make your own map editor or use one provided and many times resources like this do not come with an editor or a full featured one I have planned. But it is not something I have abandoned and the blog has not been updated as not much work has been done on the engine and I do not receive many inquiries the engine yet. When it has a WiP/Completed topic I assume there will be many more questions regarding it, but right now I am limiting the initial set of scripts I release as It's very early and hard to use without the planned map editor.

@ xPac7x
Currently the engine is capable of land destruction, even movement as int he first Post for the topic I give a link to an example of a shockwave effect being applied on the terrain. So that is all possible but I would like to point out again that it is designed around the idea of maps being relatively small and not huge screen spanning maps (though it can make large maps and work fairly good)

 

I already have map rotation scripts made, that can rotate 90 or 180 degree's either left or right and is a very quick process. As the map gets larger this might change but currently any large map I have made rotates nearly instantly, but again it does this in 90 degree increments because its isometric.

The water is still a major feature that is a hurdle I need to continue to work through but I believe I have a solution to make it work exactly how I am hoping I can get it to. It's not high on my list to have shader water at this time so it's ont he back burner somewhat compared to the rest of the engine.


I have plans for the engine, which included finishing it ;) but with most of my time being devoted to asset creation for "Vitality" at the time being dev ont he engine is rather slow as it's a side project of mine. I appreciate feedback I still get and will gladly answer any questions anyone might have.


  • 0

My deviantart page: http://truepredator....rt.com/gallery/    
My Imageshack: https://imageshack.c...r/true_predator :: Signup yourself by visiting this link *please :D*: https://imageshack.c...HZpaelpWdkphpng

Visit my dev blog on my Isometric Engine. Subscribe / follow!   http://vohjiindev.blogspot.com/

 

Software used: GameMaker: Studio,  Spine Professional http://esotericsoftware.com/ 






Also tagged with one or more of these keywords: design, feedback