What is Squillamorph?
Squillamorph is a 2D pixel art platformer. Gameplay consists of wave-based survival action, with the player fighting off a range of interesting and dynamic enemies. The player controls a small parasitic creature with the ability to 'infest' enemies, taking complete control of them. Find more information about the game on the About page.
Below is the development log for Squillamorph. It is GIF heavy and it might take a while to load them all.
Below is the development log for Squillamorph. It is GIF heavy and it might take a while to load them all.
Hey everyone, the last week has been an eventful one! I've got some cool new content to discuss but first I have to announce a change to the team.
I'm sad to announce that Connor and Sarah have both decided to move on from Squillamorph. They've been great teammates who've produced some amazing content for Squillamorph. Without them, Squillamorph wouldn't be what it is today. I wish them all the best with their future endeavours. If you want to keep up with their work, I have put links to their portfolios on the About page. Go check them out!
New Levels & Hot Pipes
I've been designing and making some new levels for the Flop Shark region! I mentioned last week that I might have one ready to show but I really got into the swing of things. I designed 3 levels and made two of them. I haven't put any scenery assets in yet but they are fully functional! These levels are all smaller than the current level and are really fun to run around.
Since I changed the level design process, I have not re-implemented the hot pipes. This is the main environment hazard for the Flop Shark levels and seeing as one of them is full of hot pipes, I needed to get them back in. Functionally, they are very easy to make work, but getting them working visually again was a bit harder. Before the level design change, I would use a rendered image of the level pipes from the old designer and a blurred version, then overlay them in the level. This was an accurate but expensive method which I can no longer do. So now, I use an image which comes from the design where 1 tile is one pixel. It isn't as accurate but it has the same effect. So the hot pipes are back at last!
In some of the recent posts, I have mentioned the difficulties people have faced with the wall jump ability. I did say I might not change it but in the end I decided it would be better to. The player will now 'stick' to walls when touching them without having to move against them. This means that, if in a narrow vertical tunnel, the player just has to press space and won't have to use the direction keys at all to wall jump. To prevent the mechanic from being too easy, I have decreased the 'stickiness' of the player when on a wall. I will do a few tests soon to see if the changes worked out well!
Another mechanic change for the player is invincibility during the dash. This was actually meant to be in from the beginning and I just forgot to add it. I'm honestly not sure why it took me so long, considering I realised way back at EGX Rezzed and was reminded again at the uni grad show! Anyway, it's in effect now and I won't have to be reminded again!
So I finally got around to making another stage for the Flopalodon boss. This stage requires the player to directly attack the boss using Flop Sharks, which only spawn in this stage. Also, to make things more interesting, the Flopalodon can now breath fire. The fire will kill other enemies and the player. I am still working out how to get the boss to aim this fire properly but even now it adds another fun aspect to the fight. This sort of fire hazard is something that will come from other sources in future levels.
I have also heavily tweaked the boss arena. This is mainly because the boss kept getting stuck in the smaller nooks of the level. There is still an issue with this as the boss can get into and stuck in the tiny spawn area. I'm really not sure how that is happening because there is no way it could fit in there but it is something I will endeavour to fix this week.
Before the end of this post, I need to mention that Squillamorph will be at the Guildford Games Festival with the University for the Creative Arts! You can find out more about the event here: https://guildford.games/festival
Anyway, that's it for this post! Thanks for reading!
Hey everyone! The UCA Farnham graduation show is now over. If you managed to go, I hope you enjoyed it and managed to play Squillamorph! Unfortunately, I became aware that the room Squillamorph was in was locked for some days because there were no students to watch the equipment. It's a shame but it happens I guess. Anyway, onto the main content of this post.
I was play testing some bug fixes when I noticed that something didn't feel right about the game visuals. For the Rezzed build of the game, the levels felt near complete and exciting. In contrast to this, the current build feels quite empty and bland. I believed the main reason for this was the lack of background machine/panel sprites. I admit, I had to rush some into the levels before the show because the redesigned levels had none. So I threw a few more bits and bobs together to make things feel more complete. Nevertheless, it still felt strange and incomplete. This happened to be around the same time I saw some of the new game trailers from E3. When I saw some of the games, I noticed how alive their worlds seemed. I then realised that Squillamorph's world currently feels quite dead apart from the enemies.
I decided to quickly throw together an asset to make things feel more active. I had meant to make this asset for a while but it had not been a priority until now. Connor had made some empty glass tank sprites. He left them empty so that I could fill them with 'liquid' made of particle systems and other sprites in Unity. This liquid would be something tied to Squillamorph's plot-line. The creatures in the game are filled with a synthetic goop that acts as their lifeblood, which you can see in their orbs which allow the player to infest them. So, I made a couple of them and placed them in the Flop Shark level. I did not expect the difference they would make. The background colour palette is now broken up by the dark goop tanks which makes it much more interesting than before. I'm going to do more like this so that the world feels much more exciting.
After listing a couple of bugs last week, I thought I would give you an update on the progress I've made with them. The main one was the Flop Shark blocking issue. I tried several things to resolve this and the result I ended up with is not quite what I wanted. The Sharks now don't push each other anywhere near as much as they did. However, if the player infests one then it will be able to push others around. This allows the sharks to move past each other, without looking too odd, while still maintaining a more solid appearance for the player's benefit. As I said last time, the ideal scenario would be to have them climb over each other. However, due to the pathfinding system and collision system I made, I cannot do this without greatly impacting performance. So I'm going to settle with slightly intangible enemies for now.
The wall jumping segment was the other point of contention. I have not yet changed the wall jump to be easier to use. Nevertheless, I have added a ledge to allow players to go through the segment without using it and some simple arrows to show how the player should manoeuvre up the corridor. I still intend to make the wall jump easier to use but it needs more thought before I do.
I know there wasn't as much new content this week as I had to do a bunch of documentation and research last week, which took up a couple days work. Anyway, I hope you are enjoying these posts! Next time I might have a new level to show, but we'll see. Thanks for reading!
Hey everyone, this weeks post is entirely about the feedback so far from the graduation show at UCA Farnham. I have not had a chance to work on the game since the first day of the show last week because I got ill. However, I did manage to get the boss ready for the show build of the game, which I was very pleased about! If you do manage to get to the show, let me know what you think of the game!
The instant people began playing the game I was noticing everything that could be improved. It always amazes me how much you see when someone other than yourself plays your game. The main aspect people could not get to grips with was the wall jump segment in the tutorial. I'll admit, I have not play-tested the wall jump prior to this and I had suspicions it would be difficult to use. The wall jump part of the level is a vertical corridor that is too long to helix dash up, so it forces players to use the wall jump. Unfortunately, it would seem that the physics based movement makes it hard to use the wall jump. Due to the number of players who struggle with it I will be changing the way the wall jump works to make it easier.
In the previous post, I described how pleased I was that I had got the game working with a controller. However, the first player to try playing with one revealed a massive bug. Whenever the player used the helix dash in an exactly vertical or horizontal direction, the screen would go black and then they would reappear at the spawn point. This is a big problem because I had no idea what could cause this. Upon further investigation I can reproduce the bug without a controller which means that the problem has been around since the dash has. It has happened before with the mouse but it happened so infrequently that I thought little of it. I have now found the cause of the bug and fixed it but it is very technical so if you are not interested in that, skip the next paragraph.
Turns out, the cause of this was a method I created to stop the player ending up in a wall at the end of the dash. In the method, I calculate the horizontal and vertical distances the player will be from surrounding walls at the end of the dash. Whichever distance is smallest will be the one I use to stop the player before a collision occurs. In these calculations I use the Cosine maths function. I found that when the direction is directly up, left, right or down, one of the output cosine values is tiny. If you are interested, that cosine value was cos(1.570796). The way I then use this gives me a huge negative number, which just so happens to be smaller than the correct value, meaning it is used. This makes the end position of the dash an astronomical distance away from where it should be and the player ends up outside the level, which is why they reappear at the spawn point. All it took to fix this was to check which value is smallest if they were all positive and then use that value. I hope that didn't confuse you too much!
Back at Rezzed in April, many people mentioned that they did not like the enemies being able to pass through the player's infested enemy. Nothing felt solid and this impacted their satisfaction. I agreed with this but could not see how I could implement it at the time. Through perseverance I got it working, but now I am seeing that it has created problems. To make the player's enemy collide with others I made all enemies push each other apart. However, I seem to have made this a little bit too strong. The enemies now block each others path and this makes gameplay really slow at times. The ideal solution to this is to have the enemies climb over each other but this is very hard for me to make work with the pathfinding at the moment. For now, I think I will turn down the force they apply when they collide with each other but I will strive for the ideal solution.
That's it for this week's post! I know it was quite a technical post but I hope you enjoyed it anyway. Thanks for reading!
I'm the game developer for Squillamorph! I'll post here on the devlog as often as I can.
I'm currently looking at an Early Access release this summer. Stay tuned for updates!