Get your tempos and shooters ready as we uncover the stories as he was developing the game! Read down below on how our interview went!
How was your game born?
I had been playing with the idea of making a NES game where player actions create the soundtrack for a while. Then, in August 2022, NESMaker held its third Byte-Off competition, a kind of extended game jam for NESMaker developers. It was at that point where I drew inspiration from one of my favorite games of all time, Rez, and decided to make an homage to that game, and its spiritual successor, Child of Eden, on the NES. I collaborated with Jordan Davis (Space Raft, The Storied Sword) on an initial proof of concept demo for that competition and ended up winning what is called The Wombat Award for the weirdest, out-of-left-field entry. I then moved forward to finish the game since I was already in love with it.
What was development like?
Development was initially tricky for a number of reasons. I’m not very good at programming or music. Jordan handled the music, so I just had to rely on the NESMaker community to help me figure out how to make the programming work. Under the hood, what we’re essentially doing is running a unique composition constantly in the background but keeping two of the sound channels muted until a corresponding action occurs on screen – the player fires or an enemy gets hit, for instance. Anyway, long story short, that was the trickiest part. Once that was in place, it was actually a lot of fun to create pseudo-3D backgrounds representing “cyberspace” environments and designing the waves of enemies for each area.
What did you learn about yourself through this game?
Nothing I didn’t already know from the previous NES games I’ve developed. I suppose I further developed my love of messing around with pixel art. I’m no artist, but I have a strong aesthetic perspective, and this game, above all of my others, allowed me to cultivate and hone in on that a bit more.
What makes this game special?
While there are better pseudo-3D games on the NES, and certainly there are music/rhythm games, there is almost nothing else like Oratorio on the console. There is a game called Otocky for the Famicom Disk System. I learned about that project from Fei at Broke Studio after I was already developing Oratorio. It’s great! That’s more of a scrolling shooter, but has a similar concept of all player actions contributing to the soundscape. I recommend that people check that game out. In any case, Oratorio is nonetheless a very unique game on the system that combines unorthodox visuals, a unique interactive soundtrack, fast-paced and addicting shooting galleries, and a cyberpunk hacking narrative that engages with pressing issues of our times like global warming, the rapid extinction of species, and the increasing dominance of global tech conglomerates in our lives.
How does sound play a role in the game?
Hopefully this is already clear given my previous answers. Haha. Oratorio offers an interactive soundtrack. Players literally create the soundtrack through their actions, like firing their projectile and hitting enemies. It’s an almost visceral connection with the soundscape of the game and creates a multi-sensory experience that can easily slip into a state of flow. It’s like an interactive album.
What games influenced this one the most?
The biggest influences were Rez, Child of Eden, and Thumper. Of course, like any game, there are myriad other inspirations from across gaming history. Astute players may find some easter eggs or homages in there to other games.
Any fun stories or wild moments during development?
Nothing too crazy. But I guess this is a good moment to shout out the artist for the game’s NES box art. Matthew Warren Lee produced an original oil painting for the cover. The image used was literally a cleaned up scan from an actual painting. Matt is also the artist that did the cover for Orebody: Binder’s Tale. Honestly, I consider Matt’s cover paintings to be as vital as my designs or Jordan’s excellent and unique compositions.
Do you think preserving older gameplay mechanics in new games is important?
If a game mechanic works – if it remains engaging and, for lack of a better term, fun, then older gameplay mechanics should absolutely be preserved. And, of course, many are to this day, even if they’ve been iterated on over and over again.
But I would also argue that the opposite is true for retro development. That is, I think retro devs can and should look at what mechanics have developed over the entire history of games and think about how they might be implemented on older consoles. It’s an amazing time to be a player and/or a developer. We can go from the Atari to the NES to virtual reality in a single afternoon. And there’s so many talented people working all over the world.
What's your favorite memory as a gamer?
That’s a tough one. Some special moments were receiving my first NES in 1990 (I know, pretty late), getting Ocarina of Time for Christmas in 1997, staying home from school to pick up Shenmue on day one for the Dreamcast. I could go on. I loved sleepless nights playing Diablo 2 and Counterstrike on my terrible PC. I remember buying an Xbox 360 in 2007 and grabbing BioShock and The Orange Box that Fall and just being in absolute heaven. Both BioShock and Portal remain experiential pillars in games for me. Most recently, my favorite memory has been slowly introducing my young son to video games. He’s already a Zelda fanatic!
Who will enjoy this game the most?
Retro players who enjoy unique homebrew experiences. Fans of rhythm action shooters like Rez. Music fans in general. At least, I hope they will enjoy it!
Bottom line, why must someone play this game?
It’s a unique rhythm action shooting game experience in the NES homebrew library, which is full of extremely unique and amazing work. From the gameplay to the visuals to its interactive soundtrack, it’s a singular experience that I hope every NES player appreciates. The game features four main Areas, each with its own audio track, that can be played in any order and an extra long final fifth Area with a unique track that becomes accessible once the other four are finished. There’s also an Endless mode with unique screens that provides additional challenges and experiences. It’s a robust, complete package.
How do you want this game to be remembered?
As a fun and engaging interactive music album – and as a game people can return to and zen out whenever they want.
What's next?
I’m currently developing a Game Boy game called Hammermill: An Orebody Story. It takes place in the same universe as Binder’s Tale but tells a very different story following a new set of characters. Players will explore the alien oceans of the planet Orebody in this action adventure title that combines simple ship combat with underwater exploration.
Anything else you'd like to add?
Thanks for the opportunity, Mega Cat Studios!
-
]]>Get ready to fly into the enchanting world of Witch n' Wiz as we uncover insightful answers and delightful stories from its development journey. So, hold on to your wizard hats and join us for an adventure like no other!
Read down below on how our interview went!
How was your game born?
Witch n’ Wiz started life as a Pico-8 game. If you aren’t familiar with Pico-8, it is a modern game engine that mimics retro consoles (2D pixel art, limited colors, low resolution, etc). After that, I ported the Pico-8 game to the NES as part of the yearly “NESDev Coding Competition” and was awarded 2nd place! After that, I expand on the original concept dramatically, into what would become the Witch n’ Wiz you can play today.
What was development like?
Development was smooth! As I mentioned, it happened in stages which made the whole thing feel manageable. Start to finish, I think the game took about a year, from the first line of code, to sending the manual off to the printers.
The scope of the project was very intentional, from the NES Memory Mapper I chose (MMC1) to the number of levels (100) to the style of gameplay (single screen, puzzle). It was all just slightly bigger than my previous project for the NES, “From Below”.
What did you learn about yourself through this game?
I would say that I found that my years spent working on commercial games helped a lot in terms of shipping a quality product. I work as a programmer in the game industry (Gears of War, Dying Light, etc) and the coding style of the NES is quite different from that. But the skill that I did find very transferable was just the ability to pull a lot of different resources and people together to create a cohesive, polished product.
What makes this game special?
Something I really like about Witch n’ Wiz is that the difficulty curve is a lot different than most retro puzzle games. Traditionally those games ramp up the difficulty more and more as the game goes on, often layering more and more mechanics as the player progresses.
In Witch n’ Wiz, the difficulty has peaks and valleys. Every chapter of the game introduces a new mechanic, but throws out all the previous mechanics, so the player gets a steady stream of new things to learn and master.
How does sound play a role in the game?
One of the biggest challenges for sound (in particular music) for this game is to make sure it doesn’t get annoying when you are sitting on the same screen for very long times (as the player attempts to think through a difficult puzzle). Tui, the composer for the project, did a fantastic job of keeping the music pushed into the background, but still creating memorable tunes.
What games influenced this one the most?
The core concept is heavily inspired by an old game called Catrap/Pitman which was probably most famous for their Game Boy version.
Any fun stories or wild moments during development?
A serendipitous event happened during the production of the physical version of the game. I was a huge fan of “Hand Draw Game Guides” by Philip Summers, and had asked if he would be interested in creating a guide for Witch n’ Wiz. He was too busy at the time preparing for what would become a viral success on Kickstarter. Months later, that Kickstarter launched just as I was finishing up my work on the physical part of Witch n’ Wiz. Unfortunately, Philip was forced to cancel the Kickstarter, and was left with “nothing to do”. It just so happened that right at that time is when I needed a poster/mini-guide for Witch n’ Wiz. We reconnected and he was able to come on board and deliver an amazing fold out poster with a mini-guide on the back, reminiscent of Nintendo Power.
Do you think preserving older gameplay mechanics in new games is important?
Not particularly. What I find more interesting is applying modern design principals to under used classic genres. I think Shovel Knight is a great example of this. Essentially taking Duck Tales and building it for today’s audience. Building modern games for retro console adds a further twist.
For example, Witch n’ Wiz has a whole suite of accessibility features which are very popular in games right now, but weren’t considered at all in the 80s and 90s. It’s fun to think of what an “accessible NES game” looks like. (See: Witch n' Wiz Accessibility (witchnwiz.com) for more info).
What's your favorite memory as a gamer?
Something that always sticks out to me is renting an NES and Contra from our local video store. It was before we owned an NES, and we would rent it on Friday and play it all day and night until it had to be returned on Sunday. It was a great time to be a kid!
Who will enjoy this game the most?
Folks who love classic puzzle games like Fire ‘n Ice, Solomon’s Key, Lolo, and similar.
Bottom line, why must someone play this game?
It was ranked as the #1 homebrew game of all time be RETRO! I’m not sure that’s deserved, but you should at least play it so you can say the game is overrated!
How do you want this game to be remembered?
As a polished experience start to finish, cartridge to cardboard. Everything in this package was meticulously crafted to be top quality, with excruciating attention to detail.
What's next?
I’m currently working on my next NES game, Super Sunny World: the ultimate love letter to the platformer greats of the 8-bit era. Jump, bump, and kick your way through 8 worlds of pixel-perfect platforming, cute characters, and exciting power-ups. Built from the ground-up for the NES!
Anything else you'd like to add?
Thanks so much for checking out my games! If you are interested in seeing more homebrew, check out my “Homebrew Games Summer Showcase” on youtube, a 30-minute montage of over 100 homebrew games currently in development! It’s a great place to get a sense of what is out there.
-
]]>Welcome to Mega Cat Studio's Indie Retro Homebrew Showcase interview series, where we dive into the world of homebrew games that capture the spirit of classic gaming!
Our first feature shines a spotlight on "SkateCat," a homebrew game created by the dynamic duo, DaleCoop and his son SJ! This heartwarming father-and-son collaboration brings a fresh breeze to the gaming scene, fusing retro charm with contemporary creativity.
Get ready to roll into the development and pixels of SkateCat as we chat with SJ about their journey, inspirations, and the joy of creating games. Hold on to your skateboards and read through SJ's answers to our questions!
How was your game born?
SJ: Last year, we got a cat named Soja. And I'm totally into skateboarding, been learning tricks since last year. So, I thought it would be awesome to make a game that mixes both things I love: a cat on a skateboard!
What was development like?
SJ: I worked using a software called NESmaker, which lets you create NES games. First, I sketched out my ideas on paper or in my notebook. Then, I pixelated them on the computer, created animations for various characters or monsters, and designed the screens. My dad helped me with the coding part since it's still a bit too tricky for me. Sometimes my dad didn't agree with my choices, so we'd have (friendly) arguments.
What did you learn about yourself through this game?
SJ: Making a game is always kinda tough. Coming up with cool levels that are both nice to look at and interesting, while also tweaking the difficulty, is a challenge. I enjoy it, even though I'm not super good at it yet.
What makes this game special?
SJ: Skate Cat is special because it's about a cat on a skateboard in a platform game... the physics are kind of different than usual platformer (more slippery). Plus, it's super cute!
How does sound play a role in the game?
SJ: The sound makes everything cooler. The music and sound effects bring SkateCat's world to life, making it awesome! We added a lot of little sounds when the skateboard jumps, touches the ground, ... cat meows when you grab an extra life (or when you successfully enter a cheat code on the main screen). All the music and sfx were made by Jordan Davis (Raftronaut), who we already teamed up with for the previous games. He makes really cool music.
What games influenced this one the most?
SJ: I love classic platform games like Super Mario Bros or Kirby, and I'm a big fan of adventures like Zelda. They inspired me to create something fun and easy for everyone to enjoy.
Any fun stories or wild moments during development?
SJ: The first SkateCat was a different cat, a bit chubby and funnier. But players didn't really like the graphics, and most importantly, it didn't look enough like the kitten on the box. So, I had to change it, which was funny. And a bit sad at the same time, I liked the old cat, it was funny.
Do you think preserving older gameplay mechanics in new games is important?
SJ: Yeah, it’s like a ”tribute” to classic games.. A link to the past.
What's your favorite memory as a gamer?
SJ: I have great memories of playing Splatoon with my dad on the Wii U, and also spending hours together playing on our arcade machine.
Who will enjoy this game the most?
SJ: I think SkateCat will especially appeal to younger players who love cute cats and skateboarding. But the game can be a bit difficult at times, which might also good to older players who enjoy a fun challenge.
Bottom line, why must someone play this game?
SJ: Because SkateCat is fun and cute!
How do you want this game to be remembered?
SJ: I hope people will remember SkateCat as the best skateboarding cat game on the NES!
What's next?
SJ: I have some game ideas, but nothing has started yet. However, I already have drawings and sketches in my notebook. We'll see.
Anything else you'd like to add?
SJ: You can totally create your own video games, even if you're a kid. Just have fun and do what you love! Thanks for inviting me to this interview! *
-
Follow Dale Coop on X and check out Skate Cat here!
]]>
Before doing anything else, it’s always best to reevaluate your product and find out which audience it appeals to the most. While it might seem like a lot of busy work for no reason, only by knowing the ins and outs of your product can you identify your audience? By knowing your audience, you’ll be able to research which influencer most appeals to that demographic and, in doing so, maximize the potential reach your games might have.
Image courtesy of Wes Lewis via Unsplash
Once you’ve found out more about your game’s potential audience, it’s time to choose who to market yourself to. Whether it's gaming YouTubers, Twitch streamers, or game journalists, pick influencers who resonate with your target audience and share your values. The choice is yours, but remember to choose the type of influencer wisely. The wrong type of influencer might attract an audience you’re not prepared to receive. As the saying goes, you are the company you keep. The influencers you reach out to will become associated with your brand, so it’s best to choose the ones you’re not afraid of being connected to and the ones you can most appeal to.
Image courtesy of Maddi Bazzocco via Unsplash
The next step is to reach out. Approach influencers as partners, not just marketing tools. Introduce yourself and your brand and establish the type of relationship you want to form with them. Do you want them to simply show off your game to their audience? Or do you want to personally sponsor them? Whatever you choose, setting the tone and establishing the boundaries needed to make this relationship work is best.
Image courtesy of Christina @ wocintechchat.com via Unsplash
Do research on them, but never talk down to or patronize them. The last thing you want to do is appear condescending, especially when you’re reliant on their opinions and content to help spread your image.
Support the influencers you hire! Your reputation with your future audience hinges on the good graces of the influencers you contact. Their word means a lot to their audience, and so their recommendation (or criticism) will have a lot of impact on how well your product is received.
Approach them as you would a partner, and do your best to accommodate their needs and their concerns. Give them game keys to give away, exclusive access to behind-the-scenes info, and more. It might seem excessive, but this is a mutually beneficial relationship. Both you and the influencers you contact can benefit from this partnership, and a cordial relationship will go a long way to ensuring that things go smoothly. Do your best not to step on their toes; they’ll do the same with you.
Honesty is key to maintaining your company's credibility. Your reputation, good or bad, will influence the public’s perception and the influencer’s opinions on your product.
As such, hold yourself and your company to the high standards the public expects of you. The last thing you want is a PR disaster that makes you look bad and incentivizes content creators to shun or dislike your products. Play it straight and be truthful, and the public will appreciate how you conduct yourself. The last thing you want to do is make yourself and your products look bad. You have to remember that authenticity builds trust, which is essential for long-term success.
Image courtesy of Markus Winkler via Unsplash
Influencer marketing can be a powerful tool for promoting your games, but requires careful planning and execution. By understanding your audience, choosing the right influencers, building genuine relationships, and maintaining transparency, you can leverage influencer marketing to propel your game to success.
At Mega Cat Studios, we're passionate about helping game developers thrive in the industry. Join us on LinkedIn and Discord for more insights and discussions on all things gaming.
This article was written by Alexander Cuaycong.
]]>But how do your gaming skills translate to game development? Learn how your gaming skills can prove integral to a successful game development career.
Like learning any video game, the first rule is always sticking to the basics. Like learning new video game mechanics, it’s always best to tackle each step one at a time. The same goes for video game development. Whether learning how to code or creating new models from scratch, the only real way to learn is to start from the beginning and go from there.
Image courtesy of Glenn Carstens-Peters via Unsplash
Like in any video game, it’s the objectives that you set for yourself that truly matter. Take each day one step at a time, and focus on something that will round your career for the better. Try to learn something new each day, and polish up your skills. It’s the best way to ensure that you’re getting better.
Image courtesy of Markus Winkler via Unsplash
It might feel boring or frustrating, but the little steps you take each day will determine how good or bad you’ll do during your job.
Remember that it's best to keep following your heart when you’re doing things out of passion. If you enjoy certain aspects of your career, pivot into it, and let that be your guide on how to proceed. If you enjoy coding, learn game development. If you enjoy testing out games and finding bugs, enlist in a game company’s QA team. If you have a talent for talking to people, consider being part of a game’s marketing team.
At the same time, don’t let new things stop you from experimenting. You never know if it’s something you’ll enjoy, and while uncertainty can be scary, it’s better to try and realize it’s not for you than to never try at all.
Like any video game, making friends and forming relationships with others will help you in your career long-term. Don’t underestimate the value of a friendly face! Having a cordial working relationship can help keep you invested in your job, especially when you’re surrounded by like-minded people. Moreover, a good working relationship is the cornerstone of ensuring operations run smoothly. Having a friend to rely on is an almost vital part of office culture, and knowing someone has your back will make work feel a lot less lonely.
Image courtesy of Hannah Busing via Unsplash
You get special points if it also helps you discover a new passion. Friends often help people discover more about themselves and their tastes, and a good working buddy might just help you find something new to enjoy in game development.
As with all things, imitation is the highest form of flattery, and what better footsteps to follow than those of the greats? There have been many great games and great developers, and learning from their game designs and their histories will help you understand more about good game development.
Image of John Romero at Codemotion Milan 2018 courtesy of CodeMotion
Some development stories can even impart lessons you can learn during work. While we can’t all be Hideo Kojima or John Romero, understanding the rationale behind their actions will help you design a game worth playing.
While it might be exhilarating to learn something new, remember not to push yourself too hard. Burning out is an easy way to turn something you like into a frustrating, passionless experience. Take frequent breaks, and remember that even when you’re learning something new, do it in moderation.
These are just the beginning steps that a gamer-turned-game-developer should keep in mind. If you’re hungry for more tips, consider dropping by our Discord, where we do our best to help new developers get their feet off the ground. You can also visit our LinkedIn and learn firsthand the ins and outs of game development straight from our studio! Some hands-on learning with talented developers might just be what you need.
This article was written by Alexander Cuaycong.
]]>There’s a very good reason for this, though. While it might feel like it’s a lot of work, these platforms do some very important things for aspiring game developers everywhere.
The biggest benefit of these platforms is that they give people the community they want. Gaming isn’t the solitary experience it was before and is now a hobby shared by millions worldwide. With this newfound scope comes the need for people to communicate with others, and what’s more enticing than for them to share their hobbies with others?
Image courtesy of John Schnobrich via Unsplash
This community not only helps you market your product better, but it also keeps your audience invested. When their friends and families are involved with the same hobbies, it means it’s easier for you to keep them invested and interested in whatever products you’re selling. And what’s easier to support than a product on a platform like Patreon, where constant updates are guaranteed?
Funds can be hard to come by, and the works you want to make might need publishers' attention. Thankfully, these crowd-funded platforms make funding easy, as it’s much more convenient to find interested crowdfunders than to find publishers and big corporate investors.
Image courtesy of Morgan Vander Hart via Unsplash
Unlike publisher-backed deals, these crowdfunding platforms offer lots of convenient ways for your audience to support you directly. Being able to provide various reward tiers and benefits means that someone’s support of you can be as low as a dollar. It might not seem much, but the small asking price makes it much more attractive than you asking for a lump sum.
Not only that, their funding of you can be flexible as well. Crowdfunding platforms allow for various payment schemes, from monthly pay-outs from platforms like Patreon to reachable stretch goals on websites like Kickstarter. All you need is to have a plan, have a product in mind, and identify your target audience.
Financial safety is another huge benefit you can look forward to. Crowdfunding guarantees that you and your investors are at much less risk when participating on these platforms due to their oversight over you. It gives your audience a guarantee of quality and content, while the expected cash influx from their support assures you of having the funds needed to continue your work. It’s a win-win for both parties, with both knowing exactly what to expect from one another, with no uncertainty to muddy the waters.
Catering to your audience might not seem beneficial, but it’s great for building your reputation. Having the goodwill of your audience will make your future products easier to sell, especially if they have a positive experience with you. Your generosity and care might not seem like much, but it’s a great way of maintaining a good relationship with your target audience.
Image courtesy of Melanie Deziel via Unsplash
Crowdfunding platforms also give you a marketing edge. People love jumping on the bandwagon, and if done right, the start of your crowdfunded campaign can be a great way to introduce people to your brand. Just look at something like Star Citizen’s campaign, where it used video and marketing techniques to amass over $2 million dollars. Similarly, our campaign for Refresh Games’ Flap Happy uses nostalgic references to market itself to its retro-oriented audience. It has received funding from 248 backers, who pledged a total of $18,784 to help bring it to life.
Flap Happy
A smart kickstarted campaign will use any advantage it can get. A kickstarted or crowdfunded game’s ability to direct its target audience is not something to take lightly.
Your audience will dictate the success of your products, but how do you know if you have enough of an audience to make a profit? Crowdfunded products allow you to test your ideas in a volatile market without having to fully risk your company’s existence. It’s the perfect way to dip your toes in the water without diving head-first, and it gives you the chance to change your campaign and try again. It’s an opportunity a regular release does not have.
Image courtesy of Markus Winkler via Unsplash
If this article has successfully persuaded you to try to crowdfund your products, consider dropping by our Discord or visiting our LinkedIn for more gaming and game development stories! We’re a passionate studio that loves helping game developers get started on their own two feet.
This article was written by Alexander Cuaycong.
]]>Image courtesy of Elisa Ventur via Unsplash
Like family, you can’t pick and choose these battles, but you can change how you react to these issues. Sometimes, you will end up butting heads with other people and clashing with those with different ideas. In times like this, take a few moments to reflect on these helpful tips, and maybe you won’t feel so frustrated all the time.
The first thing to do in any conflict is to always take a moment to reflect on the situation. In the heat of the moment, it’s easy to get ahead of yourself and lose track of the issue, especially when tempers flare or issues are particularly bad.
When any issues arise, always try and take note of the situation in its entirety. Take a few steps back. These types of conflict can happen outside your control, but it doesn’t help if you’re overreacting or stressing over them. Take the scope of the situation and solve it head-on.
While it might feel frustrating, it’s best not to think about things you have no control over. The what-ifs and what-could've-been are impossible to change, and stressing over them can be very unhealthy for you.
Instead, change your viewpoints, look at the things you have control over, and analyze what steps you can take to reduce the problem at hand. You’ll find it a lot easier for yourself and for your psyche if you just concentrate on the factors you can change.
Image courtesy of Chase Clark via Unsplash
When mulling over what steps you can take, think of different ways to solve the current conflict. Having different solutions at hand will make listing your options easier and help you long-term when you must implement them. Having multiple options will make you more flexible in approaching problems and avoid committing to long-term answers.
So you’ve mulled the problems over. Did you take into account the other person’s perspectives when these things happen? Did you look at these problems from another point of view?
Image courtesy of Yosep Surahman via Unsplash
This might seem silly, but approaching things from a different point of view may give you new perspectives on how to handle your current problems. Maybe it’ll change how you view things; maybe it was never a problem to begin with. Regardless, just having the ability to second-guess yourself will prove useful in the long run.
If there are no alternative ways around the problem, learn how to compromise. The people around you don’t like the issue, same as you. Learning how to take these on the chin will keep everyone’s morale up. It’ll help avoid future conflicts should they come up once again and will make you easier to approach, especially if you’re able to leave every party satisfied. After all, the one thing people love is a mediator. Mediate away!
Image courtesy of Christina@wocintechchat via Unsplash
Above all else, be sure to make a log of what happened. Keep on top of things. If things go sour and your solutions don’t work, having documentation will help you reevaluate just how things went wrong. It’s only by doing this can truly prevent repeat mistakes from happening. Remember, an ounce of prevention is better than a pound of cure. Give yourself the advantage, and stop yourself from making the same mistake twice!
Image courtesy of Unseen Studio via Unsplash
These are a few of the things you can try doing to overcome common workplace issues. If these tips have been helpful, consider checking out our LinkedIn, where we aim to help aspiring developers find their own place in the industry.
This article was written by Alexander Cuaycong.
]]>Is it even worth it to be a game developer in 2024?
In 2023, it was noted that approximately 10,000 people were laid off from their work as game developers. The year before that, 8,500 people lost their jobs. In 2024, Microsoft let nearly 2,000 employees of Activision-Blizzard go, and Riot Games eliminated over 500 jobs.
While gaming was estimated to have made nearly $184 billion in revenue in 2023, it’s clear that even profitable companies are willing to let their employees go to trim the fat. While other gaming industry sectors are still hiring, it’s clear that job security is at an all-time high.
Image courtesy of Daniel Igdery via Unsplash
That’s not even bringing up other problems that come with working in the gaming sector as well. A survey from the International Game Developers Association noted that over 40% of developers who answered the survey had been subjected to crunch. While overtime is normal, video game development crunch, in particular, often asks its developers for dozens of real-time hours with little compensation to look forward to in return.
So, knowing all this, just why do people still want to be game developers?
Game development might not be an entirely secure career, but it must be said that those who go into it are remarkably passionate. Plenty of developers have joined the field not to make money but to make something unique that other people can enjoy.
Larian Studios CEO Swen Vincke is one such man, having found his passion in creating video games. In an interview he had with Game Informer, he notes that he’d found a passion in making things that people loved playing.
He notes, “But the video games that I made for my friends, I took so much joy from seeing them have fun with it… I tend to only look at the negatives of the things that are not working, but I take a lot of joy from them playing.”
Mega Cat Studios’ founder, James Deighan, shares a similar passion for video gaming. James shares that his own motivation for making games is “to recreate that experience of being in the back of your mom’s van… opening up the game and reading the instruction manual on the way home.”
Image of James Deighan at ComicCon 2023
Both have eagerly expressed their own fondness for game development, and the passion that comes with it is earnest. To them, game development is more than a job - it expresses love and passion for a hobby they enjoy.
This is game development’s biggest advantage. By joining the gaming industry, you not only have the chance to exercise your creative muscles, but you’re also able to join an industry where entertaining others is the primary goal.
It might seem ridiculous to some, but this gives budding game developers a unique chance to do something different. After all, games are more than just art pieces - they’re media meant to be interacted with.
Image courtesy of OPPO Find X5 Pro via Unsplash
This gives gaming an edge that other forms of media don’t have. It gives games the ability to be “reactive.”
In gaming, the various genres one can interact with give each title its own unique spin. Something like Paradox’s Crusader Kings involves telling a story of medieval knights and kings at war. Something like Sid Meier’s Civilization pits the world's various cultures against each other to see which civilization triumphs. Something like Creative Assembly’s Total War seeks to emulate the historical battles of olde, transporting players back to a time when armies clashed in hand-to-hand combat.
All these games are vastly different from one another, yet each still manages to appeal to an audience that loves what they offer.
Image courtesy of Bartek Muzurek via Unsplash
This singular experience that only gaming is what turns programmers into dreamers and artists. Only a creative mind can make the systems that people so enjoy, and what greater thanks is there to an artist than the love and cheer of someone who appreciates their work?
Game development is difficult, but for the crazy and the talented, it’s a way to share their love for gaming with the wider gaming audience. It’s a tough job, but those who persevere may find fulfillment in the adoration their audience brings.
If you want to try your hand at game development, we’ll be more than eager to help you find your way. Connect with us on LinkedIn to see various career opportunities in the gaming industry, or fill out this form!
This article was written by Alexander Cuaycong
]]>Burnout might seem trivial, but it can seriously affect your life if you're not careful. Untreated, it can affect your productivity and relationships with others and even develop into more dangerous conditions.
Image courtesy of Kamran Aydinov via Freepik
For anyone looking to live a healthy, fulfilling life, it’s best to avoid burning out when possible. But how do you counteract something as arbitrary as a negative state of mind?
The first step is always to remember the symptoms. To counteract the effects of burnout, you have to know you’re suffering from burnout.
Common things to watch for are signs of irritability and the presence of a short temper. The inability to focus on tasks and a general lack of interest are also possible symptoms. Additionally, things like listlessness, anger, and insomnia are also common issues that arise from burnout.
If someone's frequently overworked, chances are they’ll develop these traits. If they're suffering from the effects of stress, they might just need a break before their psyche breaks.
Now that we know the symptoms of burnout, how do we stop it?
The simplest way to do that is to make self-recovery the primary goal. If you realize you’re burnt out, focus on self-care and give yourself an avenue to relax. Play some games if you enjoy it. If you enjoy something retro, why not try your hand at Mega Cat’s own Renfield: Bring Your Own Blood, and hack, slash, and fight your woes away? If you prefer some strategy gaming instead, maybe some play some Age of Empires instead.
Renfield: Bring Your Own Blood
Not a fan of those? Why not read a book or watch a movie? Spend some time with your loved ones while you’re at it. The specific activity isn’t important. What’s important is identifying what activities you enjoy and doing your best to relax. This may seem like a simple thing, but it does go a long way toward calming your mind and getting that fire back in your belly.
Another way to prevent it is to avoid the things that irritate or stress you out when you can. While it is impossible to avoid being annoyed, there’s no reason to go out of your way to seek it out.
Image courtesy of Christian Erfurt via Unsplash
Identify what things trigger negative emotions in you, and find ways to reduce exposure to them. The last thing anyone wants to do is work in an environment that causes them irritation, especially if you’re already feeling the beginning effects of burnout. Reduce the time you spend around these negative influences.
Also, remember that avoiding burnout means learning how to pace yourself. burnout doesn’t happen just because people get annoyed - it also happens if the workload gets to be too much. If you try to do too many things at any one time, you’ll end up doing none of them, leaving you frustrated and annoyed.
Image courtesy of Brett Jordan via Unsplash
While it may be tempting to do the lion’s share of work, remember, you’re just one person. Don’t carry the entire world’s weights on your shoulders, or else you might find your knees buckling.
If you can’t alter your environment, change how you react to it! This is a more drastic method, but a change of perspective can often give new insight into how to deal with problems.
You can’t change everything about your environment, but you can make it easier for yourself by learning how to respond to things in a more productive way.
If all else fails, there’s nothing a change of routine can’t fix. A lot of the time, burnout remains rooted in the monotony of the familiar. By changing your schedule, you give yourself a chance to experience new perspectives and, hopefully, a way to change your attitude.
Image courtesy of Estée Jansen via Unsplash
Burnout is an inevitability if you’re not careful. Game development is tough, and frustration may seem inevitable when you’re in the middle of a crunch. Don’t let it get to you, and take it one day at a time. The fire in you may sputter, but don’t let it die. These issues are just small stumbling blocks that you’ll get past.
We at Mega Cat Studios know firsthand how frustrating game development can get. If things seem extra frustrating as of late, drop by our Discord, and we’ll be happy to recommend more ways to get over this slump.
This article was written by Alexander Cuaycong.
]]>Steam’s Early Access program is a powerful tool that should not be underestimated. It allows developers the chance to sell their games before it’s even finished. This subsidizes part of the development cost and gives audiences the chance to influence a game with their own input. A player’s criticisms and critiques, as well as their own purchase of the game, directly help in the creation of a product worth playing.
However, a few things need to be kept in mind when launching Early Access. These five handy tips will keep the quality of your game high and help shape your product into a success.
When releasing a game on Steam, be sure to make a roadmap your community can follow. This is essential in keeping your audience happy and swaying newcomers to try and support your game. Having a trackable schedule of updates and features gives buyers and fans a better idea of what your game will ideally look like at the end of its Early Access Phase.
Image courtesy of Markus Winkler via Unsplash
Not only that, but you also keep the hype up and give your community something to be excited about with each new update cycle. You’re able to keep them invested for longer and keep them coming back, ensuring that you have a healthy supply of feedback.
When you create your roadmap, be sure not to overpromise. The biggest failing any Early Access title can do is not delivering on their word. Not only does it look bad for your credibility, but it also gives your fans the idea that you can’t deliver on your promises. Early Access games live and die by the support their audience can give. Do your best not to lose it.
No matter how polished or technically sound an Early Access title can be, it can still fail if a team’s communication is bad. When updates are slow and community confidence is at an all-time low, that’s when an Early Access title is at its worst.
Image courtesy of Melanie Deziel via Unsplash
Counter this by reaching out to your community. Early Access’s biggest strength has always been its ability to connect developers with their target audience, so be ready to communicate with your fans. They spent the time and money to fund and keep your project alive. As a developer, it's only right that you engage them and keep them informed of any potential updates.
Things like Discord and Twitter are essential to maintaining your community. Steam’s own forums and other third-party message boards also work as a means of getting feedback. These may seem like small things, but these small, positive impressions will maintain your community and leave your games with a loyal, happy fanbase.
Communication is only half the battle. You must also push out the updates that people are willing to play. Push through with your roadmap, and keep your promises. Having timely updates isn’t just good practice; it also helps you stay on top of your schedules and prevents you from overly crunching to meet deadlines.
This isn’t just for the sake of optics, either. Bugs are common, especially in Early Access titles, but particularly egregious ones can chase away your audience’s support. Polish these out as soon as possible, and remember to stay on top of them. Keeping your game polished and bug-free is a testament to a game developer who cares.
Image courtesy of Ilya Pavlov via Unsplash
If possible, have your community report these bugs to you directly. The earlier these are reported, the easier they’ll be to fix, especially if they can be replicated. In-game bug report buttons are a fantastic way of doing this, and other Early Access launch titles like Subnautica and Warhammer 40:000 Rogue Trader made heavy use of easy reporting features to iron out their issues.
The true mark of a good Early Access title is one that keeps its supporters happy from start to finish. Your fans are your game’s lifeblood, and they’re the ones who supported you from Day 1. They put money into your game even when Steam’s Early Access doesn’t guarantee a game’s release. Make them feel their purchase of your game was worth it by holding yourself up to their standards.
Remember, your credibility as a developer isn’t limited to just your own actions. You’ll also be judged by how the community your games keep. You must maintain your game’s community and keep it welcoming, agreeable, and happy. Many games and game developers have had their reputations tarnished by toxic communities. Prevent this, and ensure the health of your community.
Early Access game development might be difficult, but we here at Mega Cat Studios are always happy to support our fellow game developers. We know firsthand the effort it takes to launch these games into Early Access. Our own title, Renfield: Bring Your Own Blood, went through much of the same things and was successfully launched with the help of the loyal fanbase we were able to garner.
Renfield: Bring Your Own Blood
Talking about our Early Access experience is just one of the few things we here at Mega Cat Studios do to help budding developers find their own two feet in the world of gaming. If you want to learn more tips on making your games successful, connect with us on LinkedIn and join us on Discord!
This article was written by Alexander Cuaycong.
]]>Here are five easy ways to stay relevant in an ever-changing job market.
The best way to keep yourself in tip-top shape is to always look for learning opportunities. Younger developers may come and go, but experience is a key factor in making your resume look attractive. By focusing on your personal growth, you ensure your ability to stay competitive compared to your peers, and your better knowledge ensures you always stay at the top of your field.
Image courtesy of Wes Hicks via Unsplash
With this in mind, take every opportunity you can to learn something new. Ultimately, being good at your job doesn’t just mean being competent; it also means being flexible enough to apply your skills and knowledge in many different ways. You'll always stay relevant by staying ahead of the curve.
Being essential isn’t just about being a good worker. It also entails knowing how to be a good leader when situations call for it. When push comes to shove, initiative is a defining factor in who stays and who goes. Someone with the proper self-confidence and the right connections can easily find themselves an essential team member.
Image courtesy of Chris Montgomery via Unsplash
This goes double if you have the right connections you can leverage. People are more willing to work with someone who’s got a lot of outside reach and a lot of contacts to reach out to. Trust goes a long way, and if you can prove you’re reliable, you’ll find a lot of doors more than willing to stay open for you.
They’ll not just be looking at your skills, though. Employers will also look at your ability to interact with your coworkers. People who are difficult to work with may be easily replaced, especially if they cause constant friction between team members. Do your best to remain approachable. You don’t have to become personal friends with people at your job. However, a cordial working relationship is essential to maintaining a healthy workplace environment.
If you’re having disagreements, bring it up to management, and keep your head held up high. Nothing good will come out of participating in workplace drama. Stay above the drama, work with others, and keep your reputation clean. You’ll find it less likely you’ll be replaced if you’re able to act professionally.
While learning to play nice with others is good, don’t forget to stay true to your personality. The worst thing you can do in any workplace environment is to look duplicitous. Stay to your own personality, and build an image your coworkers and bosses can remember and look up to. People you work with will appreciate your honesty, and the strength of your personal character will work in your favor when the time comes.
Image courtesy of Faizur Rehman via Unsplash
If you make a few mistakes, get into a few arguments, fail a few times, don’t worry about it, and move on. Mistakes are temporary, but learning from them is the important part. Everyone eventually stumbles. Part of futureproofing your career is accepting that not everything goes your way and learning how to move past it. While issues may arise, learning how to overcome these issues is what will truly define your career. How can your career remain relevant if the smallest stumble can set you off course? Don’t let the mistakes get to you. Stay strong, and keep trying.
For more career tips, don’t forget to connect with us on LinkedIn! We do our best to give aspiring developers every advantage they can get.
This article was written by Alexander Cuaycong.
]]>The advent of platforms like Kickstarter has been a boon for aspiring game developers. They no longer have to bow to the whims of publishers or risk massive amounts of personal debt. Now, through these platforms, they can market their products to their potential customers directly and ask them directly for funds and support.
But while these Kickstarter projects seem lucrative, these campaigns are not guaranteed to succeed, with many potential products failing to get ahold of an audience or just not being attractive enough to gather a potential crowd.
Avoid these crowdfunding mistakes, and learn how to successfully start a crowdfunded project by following these essential steps for success.
The most important step to any Kickstarter project is to go into the project with a plan in mind. Whether it’s releasing a small-budget title or creating a bigger, more expensive type of project, your audience (and your team) needs to have an idea of just what kind of product you’re aiming to release.
A detailed plan like this is important for many reasons. Internally, it helps you pace your development teams, helps you avoid burnout, and gives you the chance to manage how fast they need to work each day. For your audience, though, it helps give them an impression of your work's quality. A more detailed plan inspires more confidence and gives them a better metric for the quality of your project.
Image courtesy of Kelly Sikkema via Unsplash
Don’t underestimate how important good impressions can be. Prepare appropriately, and put your best foot forward at all times.
After you set up your project, it’s important to identify the type of audience you’re appealing to. Are you aiming for a more retro crowd? Is your game a more modern one, with all the bells and whistles one can expect from a newer title style?
These might seem like small things, but identifying your target audience is half the battle. Your crowdfunding campaign is dependent on inspiring people to fund your project. The best way to do that is to appeal to a specific audience and to cater to their expectations. While it might be tempting to try and snag a bigger crowd, remember that trying to appeal to everyone just means you end up pleasing no one. Stick to a specific audience’s likes and dislikes and go from there.
Now that you know your target audience, the next step is to create the excitement and hype necessary to attract them to your project. The best way to do this is to create content. Get their eyes on your project. Create gameplay footage and trailers that are interesting. Make your art team create interesting posts and your marketing team some catchy slogans to keep the internet entertained. Engage your community and keep them interested at all times.
Image courtesy of Alexander Pellaes via Unsplash
While it might be tempting to let your product’s quality speak for itself when it’s done, remember that your kickstarted projects are at your audience's whims. If they don’t hear about your project or don’t think it’s interesting, it won’t be funded. Do your best to keep your target market interested, or your project will fail.
Once you’ve made some marketing hype, capitalize on it. Engage them directly, and do your best to address their concerns. Kickstarted projects thrive off of constant communication, and the last impression your audience needs is to think the money they used to fund their project will go to waste. Keep their confidence at an all-time high. Otherwise, you might see some refund requests come in.
Once you’re ready to put your project on the platform, be ready to create understandable stretch goals your audience is supposed to hit. By giving them a clear idea of how you plan to use their money, you give them a chance to give their input directly by speaking with their wallet. Use this opportunity to show them that the more they’re willing to fund your project, the more features you’re willing to add.
Image courtesy of Glenn Cartsens-Peters via Unsplash
Additionally, more expensive reward tiers are a good way to monetize your audience’s fancy. Plenty of people are willing to spend money on projects that promise them extra goodies and incentives for spending more. Things like special editions, physical media like figures and books, and even thank-yous at the end of credit sequences are good ways to give back to the more generous members of your audience.
Don’t go overboard with your promises, though. These stretch goals are supposed to incentivize them to fund your project, but if you can’t deliver on them, it’s better not to promise it all. The last thing you want to do is to give them a reason to doubt your capabilities.
Once your project is on the way, remember to deliver! The last thing you want to do is to disappoint your audience. Reward their faith in you by giving them the content and quality you promised to deliver.
Here at Mega Cat Studios, we're no strangers to Kickstarter. Right now, we're in the midst of a campaign for "Flap Happy," an 8-bit avian roguelike platformer for the NES and GameBoy, developed by Refresh Games. But that's not all - we've got more exciting stuff in store. Keep tabs on us for updates on our upcoming projects.
Managing Kickstarter campaigns can certainly be a challenge. However, they offer invaluable flexibility for game developers like us when it comes to handling project budgets. Despite the hurdles they may present, the rewards of navigating through them are worth it.
But what about you? How do you, as a game developer, feel about Kickstarter? Let us know what you think on Discord. We’re always glad to hold discussions and to share in the experiences of other budding game developers. Gaming is our passion, and indie devs must stick together to see the hobby we love flourish.
This article was written by Alexander Cuaycong.
]]>Learn how you, as an aspiring game developer, can protect yourself by taking these precautions. They might not prevent every leak from occurring, but they will help mitigate the potential damage leaks may cause.
Always have an internal network for your company. Not only does it make workflow easier, but it also limits the number of computers a hacker can breach into. The fewer computers determined hackers have access to, the fewer files they’re likely to steal.
Image courtesy of Christina via Unsplash
What's more, these internal networks allow you to monitor and regulate the flow of information. Not all leaks come from outside, and this type of surveillance helps you catch prying eyes accessing information that shouldn't be theirs to see.
For the few computers connected to outside networks, ensure that anyone who uses them practices proper computer safety etiquette. That means reminding them not to download weird things on office computers, not to access sketchy sites during work hours, and not to save sensitive information like log-in passwords and emails on computer desktops. These lapses in judgment could lead to potential issues, especially if a lax employee unintentionally downloads malware. This article written by Daniel Van Boom on CNET.com highlights how even small lapses of judgment can result in millions of assets stolen.
Not every leak is the result of data hacks. Some are because people on the project are just naturally excitable. When people are especially proud of their work, a few might be tempted to brag to their friends and loved ones, where potential leaks and rumors can occur.
Image courtesy of LinkedIn Sales Solution via Unsplash
To avoid these situations, be sure to remind your developers of the contracts they sign, especially if they have NDAs. While excitement is natural, remind them these leaks can be very damaging. Make it clear to your team that if word spreads out, it doesn't just hurt them as a team; it also hurts the very thing they’ve been working on.
Keep computers up to date with anti-viruses and anti-ransomware programs. While these might not stop a determined virus from infecting computers, these types of programs help catch the majority of low-level malware and help keep your computers clean and your hard drive space. It might seem like a waste to have them if you and your team are thorough, but remember that an ounce of prevention is worth more than a pound of cute. The presence of these programs might just save you the hassle of having information leak out.
Some leaks aren’t the result of hacking or gossip. Some are just the result of enthusiastic fans prying into games and demos you’ve previously released. While these are mostly harmless, particularly determined fans might just stumble into old data if you don’t encrypt them properly.
Image courtesy of freestocks via Unsplash
To combat this, just have better procedures for storing data. Unreleased assets are a given, but maybe delay updating your games with references to new content if you’re not confident it can be kept a secret. Your games are for your fans, and the last thing you want is for them to stumble on something that’ll ruin the prospect of new content.
If all else fails and your systems are breached, always have a data backup. The hackers might have stolen the files, but as long as you back up your files, the damage they can do will be frustrating but minimal.
It’s important to recognize that no company is perfect, and no security measure is unbreakable. Despite your best efforts, vulnerabilities can still be present in your systems. By implementing these practical safety methods, you at least can reduce the risk these breaches present. While no system is foolproof, making use of these precautions will help protect your games, your company’s assets, and your reputation in the gaming industry
When things go south, take it as a learning experience, and learn how to adapt to better refine your security measures. Join Mega Cat Studios for the latest game development insights and updates, and follow us on social media to stay informed.
This article was written by Alexander Cuaycong
]]>But just why is AI so popular? How can such AI technology positively influence game development? And are the advantages they offer really worth diving into?
The benefits these new technologies present are that they’re cheap and accessible. Generative AI works even with simple instructions. Whether it’s writing thousands of paragraphs or producing dozens of art pieces, it doesn't matter. It’ll create hours of content within minutes of a button press.
This content isn’t without flaws, but its near-limitless scope gives it an endless array of possibilities with which it can accommodate your ideas. Stories, textures, artworks, and more are all within reach of a button press, giving it an innate accessibility that even newcomers and non-artists can harness.
Just take a look at one of Skyrim’s follower mods.
Image courtesy of the website Nexus Mods via the Hello Herika mod page
Hello Herika is a popular Skyrim mod that runs on Chat GPT. It inserts a brand new original character into the world of Skyrim as a recruitable companion to bring along in your adventures. While these types of mods aren’t new, Hello Herika’s isn’t like the other girls or boys you’ll meet in the base game. As she’s powered by AI, the programming she has access to allows her to be far more reactive to the world around her.
For example, Herika will routinely comment on things that happen close to her. She will constantly remark on how she feels and is able to answer in-game questions on her own. Herika reacts to quests, has her own battle dialogues and banter, frequently comments about the environment, and can even give her input during quests.
Image courtesy of the website Nexus Mods via the Hello Herika mod page
What’s more, Herika is even fully voiced by the use of AI, giving her a level of believability that other follower mods don’t have. And all this is free to download and try at your leisure.
If a free modder is able to accomplish this much using what tools he has, imagine how much more can be done in the hands of a dedicated game development team.
AI's benefits don’t just help extend a game’s scope, either. Proper use of AI can also help extend your limited budget. Things like plot, game textures, pacing, and character designs can be made through AI generation, allowing your developers extra time to focus on more important tasks like polishing gameplay mechanics and bug-fixing.
It might sound like an awful idea, but other games have executed the concept before. Just take a look at Shadows of Doubt.
Image courtesy of Fireshrine Games’ Shadows of Doubt via Steam
Shadows of Doubt is a stylized little detective game. The player's goal is to solve crime in an ever-changing world, and the game’s main gimmick is that the many crimes you solve are all procedurally generated. This means that the circumstances behind each crime will differ and are always unique, requiring some on-the-fly sleuthing to really solve each case. Moreover, because of the nature of procedural generation, there’s a limitless amount of content to explore, and no two scenarios will ever truly play out the same.
While the game lacks the personal charm of handcrafted scenarios, this procedural generation system gives the game a lot more staying power. It allows players to have far more game time at the same amount of development cost. If a simplistic procedural generation can already create an interesting game, just imagine how much more can be done if programmers are willing to dedicate more time and resources to learning new AI technologies.
While the benefits of AI can’t be denied, overreliance on AI systems for your games does come at a cost. While it gives developers far more flexibility in their projects, the issues behind these programs remain.
Some of it is because of technical concerns. Early Access Steam game Vaudeville was heavily criticized due to its prominent use of AI tech. This experimental little game didn’t just use AI voices in its gameplay. It also heavily relies on procedurally generated chat responses as part of its core gameplay loop.
Image courtesy of Bumblebee Studios’ Vaudeville via Steam
Its concept might seem sound, but things just aren’t fleshed out well enough. The characters you interview frequently lie to you because of the chat AI’s poor programming and entire conversations can loop and end up going nowhere due to the game misinterpreting your questions. Good use of AI is supposed to feel dynamic and immersive. In Vaudeville, the game’s stilted AI voices sound too robotic, and its story too nonsensical and rambling to feel like anything but the creation of a few hurried prompts on Chat GPT. Vaudeville currently sits with a mostly deserved negative rating.
These don’t just stop at mechanical issues as well. First-person shooter game The Finals came under fire for more ethical issues when its slow, stunted dialogue was guessed to be the work of an AI. Voice actor Gianni Matragrano notes that AI voice-overs cross boundaries about bodily autonomy and also sound terrible compared to hiring and using professional voice actors. In an old tweet, he noted that other companies had used his voice through AI programs before, and none of it with his consent or even credit attributed to him.
Image courtesy of user Gianni Matragrano via Twitter
Many other AI criticisms fall under the same umbrella. At the end of the day, these learning AI programs are usually trained off of other artists’ work and person, raising questions about originality and plagiarism that current laws haven’t caught up to yet.
AI can be a great tool for the talented developer, but its true potential still remains to be seen. The technology is present but still primitive, and its use is mired in gray areas and ethical concerns that are here to stay for some time. While AI definitely has potential, I fear it’s an issue that won’t be solved any time soon.
What do you think about the use of AI in video games? Do you think it can ever be good? Join our Discord and tell us what you think. We're eager to hear what you have to say. Be sure to subscribe to keep up with the latest gaming development news. There’s no better way to stay informed than by being part of the Mega Cat experience.
This article was written by Alexander Cuaycong.
]]>Learning about these issues is the first step in knowing how to prevent them. A development team can truly focus on creating content only after understanding what causes these problems.
Together, let's look at some of the more common problems that occur and find ways to mitigate the potential damage they cause.
Any game developer's biggest issue is a lack of funding. While having a small budget doesn't always affect a game's quality, it is less likely to succeed if there aren’t enough funds, as it means less money can be spent on marketing and polishing the game. However, not everyone has money, and even richer publishers are wary of sponsoring products of dubious quality.
Image courtesy of Emil Kalibradov via Unsplash
The usual best way to get over this issue is to learn how to market yourself and your game. Be willing to work out deals with publishers. While not every publisher might be interested, some of them are more than willing to cut deals if the product looks interesting enough and the talent behind it shows some promise.
Similarly, if working with publishers seems like too arduous a task, one can always go down the indie developer route. Alternatives like Steam Early Access, itch.io’s custom storefront, or crowdfunding platforms like Kickstarter provide alternative means of scraping together some cash. Here, you won’t be bowing down to your publisher’s overlords but to an audience of peers and gamers. The cash they provide might not be as plentiful as what a successful game publisher can give, but the freedom of managing your own game without corporate oversight might be worth it.
When all's said and done, don't forget to consult professionals on how to budget your newly acquired funds. While their services might seem unneeded, they are instrumental in helping you understand just how much money you have and how long it's expected to last. This type of knowledge will give you the flexibility you need as you proceed forward to making your dream game come true.
Now that you’ve got the cash, you’re ready to make your game. But before anything else, you must worry about another trap you might fall into. Scope creep.
Scope creep is a term for when additional features and changes to your game are made without contemplating their effects on the project. Additional features are always good, but it’s a dangerous trap to fall into if your team isn't prepared for it. Management times can get overdue, budgets can get pushed beyond limits, and the promises you make to your public might not push through, resulting in backlash.
Image courtesy of Airfocus via Unsplash
Avoid all this by knowing the limits of your project. Learn the capabilities of your team, and play it safe. Additional content can always be made after the base game is done, but you never want to over-promise or overstep your initial bounds.
Now that you have an idea of how your game is supposed to work don’t forget to iron out how you intend to make money as well. Is it a free-to-play title banking on cosmetics and gacha mechanics for monetization? Is it a $20, $40, or $60 game you intend to sell? Will you include pre-order bonuses? Digital skins? It’s important to iron these out because without understanding how you’ll make money, you might risk making a project that can’t even pay for itself.
Just look at Riot Games’ Legends of Runeterra. Runeterra is a fantastic card game based on the League of Legends IP, with both PvP and PvE game modes for its fanbase to enjoy. While it was a good card game, Runeterra never made its development cost back. Riot later explained in a YouTube video that Runeterra not doing financially well forced them to scale down the scope of the game to recoup losses. While it still survives in the short-term, long-term support for it is uncertain, with most people who played it pointing to its far too generous monetization scheme as the primary reason for its downfall.
Image courtesy of Reddit user NoNewspaper2 via the Legends of Runeterra subreddit
However, just because you can make money off your game doesn’t mean you should try to make it hand over fist and over-monetize. Evolve was a sad tale of a promising asymmetric shooter that tried to do just that and scared off its audience with its egregious DLC list.
Image courtesy of a deleted user via Reddit on r/EvolveGame
The confusing DLC schemes it had, as well as the many versions of it on sale, only served to drive away potential customers. While it did try to cling to life with a rerelease, it sadly didn’t help. All that’s left of Evolve’s legacy is the memory of a good game that was never allowed to reach its true potential.
The problem of deadlines is ever-present, and while it’s frustrating to have your development time cut short, it’s best to work around it when possible. Deadlines are more than just a way for your publisher/audience to pressure you. It gives players an idea of when your game is releasing and helps pace your team’s efforts in developing and marketing your game. At the end of the day, you don’t want your game to release in an early, unfinished state. Likewise, a game never does well if it gets stuck in development hell. Learn to pace your team accordingly, and set a realistic deadline you’re sure to meet.
Image courtesy of Tim Gouw via Unsplash
Also, remember that it’s best not to set your release dates next to other high-profile games. Your potential audience only has so much time and money to spend at any one point. Releasing next to big games might make your potential audience choose to buy another game instead. EA’s fantastic Titanfall 2 is the core example of a good game sandwiched between the titanic franchises of Activision-Blizzard’s Call of Duty and EA’s own Battlefield. A Forbes article notes just how out-of-touch EA executives felt and how Titanfall 2 never had the chance it deserved when put up against such powerhouse gaming titles.
Lastly, when your game is actually released, be sure to set aside some time for bug-fixing. Your QA team will do the bulk of it, but your audience will naturally find issues needing patching. Be sure to get right on it and have your teams ready to patch any issues that may arise.
Image courtesy of James Harrison via Unsplash
It might be tempting to delay these bug fixes but don't. Nothing kills a fanbase faster than slow patching. Your audience might think that you're abandoning their game. While it’s normal for games to have issues on launch, it's up to you as a game developer to keep on top of these. Your audience will love you for it.
These are just some of the more common issues that arise during game development. There are plenty of different issues still waiting to be discussed. If you’re interested in learning more, be sure to join our Discord, and we’ll tell you all about them. Remember to subscribe to our newsletter as well. We’re more than eager to keep you up-to-date on the latest game development tips and tricks through these platforms.
This article was written by Alexander Cuaycong.
]]>1) Always open areas of discussion between you and your teams
At the end of the day, every person on your team wants to make a good game, but their ideas on how such a thing can happen may differ. Instead of letting them bicker and argue, encourage them to communicate their ideas to you. Approach them and ask them what their expectations of the project are. Find out what each development team needs and what each team member is capable of, and don't forget to be supportive of them and motivate them in their work.
Image courtesy of Cherrydeck via Unsplash
These may seem like small things, but by asking them to contribute to discussions, you, as a leader, are uniquely positioned to sort through their various issues. By showing that you care, you implement solutions that leave each party feeling satisfied, and this type of collaboration is needed if a good game is to come about.
2) Encourage a confident attitude in each of your team members to prepare them for possible issues
Time is money, and the less time is spent asking questions, the more it is spent on more productive tasks. In this way, it's always important to keep a team's morale high and to always encourage them to ask questions. Make every voice feel heard, and make every person feel important. These types of discussions live and die by the group's willingness to contribute independently. Encouraging members to take the initiative allows you to delegate future tasks much easier, knowing they're in capable hands, guaranteeing a constant flow of back-and-forth communication, all while your teams remain productive.
3) Mediate interpersonal problems between members before they get serious
As the leader, it's your job to make sure that things are running smoothly, so it’s always best to monitor how your teams are doing and their relationship with one another. The last thing you’ll want to see is friction between any of the members. Sure, arguments can happen, and tempers do flare up from time to time, but a divided team makes for a terrible work environment, and losing trust can make a project stop dead in its tracks.
Image courtesy of Afif Ramdhasuma via Unsplash
A team should be able to trust each other, but unless all its members are of one purpose, sooner or later, problems will occur. Counteract this by holding team-building opportunities when possible. Help them understand that mutual respect is fundamental to creating a healthy work environment and that all their ideas are just as important as yours. All team members are equally valuable.
4) Empower your teams to become independent, self-sustaining creators
The biggest hurdle a creative mind can encounter is the idea that someone doesn't trust them and is constantly looking over their shoulder. Show your team that you believe in them, and give them the necessary amount of space to thrive. It might be tempting to micromanage every situation, but learning how to trust is a key part of delegating responsibilities. At the end of the day, you hire them because you think they're capable of doing their job. Give them the trust they deserve, but just let them know they can contact you should the need arise. They will appreciate the trust you have in them and pay it back tenfold with their loyalty and respect.
5) Lead through service and help them become the best they can be
It's your team's job to make sure the content they make is good, but it's your job to ensure the team itself is doing well, too. You might not have a direct hand in bringing these games to life, but you are the one who enables the team to function. Ensure that they have all the tools needed in order to succeed and be the binding force that ties them all together. Your team is looking up to you to give them the necessary resources, time, and trust needed. Unite them toward one goal and be the steady hand that helps see things through. Your team will appreciate all you do for them.
Game development might be tough, but being a good leader to a capable team will make developing your dream games easier.
If you want more game creation tips, feel free to follow us here at Mega Cat Studios! We love giving tips and telling stories about all things gaming and game development, so stay tuned!
This article was written by Alexander Ryan Ong Cuaycong
]]>1) IDENTIFY YOUR TARGET AUDIENCE
Market your game to the right audience. Your product will only sell if people are interested in its premise, but not everyone is into the same genre or style your game might fall under. For instance, we at Mega Cat Studios tailor our games to be for the retro crowd and invoke their feelings of nostalgia for the classic 80s and 90s style of video games. While a younger audience might not fully grasp its appeal, gamers from older generations who grew up with the NES and Sega Genesis will likely cherish this nostalgic throwback. By understanding your target demographic, you can create a product that resonates with their interests and preferences.
Image courtesy of Melanie Deziel via Unsplash
2) REACH OUT TO KEY FIGURES AND INFLUENCERS FOR BIGGER REACH
After identifying who you're aiming your games at, reaching out to social media figures and influencers they might watch is best. If you're creating an RTS game, it's best to approach YouTubers who've built an identity around enjoying the genre. If the person you’re approaching is a fan of fast-paced bullet hells, be sure to hand them a game you know they’ll enjoy. These positive endorsements will help promote your games to new audiences and help increase your reach.
Likewise, consider talking to social media influencers interested in your work. Be willing to engage different communities and collaborate with figures on key platforms like Reddit. They may not be as familiar with the gaming space as other creators but never give up the chance to expose your brand and appeal to someone new. Marketing is a numbers game, and the more people who positively associate with your brand name, the better it will be for you long-term.
3) BUILD A MEMORABLE IDENTITY THAT PEOPLE WILL REMEMBER
Being memorable is not a trait that should be underestimated. Whether they think of your company's mascot, witty tagline, or the catchy design you created, make sure your target audience can't forget about it. Your brand is the image people will think of when remembering your company's name. Make certain that it's catchy and inoffensive. The last thing you want is for your potential audience to forget all about you or to get offended thinking about you. Choose something simple. Maybe cats?
4) PROMOTE, PROMOTE, PROMOTE - CREATE EVENTS, GIVEAWAYS, AND CONTESTS TO FURTHER ENGAGEMENT
Aim to promote yourself in a positive light. Hold contests where people can win prizes. The world at large loves events when they're entertaining, doubly so when they stand a chance to win exciting prizes. Holding things like social media giveaways will encourage people to keep updated on your products.
5) BUILD YOUR IDENTITY ON SOCIAL MEDIA
Social media is an important promotional tool. Be sure to keep up-to-date on platforms like Twitter, Facebook, and Instagram, and always be active in promoting yourself. Post updates on these sites when possible, and be sure to reach out to users and reply to their queries. Engagement is key to holding people’s interest, and audiences that feel valued will continue to interact with you, especially when they feel their concerns are being acknowledged.
Image courtesy of Austin Distel via Unsplash
If possible, don’t forget to make use of commercials and endorsements. Key figures in social media can give you the edge you need to meet new audiences. Even just the act of posting new videos and pictures can bring new sets of eyes and ears to your websites and make future marketing easier as more people learn of your brand.
Don’t forget to put your best foot forward, either. First impressions are often lasting ones, so be sure to make it count.
6) FEED THE HYPE
Above all else, remember to feed the hype. Promotional hype creates anticipation, and anticipation creates constant interest. A good first impression will excite people, but excitement eventually dies down if you're not careful. Don't let your audience forget you; find ways to engage them and keep them interested long-term. The use of pre-registration rewards, sign-up goodies, and newsletters are fantastic ways to keep your audience informed of your project. Keep this hype going and create incentives for your target market to keep coming back. As long as they're excited, they won't forget your games anytime soon. Put your best foot forward and keep the hype train rolling. Marketing can get complicated, but if you keep these tips in mind, you’ll be on your way to creating a good marketing campaign in no time.
Image courtesy of Rendy Novantino via Unsplash
If these tips proved helpful, consider following us at Mega Cat Studios. We have many more tips and tricks to share, and we’re always happy to give budding developers the edge they need to succeed!
This article was written by Alexander Ryan Ong Cuaycong
]]>How was this game born?
The idea for Pixel Washer arrived in the shower. That’s when some of the best ideas happen, so I keep around water-proof notebooks.
I’ve been stockpiling pixel art for years, so a project like this was inevitable. There are amazing artists like Gutty Kreum, LimeZu, and Kenney who have created volumes of pixel art for game devs like me to use in their games.
Sometimes I’ll just gaze lovingly at these sprites piling up in my folders. It’s really amazing pixel art, and incredibly thorough! There are campgrounds, airports, boxing gyms, hospitals, construction sites, parks, cities, and the list goes on. They’re soooooooo pretty and I’ve been looking for excuses to use as many of these assets as possible. Pixel Washer turned out to be the perfect home for all of this pixel art.
What was development like?
Development has been really fun! I’m “getting back to my roots” by going from Unity to my own entity/component system (ECS) engine, handwritten in JavaScript. It’s a somewhat unusual approach in the games industry, but it’s how I got started over 12 years ago and still fun to me.
To create the levels in Pixel Washer, I’m using an open source map editor called Tiled. It’s cross-platform and a joy to use. I’d been looking for a project to leverage this program for years, but most of my ideas lean towards procedural generation, where a map editor isn’t always necessary. So far making the levels by hand in Pixel Washer has been relaxing, almost therapeutic.
What did you learn about yourself through this game?
I think I’ve finally discovered that I can be happy working on a simple game. There’s a long history of overcomplication in many of the games I’ve designed. Large, complex systems are what I crave to make, but they’re so incredibly difficult to finish!
Another project of mine (Witchmore) suffered from overcomplication and direction issues. I think being recently burned by this has given me a brand new outlook on the value of simplicity.
Usually simple games like Pixel Washer don’t appeal to me creatively. But the challenge of creating a lean game with excellent washing mechanics (and not much else!) has been just what I needed. It turns out, making an extremely simple game is still extremely difficult! It’s just hard in other ways.
What makes this game special?
Pixel Washer highlights some of the amazing, unknown pixel art that’s hidden out there. Unless you’re a pixel art collector like me, I can almost guarantee that you’ll uncover some brand new pixels from an amazing pixel artist that you might not ever have seen otherwise.
There’s a lovely natural history museum in Pixel Washer where you power wash dinosaur bones and paintings, but Pixel Washer itself is sort of like a museum! A museum of independent pixel art.
There’s also something deeply satisfying about uncovering the lovely sprites. It just feels right. When I see a screen full of dirty pixels, I feel compelled to wash ‘em up.
To me personally Pixel Washer is special because it relates to my earliest video game experiences. It’s a low-resolution pixel art game, similar to classic Nintendo Entertainment System or Sega Genesis games. These are the games that I grew up playing, so working on a game in the same vein feels warm and comfortable to me.
How does sound play a role in the game?
Sound was one of the first tasks I tackled, since it’s so important to the experience of power washing. To make the power washing sound good, there are three sounds that play: a “wash start” sound, a looping “power washing” sound, and a “wash stop” sound.
There’s also a recent update that lets me choose which looping “power washing” sound to play for any given texture. Using this, I can make washing “glass” pixels sound different than washing “metal” or “wooden” pixels. The great part is that the game continues working as it did, but now I have the option of adding new washing sounds to any texture. So as I get more time to tweak the game, I can now vary the texture sounds, making the game even better.
Lastly, I redid the audio system using a technology called Web Audio API, which is a low-level web-based technology. It’s really cool! It supports “nodes” which are like serial busses that allow developers to channel sounds together. Using this, I was able to add a volume slider specific for the washing sound. When all you’re doing is power washing, I think it’s important to make it satisfying & extra configurable.
What games influenced this one the most?
Everything I make is probably influenced a little by The Legend of Zelda (NES). Walking around the environments in Pixel Washer also feels influenced by Teenage Mutant Ninja Turtles (NES), The Ignition Factor (SNES), and the Phantasy Star games on Master System and Sega Genesis. I’m a fan of Vlambeer so there’s probably also a little Nuclear Throne in there!
Although I haven’t played Power Wash Simulator, I think the comparison is inevitable, and I welcome it! It looks amazing. I’ve been meaning to play it, but I’m also cautious of avoiding too much influence in my games.
Any fun stories or wild moments during development?
Always! One that comes to mind is accidentally creating a multi-verse situation. There was a bug where, when implementing the loading of levels, the game wasn’t clearing the previous world state. This made the levels stack upon themselves, creating collision chaos and multiple player pigs in the game world.
I’m pleased to report that the game code recovered “gracefully” and didn’t crash. The multiple pigs were fun to play! They all moved around based on your input, but only one would wash at a time. It made me want to add a co-op mode to the game (maybe someday, but, as I like to say when finishing something, “Save it for the sequel!”).
Do you think preserving older gameplay mechanics in new games is important?
I guess I feel like older gameplay mechanics are alive and well in new games! Whenever I move a high-resolution, 3D character around the screen I just think to myself “this is Gauntlet”. Or “this is Mario”. Modern games are built upon the groundwork that classic games laid, and I feel that when I play them.
Indies also lovingly experiment with older gameplay mechanics for fun or game jams, which inevitably end up on Itch. This platform has become a goldmine for players looking for classic or unusual gameplay.
What's your favorite memory as a gamer?
There was this glorious time during the brief period between Left 4 Dead and Left 4 Dead 2 where a handful of friends and I were obsessed with achievement hunting on Xbox. Every Sunday we’d gather, ideally with a team of 4, and try our hand at the impossibly hard Expert Mode.
We tried & died over & over again, with no luck. Then finally we began sacrificing ourselves to get just one friend to the exit, so they could get the achievement, while the rest of us were overcome by the zombies. Using this method we eventually all earned the incredibly difficult achievements and had a lotta fun together. Ahhh I miss those days!
Who will enjoy this game the most?
Players who enjoy cute pixel art and are looking for a relaxed experience. Pixel Washer is a chill game: casual, nonviolent, and has no required challenge outside of patience and dedication.
Anyone who enjoys coloring books or scratching off lottery tickets may enjoy Pixel Washer, as the mechanics are similar.
It’s a great game for when you’ve only got 10 minutes of time to play, or when you want to unwind and power wash the night away.
Bottom line why must someone play this game?
You must play if you’re an appreciator of fine independent pixel art, sourced from artists all over the web. Or if you’re looking for a way to relax. Or if you like pigs!
How do you want this game to be remembered?
The game itself is quite simple, but I hope it’ll be remembered for nailing the core mechanic, highlighting underappreciated pixel art, and telling a heart-warming story about family.
What's next?
More, More, MORE!!! New pixel art is being cranked out every day, and there’s almost no end to the new levels I could add to Pixel Washer. Once that cools down I’ll circle back to Witchmore, my game about crafting black magic.
Anything else you'd like to add? Promote?
I was in highschool when Playstation was released. At the time, it felt like 3D games were going to replace 2D games entirely. There was a period in my life when I thought pixel art games were doomed to become extinct. Obviously we’re way past that now, but I still remember that period of time, and am grateful & excited to see pixel art games surviving & thriving!
If Pixel Washer sounds fun to you, please add it to your wishlist on Steam (or as I say, “washlist” it!). I draw comics based on development & marketing research (ya know, for fun!), and my research has shown that about 10% of folks who wishlist a game could buy it in the first week. That’s a big help to an independent game developer like me!
Interested in making your own games? My solo game dev book How to Make a Video Game All By Yourself is out now on paperback, and my YouTube channel Valadria is packed with free tutorials, devlogs, and podcasts. See you out there in the games world!
*
Follow Pixel Washer and Matt Hackett on their Website, and Twitter to get the latest updates from them and Wishlist the game on Steam!
]]>
The Mega Cat Chronicles
A blog series by Scrobins
Episode 1: Diamond Thieves
In the beginning, homebrew was the hobby of mad scientists experimenting with their own limited resources. There were no supply chains. Donor carts were the norm. But the community’s potential increased dramatically with the arrival of publishers offering molds for new cartridges, technical expertise to polish a game’s code, and a range of services, including the printing of quality labels, boxes, and manuals, and distribution through their online storefronts. Homebrewers were no longer constrained by their own means but could tap into the resources of others, such as RetroUSB. InfiniteNESLives, Broke Studio, the 6502 Collective, and Mega Cat Studios.
Sibling to the defunct 8 Bit Evolution, Mega Cat Studios has grown to become one of the biggest platforms for homebrew, as well as games for modern consoles. In addition to its own passion projects, the Mega Cat portfolio includes a number of commissioned projects as well as the initial or follow-up releases of other devs’ games at a greater scale. It is in that spirit that Mega Cat has cultivated new collaborations to expand its presence and broaden homebrew’s reach with partnerships such as 8 Bit Legit with Retrotainment Games, and a brand-new opportunity with Video Game Sage!
It IS the game
That’s right, VGS is teaming up with Mega Cat Studios to release homebrew games and promote their developers. Mega Cat combines its thick rolodex of developers and its publishing & distribution muscle with the talents of VGS’ staff, including my writing, and CasualCart & BortLicensePlate’s artistic prowess, and our collective promotional reach to help bring new physical releases to gamers that might not otherwise see the light of day.
And to think it all began with a miscommunication.
On September 22, 2021, Nemezes tweeted about a limited release (just 5 CIBs) for a new game from Mangangá Team: Ladrões de Diamantes, or Diamond Thieves. I messaged him about getting a copy for myself, unfortunately international shipping costs made worldwide distribution prohibitively expensive. Nemezes hoped to find someone who could distribute his game beyond his country. That search was apparently fruitful, because on October 27, 2021, no less than James “Mega Cat” Deighan emailed me, saying Amaweks (another prominent member of Mangangá) mentioned I was interested in buying a small run of Diamond Thieves.
I was confused at first, I just wanted a copy for myself. It’s worth noting here that James and I were hardly strangers at this point; we have met in person and emailed back and forth over a number of projects. So I think it’s safe to say we were already good friends. And like our many other emails, this email wasn’t just a quick transactional back and forth, but a full-on conversation, catching up with each other on top of talking about the game itself. Eventually the conversation pivoted to an interesting idea: what if VGS partnered with Mega Cat to release Diamond Thieves and other games in our own joint series?
Retro Homies
A flurry of emails, forum threads, and video calls followed as the excitement of what we could do to play with this opportunity was fleshed out. We would have a lot of leeway to put our mark on these releases. Both Mega Cat and we could draw on our respective staffs’ talents and communities to encourage brewers to release games they might like to publish but, for whatever reason never took that step toward Kickstarter or any of the other publishers.
This collaboration has been such a blast! James enjoyed CasualCart & BortLicensePlate’s new art so much, that he asked them to put together a storyboard for the release trailer. And Diamond Thieves, with its premise of aliens and robots fighting over gems, you can imagine how much we sank our teeth into making fun art and text for the box. We are excited to launch this series and are proud for Diamond Thieves to be the first game to herald what more there is to come.
BortLicensePlate’s Box Design with CasualCart’s Cover Art
To help shed light on the games getting a physical release through our collaboration, I’m also launching a spin-off to my homebrew blog A Homebrew Draws Near! To highlight the publisher who makes it possible, I’m calling this series The Mega Cat Chronicles. So let’s get started: for this entry, I’m covering Diamond Thieves, a platforming adventure for the Sega Genesis/Mega Drive, developed by Mangangá Team. As of the time of this writing, CIBs of the game are available through Mega Cat Studios here.
Original CIB Design by Saruzilla
Game Evolution:
Diamond Thieves first popped up on our radar with an October 31, 2020 tweet, in which Nemezes teased the beginnings of an “alien game.” Its title was announced in another tweet on November 8, 2020. More news entered our orbit over the course of the following year, sharing gameplay mechanics and occasionally crowdsourcing input on sprite design, such as how best to distinguish the various keys needed to complete each stage.
On September 22, 2021, an initial CIB run of 5 copies of Diamond Thieves was announced. Given the shipping/export costs associated with mailing out of Brazil, the reach of these carts was understandably limited. Enter the Mega Cat, with an assist from VGS.
Early Development Screenshot from Diamond Thieves
Gameplay Overview:
Diamond Thieves is a platformer with a pinch of puzzle work. You play as an alien adventurer, locked in the eternal struggle against robots in a race to scoop up the diamonds scattered throughout the universe. You must make your way through each stage, collecting diamonds, finding the keys needed to unlock your path forward, and defeat the robots who would enslave you. Climb ladders and boxes, jump on springs, push buttons, do whatever it takes to reach the checkpoints that mark your progress. Every step counts but watch out for the creatures and pitfalls of each level because these worlds won’t give up their gems too easily. At least there are hearts to replenish your health, and coins galore (10 of which will grant you an extra life)! You aren’t completely defenseless; armed with your laser pistol, you have a fighting chance in such hostile territory, but be careful not to waste your shots or you might be caught in a sticky situation while waiting for it to recharge.
The game’s controls are intuitive. Left and right on the d-pad moves you accordingly, while up and down will help you climb any ladders. The C button allows you to jump and jump off ladders while the B button shoots the laser pistol, but only when the laser bar in the HUD is full. Start pauses your game. And of course you can reconfigure the controls to your liking in the title screen menu.
Screenshot from Diamond Thieves
Writer’s Review:
Diamond Thieves is a hefty scoop of colorful cuteness that easily could have been the genesis of a 90s Saturday morning cartoon. This is a game well-suited for players of all ages, serving as the kind of simple platformer one can turn to as a relaxing escape. Reminiscent of family-friendly forays like Kid Chameleon and Toe Jam & Earl 2, Diamond Thieves is a light, fun adventure that knows some homebrew fans want to pass their nostalgia on to younger generations and will need games with low barriers to entry to appeal to them. Adding to its low-pressure ambiance, Diamond Thieves offers a password system so you can pick up & play, then drop it down & return at your convenience. But don’t interpret this to mean that the game is easy. The limits of your laser attack make you especially vulnerable if you aren’t judicious with its use. And more than once I fell into the trap of assuming that because each key has a distinct color and number that is consistent across each stage that means they are to be obtained in that order every time, forcing me to backtrack to obtain a key I thought I was supposed to leave for later.
As I’ve mentioned, the graphics are cute and colorful, despite the landscape’s tricky terrain. There’s something amusing to how the platforms hovering above water wiggle to warn you they’re about to plummet. The backgrounds add an other-worldly layer to the landscape, and its parallax scrolling adds the sense of depth only found while galivanting in deep space. Meanwhile Diamond Thieves’ music taps into the sounds players love that only the Sega Genesis provides. Those deep bass riffs we’ve come to expect from this 16-bit console, paired with the music’s higher pitched twangs and sound effects perfectly articulate the soundtrack defined by the keywords “cute”, “spacey”, and “fun.”
Stay tuned for part 2 of Scrobins' Mega Cat Chronicles: Diamond Thieves Interviews!
class CharacterUI : MonoBehaviour { { |
For someone testing the game, they may always, consistently, get a null reference exception in Start() of CharacterUI, resulting in a broken-looking UI. For the developer and several other testers, the bug may absolutely never happen. The bug may also never happen for anyone in-editor, but does happen for some people in builds.
Why does this happen?
First, let’s establish that the CharacterUI’s Start() depends on Skills running Start() before it. Otherwise, when it would access the data within characterSkills.skillsKnown, skillsKnown would be null. With that in mind, for the above case, what actually defines the order the two Start() methods run? The order of execution for Start() between these two classes is completely undefined. Because it’s undefined, if these two objects are created at the same time at scene startup, Unity determines this order arbitrarily, and it varies between in-editor sessions and builds, and per machine! For some people the bug may always happen in editor and never in build, and others it may always in the build and never in editor, and for others it may never happen at all. This all depends on whether, for a given machine and build/editor session, Unity happens to decide if Skills runs before CharacterUI, or CharacterUI runs before Skills. While we work through the example, consider that for an actual codebase in a game, the classes involved in such a bug will be more numerous and complex.
Solutions
There's a few solutions available for our contrived example. One solution would be changing Skills to initialize on Awake(), which will always run before anything else’s Start(). But what if for your case’s current logic, both need to use Awake() or both must use Start() due to other dependencies from other classes? If both use Awake, you'd run into the same issue, as the order between the two Awake calls are undefined. If both must use Start, it’s the same as the example undefined order problem.
The general solution requires explicitly defining the script's priority/order. There's a way to do this in the project's script settings, but it's a pain to manage it there (and gets out of hand as you get into hundreds of classes), so you can instead use an attribute on the class, which looks something like [DefaultExecutionOrder(150)]. Below I show the attribute applied to the classes to fix the bug.
[DefaultExecutionOrder(10)] |
The lower the order value, the earlier its mono methods like Start() are executed relative to other monobehaviours. Now, the execution order for the Start() calls has been defined, so Skills Start() will always run before CharacterUI's Start(). Note, this execution order affects Start, Awake, Update (and all other types of update like FixedUpdate, LateUpdate), as well as OnEnable, OnDisable. For example, the Skills’ class OnEnable() would run before CharacterUI’s OnEnable().
Note: if just one class had its order defined, such as CharacterUI’s, the bug could still occur as Skills’ order relative to it is still undefined.
Preferred Solution - Avoiding this Problem By Design
The above solution of using the DefaultExecutionOrder attribute is fine if the damage is already done and the code can’t be refactored. However, the ideal solution is to design your code in a way where this issue doesn’t have room to occur in the first place.
Solutions for this problem at a design level involves avoiding using Start() or Awake() for anything which depends on another game object's state. Instead, you should have some dedicated code in another class responsible for initializing your objects and using them together, rather than having your individual objects cross-referencing each other. As a red flag, if you require your Start() or Awake() methods to run in very particular orders between separate objects of classes in order for them to function properly, they should be redesigned so they are initialized explicitly by hand in another class. The thought process behind this is that if their initialization order is so important for them to function at all, this order deserves to be explicitly defined by hand, line-by-line, in one location, and not spread out throughout the codebase by using the DefaultExecutionOrder attribute. Let’s look into an example.
For a contrived example, imagine you have classes A, B, C, D, and E which all depend on each other in different ways in their Start() and Awake() methods. If you need to understand the order which they initialize and you’re using the DefaultExecutionOrder attribute, you’d need to go between each class and make note of their order number, then organize those order numbers lowest to highest, then separately consider how for this order their Awake()s run first, followed by their Start()s, and some classes may be missing one and have the other. There is a much clearer way - just introducing one simple class, which takes references to each involved class and explicitly initializes them in a manually defined order, passing their dependencies as arguments.
e.Initialize(); |
Now, the order of initialization to a developer is extremely clear by just looking at it, the dependencies between classes are also extremely clear, and very importantly, there’s also no room for undefined execution order bugs because you have explicitly defined the initialization order by hand.
Note that when defining initialization orders by hand, you may encounter things called cyclic dependencies. For example, if system A requires B to be initialized, and B requires C to be initialized, and C requires A to be initialized, there’s no possible valid order to initialize them in. Resolving cyclic dependencies can be complicated and requires some sort of refactoring, so it’s outside of the scope of this document. Resolving cyclic dependencies is the expression you’d want to use when researching solutions.
]]>So how would the game play out? We’re happy to report that we feel like we’ve successfully translated Little Medusa’s core gameplay mechanics and transformed it into a multiplayer experience that would be easy to learn for all kinds of players (while still providing enough wiggle room to show off a skilled player’s mastery over the game’s unique mechanics). Each player will still be trying to utilize the pushing mechanics of the single-player mode to eliminate the other players and be the one to come out on top.
There are also quite a number of settings that you can adjust to fully customize your playing experience. You can toy with the number of lives that each player starts with, the amount of time that you have to duke it out, one-hit kills, item spawns, and even enemy spawns. No matter how you adjust your options, the end goal remains the same: be the last one standing!
As for the specifics, we’ll slowly be rolling out details for the twelve maps and the myriad of items and enemies. For now, let’s give you some specifics on the five playable characters, with each character having two different attacks! Of course, we can’t have a character roster for Little Medusa without the titular character herself: Medusa plays pretty much the same way she does in the main game. She can petrify enemies with her Petrification Gaze. Petrified enemies can be pushed into walls for damage or pushed off of the level. Her other attack, Boulder, creates a boulder that blocks movement and also acts as a wall. These two attacks can be combined in clever ways, allowing Medusa players to create a boulder to smash petrified enemies.
Our next two characters are Poseidonna and Heliemis. Poseidonna can create waves that push everything in their path off of the level with her Tidal Wave attack. She can also create a small bubble in one adjacent space to push enemies with her Bubble Shield. Both of her attacks don’t do any damage, but her insane pushing power makes her a force to be reckoned with. On the other hand, Heliemis’ Mighty Wind attack creates a gust that travels up to three spaces away and deals damage. The Tornado Pull attack creates a tornado that lasts for five seconds, pulling enemies in if they go near it. This allows for some wicked setups to trap an enemy in a tornado while blasting them with Mighty Wind.
Our last two characters, Ermolai and Averna, round up the elemental quartet. Ermolai is the earth dude, and he’s all about creating holes in the ground. Pitfall doesn’t do damage but instead creates a hole in the ground. While this may seem underwhelming at first, if you manage to put a hole underneath your opponents, they instantly lose a life! His other ability, Earthquake, creates four holes around a 2x2 area, but it does resolve slower, so it’s trickier to make enemies fall off of it. It’s a good thing that it does damage! We’re only missing the fiery member of our group, and that’s Averna. She’s probably the simplest character in the game, but also the most damage-heavy. Both of her abilities will deal damage, with Fireball being a simple projectile that will deal damage upon contact and will deal additional AOE damage around it. Flame Pillar also does damage, but travels slower and has a lower overall distance, but utilizing both of her abilities can allow Averna players to take control of the battlefield.
For now, we’re still at the balancing stages of the game, so we’re still checking out the numbers on these characters, but for the most part, these attacks are pretty much ready to roll. We want all five of them to be playable in some amount instead of any single one of them to dominate the playing field. We’ll definitely be telling you more about the other aspects of the game in the future, though, so stay tuned to our social media channels for further updates! You can also head on over to Mega Cat Studios for more retro gaming goodness.
]]>Setting up a product page for your apps comes with a lot of surprisingly specific details that you have to follow. This is especially egregious with product pages for mobile platforms due to how the Apple App Store and Google Play Store handles them differently. But don’t fret, because we’ve handily prepared this sweet cheat sheet to help you with figuring out how to best tackle the mobile market’s finicky product pages.
Each element of your product page has different requirements depending on the specific platform they are in, so read on to know exactly what to do and what to avoid.
The App Store puts screenshots as one of the first things that you see after accessing the product page, they make up a good chunk of a user’s first impression of your product. So always make sure that your screenshots are optimized and your other elements after the scroll follow-up on that impression.
Content-wise, the rules for screenshots are easy to follow: They actually have to be screenshots. Images like real people having fun while looking over a phone’s screen are not allowed. However, the sizes are a bit more specific because you need to have screenshots for multiple types of devices.
A screenshot taken from a minimum 5.5 inch display for iPhones should be included, as well as ones that were taken from at least a 12.9 inch display for iPads. You can have a minimum of one and a maximum of ten for each type, and they can be either in portrait or landscape. Remember that these screenshots are what makes the majority of a user’s first impressions, so displaying screenshots that are both impactful and meaningful will greatly affect how a user perceives your product.
If you’re unsure if your screenshot would fit within Apple’s guidelines, you can check out their official list of screenshot specifications here.
Much like screenshots, preview videos are also one of the first things that a user sees in the App Store after accessing your product page. These videos are actually located on top of the screenshots, so they are more of an immediate draw than the screenshots. However, these videos will automatically play on mute by default, so you always have to make sure that your videos will draw users in even without the sound turned on.
Like screenshots, preview videos can either be in landscape or portrait, and a complete list of specifications for them can be found here.
When users simply browse the market instead of searching for your app directly on the search bar, an app’s icon will be the first thing that they will be seeing. This is why app icons need to stand out from a sea of similar looking icons. It has to encapsulate your product’s feel in one neat looking icon. Even when the user is scrolling through the app page, these icons will remain atop the page in a sticky header, putting even more pressure on it to deliver your product’s overall quality.
Unlike the screenshots and preview videos, the app icon is pretty simple when it comes to specifications. They either have to be 512 x 512 pixels or 1024 x 1024 pixels, and they can be either in .jpg or .png formats.
There are two types of page artwork: product page artwork and developer page artwork. Product page artwork will be needed in case your product is chosen by Apple to have its own artwork on the product page. It’s also needed for some of your product’s crowning moments of being featured in the App Store’s Today tab, which is a tab that highlights specific products in various blog style posts. Developer page artwork, on the other hand, is used to spice up your developer page, possibly leading to the user looking at the other products you have in store for them.
However, no matter which type of page artwork you need, they will usually be cropped depending on what device your users are currently using. So it’s a good practice to have your page artwork’s most important elements be grouped up together in the image in such a manner that they can be framed nicely no matter which device that the page artwork is currently being viewed on. For more specifics on formatting your page artwork, you can view the official guidelines here.
Like the App Store, screenshots in the Play Store are also seen immediately by the user even before they scroll down the product page, so it’s a good idea to have similarly impactful screenshots. You can have a minimum of two screenshots and a maximum of eight in either landscape or portrait formats.
However, unlike the App Store, screenshots for the Play Store are looser in terms of actually being screenshots. You can have promotional artwork for in-product events, a composite of screenshots and elements from your product, and so on, as long as they follow specific requirements. Screenshots for the Play Store should have a minimum dimension of 320 px and a maximum of 3840 px, and the aspect ratio can’t be higher than 2:1 or 1:2.
Unlike the App Store, videos on the Play Store are optional. However, if you decide to add one on your product page, you’ll find that they are actually YouTube videos that will only play once the user decides to access them. They will be displayed in the Play Store as video thumbnails with a play button overlaid on them.
These videos should have a minimum length of 30 seconds and a maximum of 2 minutes. Since they are formatted as YouTube URLs, the video’s size is actually a bit flexible, but 1920 x 1080 would be a great size to use.
This is where there will be the least number of differences between the two stores. App icons will always be front and center when creating first impressions, so no matter the platform, your app icon should always pack a punch.
However, size specifics are a bit different for the Play Store. They can only be 512 x 512 pixels large with a maximum of 1024 kb in terms of file size, and only png formats with alpha will be accepted.
Creating a strong impression for these seemingly tiny details can make all the difference in the world for your product. If any single one of these elements can catch a user’s curiosity, they can turn a browse into an install. And the more iconic any of these elements are, the higher the chances of such an event happening, which, in turn, will mean greater success for your product. Who knows, maybe this would turn any one of your blueprints into actual future endeavors.
Fortunately for us, Phantom Gear is excellent in that aspect. Each level brings a unique aesthetic to it that fits the world that it has created while also bringing in unique mechanics for each of them. So join Josephine in her quest to recover a piece of the Artifact stolen by the Ocular Force across multiple levels of smooth combat.
Before heading on to specifics for each level, there are a couple of key things that will be equally true for almost all of them. Levels in Phantom Gear are all one big level split into multiple sections by various checkpoints, and whenever you die, you will be simply transported to the last checkpoint you were able to reach. Of course, as with all platformers made for the Sega Genesis, you only have a limited number of lives, and if you run out of them, you’d have to start the entire game over. Fortunately, the levels were designed in such a manner that some of the more difficult sections will contain an extra life, and these extra life pickups also respawn whenever you die, which almost means that you effectively get infinite lives if you choose to always try and pick them up.
Aside from checkpoints, there are also various shops strewn across the levels, allowing you to spend your hard earned green orbs to upgrade your abilities, give you extra lives, or equip different weapons. Some of these shops contain extra juicy stuff, but they are located on alternate routes within the level, so be on the lookout for these routes!
With those out of the way, let’s get into the nitty gritty of each level. There are eight levels in the game, and while this seems like an awfully low number, remember that each level is basically one huge linear track that is split into multiple sections, so the actual game length would be longer than the eight levels that Phantom Gear presents you with.
The first level that we’ll encounter is City Lab, and this is where Josephine’s journey begins. This level mostly aims to introduce the player to how the Phantom Gear works, introducing you to the different enemies and obstacles within the world and showing you just how maneuverable Josephine is.
Next, we have the Under City Cave, the source of the city’s power by way of geothermal energy. This is essentially a magma-filled level with plenty of lava-based obstacles along the way. And for a person like Josephine, her augments can only carry her so far when it comes to the heat inside the cave.
Valley Forest is the third level, which is a forest level that consists of multiple robotic animals, influenced by the Ocular Force. I won’t spoil it here, but there’s quite a huge surprise waiting for you if you reach the end of the level.
The first level that provides a break from all the jumping and shooting, Blast Journey has Josephine taking to the skies, riding a missile towards her next destination. Harkening back to the side-scrolling shooters of yore, Josephine must be able to survive the onslaught of flying enemies that this level throws at you in order to survive the trip.
A platformer wouldn’t be complete without an ice level, and Phantom Gear is no exception. The Snowy Mines contains all the usual trappings of an ice level, with plenty of slippery floors and harsh snowstorms.
Another auto-scrolling level, but this time, Josephine is grounded. Hot Pursuit sees her on a motorcycle chasing a train owned by the Ocular Force. Naturally, there will be plenty of shooting involved, and it’s your job to dodge bullets from enemies while dishing out your own definition of pain to them.
Fallen City is a glimpse of what would happen to other cities in the world if the Ocular Force is left unchecked. With plenty of failed experiments and junk from the factories of the Force, it elevates the Ocular Force from a bunch of random mooks wearing masks to a legitimate threat to Josephine’s world.
The atmosphere set by Fallen City is perfect for the game’s penultimate level, because once you enter Ocular Force Headquarter, there’s no going back. The final level of the game will test all of the skills that you acquired throughout the game. And seeing as this is the final level, you better be prepared for the final boss as well.
With all this information in tow, it’s ultimately up to you in how you would tackle the dangers strewn across each level. Whether you choose to blast through them haphazardly or take a more careful approach, at the end of the day, Josephine ultimately still has to be able to recover the stolen piece of the Artifact and put an end to the Ocular Force’s dreams of world domination once and for all.
If a single screenshot and a little bit of explanation won’t do for you and would love to see most of these levels in action, fear not, because you can head on over to Phantom Gear’s Kickstarter page to download a demo. And if you feel like the demo wouldn’t be enough for you to experience the lightning fast frenzy of the game, the full game will be available soon, and pre-ordering it would be a great idea. If you simply want more info about it, you can also head on over to https://megacatstudios.com for other articles about the game and more retro gaming goodness.
]]>However, the Ocular Force is no slouch in their numbers, and there are plenty of mooks that Josephine has to face. Today, we’ll be taking a look at all these disposable bags of flesh and hunkering constructs of metal that Josephine has to deal with if she ever hopes to take back from them what they stole.
]]>However, the Ocular Force is no slouch in their numbers, and there are plenty of mooks that Josephine has to face. Today, we’ll be taking a look at all these disposable bags of flesh and hunkering constructs of metal that Josephine has to deal with if she ever hopes to take back from them what they stole.
The most common enemy in the game, they are vaguely humanoid walking around while wearing distinctive masks, and their job is simple: stop Josephine in her tracks. Unfortunately they do this job in the most ineffective way possible, which is to say that all they do is simply walk around the level until they see Josephine within their line of sight. When they do, they’d shoot two bullets at her before resuming their walk. It’s hilarious when they just miss their shots at Josephine before moving on with their lives.
Of course, it wouldn’t be long before these Minions receive an upgrade. There will be Minions who drive around in a sleek one person cradle with a wheel around it, and this vehicle is fast and tough. It’s actually formidable enough for you to seriously consider just dodging it instead of trying to destroy it before it collides with you.
Aside from the Minion Wheel, you’d also encounter Minions holding a shield in front of them, and while these Minions are tougher, they’re still basically Minions, and somehow, when Minions are not riding atop anything, they suddenly become lazier in their efforts to stop Josephine, reverting back to their behaviour of shooting two bullets at her before going back to chilling with their shield.
Seems like technology will always be tougher enemies than flesh bags, and these seemingly unmanned constructs of metal are definitely some of the most annoying enemies in the game while also maintaining their deadliness.
First, we have the Drone, and these guys are definitely annoying. They fly around in an erratic pattern, and meeting them head on will cause them to fire at you with lasers that are quite hard to dodge. And with how they hover around the sky instead of just staying grounded, they are also very hard to hit back without putting yourself at danger of being rammed by them.
Then we have this intimidating Tank, and even though it walks absolutely slowly, it’ll eat up most of your shots before you can even put a dent on it. The worst enemy in a fast paced platformer are meat shields, and this monstrosity delivers the toughness in spades.
Finally, we have Cannons, who travel at a medium speed, stopping only to shoot two cannonballs at Josephine. However, unlike most enemies who only fire at a straight line, the Cannon will throw a wrench at your dodge patterns by shooting in an arc instead. We hope you’re ready for two balls of metal suddenly flying towards you at high speeds, because they will hurt.
Oh, did I begin the last entry by saying “finally”? That was meant for mobile constructs, as we have two other enemies made of metal to worry about. We have this Turret who that is invulnerable from afar, and once it detects you anywhere near it, it will suddenly pop out from the ground and shoot missiles at you, and these projectiles will come at you fast.
If that doesn’t seem too worrying, get a load of this Mini-Turret. As the name implies, it’s quite small, and while it will be easier to dodge its shots, it also is quite difficult to hit. Sure, you can just dodge everything it throws at you, but it’s personally quite satisfying to see your enemies blown to smithereens.
Aside from bosses, those are all the enemies that you would be facing within the game’s world. And while this may seem like a meager amount of baddies that you would have to study, the excellent level design lends itself well to throwing you into situations where you have to think fast lest you eat a load of bullets from any of these guys. There will be plenty of situations where you will be forced to think fast, such as going into a tight corridor with a Turret greeting you at the far end of it or an area full of deadly spikes with a Drone flying around it.
All this talk about facing these enemies simply just makes me more excited about finally being able to play the final build of Phantom Gear. The fast paced gameplay, unique worlds, and absolutely beautiful boss battles always draw me in, making me return to the demo copy that I currently have. So if you’re quite at the same level of excitement as I am, why don’t you head on over to Phantom Gear’s Kickstarter page and see the project in all its retro goodness. And watch out for future blogs talking more about the games’ levels and bosses in detail and more retro gaming goodness at https://megacatstudios.com.
Draw calls are typically one of the most expensive parts of rendering a complex scene. This is among the first things you want to look into reducing as much as possible.
Use the console command stat RHI and check “DrawPrimitive calls” under the “Counters” category.
Use the console command stat scenerendering and check “Mesh Draw calls” under the “Counters” category. Unlike the “DrawPrimitive calls” counter, this counter will only show draw calls from meshes.
Meshes that are rendered as a part of an instanced static mesh component (ISMC) or hierarchical instanced static mesh component (HISMC) will share draw calls. The difference between the ISMC and HISMC is that HISMCs support rendering different LODs for its instances at once, whereas with ISMC all rendered instances share the same LOD. For this reason, HISMC should be preferred, but in either case, there will be a draw call reduction. Note: since UE 4.22, with some limitations, the engine can automatically merge identical static meshes with the same materials and material uniform parameters into shared draw calls, similar to instanced meshing. However, this automation is limited to the DX11 feature set, so others such as DX12 or earlier than DX11 can’t receive this benefit (read more about this under “Draw Call Merging” here UE4 doc: Mesh Drawing Pipeline). For this reason, I will still recommend using instanced.
If you place static meshes using the foliage painter, each type of mesh painted will be rendered similarly as though they are all rendered through a hierarchical instanced static mesh component (HISMC). This is a simpler option than managing separate Actors interacting with a shared HISMC to add/remove themselves from the HISMC pool as needed. However, with this option, each placed static mesh is not its own Actor, reducing simulation/interaction options for gameplay purposes. Additionally, addition/removal of instanced static meshes through the foliage painter is only available at editor time, not runtime. As a result, this method should be preferred when you’re placing many common static meshes for set-dressing which do not need any C++/BP functionality built into them.
Each material slot on a mesh will increase its draw call count. For clarity, material slots are different from texture uniform reference. Material slots are where you assign material instances. Material slot count is determined on the artist’s side when they design the mesh and determine which parts of the mesh will use different materials. While you can’t change this in-engine, you can check your mesh assets in-engine to determine if they have excessive material slots, and work with your artists to get them optimized to use less material slots. The most general rule of thumb is that the simpler the object, the fewer material slots it should have. For example, a rock should have one material slot, and a wood + metal bench could have two (one for the wood parts to share, and one for the metal parts to share). An example of an excessive material slot setup would be if each piece of wood or metal on the bench had its own material slot, resulting in a total of 8 material slots.
Unreal is capable of merging multiple selected actors within a level into a single new actor. The main benefit to this feature is reducing draw calls. See their documentation here: UE4 docs: Actor Merging. Actor merging can be carried out in a couple ways. The first way will effectively create a new mesh (with new UVs) and even make a single material which is all the selected actor’s materials combined. This allows you to directly convert multiple draw calls caused by multiple actors into a single draw call.
Actor merging also supports merging multiple actors into using one instanced mesh component. This is helpful for cases where you have many copies of the same static mesh actor.
Use the console command stat RHI and check “Triangles drawn” under the “Counters” category.
Creating different mesh LODs (levels of detail) will cause the mesh to render with reduced geometry complexity depending on its size as a percentage of the screen. Unreal can automatically generate LODs for your meshes with some simple configuration within the mesh’s asset. This is one of the simplest ways to reduce the number of rendered triangles.
Resources:
Culling distance volume actors allow fine-grained control over the culling the visibility of any actors within the volume based upon their size and distance from the camera. The amount of a tri draw reduction you can get from this depends on the use case. They are especially good for wide open environments with a range of object sizes.
Resources:
Overdraw describes how often texels (pixels in the context of textures) are written to within a framebuffer in the scope of one frame. When rendering a scene with opaque materials, texels will usually be written to once. Texels are often written to many more times than once usually as a result of translucent or additive materials overlapping. For example, many fog particles overlapping result in the overlapped texels being written to many times, which is measured as a high amount of overdraw. Overdraw is most commonly a problem with foliage (which use the foliage card technique, in which you have a foliage texture on an alpha translucent material) and particle systems.
The method to reduce overdraw is highly dependent on the specific cause of overdraw (for example, foliage, particle systems, or something else). This example looks at particle systems.
Shown above is a sample particle system producing a large amount of overdraw with its additive particles. A common cause of frame rates dipping down is when particle systems are spawned which produce a lot of quad overdraw. Quad overdraw is difficult to avoid when making some kinds of particle systems, and some amount of it is okay for these use cases if it’s temporary. However, in order to reduce quad overdraw, effort should be made to reduce the amount of particles needed at once for these systems. Sometimes, this can be achieved without much change to the visuals of the system by reducing the quantity of the particles, and then increasing the opacity of the particles to compensate for the reduced particle quantity.
Lighting complexity increases as dynamic light sources overlap. This is a significant source of performance cost from dynamic lights. Below is a sample scene with 3 point lights with different attenuation radius. We’ll then look at it with Light Complexity view mode.
The difference in settings between all of these lights is just attenuation - no difference in intensity. The key takeaway is that the light’s attenuation setting is the factor which affects the radius in which it imposes a performance cost. Light intensity does not have an affect on this. As a result, make sure each dynamic light’s attenuation is proportional to how intense the light is and how much area it should visibly affect. As dynamic light sources move around, a smaller attenuation radius will reduce the amount they will overlap on average. You can see that where the 3 lights overlap, the complexity is the worst (the purple region in the center). In environments with dynamic lights, spacing them out to reduce overlap between their attenuations will reduce light complexity. Consider outright removing dynamic lights in cases with excessive light complexity.
Skeletal meshes contribute a significant amount to game-thread costs because they must tick and update on the CPU, on top of having to be rendered like a typical mesh on the render-thread. The methods outlined here are about measuring and reducing their performance impact on the game-thread (CPU).
To quickly see how much skeletal meshes are contributing to game-thread costs, use the stat command stat anim. From here, you can see how much your skeletal meshes are taking to Tick each frame.
The Animation Budget Allocator (ABA) allows you to define game-thread cost limits collectively for skeletons which interact with the ABA. You can have skeletal mesh components opt-in to the ABA system by replacing them with the type “Skeletal Mesh Component Budgeted”. The ABA will reduce animation quality for budgeted skeletons dynamically based upon current animation performance, and the way it reduces quality is configurable. For example, dynamically reducing component tick rate, and/or removing pose interpolation. It will apply these optimizations based upon the calculated “significance” of skeletal meshes. For example, skeletal meshes that are further away from the camera can have lower significance, and thus be subject to much more optimization than skeletons close to the camera. With the C++ API for the ABA, you can define your own custom significance function to suit your use case’s requirements.
This should be the first optimization effort for your typical use cases of skeletal meshes, especially with how flexibly you can push the optimization with it.
Read more about animation budgeting in the UE4 docs: Animation Budget Allocator
Vertex Animation Textures (VATS) are textures within which all necessary data from a skeletal mesh’s animations are baked. This can include skeletal mesh LODs as well. The VATs are then rendered through static meshes, resulting in a significant performance improvement over skeletal meshes. Downsides to this method are that animation events and any tech achieved through animation graphs (such as anim blending) are not available. The robustness of the featureset depends on how the VAT baking and material functions which use it are implemented. There are a few plugins out there which implement them in a feature-rich way. This is one such plugin: Marketplace: Vertex Animation Toolset. VATs are ideal to use instead of skeletal meshes for animated actors which play a small/decorative role in gameplay and therefore don’t need the full feature set that comes with a skeletal mesh, such as environment creatures like birds or frogs. VATs are practically mandatory for cases where you need to render an extremely large amount of animated entities (5000+) of any complexity, such as in crowd simulation, in tandem with Hierarchical Instanced Static Mesh components.
Many gameplay features can be implemented as a part of an Actor’s Tick(), but using Tick is the most expensive option as they run every single frame by default. A common cause of performance issues I’ve seen in several medium to large scope games is that most actors implement Tick(). While the tick itself only takes a fraction of a millisecond, if nearly all actors in the game use Tick(), those fractions of a millisecond end up adding up to a lot - sometimes most of the frame budget. As a result, overuse of Ticking is considered a death by a thousand cuts.
Consider these alternatives instead of using Tick. Tick should be the last resort for implementing functionality.
If you feel like Tick is still the best way to implement a feature, consider reducing the Tick Interval of the Actor. Usually, ticking once per frame is excessive (which is 60 times a second at 60 fps) - sometimes for example 5 times a second is enough. Ticking 5 times per second is 12x less expensive than 60 times per second.
During runtime use the console commands stat startfile and stat stopfile to begin and end a performance profiling session. This will create a UE stats file which you can load in the profiler GUI. One place to open this data is the “Session Frontend” window, accessed from Window -> Developer Tools in the toolbar. See this page for reference on using the profiler: UE4 doc: Profiler Tool Reference. Once the profiler data is loaded in the GUI. Inspect it to see how much of your costs are collectively coming from your Tick() implementations across your class. For most games, Ticking should be a minority of game thread costs.
Shader complexity is defined as the amount of instructions a shader/material needs to execute. The more instructions, the higher the complexity, and the more expensive it is to render. Many materials in a game will typically have low complexity, but sometimes high complexity materials crop up, or many low-complexity shaders overlap due to translucency, adding up to high shader complexity for the covered pixels.
Use the shader complexity view mode (hotkey Alt + 8) to switch the view mode to shader complexity.
Above are examples of two cases where shader complexity is high. An opaque cube with a high complexity material (467 instructions), and a particle system with many overlapping low complexity translucent materials (60 instructions). You can read more about the view mode here: UE4 docs: Shader complexity view mode
For the particle system, the heat map looks similar to the quad overdraw view mode. The shader complexity in the case of the particle system is so high specifically because of the amount of quad overdraw (overlapping particle billboards, in this case). Optimizing the shader complexity of the particle material would be one angle of improving the shader complexity of the particle system, as would be reducing the amount of quad overdraw (see the section on Overdraw in this doc).
Reducing shader complexity for opaque materials like in the case of the above example cube requires modifying the material. The way this is to be done depends on why the material is so expensive. You can experiment with reducing parts of the material, recompiling it, and checking the instruction count in the material’s output stats window to see the amount the instruction count has changed by.
Types of commonly problematic content to check for high shader complexity in the context of a level include grass foliage, and situations in which there are many particle systems layering, such as during combat, or when environmental vfx are in play, like in a rainy environment.
]]>
Unreal Engine provides blueprints as an effective way of quickly iterating on concepts without having to wait for lengthy C++ compilation times between changes. Blueprints also provide a way for designers to access C++ implemented functionality in a visual way, so they can participate in iterating on gameplay without knowing how to code.
Because of these strengths, Blueprints are best to iterate on ideas in their earliest stages. Compared to C++, Blueprints run into inherent maintainability problems as a result of their medium. Blueprints are more difficult to analyze, debug, and navigate compared to C++ code, because the C++ Visual Studio environment (with extensions) altogether has an incredibly powerful feature set which is not matched in Blueprints. A less experienced C++ developer without knowledge of these features and options might think Blueprints are the same if not better in those regards, and this is why this document exists.
This is the only time in the entire doc performance will be mentioned, to keep the matter simple and in Blueprint’s favor. Even if Blueprints are just as fast in runtime execution as C++, we should still have nearly all gameplay implementations start in Blueprint, then implemented in C++ after iteration. While I don’t believe Blueprints are as fast as C++ due to having to work on a separate VM layer (the time cost happens when switching in and out of VM context, and moving data in and out of the VM) let’s just say for the purpose of this document, runtime performance does not matter.
This is from a perspective of someone who has used blueprints in projects for 3 years, and C++ for about 7 years. A later section of this doc gets into it, but I also want to highlight that data-only blueprints have incredible value and should be a part of our projects, because they are the cleanest way to get asset references into C++. However, this document is about code implementation. The following sections get into the capabilities of debugging and navigation, as well as implementation time cost comparisons between C++ and Blueprints.
Much of the process of fixing bugs involves analyzing the flow of control throughout the scope of runtime execution, and usually monitoring the state of data in one or more objects as code is executed. Doing this in the context of C++, there are many well established methods and tools provided. Some of these have equivalents in BP, but many do not. Additionally, the debugging features that are in both are less flexible and powerful in BP.
C++ and Blueprints both support breakpoints (pausing execution at a given line of code or node), and they are valuable for most debugging use cases. C++’s breakpoints with Visual Studio are incredibly powerful compared to Blueprint’s breakpoints.
Both C++ and Blueprints have “Watches'' as a feature - in which you can monitor some data or state while execution is halted, but again, C++ in VS has much greater capabilities with its watch functionality. In VS C++, you can watch the state of many objects across the scope of multiple systems, including the contents of data containers, where each element and its data members can be inspected freely. Blueprints also have a “Watch”, but it is only valid for variables that are local to the current blueprint context. Using Watches effectively is another critical part of debugging many types of issues, so having a worse form of “Watch” in blueprints makes the typical debugging experience more challenging than it needs to be.
Something C++ has which Blueprints don’t is the ability to leverage static analysis tooling. Static analysis results are very similar to compiler warnings, but static analysis tools can algorithmically find the places in your code where run-time errors can or will occur, and tell you about them. In this way, static analysis tools allow you to automatically find many categories of bugs (often, the worst kinds of bugs) without anyone having to play the game or use the software. The types of bugs static analysis tools can detect are things like uninitialized data access (like accessing a null reference), undefined behavior, memory leaks (if not using Unreal’s memory management for parts of the project), stack overflows, infinite loops (unintentionally stuck in while or for loops), numeric type overflows and underflows, array overruns and underruns, and much more. At any scale, static analysis can offer value to code quality and stability by pre-emptively detecting errors, similar to having an experienced developer review the code and point out places where there might be issues, or where there will certainly be issues. The value static analysis provides increases with the scale and complexity of the project. This post on the Unreal Engine site goes into some detail about the value of static analysis specifically in the context of Unreal Engine game development. A notable quote about static analysis is that John Carmack, the CTO of Oculus VR went on record saying “The most important thing I have done as a programmer in recent years is to aggressively pursue static code analysis.” Given that blueprints cannot leverage static analysis tools, that puts it at a severe disadvantage for maintainability at scale.
Speed of navigating code (or nodes) is important when evaluating code, whether you’re analyzing it while debugging it, or remembering how a system works before you modify or extend it, or while visiting many sections of code during a refactoring session. C++ is substantially faster and more versatile to navigate than blueprints with the right tools and training. These tools are standard for UE4 developers, such as Visual Assist or Resharper C++. They are so unanimously used across UE4 developers, they both have UE4-specific features and settings within them, although their best features are universal to C++. The faster code can be navigated, the faster it is to analyze and make progress on. Both C++ and blueprints have a few common navigation use cases covered like “Find all references”, but Visual Studio and third-party tools provide even greater and more flexible options than blueprints. Here’s an example use case to demonstrate the power of a couple navigation options in C++ which I use constantly while working in C++ and C#, and miss whenever I work in Blueprints. There are many more, but
Imagine I want to find the class type of a data member in a “PlayerCharacter” class called “characterMesh” - not sure if it’s a static mesh, instanced static mesh, skeletal mesh, and so on. From anywhere in the entire codebase, in C++ with Resharper or Visual Assist, you could use Alt-Shift-S, type “char mesh” and press enter, then you will be instantly looking where the data member “characterMesh” was defined, in the PlayerCharacter class, where you can see its class type. If multiple things matched the filter of “char mesh” you would be able to see them in the context window and where they are defined (such as file name) and pick the one you intended before pressing enter. This is called a “symbol search” - it allows you to search the entire codebase for symbols (identifiers) which match your filter. This is also very useful for finding things named after something. For example, symbol searching “weapon mod” would allow you to find all classes, methods, data members, and so on with “weapon” AND “mod” anywhere in their name, viewable in an organized list with file names, and preview each line the matching code was found in. Clicking any of them would take you to that line. The closest thing a blueprint workflow has is the ability to search all UE4 assets by pressing alt-O, and searching for a blueprint by name there, then opening it, and then searching for the variable by scrolling through the BP’s details.
In C++, you can use the “Peek Definition” shortcut while selecting any identifier/symbol in code to pop up an overlay to see the code context of where that identifier was defined without leaving your current code context. This allows you to see both how and where it was defined at a glance, with even the ability to scroll through and modify code in the “Peek Definition” overlay, and quickly close out the peek overlay by pressing Esc key. For example, if I was working with an object of the “PlayerCharacter” class and saw code reference it’s “characterMesh” member like so: playerChar.characterMesh, and I wanted to quickly see what other data members are in that class besides “characterMesh”, I would just have to use the “Peek Definition” hotkey on the word “characterMesh” to immediately jump to where it was defined in the PlayerCharacter class, then press esc whenever I want to close the peek overlay to get back the full view of the code I was originally looking at. This allows for rapid context switching to get information about whatever it is you’re working on.
The above two navigation features are just a couple of many navigation features I use in C++ that don’t have a good equivalent in Blueprints. The visual assist page here Visual Assist - Navigation Features shows and explains many navigation features in just that extension alone, such as GoTo related symbol, Find by Context, and bookmarking code locations with VA Hashtags to rapidly jump to at a later time.
C++ is substantially faster to create than using Blueprints. Here are some tangible examples.
Things like function definitions in blueprints have to be created by using a bunch of drop-lists, buttons, and text fields. For example, just adding an input parameter to a function requires clicking a drop list to pick a data type from a list, then picking whether it’s an array, map, etc, from another drop list, then entering the parameter name in a text field. In C++, adding a parameter is as simple as typing it into the method’s declaration, for example,
TArray<UPlayerCharacter*> & characters as a parameter is a reference to an array of pointers to UPlayerCharacter type.
Take this example calculation for determining a player’s maxHP stat, in C++:
player.maxHP = player.vitality * 10 + player.level * 5;
The equivalent in blueprints is:
1 player node.
3 “get” nodes from the player node, using three pins to get maxHP, vitality, and level variables as nodes.
2 multiply nodes, each with two input pins.
1 addition node with two inputs (each coming from the multiply nodes).
1 set node to write set the result of the addition node to player.maxHP, which has an input pin using the maxHP variable as its target, and another input pin for the value the variable should have.
8 nodes (1 player node, 2 multiply nodes, 1 add node, 1 set node, 1 get maxHP node, 1 get vitality node, 1 get level node) have to be added, and (3 get pins + 4 multiply input pins + 2 addition input pins + 1 set value pin + 1 set “target” pin) = 11 pin connections have to be made in order to do the same as that one simple line of code. The fastest part of that process would be quickly adding the multiply and addition nodes by pressing the “m” and “a” keys as shortcuts. Additionally, in blueprints, you have to take some care to line up the nodes in a way that physically makes sense to be readable. Measuring the amount of time it takes to write the line of C++ code, it took me about 7 seconds. That timing is not close to possible in blueprints. It’s certainly possible there are more efficient ways of implementing that calculation in blueprints, but the time it would take to determine the most node-and-pin minimalistic approach already makes it cost more than the C++ implementation, and the sheer amount of clicks and dragging (as well as going through the list repeatedly for which variable to get from a node) would guarantee it would always take more than the handful of seconds the C++ version takes.
Blueprints and C++ each have very different strengths and weaknesses, to the point that they shouldn’t be seen as interchangeable tools. For clarity up front, I think all of our Unreal projects should use Blueprints, but exclusively just to their strengths and no more past that. Blueprint’s key strengths are that data-only blueprints provide the best way to get asset references and other data definitions into C++ in a maintainable way, and blueprints are fast to prototype with. Just in terms of early iteration times, Blueprints are faster in development than C++ because the recompile time is very fast, unlike C++’s very slow compilation. On the other hand, C++ is much easier to debug due to a rich set of debug and navigation tools and options. A C++ codebase is also easier for an experienced developer to learn and become accustomed to as a result of the navigational options, and faster to create new code within due to not having to mess with a bunch of nodes and pins to write simple expressions. Further, static analysis tools enhance the process to make C++ code more stable and then maintain that stability at any scale, which objectively improves the quality of the product. However, this is not to say nothing should use Blueprints outside of prototyping. Data-only Blueprints are still the best way to get asset references from the editor into something you can access in C++. Extremely simple event driven logic, like that in most UI implementations, is also fine to do and leave in blueprints. This is also great, because UI is most iterated on by artists and designers - not developers - making blueprint a great choice for them to use.
In terms of gameplay implementation and not data-only use cases, Blueprints are best used for early iteration and prototyping. For example, when experimenting with how a feature looks and behaves. When that feature gets the sign-off, it should be converted to C++ immediately so it can benefit from all the aforementioned benefits, because it will no longer benefit from the rapid iteration speed of blueprints. It is true that sometimes a feature will get revisited for iteration much later after it was signed off on - in which case, just iterate again in blueprints then move it back to C++ when it’s determined to be the required implementation. Again, only features that are very simple and not that important to gameplay should be left in Blueprint. Everything that is important (even if simple) and/or even slightly complicated, should be moved to C++.
Here’s a great video which gets into the strengths and weaknesses of blueprints. The presenter, Zak Parrish, is a senior of Developer Relations and support at Epic Games who works with development studios to improve their use of the engine. With his experience from assisting studios and working with the team at Epic Games, he has the authority to talk about what is and isn’t a good use for Blueprints. I agree entirely with what he states, and many of my opinions are the result of applying his advice in projects.
]]>
A great deal of the gaming community lives and breathes with this type of thought-sharing, feedback, and help. Every week, we receive questions from new friends and old, ranging from shared opportunities and game design feedback to troubleshooting and technical issues. Taking the more common, and thematic questions, and reusing them as blogs feels like a natural step for us, and broadens the number of developers we can assist.
The mini-case study below helps with a very small, but recurring issue that first game studios and game developers sometimes run into issues with: device compatibility settings.
It’s often the case with beginners who are managing a store upload for the first time to miss a few steps. One of the most common is by not correctly configuring the Device catalog.
If you look at the example below, you’ll see 15K+ devices supported from a project one of our senior developers uploaded.
Here, you’ll see a similar project in the same month, and same version of Unity:
With just under 5K devices supported, only 30% of the comparable above, something is wrong.
In this case, the Game App API level is set to 23+. This means that Android devices must have that level of update to ensure compatibility, download, and play the game app.
If you look at the package configured by the senior dev, you’ll see the difference:
Set the minimum API level to 19 within Unity Player Settings, and you are good to go.
This confusion often starts because the Google Play upload dashboard will say that it requires the most recent API level to be uploaded. You do not have to set the minimum API level to be the latest.
]]>
Usually, I achieve fog by layering a decent amount of some low opacity fog sprites which are somewhat randomly scaled and rotated. The move slowly in random directions, and slowly change in scale and opacity over time.
You can change the feel of the fog by changing the fog sprite assets themselves to be softer or harder-edged (or more/less detail) and by tuning the balance between the opacity of the fog particles and quantity. The more opaque they are, the less you need (lower emission rate), and the more "chunky" the fog will appear as a result. Less opaque fogs particles and more of them results in a more even distribution of fogginess (more smooth, less chunky).
SpriteParticleCloudWhiteSoft.psd
Here are the particle system settings I used there. Chances are, many of the settings will need to be substantially changed to fit the use case, but it can give you an idea. It's important to set the max particle size to something huge like 999, otherwise, unity may automatically scale the particle size based upon how big they are on camera. The max particle size there is really the "maximum size of particle in screen space at runtime".
You can set the simulation space in the particle system's main section, by gravity.
With option 1, the particles will not move relative to the camera as the camera moves due to being in world space simulation, but the particles will spawn relative to the camera's position, which means the fog is essentially generated as the camera moves around, and the particles made where they camera used to be naturally go away. This works well with slowly moving cameras, because a low fog emission rate can easily keep up with the camera's slow position changing.
It is also good if you're fine with the whole visible area being subject to fog in the same way visually (e.g, there's no place you don't want fog to be).
This approach saves you the need from having to manually place and tune fog particle systems for the entire area, while still being decently efficient since it's one system moving with the camera, emitting a small amount of particles. You want to go with option 2 if you want to carefully control where the fog is, for example, if you never want it to display on top of a particular area such as a building or body of water. In DTs view angle, it may give more of a sense of depth to actually not have building rooftops occluded by fog, because it gives the sense that the roof tops are above the fog which is low to the ground.
The main downside for 2 is that you have to manually place the particle systems and tune them by hand appropriately based upon amount of area covered. This is not so much a problem if the amount of space you have to deal with is small.
You want to go with option 2 if you want to carefully control where the fog is, for example, if you never want it to display ontop of a particular area such as a building or body of water. In DTs view angle, it may give more of a sense of depth to actually not have building rooftops occluded by fog, because it gives the sense that the roof tops are above the fog which is low to the ground.
The main downside for 2 is that you have to manually place the particle systems and tune them by hand appropriately based upon amount of area covered. This is not so much a problem if the amount of space you have to deal with is small.
TLDR;
Option 1 is good if you have a lot of content and little time to add fog to it, or you're fine with fog being everywhere on-screen.
Option 2 is good if you want a lot of control over where the fog is and isn't, and is best if there's not that much content to treat this way. I think DT will look best with this option
]]>
Got the vibe to stream the new Animal Crossing, or just about any other new Nintendo title? This is the guide that will teach you how to stream games from your Nintendo Switch!
Although most of the latest generation of games consoles allow you to stream directly from an app on the console to Twitch, one of the more conventional methods of capturing game footage – whether for streaming or for video making purposes on YouTube – has been accomplished by using a capture card.
Since the Nintendo Switch does not offer the ability to stream directly from the console, in order to share your gameplay you may need to invest in a capture card.
You can find cheaper capture cards out there but these two are the gold standard of capture cards and are widely popular within the streaming community of Twitch as they operate on both Windows and Mac.
Use the following steps to set up stuff, once you have invested in a capture card.
Either go to the Elgato website by yourself or click here to find the latest update for Windows of Game Capture.
Since the capture card needs an HDMI port, in its base station you will have to dock your switch.
You have to plug your first HDMI cable into the docked Nintendo Switch HDMI-out port and plug the other end of the cable into the HDMI-in port on your capture card.
Now, go ahead and plug your second HDMI cable into the HDMI-out port on your capture card and connect the other end into the HDMI-in port of your TV/PC monitor.
Plug the USB into your computer and the other end into the capture card using the USB-C cable included with the Elgato capture card.
Set your OBS to window capture the gameplay once you've opened these, and you're ready to go live! It is worth double checking all your settings beforehand, as some of the defaults may not be suitable for setting up your stream to your specific needs.
Having trouble with any of the Elgato capture products? For you to resolve them, they provided a ton of support pages to help you! Click here to check it out if you're struggling.
Nintendo Switch footage can be streamed without a capture card, but it does have other requirements of a comparable cost, in which case you are better off purchasing a capture card unless you already have the gear available.
You can use the Xbox One to stream your gameplay to your Computer, which can then be window captured in OBS, according to reddit user u/kakysha. A link to his tutorial is here.
]]>
]]>