
What is Squillamorph?
Squillamorph is a challenging action-platformer set in a mysterious mechanical world. Pursued by hordes of brutal enemies, you must use your parasitic ability to 'infest' and take control of them. Fight back, survive, and you might just discover your purpose. Find more information about the game on the About page.
Please consider getting Squillamorph on Steam and leaving a review. It is in Early Access and still very early in development but the more feedback I get now, the more enjoyable the final game will be!
Join the official Squillamorph Discord: Squillamorph Discord Server
Below is the development log for Squillamorph. It is GIF heavy and it might take a while to load them all.
Please consider getting Squillamorph on Steam and leaving a review. It is in Early Access and still very early in development but the more feedback I get now, the more enjoyable the final game will be!
Join the official Squillamorph Discord: Squillamorph Discord Server
Below is the development log for Squillamorph. It is GIF heavy and it might take a while to load them all.
MEGAPOST - The 1st Year22/8/2019 Hey everyone! It has been one year since I started development on the game, which is a big milestone for me. To mark the occasion, I've written what I'm calling a MEGAPOST to look back at the development of the game so far. So expect a ton of GIFs! However, before I get into that I'd like to say something. I started this development log because I was so inspired by looking through other development logs. I would like to inspire others and give those interested in the game an insight into how it is being made. I've been actively posting on here for a year now and I've done my best to post every week. Various factors got in the way at times, but this is the 45th post so I think I've done alright. While I would have made this blog regardless, I'd like to say a couple of thank you's. A massive thanks to the University for the Creative Arts, the Games Arts course and Incubator Studio team. They provided so much support and gave Squillamorph many amazing opportunities to grow. If you are looking for a university games course, take a look at the amazing course offered by UCA. I graduated from it last year and would highly recommend it. A really special thank you to Sarah Büttner and Connor Wright. Without them, this project would not be what it is today. Please check out their work, they are really talented artists! I hope you enjoy it and maybe find a bit of inspiration for your own projects! Ok, mini speech thing done. Onto the content! Warning, there are a lot of GIFs and they will take some time to load. The Metaballs EffectOn August 22nd in 2018, I started work on a revamped version of Squillamorph in the Unity game engine. The thing I was most eager to start with was a new design for the player character and I'd planned a few ideas to try out. One of them was a worm-like design; one was similar to the prototype design; the last was a gel blob design. I tried all three in this order and it's clear which one I chose. The metaballs effect and the colour shader took some research but I was, and still am, really happy with the result! For those interested in how the effect works, I'll do my best to explain it. I render a particle system to a texture with a blur effect, which a shader then converts to what you see in the GIF. Any pixel on the texture which has an alpha value less than a specified cutoff value is cut out, while the remaining pixels are replaced with colour. To get the brighter coloured edge, I lerp between two colours depending on the alpha value of the remaining pixels. Something you will see in the GIF is the player 'climbing'. This is a mechanic I was originally going to use in the game to overcome difficulties I had with verticality in the prototype. However, I removed it as it felt like the player had too much manoeuvrability when not infesting. Eventually, the wall jump would replace this. The Custom Physics & Collision Conundrum, A SagaOh yes, I can't write this post without mentioning the nightmares I had with my custom systems. I had made a custom physics and collision system in the prototype and made an improved system based on it for the new version of the game. Of course, this created absolutely no issues... if only! The amount of time wasted solving problems with these systems in the first few months is painful to think about. My BIGGEST recommendation to other developers using Unity is to use Unity's existing systems created to avoid these situations. Nevertheless, I don't regret making my own convoluted system. Even though it still gives me the occasional issue, it has taught me so much and gives me that little bit more control over things. To be continued... Floppy Mechanical Sharks with ArmsI was really excited when I started making these guys! They were the first enemy I made in the revamp. The enemies in the prototype were quite haphazardly thrown together so their core systems weren't properly thought out. So to start with, I created a template that I could build any creature from. This has helped tremendously with making new enemies and kept things much tidier than in the prototype. After getting the sharks core functionality working, I made a much larger test level and discovered that my A* pathfinding system couldn't handle it well. To be honest, it was never very optimised so I don't know what I expected. So I built a new pathfinding system based on flow-map methods. While this method can be more expensive than the A* method, I didn't have to run it on each individual creature. Overall, I prefer this system and still use it. The Flop Sharks finally reached a point where they were ready for sprites. As soon as the sprites were in, I found it much easier to build on their behaviours. They just got so much more character with their new look. Despite thinking that this was about it for the shark sprites, there would be many tweaks and improvements after this point. Visual Upgrades & ExperimentsThings were looking good at this point. The Flop Sharks felt great, the new effects were cool, but the other visuals didn't quite fit in. It was time for a new tileset, which made things look much better once the colour palette was also tweaked! I altered the Unity 2D extras ruletile script to allow different tiles to connect to each other, something that wasn't enabled by default. This allows me to place a broken tile next to a normal one, which makes it much more interesting. This is an experiment that I may still use in the game. The field of view shadows were going to make things more claustrophobic and interesting. Ultimately, I decided to remove them for both performance reasons and how much harder it made the game. There is a part of the game which might still be able to make use of these, but until then this will not be making an appearance. Something else you might see in some of these GIFs is shadows cast by the tiles. The creatures and player use lights to light up the normal maps on the scenery tiles. I initially had them casting shadows but then I found out how much of a strain on performance the shadows were. Disabling them improved performance massively. So they will not make a return, and to be honest I don't think they're needed. This is something I've never shown or discussed, partly because the GIF looks a bit weird. Early in development, there was an idea to let the player customise certain character elements like colour. In the end, I decided not to allow this. The main reason is that the implementation would be tedious, a lot of things would have to go through a colour change for example. It's also a very optional and unnecessary feature, but it was fun to play with at the time. A Couple More ProblemsLets start with the Flop Sharks. One of the attacks for them was going to be a grab and shake/throw. However, the way I connected creature segments together prevented this from working properly. I tried out multiple solutions but none of them really worked. This wasn't a major issue as they still had a basic attack, but I couldn't waste more time so the grab attack was scrapped. Oh boy, so this was a pretty big mess up and in hindsight I should have paid more attention to the various tutorials I've gone through over the years. This 'pretty big mess up' was the frame dependant issues I had. It might sound bad but I had no idea this was a thing until working on the new version of the game. I hadn't tied anything to Time.deltatime and didn't use FixedUpdate, which you can use to make things work independently of the framerate. I only discovered that this problem existed when I made the first build of the game and saw everything move at the speed of light! I had no issues in the editor, presumably because it didn't go over 60 fps. It took me a long time to get everything tied to time rather than framerate. I did miss a few things at first, which resulted in some error-less bugs that drove me mad for months. I didn't discover what I had missed until March this year. Needless to say, I face-palmed. A Lesson in ScopeBy December 2018, I had the basic systems of the game setup. They weren't optimised but they did their job. So I designed and made a prototype of the first level. It finally felt like the game was coming together! The level was huge and the performance was still doing well! The idea for levels at this stage was to incorporate a boss into the level. The player would have to go through a series of steps in the level to spawn the boss and only after defeating it would they be able to move on to the next level. I decided some minor testing was due to see what people thought. This is where things went a bit downhill. There were two main points of feedback; the level is too big and complex, and there isn't much content. I had expected the lack of content point, but the point about the level being too big opened my eyes. I tried playing the level while purposefully utilising as much space as I could. However, I found that the basic combat made it preferable to stay in a couple of select places. This made me realise that it was too big. A rethink about the scope of the game took place and a big reduction in the level size was the outcome of it. Unfortunately, this was not the last I'd seen of the scope issue. By February 2019, the university Incubator Studio team had managed to secure a stand at EGX Rezzed for Squillamorph. This was an amazingly motivating thing to hear, but it also opened my eyes to the reality of what I was doing. It finally clicked with me that I was developing a product that would be available to the public, and also needed to be successful. Cue my panic about getting a playable build ready for Rezzed. Since December, things hadn't progressed very far in terms of new content. This was because I had to focus on fixing various systems, like the custom collision. And so another rethink about scope and ways to work faster took place. The result, scrap the large level with a boss and objectives idea to focus on what should have been the priority from the start, combat. A more traditional 'multiple small simple levels before a boss level' approach was decided on. I will mention that these re-scopes were not the only ones that occurred but these were the most memorable. I am very glad that this happened because otherwise the game would play quite differently and wouldn't have progressed as much as it has. What I've learned from this is that having a smaller scope is much better, both for development time and stress. EGX Rezzed & Guildford Games FestivalThese two events are up at the top of my highlights of development this year. EGX Rezzed took place in April and the Guildford Games Festival took place in June. Before Rezzed, I was very nervous about what people would think of the game. I was also worried about getting it done, mainly because making a tutorial is really hard! Nonetheless, I felt great when I got there. Despite the slightly confusing tutorial and unfinished gameplay, it was recieved really well. I learned so much about what players want in a game and gathered a bunch of feedback. I started taking development much more seriously after the event. To prevent as much of a pre-event/deadline panic happening again I started planning my development time in more detail and logged what I did each day. This gives me a much better idea of what I can get done in a set amount of time. Soon after Rezzed, I found out that Squillamorph and I would be going to GGF. This time, I knew what to expect and planned development around the event. I managed to get everything I wanted done, including a boss and brand new tutorial. Of course, I can't prepare for everything and I watched as players discovered some major bugs. This was a good thing though. Not only did this reveal the bugs but I also found it gave the players who found them a sense of achievement. Why it did I'm not sure, but they enjoyed it! This event rejuvenated my motivation once more, just like Rezzed had. I would highly recommend going to these kinds of events, whether you are a developer or not. They are great fun! 1 Year OnSo this is where the game is now, one year on. I've got two tutorial levels, four Flop Shark levels, and a boss level all playable. I've also started working on the next region and the Kobold enemy that inhabits it. You should see more on this very soon. Over the past week, I've started making a fun new enemy, which will be the fourth enemy the player encounters! Next week I'll talk more about the new enemy so I don't fill up this one any more! I know some you will be wondering whether I have a date for the planned Early Access release. Unfortunately, I can't give you one yet but I hope to be able to in the near future. The Future... (Cue Mysterious Music)I can't talk too much about this, partly because I don't know what will happen but also because I don't want to spoil the things I have planned! I will say that there are many more exciting things to come in Squillamorph's future and I very much look forward to sharing it with you. So stay tuned for more awesome content and hopefully I'll be able to do another post like this next year! Wow, what a journey it has been! Squillamorph, and myself for that matter, have come so far! I hope you enjoyed this look back at the creation of the game!
A quick shout-out to joakersblog on Instagram for the awesome fan art! Feel free to make your own fan art of the game, and if you do, don't forget to tag in Squillamorph or #squillamorph so I can find it! Follow Squillamorph on Twitter, Instagram, and Facebook to stay updated. Don't forget to tell your friends to check out the game too! Thanks for reading!
0 Comments
Upgrades & Fixes19/8/2019 Hey everyone, I hope you liked the teaser trailer I posted last week! If you missed it, you can watch it here. I haven't had as much time as normal to work on the game over the last week, but I still have some interesting content to talk about! MutagensOver the last week, I've been planning out some specifics of the world regions. One of these things is the mutagen upgrades at the end of each region. Each reward room contains a choice of three mutagens, which the player can only take one of. I've decided to keep the mutagens in each reward room related to each other. For example, the tutorial reward mutagens will affect the player helix dash. I've shown this room before and it already has two helix dash mutagens, but I needed a third. This new mutagen increases the speed of the dash and sits nicely alongside the others. However, the new mutagen made me aware of a problem. Bugs and TweaksThis next bit is a tad technical. When I first made the player metaballs effect, I used a rendertexture which was smaller than the screen resolution. This wasn't a problem as the metaballs trail never went outside of the texture. However, when I applied the new mutagen to the player, the dash trail clearly extended beyond it. So, I thought I would increase the size of the quad the texture is on, which didn't work because of something I setup from the start. The camera that renders to the metaballs rendertexture is a perspective camera. This is a problem because the camera doesn't change its view size when the texture does. Nonetheless, with a bit of work it is possible to do this manually, which I did. Doing this created a new problem, the effect looked different. The blobs looked more rounded, and the edge colour had less space. Basically, nothing I did would make this work so I went back to what it was. The solution came to me soon after this. If I can't increase the texture size, surely I can move it to centre on the effect. I know that the trail effect mostly goes in the opposite direction to the player. This means I just need to move the camera and texture in this opposite direction. I can do this by using the negative velocity of the player movement. To my relief, this solution works very well. You can see it in action in the above GIF, the green box is the quad the texture is on. Phew, a big visual issue solved! Now, onto other tweaks and improvements. Perhaps the change which will have the most impact is that the lives no longer reset in each level. Instead, lives will reset at the start of each region. This may not be a permanent change if it proves too difficult, I'm testing it at the moment, but I hope it will make a fun challenge. Something I mentioned last week was the design of one of the Flop Shark levels. I have now changed it to work better with the enemy pathfinding and it is much easier to navigate now. The last change I'm going to mention is something that isn't very noticeable but has some impact. Until now, the player would get 10 points for infesting an enemy. After some thought and testing, I have removed this as a source of points. This is to allow for another mutagen in the future and to prevent early exploitation, which is easy to do with the dash cooldown time mutagen. That's all the changes I'm going to talk about today! Spawn Machine LockThe player spawner has needed a change for a while now. Currently, players and enemies can climb up into the spawner. This allows the player to hide while the enemies struggle to get into it. It also means that if the enemies do get into it and kill the player, the player may end up in a loop of spawning and dying, which is not desirable. To fix this, I have finally added a lock system, which opens briefly when the player spawns and closes immediately after the player leaves. Until leaving the spawner, the player will not have control to prevent them getting stuck. Adding this in has reminded me that I'd like to add more animated elements to the spawner, so you'll probably see some more animated assets soon! That's it for today's post! Next week's post will be slightly different to normal. It will have been one year since I started developing the current version of Squillamorph. So I want to look back at the year and see how far the game has come!
Follow Squillamorph on Twitter, Instagram, and Facebook to stay updated. Don't forget to tell your friends to check out the game too! Thanks for reading! More Bugs, More Visuals, More Fun12/8/2019 Hello everyone, this past week has been fantastic for progress! I've updated and added some visuals, worked on the world design, and made a teaser trailer which you can watch now! Please share it with your friends if you're excited about the game! Testing & FixingRecording footage for the trailer gave me the chance to test the game, which of course meant I found no bugs whatsoever... if only. I actually found several game breaking bugs. The most amusing is in the GIF above. This one caught me completely off guard when I found it and I couldn't stop laughing. Issues with the vents were the main problems. I also found more of an ease of play related issue, rather than a bug, to do with one of the level designs. Turns out having too many corners next to each other messes with the enemy movement and makes it really arduous to climb as the player. Visual UpdatesThere have been a few improvements to the visuals over the past week! The first, which I mentioned last week, is the large shark sprites. This took significantly longer than the smaller shark sprites because I had to add and adjust more pixels. The part which was especially difficult was the attack animation. I think the end result was worth it though. Another new aspect of the sharks is the skill attack effect, which is now its own sprite rather than a few red ovals. I do not like how subtle it is at the moment, and I'd like to use particles to add more impact but I've had a few issues getting them to work for some reason. Another addition is a new HUD icon and animation; an icon for the Test Dummy enemy and an Infest animation to go with it. Something else I have added is another variation of the Test Dummy enemy. I've been meaning to do this for a long time now but it hasn't been a major priority. But I found the time to do it and there is now a Test Dummy variant with more health. It does feel fun to have an enemy with a moustache and monocle, from Connor's original concept! Anyway, that's about it for visual updates. Needless to say, the game looks a tad more interesting now! World DesignContinuing on from the previous week's world design work, I've been thinking about how to represent the regions/levels in the game. I played around with a few designs before settling on something quite simple. I then created a menu in the game to place the map into, which players will use to choose a region to play through. You can see a piece of the map on the menu in the above GIF. This is an early implementation and I might change it because it is rather small when there are only two regions, but I'm liking its functionality so far. Working on this got me thinking about the scale of the game again. As a result, I've decided to reduce the number of planned regions. This is for a couple of reasons. The first is that some of them aren't really necessary; the enemy ideas weren't great and I felt the regions seemed to be there just to make the game longer. The second is that I want to be able to finish the game in a reasonable time frame, but with the number of regions I had planned it would take an unreasonably long time. This doesn't affect too much, the game will still be quite large. I haven't shown or discussed the cut regions and I believe the game may even be better in a slightly more compact form. That's everything for this post. Don't forget to watch and share the teaser trailer! I've also setup a new Facebook page for the game so you can follow the updates via a whole variety of social media now!
Follow Squillamorph on Twitter, Instagram, and Facebook to stay updated. Don't forget to tell your friends to check out the game too! Thanks for reading! James BarrowI'm the game developer for Squillamorph! I'll post here on the devlog as often as I can.
Archives
August 2020
Categories |