Isometric ARPG (WIP)

badwrong

Member
I'd just like to share the progress I've made for my Isometric ARPG.
All the sprites are made in blender and recorded at 32 angles for each animation.

Recently I've finished an autotile system that works at run time. The game world will generate as the player destroys enemies and activates objects.
The minimap is a surface that can be toggled between the top right or centered on the screen. It also updates along with the autotile system.

The effects and particles do use depth. There is an array of particle systems that move depths as you create new particles.

Here's a clip of how it's looking so far:


Any critiques are greatly appreciated. Note that the GUI layer images are all place holder.
 

Cameron

Member
Looks great man, keep up the good work!

One minor suggestion, maybe reduce the opacity on the map a little, as it fills in it obscures the player/action a little much, in my opinion.

Also, I'm just curious, is the player going to eventually have a time limit on how long they can stay in the air for or is it going to be indefinite as it is in the video? Seems like a good opportunity for an ability that can be leveled up/increased in terms of how long they can fly for.

Anyhow, great work, isometric games are not as easy as other perspectives and your hard work shows :)
 

mikix

Member
Looks great man, keep up the good work!



Also, I'm just curious, is the player going to eventually have a time limit on how long they can stay in the air for or is it going to be indefinite as it is in the video? Seems like a good opportunity for an ability that can be leveled up/increased in terms of how long they can fly for.
That doesn't seem to work, since that looks like the level progression.
 

Cameron

Member
That doesn't seem to work, since that looks like the level progression.
Not sure what you mean but seems to me the player can land and then fly again after restoring/regenerating some kind of meter for flying. The only reason I asked though was because I wondered if the player would have incentive to land or if you could in essence play the whole game flying and never need to land.

Anyhow, back at OP, looks good and the when you generate the additional map space reminds me of Bastion.
 

badwrong

Member
Looks great man, keep up the good work!

One minor suggestion, maybe reduce the opacity on the map a little, as it fills in it obscures the player/action a little much, in my opinion.

Also, I'm just curious, is the player going to eventually have a time limit on how long they can stay in the air for or is it going to be indefinite as it is in the video? Seems like a good opportunity for an ability that can be leveled up/increased in terms of how long they can fly for.

Anyhow, great work, isometric games are not as easy as other perspectives and your hard work shows :)
The amount of time wont be limited, but there will be a cooldown on how often you can take off.

Right now the only thing generating below is ground and random enemies. Later there will be more incentive to land since objectives will generate as well and those are needed to activate the boss portal. The abilities are also randomized and moddable. Killing ground enemies drop those abilities and mods.

There is a boss as well once you can activate the portal.


Oh and the minimap has an opacity option, it's set a bit high in the vid... I think 0.8 image_alpha. 0.5 will probably be the default.

Thanks for the feedback!
 

badwrong

Member
Added a pixelation and desaturation shader for spawning enemies:

Loot sorting code that prevents items from overlapping and moving to unreachable areas within collision.
It uses steering vectors by "bumping" the closest neighbor. Super fast code that doesn't need place_meeting type functions. Its sort of a variation on the pathing code enemies use to avoid "clumping up" to much.
 
Looks, awesome bro! I'm very curious about the logic behind your map generator and management. Is random by the object activation script or there is any kind of pre-made handmade maps?
 

badwrong

Member
Looks, awesome bro! I'm very curious about the logic behind your map generator and management. Is random by the object activation script or there is any kind of pre-made handmade maps?
The map is generated based on the flying shoot 'em up gameplay. The floating rocks spawn groups of flying enemies and passes them all the same ds_list and its id as "owner". When they die, they add the coordinates where they died to that ds_list and then checks if their owner still exists and subtracts from its health. When the floating rock loses all health it drops down and creates a structure with ground and then a loops through that ds_list creating objects that will path to the coordinates that each destroyed enemy added and while pathing they create map as they go. For now the structures that the falling rocks spawn are placeholder, but they will be objectives, loot objects, events, etc.

Oh and the flying enemies also simply create a tile of map when they fall as well, but if a tile is already there they spawn a random enemy. So if you kill stuff quickly in groups, you will get more enemy spawns on the ground, and that means more enemies to kill for loot. Its just an extra bit, the main objectives will center around what the rocks spawn and then lead to opening a boss portal.
 

badwrong

Member
this looks fantastic.

Steering Vectors sound incredibly complex :)
They might sound that way if you aren't familiar with them. But they allow for some very good pathfinding for AI or even the player.

The short version is, you find the vector of where you wanna go, and add that to the vector of the closest object you want to not collide with.

So in gamemaker, I make a path using mp_grid functions and then take the vector to the next point and add that to vector that would point me away from the nearest instance if it is within a certain distance.
I never follow a path directly, just go point by point that way I can add the other vectors to avoid stuff.

This link has a ton of info on them: https://gamedevelopment.tutsplus.com/series/understanding-steering-behaviors--gamedev-12732

One huge advantage of learning how to pathfind with them is your use of place_meeting or instance_place will be reduced drastically. I believe I only use those commands for objects with interactions, like loot, switches, NPC interaction, etc.
 

Sabnock

Member
They might sound that way if you aren't familiar with them. But they allow for some very good pathfinding for AI or even the player.
Actually that is genuinely interesting and good learning.

Thanks for the link i will take a look at it.
 
Top