I started this month by porting my game over to GMS2 so I could use the profiler to see what was eating the most frames and it seems like the nested for loops in my Draw Ground System were the key, so I did a big rework it.
(I'm still using GMS1.4 though, too many things need fixed/changed if I move to GMS2)
I was able to remove some of the for loops by splitting it into 2 separate surfaces.
One cropped to the view with only the Water one being updated every frame.
And one that is made at start up for the whole island but only land, since land doesn't change unless you Terraform or place/remove Paving.
This has reclaimed tons of FPS! :D
There was some issues along the way though X'D

2370
It pretty much completely broke the Town Menu part as well as the offset for ground being drawn.

2371
I got it all working though, turned out I had to remove the offset and change the starting points of the remaining for loops.

2373
Had to make a second script to update the surface but only in a specific area so that placing Paving and Terraforming the land would still work. This did also break the dust cloud from placing Paving, so I had to move it after the draw so now it doesn't look like it comes from underneath. Eh minor loss.

2375
Finally added some blending between Desert and the Beach.

2377
Added some tile variations to the Beach, as well as Dry Grass, Shells and Glass Bottle spawns. Need to adjust the spawn rate!
https://i.imgur.com/CZywzhM.gif
2378
That's better!
https://i.imgur.com/gNtZaFH.gif
2379
Finally redid the Footprint Particles when on Sand/Snow/Wet areas.
After this I did a minor update to make it so you the step counter isn't reset when walking over Paving, so they run out correctly. Also added a decay timer if you stand still too long. Also fixed the wet footprints being overridden by sandy ones and expanded the amount and life of them.
https://i.imgur.com/SYAlbBB.gif
2380
Started working on Magic Attacks. First up, testing out how adding movement to the current attacks works.
It seems to work, but the hit collision is a bit....HIT AND MISS ¬‿¬

2381
Think that's fixed it?

2382
Had to change how the Training Dummy works to have easier testing, it now has a hitBox like Mobs.
First projectile spell, Ice Shard works!

2383
As does the second, Fireball! You've got to have a Fireball spell! Especially one that causes Fire damage over time!

2384
I haven't added Fire DoT to enemies yet, but the attack does hit multiple at once.

2388
Now, to work out Area of Effect spells!
Stole some code from my Fishing system, couldn't get the target to work when it was on the Underlayer, so swapped it to the Overlayer for now.
It's set up so you have to hold the [Shoulder button] (or keyboard equivalent) as well as the [Attack button]. I don't think this is the best option though, because of keyboard ghosting I found I couldn't walk right while holding these down.

2385
There we go! New AoE spell Static Shocks works!
A problem I always run into with attacks is wanting to keep to whole numbers. Since 1 is the smallest damage something can do I either need to increase everything's HP/stats to ensure AoE isn't too powerful and they can take a bunch of hits, or add a way of limiting how often AoE can actually hit the enemy. There is a hitCool down on enemies but I'd prefer to keep that a universal value and not have it different for different attacks. Would be annoying not being able to hit an enemy with a sword because 5 seconds ago you hit it with a spell.
Needs the depth adjusted so it's underneath things, just gotta add the bottom bounding box to the depth value and it should be good.

2387
Hmm, trying particles with my magic system. I don't think they really work with the Static Shocks spell. Also adding a lighting effect, but it doesn't apply to the particles. I tried, but the offset isn't updated Hmm.
https://i.imgur.com/MR6RhIO.gif
2389
I tried adding the particles to the Lighting system, but since I can't control where a surface is created (you can only move it afterwards), I'd have to make a surface the entire size of the island, just to have the particles light the right place.
I thought maybe updating the position of the particle emitter might work (even though the emitter isn't moving, instead the offset of the surface is) but that doesn't work. Kinda cool effect though?

2390
Updated the Projectile Magic to have animated sprites.

2391
Added particle trails to the Ice Shard and Fireball spells. (should Iceshard be one word? Fireball is only one because of common use right?) I think it looks good, but I need to adjust the colours, maybe use the palette instead.

2392
Added collision particles. I probably could have done this by spawning a temp object to deal with the collision particles, or just used the over or under systems I use for some other particle stuff. Instead I'm just using the magic's trail system, but hiding the sprite and adding a death timer.

2393
Added Spawn Limit on each Spell type (per caster), as well as a cooldown between casts so so they don't spawn into each other, and reduced their life.

2394
Added the ability to make multiple copies of the same Magic Spell at once, like triple Iceshards going in slightly different directions for a spread shot, and a stack shot of Fireballs to cover a slightly larger area. Not sure if I'm going to use them, but it's nice to have it set up.

2408
Testing out Bouncing Spells, and leaving AoE spots like Fire as they bounce (not on collision). Again, not sure if I'll use this but nice to have as an option.
https://i.imgur.com/vJWWYTj.gif
2395
Still working on my fire sprite, also tree sprite rework (urgh), but now Mob's can be set on fire!

2396
Need to work on the range/RNG, but Mobs can now use Skills with MP!
That means Bats can steal your health to heal themselves!
Also enemies can only hurt you while doing their attack animation, so less constant damage from being swarmed.

2397
Changed how the Leech skill works. Instead of it being just data, it makes a Magic Object, which approaches the creator.

2399
This trail effect was much easier than I expected. I'm using the same sprite for the object and the particle. As it moves it makes a stationary particle at regular intervals, these shrink and fade over time saving me having to do any animation or storing of coordinates.

2400
This change gives you a chance to kill the enemy before they get healed. Might make it so you can kill the Object too? That might be too broken though.

2402
Added the Healing Particle effect to Mobs when their skill heals them. I think I need to reduce the amount it happens though, since it's just a single time heal not a Heal Over Time effect.

2404
I seem to have an issue where the animation is getting messed up.
Turned out because I was using the same Clear Path script I use for the NPC's it was resetting their animation too, added an exception for them.

2405
Changed the collision box for Enemy attacks to be their hitBox instead of their movement box, think this works better, might need to be shrunk some on the y axis? Also added Fleeing as a Skill aspect and a chance of fleeing on base attack/low HP.
Ended up reverting the collision box after this, it was way too big. Now it's the movement box with a modifier to the top and bottom.

2406
Added 8-way Magic!
If you're not moving it'll fire in the direction you're facing. Otherwise, it'll use the same angle that you're moving. It worked really well and with only a couple changes.
I'm not going to bother drawing new Player sprites though X'D
I do need to add some sort of Weapon use though, like how using Tools animates them being swung. Maybe I can get away with just raising a Staff in the air...
https://i.imgur.com/SiegKrm.gif
2407
I'm still working on the Magic system, specifically how the damage of the skills is determined and how enemies cycle between attacking and moving as well as how the enemy decides where to attack, but I've ran out of time!
I'll continue writing about that in the post for March!
Bug Fixes and small Changes
-Fixed a bug where Pathfinding grid were assigning twice as many cells for Rocks as they should have.
-Fixed Minimap update not replacing Buildings after adding Paving.
-Fixed Snow Autotile not working if Paving adjacent.
-Fixed Snow being able to spawn under Paving.
-Fixed Minimap not having culled buildings.
-Fixed the Players head not flashing on getting attacked.
-Fixed Wardrobes appearing on top of Wall Hangings.
-Added Öö to pixel fonts.
-Updated Build collision check to include Snow and Soil grids.
-Updated Minimap colours.
-Updated Draw Ground System to have separate surfaces for the Island/The Underground/Caves.

Thank you all again so very much for your support and interest, it truly means everything to me and really helps to keep me motivated!
I hope you all have an amazing month, please look after yourselves and keep being awesome!

0 comments