Author: admin

  • Video Game Mapping, Level Design and Steam AI Ban

    Hi all! Back again with another blog as I made a new milestone in the game progress – I’ve completed the map out of the levels of the game and am now working on actually designing the rooms and levels. Wanted to take some time to go over that with you! Going to do a brief mention on the Steam AI ban as well as mostly just to put a final word on the topic (as I know I’ve been writing about it a lot).

    Maps and level design drawing for Lair of the Insect God
    Hand drawings of the game maps and current room deisngs

    Steam (Maybe?) Bans AI

    So I’ve written a lot on this blog so far about my past playing around the image generator AI to make collages for characters and potential background art. To catch everyone up: I played around with it a bit last year and made three boss fights, however have since had a change of heart out of the data privacy concerns that came up with the training data sets. I’ve since gone through and removed all the previously created AI assets (three boss fights specifically) and replaced them with non-AI art. There is no AI art in the game now and I have no current plans to put any in.

    So outside of all of that, there has been a recent development on the topic where Steam is rumored to be full on banning any games that use AI created assets in them (Yikes!). While I had already stopped using AI art in the game, I do still think it is a neat technology that you can get interesting things out of – so I was still open minded about potential future use it if the training dataset issues could ever be resolved. But if Steam is doing a full on ban of games being able to be on the platform, then that’s a full stop right there for AI art ever being in the game all together.

    While it’s currently mostly just an unconfirmed rumor from what I’ve read so far – the risk is just flat out too great to ever try and touch it if the publishing platforms start banning things (particularly after the 3.5 years of work I’ve already put into the game!).

    So no AI art will be used in the game and this will likely be the last time I write about AI usage on the blog – unless something significant changes in the situation or more clear direction is given. As I’ve said before, if the situation does change I’ll make sure to be transparent and openly write about it here – however at this point it’s just become too much trouble then it’s worth to try and figure out a way to use it so I don’t see myself going down that path for this game anymore. I’m still going to leave the past earlier blogs I wrote about using it up, but I added a disclaimer to the top of them. I think it’s good for people to see what the process and thinking I went through was while the game was being made.

    It does make me sad the industry wasn’t able to find someway to coexist with AI tools as I do think there’s a lot of potential in them if they could get it right – both in what they can help to produce and also just the shear time saving potential they could offer. Thems the brakes though. Ultimately the loss of AI tools won’t really effect my game at all fortunately.

    Game Maps!

    So last we left off I had finished writing the main script of the game and had started the mapping process. As with all things I have done with this game so far – I thought this would be the easy part. It was not the easy part. My map lay out initially was pretty simple – just boxes with lines connecting which rooms in a certain level connect to other rooms. However this ended up not being enough guidance or direction for what I wanted.

    So the approach I started doing with each box was to write out what I wanted the focus of the one room to be. AKA – a high level of what the player is going to be doing in that room. Thinking about the nature of the gameplay I’ve created so far, I broke this down into three potential categories: Fighting, Platforming and Platforming Fighting. A Fight room is one I’m designating as a room where the primary activity the player will do is fight enemies. A Platform room is one where the primary activity is jumping and moving in between platforms. A Platform Fight room is one where the player will be platforming while being simultaneously attacked by enemies.

    Having these three higher level designations for room activities actually really helped a lot in the map layout process. As I could look at the level when the map was done and see what areas where things were being too repetitive in terms of main activity. If all of these rooms in this one part are all Platform rooms, then I’d throw a Fight room somewhere in there to break up the action, etc.

    So away I went drawing all my little boxes and activities. I was very happy at this point to have had the main script in place as it really did help guide how big certain areas should be and what specific activities should be happening leading up to certain points. Once all my boxes were drawn I was left with around 500 rooms.

    500 rooms! That’s a lot of backgrounds I’d have to make! Assuming I could make a background a day (without ever taking a day off) that would be like a year and a half of work just on that! Way too much, particularly for a game that’s already going on 4 years into development (and I haven’t even started constructing the levels yet). So in order to cut the workload down to a bit more reasonable level I started combining the rooms together. The boxes and activities stayed the same to what I had drawn out and planned, but now it’s just going to be that there will be multiple activities that happen throughout the rooms. So for example now a room might have two subsections inside of it that are for platforming and one subsection for fighting. This still allowed the basic flow I had plotted out to exist, but without the need to create so many background artwork.

    In the end I now currently sit at about 200 rooms – a lot less than 500. That’s still going to be a lot of work and be a HUGE amount of time in the development process of the game, but certainly more reasonable than a 500 room game…. especially for a one man development team. I reserve the right to knock this number down even farther once I actually get into the construction part of the levels.

    Drawing Rooms

    So now that the map has been drawn out I move onto the actual sketching of the rooms. Currently I’m still using the ole pencil and paper method for doing this. I’m sure there are much more sophisticated methods for coming out with level designs – but I’m actually really enjoying this. There’s something about the tactical nature of just sitting in my recliner and endlessly drawing squiggle lines and stick figures I really enjoy. It’s kind of relaxing.

    While I’ve done a fair bit of drawing out basic level designs for Dungeons and Dragons games I’ve DM’d in the past, this process has been a very new experience. You really have to think about every nook and cranny in the room and constantly be asking yourself “why would the player go to this part of the room and if they do go here is there anything for them to do or get”.

    This has lead me to coming up with a few new design decisions for the game – one big one is that I’m going to be putting treasure chests with a currently-in-thought treasure in them that helps player in the game. Just having something as simple as this available really helps with coming up with the level design flow as I know have things I can hide throughout the level or motivate the player with. My current thought is that I’m going to tie the goody in the treasure chest to the player’s extra items/abilities they get through the game. So once you get the ability, you have to unlock it to use it and the thing you have to unlock it with are the goodies you find in the treasure chests. That’s at least the thought for now.

    Having the maps drawn out with the activities listed in each section was also definitely a good choice. I don’t really have to guess too much what I’m doing in each section of the rooms as I’m drawing them out as to what the flow is supposed to be which really helps.

    Currently I’ve made good progress on the level draw outs, but still have a long way to go. I think I’m on room number 40 so far? So I’m predicting it’ll likely take me through the rest of the summer until I’m finished with all 200 rooms. Which means this fall will be action time to start actually getting in there and building out the levels for real.

    Exciting times!

    That’s it for now, talk to you all next time!

    As always you can see progress shots via the social links in the footer.

    Thanks!

    -Charles

  • Game Writing, Designing and Goodbye AI Art

    Hi all! Long time no speak. I’ve been writing, writing, writing which has been the main news – but I’ve made some good progress and wanted to give a bit of an update. In this blog post I’ll talk about replacing the previously used AI artwork in the game with non-AI artwork and the writing process so far.

    Editor’s Note 7.22.23: More on AI art in the game HERE

    AI ART REPLACEMENT – WHERE WE LEFT OFF

    New Giant art - no AI
    Giant Monster Boss – now all human!

    So last we left off I talked about wanting to go back and replace the few pieces of artwork in the game that I used a mix of AI generations in – specifically the three boss fights for the Bat Boss, Giant Boss and Robot Boss.


    Well I’m happy to report that all of these assets have now been successfully replaced with non-AI art. It was a bit of a to-do but I’m happy I’ve done it. I’ve said it before – but as of now I’m just not comfortable using AI generations in the game art anymore until they can figure out the data privacy issues with the data sets the AI is trained on.

    I got access to Adobe Firefly beta recently, which has a data set I’m a bit more comfortable with (stock images and public domain images). I played around with it a bit and it’s fun – but right now the generations it make just seem a little too… incoherent? I guess is the word? As it is now I’m not seeing myself using it for the time being given it’s current state – but maybe in the future as it evolves? Who knows.

    As it is now – the game is completely free of AI art and I’m planning on doing the backgrounds with just the old fashioned collage-ing and photoshopping/after effects-ing of Unsplash images as I’ve been doing. I still leave the option open for myself to use Firefly though in the future. I know this area of using AI art is controversial regardless of what you do, so I am basically undecided at the moment if I’m going to pull the trigger at all with it in the final product. Whatever ends up happening, I’ll always make sure to be transparent though on if I put any AI generations as part of the assets or not.

    WRITTING WRITTING WRITTING

    So now the writing process! It’s been long! But I think I’ve gotten a solid central script down. It stands at about 83 pages currently, which is roughly the length of a typical feature film. That’s what I was going for.

    It’s funny having to sit down and actually write out this script finally, as the idea for the story and the characters has been kicking around in my head for over 3 years now. To actually sit down and have it come to life though is an intense experience. Just because the ideas are in your head doesn’t mean they’ll end up like you thought they would when you actually write it! The script certainly did take some unexpected twists and turns I wasn’t initially thinking of before I started writing it, but I ‘m glad it ended up as it is.

    So now that the main script is done, the next stage in the writing process is to write out the optional dialogue. In the game there are going to be a number of “optional” conversations you can have as the game progresses. This is basically going to require writing out another feature length script on top of the main script to fill in all of these bits. For the optional dialogue, I’m going to be waiting a bit before I write it out, however I do have a basic outline of what things I want the optional dialogue to cover.

    DESIGN BEGINS

    Cat helping to design video game levels
    Norman the Cat keeping me motivated.

    Now that the main script is in place I want to actually start designing the levels and begin the process of truly building the game. This is an exciting time – it’s kind of a turning point in the creation of the game. I have all my player parts and most of my enemy parts created, as well as puzzles. I have my script. Now I actually need to build out the levels and make a game out of this thing!

    To start with I’m just doing an old fashioned pen and paper approach to creating a map and basic layout of the world the game will take place in and how each room in each level of the game will flow or be focused. In example “this room will be a puzzle room” or “this room will have a bunch of bad guys player needs to fight”. Stuff like that.

    I’m about halfway through that process right now and it will likely be what I focus on for the next month or so (if not a little longer). After that it’s actually drawing out each room in the game – which I will then reference when building the game levels in the engine.

    Exciting times!

    That’s it for now – as always you can keep up to date with progress on my social media accounts linked in the footer.

    Until next time!

    -Charles

  • Dragon Boss and Even More on AI Art in Games

    EDITOR’S NOTE 7.22.23 – Made a few adjustments to a couple headers and a few sentences in relation to Adobe Firefly. While I do think Firefly is interesting, I’m not currently planning on using it or any AI generations – more can be read in this blog post HERE and HERE.

    (Mostly) End of the Boss Fights and Re-approaching AI Art in Games

    Dragon boss lives!

    Hello all! Long time no speak! Apologies for the long delay in blog posts but my last month has been nuts between going on vacation to Florida, getting COVID, throwing my back out and getting another cold on top of that – as well as filming a movie in a week – it’s been nuts!

    But here I am – so this time I want to talk about a new boss fight I finished up (the last one for a while) and also get more into how I’m using AI Art in the game – specifically, the fact that I’m removing the AI art I currently have in the game, however I may start using AI art for backgrounds via new Adobe features in the future.

    Dragon Boss

    So this boss fight is a short mandatory boss fight I’m having the player do at the end of the 3rd area in the game. I want this section to be brief and intense, so I’m trying to not to make the boss fights too complicated for it.

    The basic layout for this fight is that there is a dragon who flies high above the players head and starts shooting different projectiles. Some of the projectiles can be deflected into a force field that is encasing a bouncy spring. When enough projectiles have been hit into the force field it shatters. This then opens up an opportunity for the player to bounce on the spring and jump up high onto the back of the Dragon. The player can then run up to the dragon head and start attacking. When enough damage has been done, sections of the dragon’s body will explode and the player will drop down to the floor. You then rinse and repeat the process until all the body parts of the dragon are gone and the player wins the fight.

    Dragon boss missing his middle!

    And there’s the fight! I’ve been working on the boss fights for the game for the better part of a year at this point and I’ve come to the point where I’m going to stop. There is one more semi-boss fight I want to do, but overall I’m happy where things stand. 14 boss fights in total – with a mix of both mandatory and optional boss fights the player has to find. Ho-boy. That was a lot.

    Removing AI Art from the Game

    Now the next thing I wanted to touch on was my oh-so-favorite topic of AI art. As I wrote in previous blog posts, I originally started playing around with AI art for a few of the boss fights (robot boss, bat boss and giant boss). However, I stopped after the protests began as I was in alignment with concern over the data sourcing of Dalle-2 and other at-the-time available AI text to art generators.

    Even though I had stopped, I did still leave the three boss fights I had used the AI art in live. However, after thinking more on things – I’ve decided to redo the art on these boss fights as well. The more I’ve been digging into the data sourcing issue the more uncomfortable it was making me. So I’ve been taking the last few weeks (in between being sick) and I’ve recreated all the art assets that I was previously using AI art for with either original video clips I’ve recorded or new collage art animations I’ve created from a large variety of Unsplash images I was able to find.

    It’s been a pain in the butt to do this – but I do feel a bit better about things now that I’ve gone through the process.

    AI Art Potential in the Future?

    Now this all being stated – there have been some new developments in the space of AI art that have recently come out that I’m finding interesting.

    Recently Adobe (who’s software I use A LOT for the game) has announced Adobe Firefly – which is their own version of a text to image AI generator. It also does things like seamlessly adding effects and color correction to images as well.

    From my understanding the difference in the data sourcing between Firefly and other AI is that Firefly was trained on Adobe’s own (very large) collection of stock images that they have in their database as well as public domain images. Adobe is also currently stating that they are coming up with some kind of a compensation scheme for stock images used in the training – though they haven’t given any details yet (as the software is still in Beta).

    Overall – this all sounds great to me. I can’t say whether I will or will not be using it for future assets (particularly when using generations to help make the background for the levels – which is what I’d like to use it for), but I’m definitely going to be watching Firefly closely to see what potential there is and if Adobe holds up their end of the equation.

    Now What? – Writing!

    So the long road of boss fights has finally come to an end (mostly). Wowza. So now what? Well the next step in the game development process is actually something I’m really scared about – writing! Now I am going to be moving into the phase where I lay out the story for the game and start coming up with the general level design for the levels of the game (and hopefully try and make it all cohesive).

    I would say this is one of the most important parts of game design and I’m anxious to get started!

    More to come!

    As always, you can see clips of the dragon boss fight on my social media accounts (in the footer).

    Until next time!

    -Charles

  • Gator Bug Shell Boss & Sound Effects in Games

    Hello all! I made a new milestone on the progress of the game (Lair of the Insect God for those who don’t know) – so it’s time for a new blog post! This time I’m going to writing about the ins and outs of the new boss fight involving a alligator/bug/snail hybrid (as one does) and then I thought I might talk a bit about doing sound effects in video games.

    As always SPOILERS ahead in the next section! So skip ahead to where I say “END OF SPOILERS” if you want to be surprised by this boss fight.

    Gator-Aid

    Screenshot from Lair of the Insect God game with player facing off against an alligator insect hybrid boss
    Gator Bug Snail Boss!

    So at this point in the process I’m pretty much done with all the “major boss” fights as I’d consider them in the game. A major boss fight I’m classifying as something that either grants a upgrade/ability or progress the story somehow. Amongst these bigger boss fights I also wanted to work in a few smaller boss fights, for no other reason than to just change up fights and make the overall game experience feel more dynamic.

    This boss fight solidly fights in this category – or if I may Gator-gory. I wanted this fight to be very basic with a simple gimmick and not much in terms of stages to the fight. My initial concept is a boss who you have to hit some kind of projectile at repeatedly in order to break its shell, which then leaves it open for normal attacks. This effectively is the same basic concept as the bat boss fight I previously wrote about – but instead of having to crack the spinning orbs you smash a shell with a rock.

    Player fighting alligator insect hybrid boss in a video game called Lair of the Insect God
    Alligator Snail Boss about to get his shell cracked!

    Coming up with the boss concept itself was interesting. For this one I went with all unsplash images of various animals and insects. My idea was to make some kind of a beast which looked like a hybrid between a reptile and an insect. Ultimately what I did was combine an alligator, a snail, a komodo dragon, a butterfly and a frog to come up with the beast. As is usual with these type of enemies I make, the process mostly just consisted of cutting up the various pictures and collage-ing them together in Photoshop and then exporting the various parts of the monster into After Effects where I animated everything.

    Doing these type of animations is always a lot of fun for me, as the images you are able to find are never exactly what you want so it forces you to get creative and to “make it work” as Tim Gunn would say. You also don’t have to fuss around with green screening the actors and making sure their animations loops sync up like you do when doing the normal digitized sprites from live action film footage as I spoke about previously.

    Boss fight from the upcoming indie video game Lair of the Insect God
    What’s better than balls? Balls with spikes!

    After making the boss I made the “projectiles” that the player will be able to launch at the boss – specifically spiked rocky balls which the beast calls down from the sky. When the balls first land they can do damage to the player if they’re standing in the wrong position.

    Once the balls have landed, the player can then launch the projectiles at the boss by doing “launch” hits – which are certain strikes within the various combos that launch enemies and move-able projectiles. To make sure the fight wasn’t too easy, I made the projectile launch up into the air when first hit – meaning that the player has to judge the arc of the projectile and the distance to the enemy when the projectile is launched or else it will go over the boss’s head. So you have to make sure you and the boss are in the correct position from each other in order to land a hit.

    While all this is happening the boss is launching a flame projectile at the player and will also occasionally quickly run up and do a bite attack. Once enough projectiles have hit the boss, its shell will shatter and the player can then run up and do normal hits until it dies.

    Overall – I think it’s a pretty straight forward fun little boss fight that will do a good job of breaking up the game play when placed at a certain point in the gameplay.

    END SPOILERS

    Sound Effects and Video Games

    Man making sounds into microphone for the upcoming indie game Lair of the Insect God
    Most of creating video game sound effects looks kind of like this.

    Before I got into video games or even doing movies, my entertainment life began in radio dramas. I used to run a podcast for a few years called Sci-Fi Radio Theater (still available on iTunes and Spotify). You’d think from that experience I would be a pro-sound person who loves doing sound effects. I am neither of those things.

    To be completely honest I find the process of doing sound effects to be incredibly tedious and I’m also not super great at it. That being stated I’m capable enough with it at this point to make something… passable. The process of sound is really something you have to be very passionate about to get into it, because it is TEDIOUS. Basically listening to the same sound effect of a foot step over and over an over again while trying to match it to an animation – stuff like that. Ugh.

    Regardless, sound is obviously important and one thing I can say I’m thankful for is how easy Godot makes utilizing and implementing sound effects into games.

    The real difficult tedious stuff to be honest is trying to navigate the various DAWs (Digital Audio Workstation) prior to getting the actual sound effect into the game engine. I’m very comfortable with film editing software (like premiere and after effects) and I initially thought that doing sound editing would be a similar setup. It is very not. A lot of the more advanced DAWs operate on a whole different logic and technology which I often have a difficult time working my head around. Luckily for me I’m mostly just using them for simple stuff. When I hear complex professionally produced music however, it just seems like magic to me that a sound engineer could have enough knowledge and know-how in their minds to be able to pull something like that off.

    Audacity DAW interface.
    Dawwwwww, it’s Audiacity.

    In the end though I do get through it. The two main DAWs I use are Cakewalk (formally SONAR) and good ole’ open source Audacity. A lot of people ask me what the process of making sound effects for video games is like and so far for me it’s been relatively straight forward. I either create the sound effect myself using various microphones or recorders I have (even sometimes just using my iPhone) – and this mostly consists of me grunting into a microphone or banging pots and pans around the house – or I’ll grab an appropriate Creative Commons 0 licensed sound effect from someplace like FreeSound.

    From there, the sound effect goes into the DAW and I’ll cut it down to what I need for the specific animation and then possibly add some kind of effect to it depending on what I need.

    I’ll then save the file as an .ogg file (smaller sized and good for use in games) and then upload it into the engine. .Ogg files are usually saved as loops, so I’ll have to go into the engine and re-import it as a non-looped file (depending on the sound effect) and then I’ll set each sound effect for each scene as an individual node using either an audiostream node or an audiostream2D node. The audiostream2D node creates a “distancing” effect, so that the sound effect gets quieter or louder depending how close the player is to the scene generating the sounds effect. Normal audiostream nodes play the sound effect at a consistent volume no matter where the player is standing.

    Inside Godot you are also able to add certain slight effects to the audio files as well – specifically the volume of the clip and the pitch of the clip. I usually will adjust both of these things in engine rather than the DAW.

    Once all of that has been set, then it’s just coding how the triggers for the sounds work where appropriate. The way I usually deal with sound effects is I’ll actually map them to the specific animations in the animationplayer node. This doesn’t always work and sometimes I’ll need to actually code it out by hand in the script file – but that’s not very often.

    And there we are! You learned something today about the gator-bug boss fight and doing sound.

    I’m working right now on another smaller boss fight and will be writing a blog post about that when it’s completed. In the meantime you can check out video clips of this boss fight on social media pages linked in the footer.

    Thanks guys!

    -Charles

  • Hail Insect God & Coding in Godot

    MEGA SPOILERS! This blog post goes over the final boss fight in the game, so please skip if you don’t want to read about that!

    Hello everyone! I’m back yet again with a new blog post as I hit a new milestone in the development of the game (Lair of the Insect God for all of you who don’t already know). I completed the final boss fight (where you finally battle the Insect God)! In this blog post I’m going to go over what went into the making of the boss fight and then I’m going to end off with some musings about coding in Godot and my general (lack of ) experience when it comes to programming.

    This blog post is coming a bit later than the previous ones because I had to take a break from working on the game for a couple weeks as I made a new short film! It’s currently title The Last Falcon and I’m hoping to be sending it around to film festivals soon. You can follow my personal social media accounts (@dasegad) for more info on that.

    Making the Insect God

    Fightin’ the Insect God

    This one was a doosy! I’ve discovered in the process of working on this game that making things “difficult” in a game is actually really easy. What’s very hard is making something easy enough to complete but challenging enough to make it seem like it’s hard. This boss fight definitely tested my design skills on that – I suppose it’ll ultimately be up to you players to decide if I succeeded!

    For this fight I knew it needed to be difficult as it’s effectively the very end of the game – the last great big challenge the player has to overcome. My design thought behind it was to “weaken down” the player before the main fight even starts by throwing several waves of normal enemies at them.

    In the game the player is going to get a special ability known as “Methul”, which effectively is the BFG of this game (for those who have played Doom). The ability takes a very long time to charge up but when used it kills everything on screen (that’s not a boss).

    Unleash the Methul ability!

    The items/abilities in this game charge by striking enemies. So the way the fight initially plays out is that the player will have to fight wave after wave of standard enemies until their Methul ability charges and they can release it. The player will need to do this 4 times before the Insect God fight will occur.

    In the level the Insect God sits on a thrown in the background and each time the Methul ability is used parts of its face blow off, until a skull is revealed underneath. When the skull of the Insect God is fully revealed, it flies to the foreground and starts attacking the player. As the waves of enemies are getting launched at the player the Insect God in the background will also occasionally throw attacks of its own at the player, including a poison fog spray that briefly covers the level, a fire ball storm and a distracting bug face that blinks “Obey Insect God” on it and covers the screen for a couple seconds.

    For this first part of the battle, getting the correct balance of what standard enemies should be launched at the player in what wave took a long time to get right as I wanted the player to get beat up but not TO beat up before the final fight. There wasn’t really much of a science to figuring out the right mix in the enemies waves other than just basic trial and error with lots and lots of replaying the section.

    Obey Insect God

    Once the Insect God actually engages with the player the fight plays out with a large number of attacks including the previously mentioned fog breath, fire ball storms and distracting face – but also adding in an arm/leg swipe attack and a large laser beam it can shoot from its head.

    The Insect God is very tall, so the player will need to try and position themselves on platforms scattered throughout the level in order to have their attacks reach. Outside of that, the main way to take down the Insect God will be to just wail on them with various attacks until it dies.

    The Wonderful World of GDScript and Godot

    Now to get into coding. Godot uses a type of scripting language called “GDScript” which is unique to the engine. GDScript is nearly identical (I’d say like 95% similar) to another coding language called Python.

    Prior to working on this game I had extremely limited experience with programming at all. I had told the story in a previous blog post, but I’ll give a summary: at my day job they had a big push to have us all study Python – so I had taken 3 months of online courses on Python about 6 months prior to starting the game (I studied for about an hour a day 5 days a week). At the end of the 3 months – I couldn’t really code at all. However, what I could do was follow tutorials and code along with them, which was enough for me to get started coding in Godot. The fact that Godot basically uses Python as its coding language was the primary reason I selected it as the engine for this game.

    A whole lotta if/elif/else

    Now, having experienced coding for the game for going on 3 years next month I can definitely say I’ve gotten “better” at it, but I still very much feel like I don’t really know much. Basically all I really know how to write out are if/elif/else statements and basic functions (which in turn also just trigger more if/elif/else statements). This game is literally just thousands and thousands of lines of if/elif/else statements at this point. My assumption is that this probably isn’t normal when you have a real pro coding out their games…. but I’ve never actually looked at much code for pro-made games so I guess I’m not sure?

    In either way, the world of coding is very interesting to me the more I’ve been digging into it. Effectively (as far as I can discern) the process of coding is the process of constructing an enormous logic puzzle or decision tree that doesn’t contradict itself (or more realistically – contradicts itself minimally). Writing out the actual syntax of the coding language hasn’t really been that hard for me – but working out how the logic flows was a HUGE learning curve, particularly given that I don’t really have much in terms of formal education on doing this and absolutely no experience up to this point either.

    I used to think that coding was very much a hard science. Things have to be scripted out in a certain specific way to make certain specific things happen. However, I have come to realize that coding is VERY much an art form. Once you have an understanding of the syntax of the programming language, there actually aren’t that many rules. You come to a realization that there are many many different ways to code something out – and most of them will work or are valid. It ultimately comes down to what is the most efficient and effective way to do it for your specific project.

    I still have a very long way to go in my coding journey, but I still feel a bit proud of myself to have actually been able to build what I’ve built so far after effectively starting from zero.

    That’s all for this point! See you guys next time!

    As always you can see video of the Insect God boss fight on my social media channels (linked in footer).

    -Charles

  • Digitized Sprites and Floaty Orbs

    New Year New Boss

    Hi all and happy new year! I ended being more productive over the holiday break and managed to finish up a new boss fight I’d been working on the last few weeks. In this blog post I’ll be talking about making this boss fight and then I’ll also start talking about the process of making live action digitized sprites – as I’ve been wanting to get to this topic for a while.

    Screenshot of video game with a man jumping over a floating orb for Lair of the Insect God
    Boingy springs and electric brain orbs.

    Orbs and Energy

    SPOILER ALERT – Skip ahead if you don’t want the details on this boss fight!

    So as I’ve mentioned before I’m breaking up the boss fights into “mandatory” and “optional” categories – this boss fight falls into the “optional” category, meaning the player will be able to skip it (or maybe a better way to put it is that the player needs to explore to FIND it). If the player does find a complete this boss fight they’ll be granted a new power, which right now I’m calling an “energy blast”.

    The “energy blast” power will shoot a blue… erm… energy blast at enemies which will do minimal damage to their hit points but will pack a wallup to their guard meters. As I’ve mentioned before, many enemies in the game will have both guard points and hit points – in order to start dealing hit point damage the player will need to break the enemy’s guard first (I blatantly stole this idea from Sekiro). Once the guard meter is broken, it can’t refill and the enemy will be more easy to attack and when attacks land it will reduce their actual hit points.

    My goal with the energy blast was to add a power that was more strategic towards quickly reducing guard points rather than a big damage dealer (which a lot of the other powers are more focused towards – though not all).

    Player character in video game shoots a blue energy blast in Lair of the Insect God
    Blasting with energy!

    With that in mind I decided I wanted to make the boss fight that you picked up the energy blast to be a bit fitting with the theme of “energy” (I don’t usually try to match boss fights to the power it grants you, but for this one I did). As such an electricity based bad guy seemed fitting. I also had this idea of an enemy that constantly floated in the air – similar to another boss I made which was a floating wolf head – but this one you get to constantly bounce up to their level rather than being stuck on the ground.

    I also wanted this boss fight to be in multiple stages, which means the attacks and nature of the fight will change as damage is done to the boss. When coming up with the physical design of the boss itself, my initial thought was to just have it be a floating electricity orb that shoots lightning bolts at the player which the player can hit back and then the boss will change the type of projectiles as it enters new stages.

    After some more thinking I felt that the orb by itself wasn’t as visually interesting as it could be, so I drew inspiration from the thing that all pf us 90s kids draw inspiration from – teenage mutant ninja turtles.

    A monster brain with spider arms explodes in blood in the game Lair of the Insect God
    No tarantula legs brain monster is safe from me when I hit the boingy springs

    I kept thinking about Krang from TMNT and how he was a weird creepy brain inside of a robot. So I felt it could be cool to have the outer orb be a shield protecting an inner evil brain.

    The fight would play out so that the more damage you do to the orb, the more it cracks, until it finally shatters revealing the inner brain, which will then expose platforms on either side of the brain the player can jump on and do regular attacks to.

    So now that I had my concept I had to create the scene! The first step was making the multiple layers of animations – both the outer orb shell (intact and cracked) and the inner brain. For the effect I utilized multiple public domain images I found of things like orbs, electricity beams and human brains. I also added in some tarantula spider legs for good measure, so that when you hit the brain there’s something that moves for some extra zazz.

    Once I had my images it was pretty straight forward to animate in after effects, as I just needed to cut out the parts of the images in photoshop and then start doing the animations. When I’m doing animations from photographs, it tends to be a bit more straight forward like this vs when I’m creating animations from video clips (more on that below).

    After about a week I had all the animations I needed and I uploaded them into Godot and then plunked them into multiple AnimatedSprite nodes – one for the outer shell and one for the inner brain.

    An animation being worked in Adobe AfterEffects
    Constructing the brain in After Effects

    To create the “bouncing effect” I took an older asset I had previously made of a bouncy spring that increased the height that the player bounced depending on their velocity and created a new scene out of it where the bounce would always be consistent (I kept the boingy sound though).

    Once I had all that loaded and constructed in the level it was mostly a question of coding it out The coding was pretty straight forward, with the one little tricky part being the movement of the orb. Since it’s not on the ground it can be difficult to determine where the “boundaries” are for where it can and can’t float – and then being able to trigger it to change directions (since the orb won’t just follow the player around like most enemies). To solve this I placed four Position2Ds (which relay a point on the x/y axis they are placed on) to the east, west, north and south of the where I wanted the orb to float in and then just told the boss scene to “change direction” if it went past the global position of any of those Position2Ds.

    And in the end my electro-orb boss fight is working! The orb starts by launching lightning balls at the player that they can hit back to damage the boss (this is the only way to shatter the outer orb). Then as the fight progresses the boss fight enters a stage where the outer orb cracks and it starts shooting both lightning bolts and lightning balls together (the bolts can’t be hit back). When the orb finally cracks, platforms appear on either side of the exposed brain, which now only shoots lightning bolts. The player will need to land on the moving platforms to start doing direct damage to the brain.

    END SPOILERS

    So that’s the Orb boss fight! I’ve now completed 10 boss fights and have 6 more to go. The next boss fight I’m going to work on is the last boss fight I think – when you finally face the Insect God at the end of the game. So that next blog post is gonna have LOTS of spoilers in it as a forewarning.

    Making of a Digitized Sprite in a Video Game

    So now that orb boss is done, I wanted to talk a little bit about the process I’ve used in making digitized sprites for the player character and enemies that were made with live action actors. I had previously mentioned in a blog post that I was inspired by old 90s fighting and side scrolling games such as Mortal Kombat and the Batman Forever Sega Genesis game I used to play as a kid, which also used digitized sprites for their graphics.

    A man dressed in costume in a green screen room recording animations for the Lair of the Insect God game
    Behold the majesty of the most high tech green screen garage this side of the Hudson

    My method for making these digitized sprites (as they are called) was pretty much the same as those games did (as far as I can discern). Basically, I (or the actor) go into my very professional green screen room (my garage I painted green), put on a costume and then stand as if in a 2D plane (so profile to the camera). I then have a list of animations that need to be done which the actor will act out. Sometimes this will require the use of a treadmill (for walking and running animations), sometimes it will require the use of a crash pad (for flinging yourself on the ground when doing a hit animation), most of the time it just requires the actor and the given costume or prop in use.

    The amount of animations that need to be recorded can vary wildly – anywhere from 40 to over 300. When I first started doing the animations the recording process took around one to two weeks to complete. Now that I know what I’m doing more, we can bang one out within 2-4 hours (depending on how complicated the animation is or how tired the actor is).

    Most of the time the animations aren’t very exciting to record – stuff like “turn left” or “stand up from a crouch”. Other times it’s a lot of fun – “do an attack!” or “cast a magic spell!” Other times it hurts a lot lol – “fling yourself onto the crash pad as if your getting hit by a grenade blast!”

    A man in costume throwing himself onto a crash pad in a green screen room while recording video game animations
    The crash pad is nicer to fall on then what I was originally using – yoga mats

    Once all the animations are recorded I go into After Effects and process the footage. Processing the footage consists of splitting up the animations into 1-3 second chunks (as I’ve discovered you get lots of ram issues if animations go longer than that), green screen them out onto a transparent background and then add any effects or color correction I want. One step that’s also important is making sure that the character in the cut out clip always physically stays in the same spot on the screen (as they’ll move out of the collision boxes if they move across the frame on the clip). This step is pretty tedious, as I basically have to go frame by frame and animate the position of the character so they’re always anchored to the same spot on the screen – actual movement of the character is handled in the code in the engine.

    Once the animations are complete I export each one as a “PNG Sequence” which effectively just exports the video clip as a series of transparent PNG images for each frame of the video clip (24 images for each second of footage!). I then take those images, compress them (gotta save that ram) and then upload it into the Godot Engine and place it into a node called an “AnimatedSprite”, which basically treats the images the same as a cell in a traditional animation loop.

    Once it’s all uploaded and each animation has been broken out into their own individual blocks and a state machine has been created it’s coding time! I think I’ll get more into animation blocks and state machines in a future blog post, as it gets a bit complicated.

    Space for Space

    One thing I’ve had to learn the hard way about building the animations in this way is that digitized sprites take up a TON of ram on the system. Before I was paying attention to how much ram was being eaten up and I was uploading 30 second long animations uncompressed, I started noticing that the scenes were taking like 5+ minutes to load. I couldn’t figure out what was going on so I looked at the ram usage and I had maxed out 64 gigs of system ram and 11 gigs of vram just to load the player character! Holy crap!

    So now I’ve learned that you have to cut the animation lengths down to ideally 1-2 seconds (and no more than 3 seconds) and each of the sprites needs to be compressed way down and then compressed again in the engine in order to keep the ram usage at acceptable levels. The quality of the images is ok after all this – but there are particles that can be seen and it doesn’t look as crisp as when I was running a single idle animation as a 30 second loop at 1080p for each frame. Oh well – that’s how it goes. I think back to when they were making games like this back in the 90s and I really don’t know how the hell they did it with how little ram there was in those early consoles and computers. It must have been quite a task.

    Well that’s about it for this post! As I stated, next project is going likely be the big final boss fight and I have 6 more boss fights to finish up overall. Then I’m going to work on adding a couple more base level enemy types (I think the total base enemy types will be 8 right now – I currently have 6).

    As always you can see a video of the Orb Boss fight in action on my social media accounts (links in the footer) .

    Until next time!

    -Charles

  • Robo-Boss & More On AI Art in Games

    EDITOR’S NOTE – 7.22.23: There is no AI art or AI assets being used in the game! This is an old article where I talked about using AI generated assets in an earlier version of the game for 3 of the boss fights. I’ve since changed my mind on AI art due to concerns with data privacy and I have removed all AI assets from the game – more can be read about it in these blog posts HERE, HERE and HERE . I’m still leaving this article up as I want to be transparent and I think it’s interesting to have a record of the evolution of my thoughts and process I went through while making the game.

    The making of Robo-boss and further thoughts on using AI art in the game

    Hey all! I made good progress over the last few couple weeks on the new boss fight and actually managed to get it done – woohoo! As always, I’m going to try to make a new blog post whenever I make a milestone like this. Additionally, there’s been a bunch of controversies in the space of AI art recently that have made me rethink continuing to use assets from AI generators in the game (at least for now). In this article I’ll touch on all that!

    Robo boss is gonna mess me up.

    To AI Art or Not To AI Art

    I’ll start off with the non-spoiler stuff for the boss fight first and talk about AI. I went back and changed the previous blog post I wrote as I think I may have been a bit too glib in relation to using AI generated assets in the animations I’m putting together.

    I’ve really enjoyed using the AI images that I can get DALLE 2 to pop out and then cutting them up and turning them into animations for a few of the boss fights – so far I’ve only used the AI images for 3 boss fights – robo-boss, bat boss and giant boss. I was planning on doing more, but I’ve decided to pull back and hold up on using the AI images anymore until more questions on the sourcing of the datasets that are being used to train the AIs are sorted out.

    I do think AI generated imagery is a really exciting space, particularly when you can use it to cut and paste together new creations like I’ve been doing – I guess I kind of just see it as another form of collage art. But following the recent protests online, I think there is a good point to be made on issues around data privacy and where the art that the AI is being trained on is coming from. The main complaint I’m in alignment with is the idea that the artists whose work is being used in the datasets should be able to consent first to their work being scrapped and processed.

    I think things would be different if the images that the AI was training on were getting pulled from public domain or stock image sites where people are consciously posting their pictures for open usage. However, this situation appears to be that the data is just being scraped from various websites including artist’s image galleries on their personal websites.

    It’s definitely murky territory, and I’m not entirely sure where my opinion lays in things, as the images the AI comes up with aren’t just direct duplicates but are “inspired” by the styles of artwork that has been processed (I guess in a way you could consider that a form of collage art too?).

    But after all is said and done, I do think it is reasonable to ask people to try and support artists in relation to concerns on data privacy. I do believe that if these AI systems are to continue to develop, they should be striving to have their datasets coming from consenting and aware contributors. I even feel like it wouldn’t be that hard to develop something like that too? Just start a website and ask people who are interested in AI art to send them a bunch of images to train the AI on. It seems to me like you’d get a ton of submissions for that – or even just use already available public domain or stock images. I’m sure there’s a scale issue to this, but I feel like you could do this more above the board.

    Either way – as it is, the game doesn’t have much AI art in it all, like I previously said only 3 (of a planned 16) boss fights use it, so not using it going forward isn’t really going to hinder, slow down or change anything much. It was just…. fun to make stuff with I guess.

    Oh well, thems the breaks.

    I will say if anyone ever does develop a more ethically raised, free range, grass fed organic AI image generator – I’ll definitely be there for using it though.

    Robo-Boss Fight!

    SPOILER ALERT! – Going to describe the boss fight against mr. robot. Skip head to where it says “End of Spoilers” if you would rather miss this.

    The Power Sword, it’s like a lightsaber BUT WITH POWER

    Throughout the game the player character is going to be getting multiple powers (I’m calling them Items right now) and three main weapons to use. The three weapons the player will get is a Spear (starting weapon – does medium damage and is medium fast), a sword (very fast, but does light damage unless “super charged” with a perfect block – which causes it to do heavy damage) and what I’m calling a Power Sword (slow and always does heavy damage).

    I wanted to make a boss that the player has to fight when they first pick up the Power Sword which kind of trains them on the way to use the new weapon. This weapon and boss fight I’m currently planning on happening half way through the game – it will also be the final main weapon the player picks up.

    The function of the Power Sword is really to just do lots of heavy damage – however the trade off to this is that it’s very slow to swing and only has a small number of combos you can do with it. As such I wanted this boss fight to be pretty simple – avoid the robot’s attack and do lots and lots of damage to kill it. The robot only has a couple attack options (punching/kicking and firing missiles at the player that randomly drop from the sky) and has no guard bar. However, it holds a very high health pool, which means you gotta do lots of big damage to it.

    Robo-boss dropping robo-missiles – just like in medieval times

    This boss can’t be traditionally “perfect blocked” like other enemies, but it can trigger a “super charge” state on the player – which allows additional benefits to the player briefly, including able to deal a lot more damage with Sword weapon. I’ll get more into guard bars, perfect blocks and super charging in a future blog post.

    The creation of this boss fight was much more straightforward – simple animations (made pretty much the same way I made the bat boss fight from the previous blog post) and simple instructions. I’ve found a strategy that is the most effective when fighting this fella is to not worry about blocking attacks like is common with other enemies – but to instead dodge out of the way of the attacks. I’m enjoying how this fight feels as it’s almost like a boxing match, where you have to weave in and out to dodge the punches and missiles and then coming in for your own attack.

    I wanted to keep this boss fight simple, so Robo-boss doesn’t really have stages and the attacks it does mostly stay the same throughout the fight. This being stated, parts of Robo-boss do start to explode off the more damage it takes including it’s arms, one leg and head. Ultimately it’ll just be a torso that’s bouncing around on one foot until you finish it off.

    This was a lot of fun to animate, but getting the animations to travel to the correct nodes was really tricky given that there were basically 5 different “states” the Robo-boss will be in throughout the fight, but the movement and attack instructions were basically the same for each state.

    END OF SPOILERS

    So that’s about it for this update! I have to say I wasn’t too sure about this blog when I started writing it as all the previous attempts I’ve made to have a blog or a vlog (or anything that requires continuous updating) I never kept up with because it all started to feel too much like doing homework (fuck that shit).


    However, I’ve actually really been enjoying writing this. It’s a very cathartic experience when you get to work out and explain your thoughts on a project you’ve literally had your whole life revolve around for years.

    It like having my Tok Tiked

    I’ll probably do a bit of work on concepting out the next boss fight next week before I go on holiday break (where I won’t be working on the game at all). I have a bunch of ideas but I need to nail down one of them to focus on for the next month or so (more like two months with the holiday break). I Probably won’t update the blog until next year at that too – so I hope everyone has a good holiday season and see you in 2023!

    As always, you can check out the video of the Robo-boss fight on all my social media accounts, particularly TikTok and Instagram – I’ve interestingly been getting the most traction on TikTok lately, which is a social platform I’ve actually been really enjoying (despite the also controversial nature of it lol).

    Thanks all!

    -Charles

  • Bat Boss Lives!

    Game Progress Report and Making a Monster in Godot Engine

    EDITOR’S NOTE – 7.22.23: There is no AI art or AI assets being used in the game! This is an old article where I talked about using AI generated assets in an earlier version of the game for 3 of the boss fights. I’ve since changed my mind on AI art due to concerns with data privacy and I have removed all AI assets from the game – more can be read about it in these blog posts HERE, HERE and HERE . I’m still leaving this article up as I want to be transparent and I think it’s interesting to have a record of the evolution of my thoughts and process I went through while making the game.

    12.4.2022

    Screenshot of Bat Boss fight
    This boss has gone batty!

    Happy holidays everyone! I’m back with a new developers blog post for the upcoming Lair of the Insect God video game. This month I’m going to be talking about a new boss fight I recently finished (for now I’m just calling it “Bat Boss”) and then I’m going to go a bit into how I go about creating boss fights.

    What is This Bat Boss You Speak Of?

    SPOILER ALERT – I’m going to go into the ins and outs of this boss fight including how to defeat the boss – skip ahead to where it says “END OF SPOILERS” if you don’t want to know.

    How I come up with ideas for enemy types and boss fights is kind of random to be honest, ultimately it just boils down to “something popped in my head so I tried to make it.” For this specific boss fight I had an idea that popped in my head of having a scene where the player was constantly sliding down a wall and had to keep jumping off the wall to attack a flying enemy. This idea was largely inspired by a Dungeons and Dragons game that my wife Josie once ran where she had us do an entire fight scene while free falling off a cliff.

    Woman playing dungeons and dragons at a table
    You can blame the Bat Boss fight on my wife and her Dungeon Mastering skills

    I like boss fights where there’s a bit of a gimmick to it and I am trying to structure most boss fights so that the player is doing some kind of non-standard action or having to take a special tactic in order to most efficiently dispatch the boss. This idea seemed to fit the bill.

    Why a bat? I don’t know – cause they fly? And are scary looking I guess? The script to the game hasn’t been written yet, I’m working on it! Anyway, the basic structure of the fight is that you start by jumping down a long corridor where you infinitely fall/wall slide. As you wall slide/fall the Bat Boss appears and starts shooting different types of projectiles at you. The Bat Boss also has several glowing orbs that encircle it. For the fight, the player will have to jump back and forth between the walls of the corridor while striking the orbs. Once all the orbs are destroyed the player will then be able to attack the Bat Boss directly, killing it after doing enough damage. Once the Bat Boss is defeated, the infinite falling will stop and the player will drop out onto the ground where a new corridor will lead him out of the scene.

    Each boss fight in the game will either unlock an ability or do something to progress the story of the game. In this instance, the Bat Boss will unlock the ability for the player to do a “Fire Slide” – which does an aggressive slide attack and ignites a trail of fire behind the player that does additional damage to whoever steps in it.

    Screenshot of Lair of the Insect God Game where player is performing a fire slide
    Athletes foot at its finest!

    How Was Bat Boss Constructed?

    Up until a few months ago most animations, bosses, characters, environments, etc. that I’ve made for the game where made with a combination of videos/photographs I took and public domain/stock photos I’d find on sites like Unsplash.

    The stock images/photos/videos is still how most things are being made in the game, but for this one I started playing around with the DALLE-2 AI image generator.

    For the Bat Bass I entered multiple queries into DALLE-2 asking for photographs of “monster bats” or “screaming bat faces” or “monster bat wings.” I then took those images and photo-shopped together the final monster with bits and pieces from each image. I then took the final monster photo I had and animated it in After Effects.

    Making the Bat Boss in the Godot Engine

    Once I had all the animations exported and plugged into Godot, the big challenge appeared – making the whole boss fight function in the game. Luckily, I had already implemented everything I would need on the player character a while ago (jumping, wall sliding, attacking in air, taking hits, etc.), so the only real concern here was the Bat Boss character and the level the player will fight the Bat Boss in (both of these things are called “Scenes” in Godot – this can get very confusing, as everything in Godot is basically called a “Scene”).

    Getting Mr. Bat to fly around, shoot at the player and take hits wasn’t too difficult for me. At this point I’ve made 8 boss battles and 7 standard enemies, so I’m relatively comfortable at coding out and setting up the fights – even when it’s a flying enemy, which does add some layers of confusion (luckily the Bat Boss doesn’t fly around any objects in the fight which is a NIGHTMARE to do – maybe more on that in a future blog post).

    The really difficult thing to figure out was how to keep the player “falling” the entire time. Have the wall keep auto-generating? Build a really giant level where you drop for like 5 minutes? All these seemed to be less than ideal scenarios due to both trying to figure out how to build it and also over concerns about how much Memory/Ram would be used up.

    So ultimately I decided the best approach was to not have the player fall at all.

    Animation being created in After Effects
    My sweet lover After Effects making the wall slide

    In Godot there is a type of object (they call them “nodes”) called a Position2D, which is basically just a cross hair and will mark its position on the X/Y axis’ wherever it is placed. So I built an actually somewhat small corridor to fall down and put a Position2D smack in the middle of it. I then coded out in the battle stage scene script that if the player is wall sliding down the corridor and the Bat Boss is still alive, they will stay in place on the Y axis relative to the placement of the Position2D. Once the Bat Boss is dead, the script shuts itself off and the Player falls the rest of the way down to the ground.

    To give the “illusion” of constantly falling I went into my old friend After Effects and just whipped up a short animation loop of the wall zooming past. So when the player drops into the “float zone” (as I’m calling it) the animation starts and the script fires telling to keep the player in position on the Y axis. Once the Enemy dies, everything shuts off. The scene script is able to identify when the Player has dropped into the float zone with another type of node called an “Area2D” – which basically just identifies when things have entered or left a certain area in a scene.

    There’s also what I’m calling a “damage bumper” at the bottom of the screen during the fight which will bounce the player back up if they mess up while jumping in between the two walls while wall sliding – however it causes a little bit of damage to the player. The idea here being that I want the player to try and keep wall sliding and jumping back and forth between the walls during the fight. The script for keeping the player in place only fires when the player is wall sliding as well, as it made the fight too easy if the player just floated next to the Bat Boss and spam mashed the attack button.

    And that’s the fight!

    END OF SPOILERS

    Making Monsters

    Boss fights can be a lot of fun to make, but they take a LOOONG time compared to standard enemy fights – usually it takes me about a month to a month-and-a-half depending on how complicated things are. A lot of this is due to the fact that in a lot of boss fights I have to design and code out the level that the boss fight is taking place in (particularly if there is something special going on with the level while the fight is happening like there is in this fight). Another reason is that the bosses I’m making tend to have multiple “stages”, which means they’ll change their tactics and attacks the more damage they take.

    My intention currently is to have 16 total boss fights in the game – a combination of both mandatory boss fights (which the player will have to do to progress the game) and optional boss fights (which can be skipped, but give special abilities and boosts). The optional boss fights will typically be hidden throughout the levels of the game and the Player will have to find them by exploring. I’m doing this as well with the puzzles that will be in the game (also a combo of mandatory and optional puzzles).

    Right now I’m done with 8 boss fights and have started work on the 9th. I have ideas for the rest of the boss fights except for 1 or 2 of them. I’m reserving the right to call it if I can’t think of anything interesting with the last 2 boss fights and just maybe make the player fight a bunch of standard enemies or bring an already defeated boss back for a second appearance. I’d rather not do this (and right now I’m confident enough to think I’ll be able to make the full 16), but if I can’t think of anything interesting to do for a new boss fight, I’d rather just cut it.

    Next up is robo-boss which is underway!

    Robot animation being worked on in after effects
    Robo-boss is gonna be number 9!

    If you want to see the Bat Boss fight in full check out my personal Instagram or TikTok where I posted the video of it! (@dasegad)

    See you guys next time!

    -Charles

  • The Beginning of Lair of the Insect God Game!

    Hello all! It’s me Charles Davis! The one-man show that is the development team of the upcoming video game Lair of the Insect God and this is the developer blog for the game. In this post I’ll give the background on the game, what the game is, who I am and the story of the game so far.

    Screenshot of video game Lair of the Insect God - character with spear is fighting an enemy in a red robe with a flying enemy in the sky above.
    One of the boss fights in the game – I’m currently calling this guy “Fire Lord boss” because all his attacks are fire based. My next door neighbor told me she thinks he looks like an evil version of Orko from He-Man. Now I can’t unsee it.

    So after being nudged by a couple friends of mine I’ve decided to do the responsible thing and start a developers blog for the game as I go through the process of making it. To be completely honest with you I’ve never been much of a blogger, or a vlogger, or a social media person in general – but I gotta start promoting this damn game somehow so here we are! Afterall – I wasn’t much of a video game designer before I started making this game anyway!

    Two me dressed as cowboys standing next to each other.
    This is David and Deven – they’re the ones responsible for convincing me to start a developers blog. This is how they normally dress.

    In terms of how I’m going to treat this blog – I’m thinking I’ll write occasional posts about the current progress of the game and just general where my head is at with the design of the project, as well as some history on the process of making the game so far. I’m not really going to hold myself to a specific timeline on how often to post (as most weeks there probably won’t be much new to say as game development is SLOOOOW – particularly when you’re a one man show) – but I’m going to try and update once a month I think. Monthly seems like a reasonable timeline to have enough meat to talk about, given the pace of progress.

    Screenshot of Wolf Head boss fight from Lair of the Insect God Game
    Screenshot of another boss fight – this is a giant floating wolf head that’s on fire and spits spinning blades at you while also puking out lower level enemies – just like in nature.

    As a forewarning – this blog is going to be FULL OF SPOILERS – in terms of what enemies, levels and boss fights there will be in the game. I’m going to probably keep most stuff about the story secret though – or at least keep the story elements to a high level. I have a hard time thinking the blog will be interesting at all though if I’m not showing regular stuff like gameplay, enemies, bosses and levels though – so that will be completely spoiled. I’ll try to add in fore-warnings before I do that.

    For this blog I’ll be posting pics and screenshots – but if you want to head over to social media I’m posting video clips regularly. The best places to follow are my personal accounts which are all @dasegad (Instagram, Twitter, TikTok). I also have social media names claimed for the game and my company Chunkle Freaky, but I’m probably not going to use them much until the game is in a more impressive looking state (with proper levels and backgrounds) as those are going to be more for proper “promotion”, rather than general behind-the-scenes type posts – so for now you’ll get the most out of following my personal @dasegad accounts. Be forewarned I also post a lot about professional wrestling and Dungeons and Dragons.

    So where to begin? Well since this is the first blog, I guess I’ll do the basics – what this game is, who I am and the current state of progress.

    What is Lair of the Insect God?

    Lair of the Insect God is an upcoming video game that I’ve been developing since 2020. It is a narrative driven 2D action game with light metroidvania and platforming elements, along with the ability to do different types of combos with different weapons. There’s some other design elements that are being thrown in related to how the map will be explored as well. Think 2D Sekiro meets Castlevania meets Mortal Kombat.

    One thing that I think is unique about the game as well is that the graphics are being created using live-action “digitized sprites.” Basically, taking video clips of real actors and then converting that video clip into sprite based animations – so when you play the game you’re controlling and fighting real actors! Environments and some enemies are also being created with a combination of photographs/video clips I’ve taken, public domain stock images and – most exciting of all to me – photo-realistic images created by AI (currently I’m using DALLE-2).

    So why is the game being made this way and not the normal way with pixel art or 3D graphics? Well the short answer is “because Charles can barely draw stick figures so he needs to rely on photos/video clips” – but the longer answer is probably more interesting. Let’s get into who am I to explain that.

    A storyboard from a short film I’m working on. This is the height of my drawing capabilities.

    Who is making this game and why? – the story of Lair of the Insect God so far

    Me! Charles Davis! I’m making the game! So some background on me – I’ve never made a video game before and prior to this project I had no coding or video game experience. I’m actually a film maker and an actor – you can see info about the movies I’ve made at the Chunkle Freaky website. But basically I’ve made 8 films (currently working on the 9th) – a combination of feature films and shorts which have played at a handful of various film festivals in the US and are available on streaming services such as Tubi, Amazon and TromaNow.

    Charles, the designer of Lair of the Insect God game, standing and play a blue bass guitar.
    It’s me! Charles Davis! Here I am playing a bass guitar!

    I’ve been making films since 2012 and prior to that I ran a radio drama podcast called Sci-Fi Radio Theater (still available on iTunes and Spotify!). Outside of making movies I also run an on-going Dungeons and Dragons theater show called Ready ReRoll at the Chain Theatre in New York City. Beyond creative endeavors I have a day job working in Search Engine Optimization at a company based out of NYC as well.

    So what’s up with the video game then? Well, what happened was COVID. Basically, I was gearing up to film a movie called Tender Kisses (which has since been finished and is now available to watch on streaming! I won Best Actor at the 2022 Newark Film Fest for it!) – we had it cast, costumes were bought, props were ready, locations had been identified. Then everything was brought to a screeching halt with COVID and the entire film had to be put on hold as lock down happened.

    Poster for the movie Tender Kisses- featuring a man and a woman embracing in front of a castle
    Tender Kisses – was trying to make this movie since 2018 and problem after problem kept delaying it with the biggest delay coming from COVID. The movie was FINALLY shot and finished in 2021 – available to stream now!

    As COVID progressed it became very apparent that it was going to be a while before any film making was going to happen again for me, so I called the movie off and spent the next 3 months feeling very depressed and playing lots of video games to pass the time. While my wife and were very fortunate to keep our jobs through the pandemic lock down (and were also very fortunate that we didn’t mind being locked inside with each other and the family) – the itch to do something creative did keep nagging at me. So the question ended up being, what could I do that didn’t require having to leave the house?

    Drawing and other like minded arts were out – as I’m the world’s worst artists (see previous storyboard photo for proof), and film making was also off the table for the time being. Well as I had mentioned – I was playing a lot of video games at the time, particularly older games on my Switch (I replayed all the PS1 and PS2 Final Fantasy games specifically – FF9 is still my favorite) and it got me reminiscing about about old games I used to play as a kid in the 16 bit era that I remembered. One game particularly I kept thinking about was the Sega Genesis tie in game for the movie Batman Forever (the one with Val Kilmer where Nicole Kidman rubs the nipples on the bat-suit and says how she loves “men in tight leather” or something like that – I can’t really remember the movie anymore, but I do remember the McDonald’s tie-in glass mugs they made that my friend Jon’s parents still have and use to this day).

    Charles, the designer of Lair of the Insect God, sitting playing a Switch with a cat in his lap
    Most of my experience for the first 3 months during COVID lock-down captured in this photo.

    I know the Batman Forever game was panned by critics at the time, but as an 11 year old I remember thinking it was awesome – mainly because of the graphics (I actually never beat the game). The game was made by Acclaim and used the same engine and digitized-sprite techniques as Mortal Kombat 2 – basically taking live action video and then taking the frames from the video clips and using them as animated sprites in the engine, thus giving the perception that you were really controlling the real-life Val Kilmer Batman! (at least to my 11 year old brain that’s what it felt like).

    As I sat in my COVID lock-down stupor I started thinking “why did people stop making games like that with live action sprites? It was such a cool thing and with hardware being so much more advanced today it must be easy to do!” (NOTE: as Charles would later find out – it is in fact not easy to do).

    Then I thought “Hey! I’m a film maker! And I have a green screen studio in my house! Why couldn’t I make it?!” (NOTE: By “green screen” studio Charles is referring to his garage that he painted the walls, floor and ceiling green – and not even Chroma Green, he painted it Home Depot Sparkling Apple Green, because it was only $25 a gallon vs $75 for true Chroma Green).

    Additionally around this time I had also started making little After Effects animations and posting them online – mostly out of boredom (you can see them all on my IG or TikTok). I also started thinking “why not also incorporate these little after effects animations I’ve been doing into the environments, backgrounds, etc. in a game!”.

    I knew how to film things on a green screen – process the footage and do animations in After Effects from my film making experience, I could use that to get the animations for the video game!

    My only issue was the coding – or was it?!

    Woman dressed as a werewolf samurai in a garage painted completed green with lights and a camera.
    My neighbor in the green screen garage doing animations for the “Werewolf Samurai” boss fight. As she will attest the animation process is not as easy I thought it would be.

    As I had previously mentioned I have a normal day job where I work in Search Engine Optimization. Around 2018/2019 (and into today) there was a big push in the SEO industry for Python (a coding language). It was basically made out to be believed that all SEOs simply HAD TO KNOW PYTHON, or you were falling behind in the industry (IMO – this turned out to be completely untrue, but it certainly scared all of us into trying to learn it at the time).

    Due to the push that was happening in the industry, the heads of our division at the company I work at encouraged us all to take Python classes. I had never done any coding before in my life outside of basic HTML and CSS for website building (and to be honest most of that is just automated these days) – so I spent an hour a day for 3 months taking a couple Udemy Python courses for general data science usage. At the end of the 3 months – I knew almost nothing. Or maybe I should say is that I had no practical abilities to code anything in Python – BUT what I was able to do was code along with tutorials as I watched them. It turned out that was all I really needed to be able to do to get started in what eventually became scripting video game scenes out in Godot (more on Godot in a moment).

    So I as I sat and thought about how to make my game, I suddenly remembered that I had a (sub) basic knowledge of Python – well that’s a common language right? Surely every video game engine in the world would use it!

    Nope! As I came to find out nearly all video game engines use some kind of variation of C++ or C# as their scripting language – damn it! I’m a brand new beginner programmer! And I want to make my game now! I can’t be bothered to learn C++! At this time of year?! In this economy?! Surely there must be another option.

    And sure enough – after scouring for hours on forums and reddit posts, I finally found my solution. The miracle known as the Godot Engine.

    An enemy character being worked on in the Godot engine.
    We bow to the glory of you oh Godot, master of the video game engines.

    Godot is a popular (amongst indie developers) game engine that is simple(….ish) to use and utilizes a coding language known as GDScript for its scripting. GDScript is basically 98% Python – at least from a syntax perspective – which is all I needed.

    The other great thing about Godot was the fantastic community surrounding it. There are tons of online tutorials, YouTube videos and resources that will teach you how to use it. It was perfect for what I needed. Even though it turned out how I’m making the game is a bit…. unusual…. to what the engine is designed for. But with enough time and effort I figured it out (or at least am in the process of still figuring it out as I go – but it’s working so far!)!

    So I was off to the races – and I started making my game. How’s the progress been then?

    Progress so far on Lair of the Insect God

    There is so much to talk about in terms of the journey that has occurred in creating the game, how far it’s come and how far it has left to go. I’m not going to go into all of that story here – as I think that’s better saved for future blog posts – because there’s a LOT to talk about.

    But I’ll give a basic summary here. When I started making the game – I believed it was going to be “easy” and done within 6 months. As I sit typing this, I have been working on the game for nearly 2.5 years (I typically work on it after work and on Saturday’s 2-4 hours a day 6 days a weeks). I predict it’s going to take me at least another 3 years to finish it (if not a bit longer).

    Screenshot of an animations depicting gears and colorful spheres.
    One of the animations I made in After Effects during COVID that inspired me to start thinking about making a video game – you can see them all in motion on my TikTok and IG accounts

    Despite the length of time and difficulties there have been I can honestly say I’ve never been more passionate or excited about a project I’ve worked on before in my life (this is also by far the longest it’s ever taken me on a project). Working on the game has become a big part of my life – it’s not just labor now, it’s a lifestyle. Like going to the gym regularly.

    In practical terms, here’s the current state of the game – note that all of this isn’t including finding and fixes bugs and glitches as they pop up (which is all the time).

    Current Progress

    • The player character, with all of his weapons and use items/powers is completed.
    • 6 out of 7 enemies are completed.
    • 7 out of 16 boss fights are completed
    • 11 out of 11 puzzles rooms completed
    • The camera has been figured out and base code for it is set
    • The game is running within reasonable RAM usage levels
    • Combat and platforming feels good (at least to me currently) but will also continue being refined
    • Floors, walls, ceiling and platforms are completed

    Things Left to Do

    • Finish enemies
    • Finish boss fights
    • Design levels, areas and flow of game
    • Write the story script for the game
    • Record all the animations for story based cut scenes and characters
    • Record voice acting for story cut scenes and characters
    • Create cut scenes
    • Create music for the game
    • Make backgrounds for each level
    • Test, test, test, test
    • Refine EVERYTHING
    • Get it ported and up on stores
    • Market it! (working on this with this blog)
    • A million other things I’m forgetting or not realizing yet

    So this is actually going to be where I end this blog post. There is so very very much left to write about – I haven’t even gotten into how I started utilizing AI generated images or the experience of recording animations! What it was like first figuring out how to code things! How I first got into doing After Effects animations! Why is it called Lair of the Insect God?! What are my inspirations and design for the game?! My goodness, so much to talk about!

    Charles standing in costume holding a spear as the main player character in Lair of the Insect God video game
    Me in costume as the main player character – named “Lauri” (pronounced “Lauw – Ree”). At the time of this photo I was just calling him “Mr. Spear”

    But I’m not going to write it all here – I wanted this blog post to be the start where I lay out the pre-journey to the beginning of making the game. Exciting things to come! I’ll probably structure each blog post with what I’m currently working on in the game and then go into a little story about the history and experience of making the game so far. Stay tuned!

    In the mean time you can keep up with things on IG, TikTok and Twitter on my personal account @dasegad . To be honest, I use IG and TikTok the most, I’m not much of a twitter guy but I do try to put regular video game stuff there as I have some progress.

    Thanks everyone!

    -Charles