Getting back to it!
Originally Written: June 11th 2024.
It’s been quite a while since I pursued my dream job as a game developer. A lot has happened in the last year since I graduated from Full Sail that’s really slowed down my progress.
After being given a twelve to fourteen month timeframe for our new home it took our builder two and a half years for our house to be built. My wife and I finally moved into our home in February 2023 there were numerous issues and hurdles we faced along the way while we worked on getting moved in and setup.
Four months later in June 2023 I was named salutatorian of my degree program and graduated from the Game Development program at Full Sail University. It was such an achievement that I was really genuinely proud of. A few weeks later I was unfortunately laid off from my lead developer position at Allata. Still, I kept my head up and was determined to try to make it into the games industry. That’s when the layoffs started happening. Many game development staff were being laid off as the industry shifted to be more cost effective.
So now we are here. I’m ready to get back to it. The dark times of the past started lifting and I’ve felt a renewed sense of purpose and drive. It all started with a simple conversation between a friend and I. Daniel was a classmate of mine at Full Sail university. We hit it off with a strong sense of determination and work ethic. We worked on projects and assignments together and kept each other going along the journey to graduation. Daniel reached out to see how I’ve been doing and when I asked him how things were going, he mentioned going to a few game conferences and meeting some people in his country who are in game dev. He shared photos and videos from the small convention. “Ugh! It feels like I’m not living my life!” I said to him. “How do you do it?” I asked. He shared the way he is trying to make things happen in his country and the struggles he is facing and told me he works hard to stay motivated.
I don’t know what it was about that conversation, but it was almost like I woke up in that exact moment. I envisioned myself going to those game conferences and meeting people, making connections and having fun. Most importantly I started to envision the real cheese... (Spencer Johnsons “Who Moved My Cheese” reference) I started to envision the life I wanted. I pictured myself working at a major studio on a project I loved with people who I could call friends. I imagined seeing people play the game I helped create on my team and feeling a swelling sense of pride and accomplishment. I envisioned myself down the line as a leader people wanted to work with. I love helping and teaching people so this was super cool.
This all sounds great... “but what about the layoffs?” I hear you asking. Those are temporary. The goal is not for right now. It’s for when the industry needs that resurgence of game talent. I’m taking all my time now getting ready to make my dream a reality.
I’m not saying this is going to be an easy road. It’s something I want to know. I don’t want to die wondering if I could have made it. I need a certain salary requirement so I’m going to have to prove that I’m worth it. How do I do that you ask? Studying. I know that being a game developer is a very tough role to get and that most times you must be the best or have a lot of experience. This is especially true right now when there are so many experienced people looking for work. However, with enough time I’m going to get so smart and so knowledgeable that it would seem like a mistake to NOT hire me. (I hope! haha)
For the future my plan is to work on projects to add to my portfolio, brush up on my C++ and get back into learning all the linear algebra I can!
The Journey Begins - Game Biography
Originally Written: July 19th, 2020 / Completed July 4th, 2024
Well.. I've finally done it. I enrolled back into school. I sure hope I made the right decision. Let me explain my whole backstory. This will be a very image heavy post so get ready! I am about to chronical every gaming memory I have to demonstrate how ingrained video games are in my DNA.
Growing up, my dad never slowed down in getting me into new games. At some point when I was a kid my dad got me an original Gameboy. I took that thing EVERYWHERE. Some notable games I remember playing were Megaman 3, Ghostbusters (which wasn’t what I thought it was going to be as a kid), Start Wars, Links Awakening, Metroid 2, Mario Land 2, and of course Pokemon Red. When I was a kid, these were games that I played all the time. They hold the biggest memories for me. I actually lost my Gameboy while playing Pokemon red under the seat of my dads car, and couldn’t finish it until years later. Better late than never though I suppose. When I was just a little kid, I actually remember taking my Gameboy in the bathtub with me. Needless to say, it stopped working. My dad took it apart and somehow fixed it. The Gameboy was a tank. Thanks Nintendo!
Eventually my parents divorced, and I spent time at both households. My dads house, and my mom’s apartment. When she met her husband at the time, he lived in the same apartment complex and had a son about the same age as me. His name was Anthony and he eventually became my step brother. We would spend a lot of time playing Super Mario Brothers and duck hunt together. Wishing each others player would die so we could have a turn at the game.
In 1990, that was a great year. That was the year for Christmas that Dan, my mothers husband, had wrapped under the tree a brand new Super Nintendo for us kids. I remember how excited we were as we opened it up. We had tons of games for it too. Super Mario World of course, Super Star Wars are the two games I remember us getting for Christmas. We of courses later got all the classics like Legend of Zelda: A Link to the Past, and Super Metroid. We also got a few weird titles like Mario is Missing (which we never played), and various looney toons games. Too many games to list here. But that was a great Christmas.
This love of video games kept growing as I got older. I remember my dad getting the 3DO and playing Escape from Monster Manor, and I remember the first time I played the Playstation 1 too, I played Crash Bandicoot and I also got a chance to play Wrestlemania the arcade game. I also have distant memories playing resident evil as well, but I don’t think I got very far because it was too hard for me at the time.
The game love didn’t stop there however. I remember that for my 9th birthday (1996), I got one of the coolest game consoles. The Nintendo Virtual Boy. Now.. Before you start hating on it.. I’ll be the one to standup and defend that thing with all my heart. I thought that the Virtual boy was so amazing. It was 3D gaming! I didn’t even care that the graphics were all red. To me, it felt more high tech honestly. I spent hours playing 3 of my favorite games on the console. I remember playing Teleroboxer, Wario Land, and Mario Tennis. I never suffered from any sort of headaches, the only thing I suffered from was a low stock of batteries.
How can anyone talk about the Nintendo 64 without listing a thousand games that they've played and loved on it. This was the first system I think that was cross household. My mother and her husband both had this console, as well as my dad. So I played a lot of games for this system. Some of my favorites being Diddy Kong Racing, Mario 64, Ocarina of time, you know.. all the classics. The first game I think I had ever completely finished (a rare feat even today) Was for the Nintendo 64. It was Shadows of the Empire. I have very vivid memories playing this game by myself in my dads bedroom while he was at work.
During Christmas of 1997 I remember that my dad had to move in with my grandma. He was having a house built, and that’s just the way it worked out. I remember very clearly, feeling very sneaky, because under the Christmas tree.. The wrapping paper was a cheaper quality.. And you could sort of see right through it. That was the year I remember getting the Sega Nomad. It’s hard to find any real good pictures of the device today, because I guess it didn’t sell very well. But what was cool was that you could play any Sega Genesis game on the go. (except Decap Attack!!) My dad had a Game Gear that I played for a little bit, but I don’t really have any memories of it . But the nomad was all mine. I played Ghostbusters for so many hours on that thing. Also the Nomad didn’t have a reset button… You cant imagine how I felt playing xmen and getting to the part where you need to press the reset button.. and trust me when I say, moving the power button really fast to off then back to on isnt the same as pressing the reset button! The worst part about the device was the battery life. It took 6 AA batteries, and you were lucky if you got 3 hours of play time. You could use the genesis power adaptor, but unfortunately, my devices power port was defective/damaged, and it never worked reliably. It also had a player 2 port on it that you could plug a genesis controller in, and play games 2 player. It had an AV out, but while I was at my moms, I never had a dedicated TV I could use, so me and my step brother Anthony played World of Illusion for hours cramming ourselves together to see the nomads screen.
During Christmas 1998, my dad was still living my with grandparents and we were having our Christmas there. My dad loved Christmas. It was his favorite holiday. I felt like it was the one time of year he would introduce all of us kids to the newest and hottest toys. Every year, he would get us things we had never even heard of before, but somehow it always ended up being the coolest thing we had ever seen. In 1998, for Christmas, my dad got me the Game Boy Color. Along with the only game I can remember him getting me. Turok 2 Seeks of Evil, the gameboy Camera, the gameboy printer. I know that over time I would play some other really great games like Super Mario Bros Deluxe, and Links Awakening DX.
I don’t remember the exact timing of the this memory but I’m thinking it was sometime in 1999. I have a great memory with my first experience playing the Neo-Geo. My dad loved it so much. He always loved to talk up the cool aspects of the consoles he got. While the NeoGeo was released many years earlier this was my first time experiencing it. The house was freshly built and there wasn’t a lot of things there yet, I remember the smell of fresh paint. I actually remember now playing WWF on the Gameboy color! Crazy memory! But that’s not the main memory.. I played for the first time.. King of the Monsters!! I LOVE that game. There was so many great games to play. Of course my dads favorite game was Magician Lord so we played that a bunch too!
Later in the year the Dreamcast came out and of course my dad got one. I remember thinking how cool the VMU was and how with Sonic Adventure you could take your chow with you. (I was a 90’s kid.. everyone loves virtual pets) What really was a blast though was Soul Calibur. I had never played a game like that before and it was really rare back in those days to see a game running at 60 frames per second. It gave a really fluid look to the graphics that I’d never seen before. I of course also had the please of playing games like Crazy Taxi and everyone’s favorite The House of the Dead 2 with the light gun. It’s such a shame about Sega because that console was a lot of fun and really a technical marvel.
It was around this time, where my brother Eric and I started getting creative ideas for games and movies. This due in part to my dad giving us a computer in our shared room at his house. We had access to a huge library of games to play and software to use. I dabbled in all sorts of games but one of the first games I ever completed was Star Wars - The Phantom Menace. 3D Games were sort of new at the time so it was a large undertaking for a 12 year old kid. One of my favorite games of all time come from this time period. Might and Magic VI: The Mandate of heaven. Even right now, looking at screen shots for this game.. Make me want to stop writing and go play it. Maybe I will.. No I can’t! It is one of the first game I ever played, where the world felt "alive" and things you did in the game had consequences. Kill innocents? They fight back? You kill them too? You get caught and you'll go to jail. It was the first game I'd ever played with a reputation system. There was some voiced dialog and it was just the coolest game I'd ever played. Its still completely playable today. I don’t think I’ve ever completed it. I’ve restarted the game at least 20 times and stopped before the ending. Maybe it’s because I never want it to end… Aside from seeing how great games could be aside from their 2D counter parts. My dad also got Eric and I the Lego Movie Studio kit. We spent a lot of time making funny little stop motion movies, adding in sound effects and dialog. It was a blast.
Around that same time, I cant remember how we got into it. But my brother and I started using a program on the computer called Klick and Play. This right here.. Is where it all started. Klik and Play was an instant game creator. It was scripting free, a totally visual editor. You had lots of components and premade assets. You could set paths for characters, control physics, screen transitions, music, everything. It was all done through this thing called the "step-through-editor." You would let the game run, and if an object collided with another.. The game would pause, and a prompt would popup on the screen and say something like "Prince_Character - COLLIDED WITH - monster_01" and there would be a visual guide on what is supposed to happen at that point. You could play a sound effect and destroy the character, or you could subtract a life point. You could really customize the game the way you wanted without the need to code. At that time, I had no idea what coding was. This was a super fun and easy way to create little games and my brother and I spent a ton of time making and playing them.
When I turned 14, I finally got my own console. All the consoles up to this point belonged to my dad. But it was my 14th birthday, my dad and grandpa took me to an electronic store. I think it was Circuit City. They told me that they were getting me my birthday present. I can’t remember specifically how I knew about the PlayStation 2 (Most likely a recommendation from my dad) but that’s what we were going there for. When we got there, they also offered to buy me my own TV! I also begged for a flatscreen.. When I was younger I thought a flat screen was a super thin tv but it actually was just what its name implies, a tv with the screen that was flat. I was living at my mothers house and didn’t have my own game setup. I shared a room with my step brother Anthony. I had SO many games I loved. There are a few series that I fell in love with. My best memories come from 3 specific series. Time Splitters 2, and Castlevania Lament of Innocence, and Spider-Man 2. I didn’t have a lot of money when I was a kid because I didn’t have a job! What’s really cool is that I remember being the PS2 the first console that I really got “social” with. I remember not having many games but I remember borrowing games from friends and trading them. That’s actually how I first played Spider-Man 2. It’s been such a long time that I don’t remember how I got some of the games I actually spent time playing. I remember playing Prince of Persia: Sands of Time with my friend James a lot too. I didn’t get a chance to enjoy the consoles more flagship games like Kingdom Hearts or Final Fantasy. It’s funny how much of a gamer was dad was that when my entire extended family went to the beach for the 4th of July my dad brought a PS2 and while my cousins were being loud at the pool and on the beach we were hanging out inside the hotel playing Man Hunt!
In 2001, for Christmas, my dad got me the Game Boy Advance. Along with the only game I can remember him getting me. Metroid Fusion. At first I remember feeling the Gameboy Advances shape was a little bit weird, but I really grew to like it. My dad also got one for himself so it was pretty fun to borrow each others games and take them when we went somewhere. It was a really fun memory. Interestingly enough, there were a lot of amazing games on the Gameboy advanced that I simply missed out on. I never played Zelda Minish Cap, any of the Castlevania games. I would play some of those amazing games later on the DS, but more on that later.
A short time later (can’t remember exactly when) my dad picked up a GameCube. I remember thinking that the console looked silly. Maybe beacuse I was some angsty teeenager or maybe because I felt the PS2 was “cooler” I’m not sure why, but I didn’t really get into the game library of the GameCube until much much later. I remember very few details on which games he got. The launch titles were slim pickings so I think we had Luigi’s Mansion. Eventually I remember seeing the staples like Mario Sunshine and Metroid Prime. But other than that, I don’t have too many fond memories of it.
When I was in highschool, my gaming roots continued to grow. In a strange way though. I became fascinated with programming my own games on the TI-83 family of calculators. I never knew how to make graphics move on the calculator so most of my games were text based or they used code to draw lines and points in 1 of the 10 slots available for plotting graphs. I wish I still had some of those games. One of my favorites was I made a Windows operating system clone complete with start screen, loading animations and even a few small programs you could run. Not only did I enjoy making games, I couldn’t believe how much fun it was to play games on the calculator either. This was of course more fun because you were supposed to be learning in class not playing games... that made it more exciting!
I graduated high school in 2005 and a lot of my time around then was focused on the band I was in and getting my first job. I know the timeline is a little bit out of order here as far as release dates for consoles and the order I got them but stick with me! I ended up working at Bose Corporation in March of 2006 where I met Nat. He was a really nice guy and was retired miliary. I don’t remember how it all happened but he took me to the military base where I bought myself an Xbox 360! I was so excited. What’s super weird is that I don’t even remember what games I got! I know that I had for the Xbox 360 I had Gears of War, Dead Space, and even bought Joust from the Xbox Marketplace! I know that it was MUCH later, but I also wanted to throw out there that when I met my wife (then girlfriend) we bonded over playing Minecraft local couch co-op in 2012 while making late night food runs to Sonic and to 711 convenient store for candy and snacks.
This was also when I really started to enjoy portable gaming. Not even on the go but laying in bed or sitting on the couch at my grandmas house. I had a Nintendo DS that I can’t remember where I got it. It must have been a Christmas gift from my dad due to the release date. I had a lot of games for that system. Some of the more notable titles I remember: Super Mario 64DS, New Super Mario Bros, Mario Kart DS, Mario & Luigi Partners in Time, Mario & Luigi, Bowsers Inside Story, Chrono Trigger DS, Tetris DS (one of my favorites) and Nintendogs.
My first real experience with a Castlevania game was Castlevania: Portrait of Ruin and to this day it’s one of the games I come back to over and over. The other games were novel experiences and great RPGs. One thing you can always say about Nintendo is that the first party games are always fun.
In the same spirit of the DS I decided to actually go out an buy myself the PSP. This was touted as the “high-tech” answer to the Nintendo DS as the games were on a disc! I bought this at Circuit City with the first credit card I ever got the Circuit City store card. I had some great games on the thing too which was fun. Some of them were duds but some were pretty fun even if just for a small experience. A few notable games I had on this console were WTF (Work Time Fun) a horrible little time waster which had an interesting concept, Mega Man, and Mega Man X, DC Super Hero’s and Family Guy.
Around that same time I also managed to pickup a Playstation 3 for $599!! Which I had to originally return because it was too expensive for me at the time. I ended up with the 80gb and a bunch of awesome games. These games ranged in variety. Some notable titles I remember playing were Resistance Fall of Man, Dragon Age Origins, Resident Evil 5 and of course the ultimate game..one that would spawn one of my favorite game series of all time… Demon’s Souls. I could talk forever about the souls series of games, but this blog is about consoles and my gaming history. Maybe I’ll write up something about the souls series in another blog post.
Details from here are a little sparse because as time goes on, I was able to buy my own games, trade them in, get new ones. So some of those long lasting imprinting memories I made when gaming was limited to me aren’t as magical. Don’t get me wrong! I continue to this day to be amazed and wowed by so many games out there. I have lots of other amazing memories of all the consoles and handhelds I’ve bough from the time this story ends up to today. Before I end this whole life story of gaming up I want to end on one of my best gaming memories. The time I got the Wii.
I don’t remember at what point I decided to attempt such a crazy thing as getting a Wii. I’m thinking this was in 2007 because It was shortly after they launched and they were sold out literally everywhere. I went on a crusade to sit outside of Kmart all night long to get one. My brother Eric decided to join me on the quest. At the time my tiny coupe car actually supported DVD playback on the nav system so I took a season Everybody Loves Raymond with me. We got some Taco Bell and from about 8pm we sat and watched the show, talked and ate awesome food all night. It started to rain but it didn’t stop our fun. We just ate more snacks we picked up and watched TV as the hours passed. When the daylight started showing up we got out of the car as we saw other people pull up in their cars. We were 3rd in line for the Wii. We were SO lucky. The store only got in 4 units!! I bought the unit for $250 and got out of there as fast as I could. Needless to say I needed to sleep a good chunk of the day to recover but being young has it’s advantages. I didn’t need too much recovery time. I LOVED the Wii.
There were so many amazing games on there. When I picked up my console the only game that seemed interesting outside of the quintessential Wii Sports was Trauma Center Second Opinion. (one of my favorite games) I was also SUPER excited to dive into the Nintendo e-shop. I could listen to that theme song forever.
The console would go on to be one of my favorite ways to play games for quite a while included amazing games like the Metroid Prime Trilogy, Metroid Other M, Super Mario Galaxy, New Super Mario Brothers, Mario Kart Wii, Super Paper Mario, Resident Evil 4 with motion controls and so many other amazing games that came out after.
Time would pass on and I would (as you’d expect) get every new console that would come out as I was growing up. I love games so much. They give us some unique experiences and make us feel things you can’t get from other forms of media. They challenge us, they humble us and the connect us to other people and ways of thinking. I know this was a long read. My history with games is super lengthy but it’s one of the biggest reasons I’m so passionate about them! I hope you had fun reading this and maybe going back down memory lane with a few of the game images provided.
Pain
It was the YouTube documentary “Raising Kratos” that ignited the fire that I needed to begin my journey as a Game Developer. I didn’t really have a real path or plan for my life at that time. I had a Game Studies (Game Design) degree from Bellevue, but I had chosen to become a software developer. My choice to do this was based on a few factors… financial security, ease of getting a job and my geographic location. I knew in my heart that I wanted to do something in games. I was the person in my class that put in 200% effort into my projects not because I wanted the best grade… but because of how I felt when I was working on the projects. I really loved making things and sharing them with others. It was really a passion of mine but in the end I had to choose software development. Let’s take a look at these factors in more detail.
I was the sole provider for my wife and me. I needed a stable income and one that wasn’t less than what I was making at Verizon as a sales representative. We had a house, and debt and bills. I couldn’t afford to take a huge pay cut.
The job outlook for a software engineer was overflowing at that time. Developers were in high demand. Everywhere you’d look there were jobs for developers and not just Senior or Mid-level developers… Junior developers. It was perfect for me to make a quick transition from retail to technology.
Covid didn’t happen until 2020 so I was already 2 years into being a software developer. At this time most of the video game studios didn’t allow remote work due to the nature of the job. It wasn’t until covid that companies realized how they could work together remotely and started opening up options for people in other states. Heck… I was driving 1.5 hours each way to work everyday just to have a software developer job. But I was willing to do whatever it took to support my family.
Now it’s November 2023, I graduated back in June and the game industry is suffering from massive layoffs. I guess it’s safe to say that a large number of technology companies are suffering from layoffs. I was laid off in June (yay graduation) and it was an extremely difficult time.
I feel so trapped. I’m in this terrible situation where I’m “too qualified” for any sort of internship because I have 5 years of “relevant” experience. I’m also in an even worse position because software developers typically make more than game developers… So, I would need to take a massive pay cut to start at a junior level, but I can’t afford to do that. Not because I’m used to living some extravagant lifestyle… but because with what I make now (still the primary breadwinner) I can just barely afford to live as it is. The game industry also doesn’t typically bring in mid-level game developers with no experience. There is also the tumultuous nature of the game industry as a whole. Being laid off for 2 months was one of the worst experiences I’ve ever been through. I don’t know if I could put my family through that again.
So where does this leave me? It leaves me in so much pain. Knowing how badly I want to make this happen… How badly I want to be part of something larger than myself. To learn from others and teach other people around me and just grow personally and professionally. To just be my full self-unleashed. I know I could help make some amazing things. When I imagine myself becoming a game developer it’s almost like I see myself going super saiyan. Finally unleashing my potential and ending up where I belong.
I don’t typically write blogs about how I feel. But I just felt it was really important to get this out. To finally put out into the world the challenges I’m having and my thoughts around overcoming them. I’m studying every day. Trigonometry, Linear Algebra, Problem solving, C++. I work hard to keep my skills sharp. I hope that one day a studio gives me a chance. I know it will be the best choice they ever made.
Thanks so much for reading my thoughts.
The end of an era
With the final build complete… I can finally sleep again.
All dramatics aside I am completely excited about my final project. Not because it’s over but because of how much fun I had working on it. I will have a full post mortem on the project page when its uploaded. I did encounter one final last minute game breaking bug that was one of the toughest ones to fix. To be more specific I had finished my build a few days ahead of schedule so I wanted my brother to try out my game. I sent him a copy of the build to test and I was so excited to hear his feedback. I did not expect to receive this:
“The game keeps crashing” he said. So I booted up the build on my computer and it worked fine. I asked him to uninstall and reinstall it… same error message. It’s like the old developer adage says… “Works on my machine!” But you cant leave a build like that. As far as I’m concerned if it’s broken for him… its broken for everyone. That’s not acceptable. So I decided to upload the build to the the cloud and try it on a different machine.
So I went to the only other computer in the house and I booted up the game. Fatal error! I couldn’t believe it! Not only that but the error message isn’t exactly clear. So I went back to my office and build a development version of the game. This is where I learned how to debug games using visual studio and an exe file. It was pretty interesting. The only problem was that the error message I was getting as just as difficult to find a fix for…
Somehow my game was attempting to access memory it had no right to access. But there were no real logs, or stacktrace to follow. The trail ended with this message. It would have been easier had a class been loaded so I could at least see the general area the error was happening. All I knew was that when I introduced the opening cinematic it broke the build. So I removed it, and built another version. The game booted properly. I was so perplexed! The cutscene is just a widget in a level, no code changes, no accessing other areas of memory. It didn’t make sense!
I went back to the Unreal Engine and installed debugging symbols. I ran it through visual studio code and by luck I was able to see 5 calls on the call stack. The error was caused by a rendering resolution. But I hadn’t changed any code related to rendering resolutions. Turns out the fix for this was to set the resolution in game to a common resolution like 1080p instead of the viewport resolution. DirectX12 was crashing trying to switch resolutions between gameplay and cutscenes. Once I made the change to have the game boot in 1080p with Fullscreen Windowed. It worked on every machine. The registry config stores the last resolution configuration so when my brother booted up the fixed game it still crashed. It wasn’t until he manually changed the resolution in the games menu that it overwrote the config and allowed him to play. Seems like a weird fix. But this error is apparently common in Unreal Engine 5. Oh well, lesson learned. The biggest takeaway is to have someone else on a different machine test my games in the future! Thanks for keeping up with me on Sid’s Adventure. I’m so pleased with how the game came out. Stay in touch with me and check out my website often for new projects! See you next adventure!!
Lights! Camera! Action!
The name of the game this week is cinematics. Crucial in an action platformer story-driven game. I knew since the beginning I wanted to have cutscenes but would I have enough time to implement them? How else can you really get a feel for what the character is going through? It was a little different than I expected to be honest.
When I worked on The Elemental Palace months back I was in charge of making the games opening and closing cutscenes. It was a really cool experience because I got to be creative. Most of the game I worked away at the code trying to make everything as robust as possible but here I was making cutscenes. How cool! This was the first time I’d ever done anything like that. I have to say though it seems like Unity was easier to work with. I could use a mesh, and move and rotate any bones in a mesh based on keyframes. I’m not saying that Unreal Engine 5 doesn’t have extremely powerful cinematic tools. I’m simply stating that simply playing around I found Unity to be an easier interface.
That being said I am really happy with the look of these cinematics. Just like the game itself the cinematics have a professional quality to them unlike Unity and I’m doing just fine using the interface. Because of time issues there are some hacky ways I’m doing things… Like including multiple Sid’s in the scene to get the right angles, or reusing combat animations and simply orienting Sid so he looks like he is using a tool of some kind.
For example in the opening cutscene one animation I have for Sid is him holding a pistol. Well I simply used that animation to make him look like he was opening a box. I thought it was pretty clever and once the cutscenes are done I’ll remove the additional actors and objects and play-test the game a hundred times to make sure I didn’t leave a weird stray camera behind or worse… an extra Sid!
This is the exciting part. I’m only a week away from finishing the game and it’s all coming together. I just look at where I started and I’m so happy with the result. My last blog post on the series will probably be a reflection of how the project went. A post-mortem of sorts. But for now, I need to hop back into the directors chair and get these cutscenes made!
A whole new world
It’s finally here! Polish month! I’ve been waiting for this month for a long time. I had to have a lot of restraint during development because I was so tempted to make everything look better. I’m glad my producer kept the last 3 months on functionality rather than on the aesthetics. It made the project more foundationally sound to begin with. Even if not everything looks perfect the game plays well.
The very first thing on my list was to make the world less flat. I always how the world looked like a boring plane. So adding hills not only added some depth to the world but it also prevented the player from exiting (falling off) the map.
The next thing I spent a long time on was the molten metal factory. I wanted to really bring this thing to life. I originally had wanted to add tons of animation but time won’t allow that. So I went through and made sure that every surface has a texture. I also added a new obstacle to the second floor. In the original version the second floor you could run past the enemies. I didn’t think that was very challenging so I repurposed the elevator platforms logic to create a platform that only lowers by standing on it. I also timed it so that the enemies could attack you before you could get the platform to the bottom. I feel like that added more complexity to the stage.
The molten metal factory also needed a coat of paint in the areas final area. The boss’s office needed to feel more like an office. So I added windows and some office furniture to make it more realistic.
One thing that was extremely stressful was the performance of the game. At one point the game was running at 20 frames per second! I was so confused as to what could cause that! I had actually reduced the map size so it seemed counter intuitive. I had to look at various videos on optimizing an Unreal game. First I tried to lower some texture resolutions. Specifically the resolution size of the textures I used to paint the entire landscape. That didn’t help! Ultimately what I had to do was change the reflection resolutions and turn of the new nanite rendering in the engine. That seemed to fix my issue. I’m sure there are further alterations I could have done to improve performance but there isn’t a need. The game runs at 144fps on my screen at 1080p and at least at 60fps on a 4K display with a RTX2080 Super card. I’m pretty happy with the performance at this point and how things are looking.
Under my (green) thumb
This is it. The final month of the project. That means it’s polish month. First on my list of things to do is to fix up the landscape. Right now the landscape itself is… well… flat. “The earth is flat!” No. No it’s not, and neither should my landscape. From the offset I hated how boring and lifeless the world was. No vegetation, no foliage, no trees and no life. I knew that this month was going to be my chance to really make things come to life.
The first thing I did if you remember from a little while back in this blog post was to design the level layout. From there recently I’ve been looking at photos of junkyards. I wanted to see what color the grass was and what kinds of objects they had laying around. What I saw was pretty interesting! Like most things there was a wide variety of objects there but the color of the grass was a more yellow dead grass look. I thought this would be great for my game. My only concern was that my main character was yellow. I didn’t want my character to get lost in the weeds. (no pun intended… ok it was intended)
I looked over a variety of different textures I could use that would compliment both my character and the rest of the landscape and I think I found a nice variety. I just need to get painting. The other thing I really want to address was hot flat everything is. I’ve never done any sort of landscape manipulation. So I’m going to need to learn how to make natural looking levels with it. Give everything a natural sense of scale. The one thing I have going for me is that this is a sci-fi world. So things don’t need to be exactly like earth. This is going to be an exciting week. I can’t wait to use a whole new toolset!
Ice Ice Baby
Hello! Thanks for reading this weeks update! Things are getting cold outside! Better stay bundled up… Ok… not really. It’s April. Not really a cold month here in Florida. But! Things certainly have gotten a lot cooler in Sid’s Adventure. This week there was a big push to add some final touches to the build. After today, there isn’t supposed to be much active development happening so it was down to the wire to finalize the last high priority features.
The first things that I wanted to tackle was the Cooling Zone. This level was very underwhelming before. It was basically just a single room. Hop on some platforms and get a key. I switched tickets to work on the boss AI as I felt that was going to take much longer than some level design. Now with adequate time I added some more depth and challenge. I added level music for each area too. So now each area feels unique to play through. I added an air vent system to the level to have some snowfall which I thought would be cool since it’s supposed to be a frozen area.
I also added the terrifying exploding spiders to this level. I haven’t found a valid reason they belong here yet story wise but I’m working up to that. The floor in this entire area is slipery so trying to make your way and NOT fall into the freon liquid below is a real challenge. In conjunction with that trying to fend off this many spiders is really tough. If these guys are close enough they can kill you in a single blast. For those who love secrets… I’ve left a very cool easter egg in this level for anyone who is up to the challenge of finding it!
On the topic of challenges… one thing I had a really difficult time with this week was creating user settings. This includes a wide variety of options you’d expect to be in a game like this. I created various menus for Settings->Audio->Controller->Graphics. Creating graphics settings and testing them in the Unreal Engine viewport is impossible. So every change I made I needed to build the project which can be time consuming. But overall with some patience and a decent processor I was able to get everything working. Next month is where we start to really polish the project. Getting rid of the separated levels, the ugly debug menus, and tweaking things like 3D audio. I’m pretty excited for that! See you next time! Thanks for reading!
A mind is a terrible thing…
This week my sole purpose was to create the epic, climatic, amazing, exhilarating… boss battle. I knew that if anything in the game was going to leave a good impression that it needed to be the final boss. If Dark Souls has taught me anything, it’s the thrill of winning an awesome boss fight.
I had worked a little bit with behavior trees in Unreal Engine but mostly AI behavior I’ve worked on previously has been low level C++ code. So using a GUI to implement some of this was really interesting. It seems like it took a lot of work setting up variables to trigger various events. At one point one thing that was odd was that the boss was taking no damage at all. He would just sit there, not move, not take damage or do anything.
I worked tirelessly on the behavior tree. As you can see for one enemy it became quite expansive. I know that AAA games have AI behavior trees much more intricate and accurate than this but for someone with no experience I’m mostly happy with how everything turned out. It was interesting having my wife playtest the boss battle. When she employed a very simple “stand right here and shoot” strategy that ultimately killed the boss in only a minute. I knew then there was more tweaking to be done. One thing I didnt consider is how others would approach the boss. When I was testing things I was running around making the camera do cinematic things to look cool… really get into the action. But some players may not approach the situation like that so I needed to get rid of the “this looks cool” as my top priority and go back to function over style.
Ultimately I need play test data. I’m hoping that in the coming weeks the closed beta testers will give my game a chance and leave some feedback. It’s easy to get wrapped up in the fun aspects of game development. Designing the boss AI for this game really was a blast. I can’t wait to get back in there and tweak it some more!
It’s dangerous to go alone…
This past week I’ve been making really good progress on my game. I added a new final boss that lays eggs and spawns smaller enemies to fight. I added better death animations and physics to my spider robot. I tweaked my test level to try out all the different aspects of my game. But then something happened that I really didn’t expect. It reminded me of why being an indie developer is not for me. I got stuck on something.
The crawling bug enemies were visible no matter where you were in the level. This bug (no pun intended) has been pointed out to me a few times in my most recent play tests and I was determined to fix it this time. This ruins the surprise and challenge for the player. I only want the enemies highlighted when the play gets close to them. I worked on this issue for 2 days straight. I watched dozens and dozens of tutorials. Read through the Unreal Engine documentation. Watched their live webinars. But no luck in solving my issue. It was incredibly frustrating! Now I know… that finding solutions to problems is the core of what a developer does. It builds your toolbox for future issues. It builds confidence. I love a good challenge, and I love that feeling of accomplishment when I finally figure it out. But on a development team, you have people you can communicate with. You have people who can be your rubber duck. Even if the problem is completely new. You have support there to work on issues together.
Ultimately after days of un-fun debugging I finally got my enemy outline working. Even now it still bothers me! I hope that being part of a larger team alleviates these issues. I’m going to spend time looking over more of the asset’s documentation I got so I can understand where I got caught up. There is still a lot of work to be done on this project and I’m starting to feel the crunch! Time is money as they say so I’d better get back to it!
Baby, it’s cold outside…
After a nice break off from the project, I came back refreshed and excited to get back to working on the level design for my frozen area. This is called the “Cooling Zone.” The idea was that in this junkyard the junk gets melted down in the Molten Metal Factory, transported into the cooling zone to cool off, then repackaged and sent back out to some other planet to be used for something else. The levels needed cohesion. So I designed how everything would be connected in the actual world.
A new area needs a new enemy type so I decided to go with something anxiety inducing. An exploding spider robot! Theses guys move much quicker and are more deadly than the crawling bugs than the previous area. This is the whole point of this area. The Molten Metal Factory is a platforming focused area and the Cooling Zone is a combat focused area. So the thing that makes this enemy deadly is that it can 1-hit-ko the player. The spider robot moves much more quickly, has an audible charge up and then explodes. Depending on the distance from the player they will take more or less damage. These guys are relentless! They will chase the player very aggressively and can only be damaged by melee attacks… that’s right… they explode when you get close but can only be defeated by melee. To me, that’s what makes them so scary to come up against.
Being that this is a frozen area, I wanted to add the ubiquitous slippery ice physics. So I took a lot of time to make sure that the feel of sliding around felt fair but also presented a bit of a challenge for the player. Overall I’m pretty happy with the progress of the Cooling zone. I’m getting closer to getting a nice cohesive junk yard. I’m really looking forward to the polish stage of development. I want to add more life into the world!
Debugging Buggy Bugs
by William Terlop
This week there was not a lot of feedback on the project so I was left to simply work from the backlog. I had two major issues this sprint; one was a defect with the animation of an enemy and one was a major source control issue that cost me an entire day of development.
One defect from each sprint that has haunted me has been the crawling bug death animation. It took a lot of time and effort to determine why this was even happening, but it took even more time to determine the fix! What I noticed was happening was at random the enemy death animation was not playing when their health reached zero.
After several hours of debugging I’m still not sure of what issue was “the” issue. Here are some of the things I found while testing and things I tried to solve the issue:
Issue: Enemy being shot while the death animation was playing would cause an interrupt and revert back to the idle state as shown above.
So for this I immediately turned off all collision the tick the enemy death animation was played. This solved two issues I was having.
First issue was the death animation was no longer interrupted by the player shot.
Second it allowed the player to walk through the enemies. This was important because on the platforming sections of the molten metal factory had enemies on small platforms. When the player was moving through at a quick pace the collision of a dead enemy would cause the player to be pushed off the platform.
Issue: I noticed that the enemy being killed during the bite/attack animation would prevent the death animation from being played.
This was the most difficult issue to solve as I was mixing several different ways of playing an animation. First there was animation blueprint ready to play the death animation when the variable was set. Second, the blue prints had a path to play this animation when the enemy health was less than or below 0. So the first thing I did was delete the variable from the animation blueprint. I feel like using the animation blueprint was the correct way to solve this issue. But because of the simplicity of prototyping via blueprint I went that route.
I removed the variable from the animation blueprint to make only one place the animation was being played.
I also added various print statements to check if the animation was actually being triggered… it was.
I added a boolean state to the behavior tree to ensure that all AI behaviour was blocked when the enemy was killed.
What seemed to solve the issue was disabling all AI behaviors when the enemy was killed and also disabling the enemy controller the moment their health was at or below zero. This seemed to be the perfect combination to get the issue solved. It sounds simple when writing or reading about it. But it took a lot of trial and error to get it solved. It was worth it though, knowing the the enemy death animation will play every single time. Its a better experience for the player!
Swing and a miss…
This week in Sid’s Adventure I worked extremely hard at getting melee combat working. I have never done any sort sphere collision in an actual game before so this a bit challenging. Luckily there is an incredible community of people who offer advice and videos on the subject. The first thing I had to figure out was what did I was this melee attack to look like. Did I want something of an overhead swing? A horizontal swing? Did I want a different weapon to appear in Sid’s hand when the animation was played. For simplicity (as the first three months are not polished based) I went with an overhand swing with his gun still in his hand.
I’d say the most difficult part of this was tuning the player to use this new feature. There was a lot of extra work that went into it. It wasn’t as simple as “play an animation.” Here are some things I needed to tweak to make this work.
The player did not bend down or up when looking down or up.
This needed to be corrected with aim offset animations so that Sid was not swinging up into the air and doing damage to enemies below him.
The camera needed to be clamped on the yaw so that Sid’s spine didnt bend 90 degrees upwards and downwards
The sphere collision needed to be socket based to generate the collision data.
Not only did I spend time with the melee I also spent time working on tuning how everything felt. To me, this was the most impactful update I’ve made so far. The character felt like he was too close to the screen in previous builds, it also felt like the aiming was not accurate. Aiming lower to the floor at enemies resulted in bullets colliding with the floor and disappearing. I also finally added a jumping animation.
I also spent a lot of time revamping the damage system and enemy health system. I also added an emissive glow in the darker areas so that the player can see the enemies. It's small things but I think they will add up to a better experience.
The game is playing much better now. It feels like a real game! I’m happy with the progress I have made. I will admit that the amount of work ahead seems so larger, I am concerned about how much work there is to be done. I feel I may be entering a crunch period soon or negotiating with the producer on what should be included in the game when its complete.
Hot under the collar…
by William Terlop
The last few weeks has been more level design. It’s a lot more difficult than I expected. It’s not just about item placement like I thought. When I was meeting the the games producer, a few suggestions came up that I didn’t really expect. I took these things for granted. A few of the things that were brought up were:
What kinds of ambient sounds do we hear in this level?
What kinds of animations bring this factory to life?
How will the player feel engaged while in this level?
Things that I took for granted in the games I played now were really important in the one I was making. Another thing I brought up to the producers was how my character felt while traversing the levels. No no, not Sid’s emotional state… but how he controlled. Did the player feel in control when making these jumps? The answer at this stage is no. Good controls make or break a game. I really needed to fix this but how? How could I tune this perfectly? The wise producers had an answer to this too! “Play the kind of game you are making!” Wow… such brilliant advice! Just boot up some of my favorite games, ones that inspired me. So I did. Ratchet and Clank on the PS4 was the one I booted up for this experiment. I immediately got a nice feel for what kinds of controls to tweak and implement.
Thats been my task this week, it hasn’t been easy and it is actually a ton more work than I expected. I have always respected game designers but this made me realize how much detail goes into this kind of design. I’m currently also tweaking various aspects of the game. Sometime I get lost tweaking everything, but that will all come in the polish stage. Well… I’d better get back to it. I have more lava bubbling sounds I need to scrape from the internet!
You want me to design what?
by William Terlop
One thing I never really considered when I was thinking about my game is my level design. Now I know what you are thinking.. How can I not thing about my levels? It’s not that I didn’t see brief glimpses of my games level in full glory.. action packed, explosions, enemies rushing the player and all kinds of beautiful camera angles. When I really sat down to think about the levels the other day.. two questions came into my mind. How do I design levels to make them interesting to the player, and how do I make them interesting to the player while still fitting into the world. It’s interesting that when I saw my levels in my mind my player wasn’t the focus. The polish and coolness was. Which isn’t great…
I started to really consider what kinds of things I would like to be challenged with in a level like the Molten Metal Factory. This was going to be the platforming stage so there needs to be lots of tight platforming. I don’t want it to feel cheap if you fall off the ledge, but I also don’t want it to feel like the staircases are narrow for the sake of being difficult. I’m trying now to tie all this into the actual story.
I sat down in photoshop and blocked out a 3 tier level. I made sure to include all of the ubiquitous level design aspects of 3rd person action games (moving platforms, elevators, narrow jumps) and I also tried to create a flow to the level that made it feel functional as an actual molten metal factory. It took some research to see what kinds of tools go into a factory like that but I think I got a good idea. I’m still working on making the level fun but the prototype is fun to play around in. In an interview about the design of Super Mario World, Shigeru Miyamoto said “A video game should be like a park you like to visit over and over again” meaning that the level should be fun and players should enjoy exploring it. That’s what I’m aiming for with my design. Although I can’t say I’d personally enjoy vising a molten factory over and over again.. but alas that’s not for me to decide! It’s up to my players!
Unreal Troubles in the Unreal Engine
by William Terlop
There I was in the thick of making this game.. making magic happen.. when all of the sudden my character’s texture randomly became like a lit up Christmas tree. Bright, twinkling and beautiful. Did I accidentally change something? Was this my fault? I wasn’t sure I frantically looked through my source control to see if I made changes to the textures.. that wasn’t it.. I looked if I accidentally assigned something wrong.. that wasn’t it either.. I looked one last time at the blue prints I was using to see if somehow I was modifying something I shouldn’t. Another time I was play testing my game, and my character randomly turned into the UE4 Manikin.. again I searched high and low to see what I accidentally changed. Maybe I accidentally changed the skeleton, or the mesh, or deleted something. Again.. none of this was my fault.. well… sort of..
Unreal Engine 5.1.0 has it’s issues. That’s the moral of this post. How did I fix the holiday texture issues (it’s not a bug it’s a feature..)? I restarted the editor. How did I manage to find my skeleton issue with the animation blueprint? I restarted the editor. These kinds of issues happened so often I wondered if I made the right choice in choosing the latest version of the editor. Ironically, I chose this version because on my machine in Unreal Engine 4, I had such bad graphical issues I could not navigate the interface. Don’t get me wrong there were some issues that were my own fault, but thats where version control really saved me. I cannot stress enough how important version control is. Perforce and Unreal make it extremely easy to catch small mistakes and revert files. Just be sure you are committing you changes often!
I know that Unreal Engine 5.1.0 is new. These are just some issues I ran into.. maybe you are experiencing them right now and found this blog. If you are do what I did and restart the editor!
“Problems with Blueprints”
by William Terlop
I began creating lose conditions for my player recently and one of those is instant death when touching molten metal. This means if a player falls into the vat of metal they will die instantly. This sounded like something easy to achieve so I began prototyping. The issue I ran into was when using blueprints the player would die when touching the metal and the level would restart.. However, the real issue was that any object or mesh associated with the player would also trigger the level restart. This included things like projectiles. When the player shot into the level it would trigger as a death. Sometimes a collision would not trigger the reset at all.. this took some time to figure out.
I began troubleshooting this issue by playing debug print statements on interactions within the blueprints. There were two components at play. The collision of the objects and the lava, and the actual restarting of the level itself. The level reset took place in the level blueprint. The collision was attached to the player and the lava collider box. Placing print statements allowed me to see what was being triggered where.. I was able to use this to tweak the blueprints to find the player based on the tag rather than any skeletal mesh on the character.
The other issue was having was passing the variable from one blueprint to another. I kept seeing the variable change on one blueprint, but it was not registering in the other. This was preventing the level from restarting. I again had to use debug statements to see when each blueprint was reading the value. It turned out that the level itself was not getting an updated message when the variable changed. It took some research online to learn about tick events and how they are used to read from variables constantly.
This was a great learning experience and now I feel more confident in passing variables from one aspect of the game to the other!
Sid’s Adventure - The Beginning
Sid’s Adventure is a third person action game staring a modest robot named Sid, an underdog who finally gets his chance at adventure when he accidentally discovers a briefcase in a junkpile containing an upgrade chip that upgrades him giving him the abilities of a secret agent. Not all is fun and games however as this briefcase contains proof of the Bug Kings plot to throw the galaxy into chaos. As the bug kings minions converge on Sid’s position, players must navigate the dangers of the junkyard while defending themselves from the onslaught of deadly bugs who are determined to stop Sid from exposing their leaders plans. Players have a variety of tools to survive including essential secret agent skills like knowledge of high-tech weapons, toss-able weaponry, and of course hand to hand combat for close quarters confrontations.