Join us on the Linux Gaming community on Lemmy, the federated open source alternative to Reddit.

An Interview With Corpses 'N Souls Developer Side Scroll Studios

By - | Views: 17,896
With the ever growing number of free and affordable game development tools and the accessibility of online game distribution platforms, there has been an increasing saturation of indie games over the past few years. A saturation that's even caused many of us Linux gamers to get large backlogs of games to play. For better or for worse, this has forced developers to expose themselves to the public eye to a larger degree to chase the attention of consumers, and it has led to a closer dialogue between developers and consumers. On the plus side, this can make developers more responsive to feedback from their customers and sometimes form tighter bonds that lead to stronger communities as well as increased customer loyalty. Another potential outcome that I've become more aware of lately is that developers are more exposed to overly negative criticism, often even abuse, especially on game forums like Steam and in social media like Twitter.

I have wanted to write a piece touching on these subjects for a while, and after a chat with Corpses ‘N Souls developer Kai Kubicek of Side Scroll Studios earlier this month, an opportunity arose. He was willing to answer some questions from the perspective of an aspiring indie developer, and you can read the result below.

First off, could you tell us a bit about yourself and your professional background?

My name is Kai Kubicek aka valcan_s (internet handle). I started my main video gaming addiction back in the arcade era during the start of the 90s. Basically I would go to the arcades or anywhere there were arcade cabinets and stare at the free play intros to games since I had no money to play and just marveled at what I saw. I was completely obsessed with video games and wanted to one day know how they worked and how to make them. My first at home video game device was a Commodore 64 which my Dad got from a friend at work. That kicked things into overdrive. I lost it the first time I did a LOAD and RUN on my first game(Ghosts 'n Goblins) and it booted up. After that I cut enough lawns to buy a Sega Genesis since I got my friends Genesis games he was going to throw out. Meanwhile I continued to go to the arcades till they all closed down. I have been following and playing video games ever since. I build all my own computers and am into water cooling and multi-screen gaming now, I love technology, software and hardware; I consume it all.

I have been programming for around 20 years and done it for 13+ years professionally in small, medium and large corporations. After I had been working as a Software Developer for just under a decade I finally decided I was ready to start teaching myself how to make a game engine in my free time. The game engine 2DEvolved that I created would allow me to make a video game and get one step closer to my dream.

A year and a half ago I left my software development job to pursue my dream of making a video game and went full time indie dev on my game Corpses 'N Souls that I had been working on in my free time. I am the only person working on the game minus my music composer Michael Kelly who supplies the music scores.

What kind of games have you drawn inspiration from in making Corpses 'N Souls?

Super Ghouls 'N Ghosts is one of my all-time favorite on the SNES which was the very first inspiration to Corpses 'N Souls. I basically at first wanted to make a MEGA spiritual successor to Super Ghouls 'N Ghosts but also wanted to incorporate ARPG mechanics, Metroidvania mechanics and some other modern concepts. The main objective “MEGA spiritual successor to Super Ghouls 'N Ghosts” still exists but once I progressed more with development I quickly added more inspiration from Castlevania: Symphony of the Night, Castlevania Bloodlines, Diablo 2 and other core ARPG mechanics. Having such a massive background as a gamer from the late 80s/start of the 90s to current has provided so many games to help shape Corpses 'N Souls to what it is. I owe everything to all those years of playing video games. If it was not for my background in playing so many video games from the past to present there is no way I could ever consider or make Corpses 'N Souls or any game regardless of my technical background and skill.

Unlike most 2D platformers, Corpses ‘N Souls is a high definition game with a lot of detail. Has that posed any unique challenges in promoting the game?

It’s been difficult. Most social media is design for pixel art or low resolution 640x320 images not 1920x1080. Not to mention the majority are going to be looking at your material on a mobile devices in haste. I can still remember when I first started using twitter and I posted a full 1080p screen in a tweet. You couldn’t make out anything and if you expanded the picture it destroyed all the details and look terrible and looked nothing like what I saw on my screen.

Early on when I showed off wip of my unfinished game engine I would commonly receive “where is waldo” comments. Even though the main player in the screens aka the Werewolf’s sprites were massive in size and in reality his boot and head was the same size as Ori(Ori and the Blind Forest) but that didn’t matter. You really have to put yourself in the viewer’s shoes and what they are seeing and adapt around that and make sure their experience looks great. At the time I just got my game engine to a stable point to produce something which was challenging enough so I am not going to lie, early comments are discouraging. When you read early negativity on your work you learn fast that you have to adapt. No one is going to give you instant respect for making your own engine by your self. That is just wishful thinking, reality does not work like that.

Click the image for an un-cropped version of the screenshot with provisional UI elements.
image
You can find more images here.

Same with GIFs which you are forced to use if you want the best social media experience. Since I have found out on social media the majority don’t want to click they want to only scroll and look. So using the vastly superior Gfycat which is full quality and resolution is useless for no one wants to click once or twice or wait. Sounds crazy but that is how it is we all have busy lives and one click is too much and is not an option you can bet on.

I found cropping was the best solution for images and linking the full image source for those that don’t mind to click or were interested from the cropped image.

With YouTube I found the same issue. 1080p looked horrible and the bitrate was useless for a detailed HD 2D 1080p game. So again I had to react and found out that YouTube supports 4k and 2K. So what I did was cook all my videos in Vegas at 4k(1080p source) which would trigger YouTube to use a high bitrate(which it really should use for 1080p). The only problem with that you have to hope YouTube will at least pre select the 1440p(for the most part it does) setting for your viewers. You always have to think that users don’t want to click more than once if at all for anything you want to share on the net.

At first you never think that you have to worry about these sort of critical issues and that making a game is your only problem. LOL, boy you find out you’re wrong real fast when you first start. The fact is there are hundreds of obstacles to overcome all the time and at times it feels like an endless battle but it sure feels great when you find a solution and the reception is positive and appreciated.

One thing that really stands out to me in your game are the real-time shadows. Assuming I don't know anything about graphics programming (and I really don't) how exactly does that work in a 2D game, in simple terms?

[For the drawing portion]

You basically have to separate / modularize all of your drawing call sections into sub sections and store them in GPU buffers (think of drawing a image and then saving it for later). Then you go in and pick all the sprites that have shadows on and you save those shadows in another GPU buffer. Then you take a GPU shader (low level programing to the GPU that does cool manipulation and magical things to the pixels and rendered sprites) and fuse the shadows on specific GPU buffers that will ultimately create the final image that will have the shadows etc all combined to produce a complete image .

So first I categorise my engine’s render blocks: * 1 - 9 are saved in separate GPU buffers (saved images that have been processed) *

1. Sky aka the very back = sky, clouds, sun, moon, etc.
2. Main back ground layers = the rolling hills with tomb stones, flying bat packs, building structures, fog, large monster trees, etc.
3. Fog haze separator = a Pre FX that uses a mask sprite and a shader that will visually separate 1 and 2 from all of the other layers visually
-- Playing Layer no mask --
4. Background 1 = object behind the player that we cannot interact with
5. Background 2 = object behind the player that we can interact with
6. Player section = special sub section where the player is drawn and any glowing special items or other special FX
7. Foreground 1 = stuff in front of player
8. Water layer/Foreground 2 = water and stuff in the water
9. Foreground 3 = anything in the absolute front can have DOF and other FX

Keep in mind each sub section 1 - 9 have separate lighting, FX, shaders, etc applied to them independently and are made up for many layers of sprites, lights, particles etc.. Now that we have separate GPU buffers and we have drawn each sub section and saved the pre final image, we have to use my shadow framework main code to determine if sub section 1 - 9 have shadows included. If any of the sub layers have shadows included we go into detail of the actual sprite objects (a rock, tree, loot item, a particle fragment, blade of grass, any individual item) that have shadows turned on. We then have a separate draw workflow for generating the shadow maps of the sprite in two flavors 1 - 1 clone or we can substitute a different image that is not the current source. Once we have drawn the Shadows we use a GPU Shader that will specifically tell that instance of shadows to use the assigned saved sub section 1 - 9 GPU buffers to fuse the shadows to those GPU buffers 1 - 9 to produce a complete image with shadows.

So every sprite is a programmable object with a property to set the shadow on or off and we assign that sprite programing object to a layer which is assigned to a sub drawing section 1 - 9.

After the Shadows are fused / added to a GPU buffer we then take all the GPU buffers aka saved images and apply the final Post FX shader(we take all the saved images combine them in a certain order and do a final touch up to get a final master image) so like Bloom in 3D games etc.

[Shadow location behavior]

Side note, I don't use a tile system in my game everything are objects and has associated code file(s). My shadow framework allows a sprite object to specifically set the shadow behavior and what the master shadow controller is. So in this case, the primary Moon and Sun are the master controller (point of interest) and dictates the shadows position left, middle and right. In the shadow properties of a sprite object you set the depth of the Shadow how low it is and what the left MAX is and what the right MAX is (these are programmable and can be dynamic at run time). These factors are what make their position and behavior dynamic.

In short, it’s pretty complicated you really have to keep everything manage correctly in your draw and you game logic but the results are awesome and worth the effort. I have wanted a real time 2D shadow system in all the 2D games I played over the years so I am very happy to have achieved it and be able to allow gamers to experience it as well.

The developer has also made two videos explaining the technology available. Keep in mind that they should be watched in at least 1440p to be a close representation of the actual engine, and if you're using the HTML5 player in Firefox, you might have to enable Media Source Extensions for high quality video. The interview continues after the videos.

YouTube Thumbnail
YouTube videos require cookies, you must accept their cookies to view. View cookie preferences.
Accept Cookies & Show   Direct Link

YouTube Thumbnail
YouTube videos require cookies, you must accept their cookies to view. View cookie preferences.
Accept Cookies & Show   Direct Link

Valve has been making a big push to get gaming onto Linux with their SteamOS and the upcoming Steam Machines. As an indie game developer, what are your thoughts on the future of Linux as a gaming platform?

I have no doubt the Steam Machines will be an established sub console that will finally take Linux to the next level in terms of gaming (gather more traction and interest). My thoughts are once the Steam Machines are established you will see most games will have a SteamOS version alongside the Windows version and it will become very common in development cycles. For a long time a similar situation was happening with the PS3 and Xbox 360 where companies would not bring the games to Windows. But as well all know now that is not the case pretty much everything is released on Windows just like the PS4 and XB1 minus first party exclusives of course. I hope that this will be the same with SteamOS and that games are released on all platforms. If it’s going to happen, and I believe it will, Valve is the only company to see it through. As an indie dev you should consider all the different platforms as long as the user base likes your product and shows interest in your work.

With the growing amount of indie games becoming more widely accessible to the public, it's getting harder to get noticed as an unestablished developer. What is your strategy for getting the word out about your game, and what has your experience been like so far?

It’s very difficult, respect is not just handed out if you say you’re an indie dev (like some would believe), it’s becoming more common ground and no longer that albino snow leopard. Since web sites get flooded with hundreds if not thousands of indie games every day you have to try and make sure your game is unique, fresh, impressive technically, has meat, and can stand above all the rest.

For most indie teams this is the first video game they have ever made and we don't have a staff of a 100 or a 1000 veteran game developer professionals at our disposal. So how do you basically make an impressive AAA title if you are only one person or a small group doing it for the first time with no backing or experience? Sounds impossible or crazy right? Now what if you or a team left their secure paying jobs as well and put everything on the line for their game, then things get exponentially more difficult, personal and intense.

IndieDB is a great site for starting out there is a large community and probably one of the few sites/communities that know what is the meaning of WIP (work in progress). Basically for the majority of your PR is going to be cold call emails to specific gaming web sites, most won’t write back. This is part of indie PR.

Starting to build your social media outlets early is a good idea but won't be easy everything will take work and time. Starting to grow your fan base early and show off your work early helps to get the ball rolling. When showing off work, be selective for like I said before. Feedback can be harsh and unforgiving so if you’re not ready don't start spreading the word until you’re sure. Most viewers of your work will not factor in that it’s a WIP (work in progress) and will probably assume you’re showing your game cause you’re about to release it even if it’s nowhere ready.

Hash tags on twitter help out to slowly spread the word like #ScreenshotSaturday or #indedev etc., basically try and reach out to as many people as you can. Just know that it will take a long time to get an established following.

Another thing I found is that there are many companies and individuals ready to take advantage of an indie dev and what funds you have saved. So always think twice and sleep on any decision never be in a rush to make a deal, think it through.

For myself personally I have not gone into full PR mode yet, I need to release more gameplay videos and finish up more work. Soon I plan to go into full PR mode and start reaching out to more sites and gamers once I have more gameplay videos released as I lead up to a Kickstarter and Greenlight campaign. Like I said it’s very important to know when you’re ready and be happy with you work and reach out to the gaming communities beforehand.

What do you find motivates you in making a game on your own?

Well it may seem basic but any positive comments on any of your work and progress helps, it can go a very long way for any indie dev. Even more so when making a game solo, if you think talking to yourself is weird and wrong you better get used to it, it works wonders. I actually encourage myself every day, sometimes that is the best encouragement you’re going to get and you really are your own best friend. If you’re fortunate enough to have friends that you have included in your game development progress they can be life lines when you feel down/discouraged, so that helps a lot too. I am lucky to have a bunch of gaming friends that have been helping encourage me during the start of the early development to present, I am forever grateful for their support.

The fact is you will probably get a quite a few negative comments from feedback in the early days of development so in the beginning things can be rough and discouraging. Make no mistake making a video game is really hard it is not easy that is for sure. Like I said there is an expectation from the majority of gamers that indie games should be like AAA games. Basically I think everyone wants awesome games so you’re really can not get upset or blame gamers for having such standards. Is it fair? Well ask yourself is life fair and then there is your answer. Just like in most industries no one cares how you created your product or what it takes all what matters is how good the final product is, I am sure we are all guilty of that. I can admit it.
Last but not least is the love for what I am actually making, that is probably the most important part. My primary reason for making the game Corpses ‘N Souls is that I love the game/concept and think it is awesome and what I always wanted to play. The moment you lose interest and no longer care about what you are making is when you have to step back and pause and rethink of why you started everything in the first place. For me passion toward making a really good video game has to be the number one driving factor. If you want to make a game that will keep you motivated for the whole dev cycle and see it through it’s the only way for me personally. Basically your development has to feel like an awesome game that you want to play more and see the next level it’s the same feeling concept.

Thank you for agreeing to be interviewed by GamingOnLinux, and for sharing your insight into indie game development and promotion.

I want to say a big thank you to Flesk and gamingonlinux.com for asking me to do this interview and allowing me share my early development experiences and information on my game Corpses ‘N Souls. Also a thanks to Cheeseness for helping out on edits with the interview piece.


Please note that the game is still early in development, but if you’re eager to keep up to date on the game and engine as they evolve, you can follow Side Scroll Studios and Kai Kubicek on Twitter. You can view a Twitter profile without an account, and there’s a ton of media to be found on the studio’s official profile, as well as in their press kit. Article taken from GamingOnLinux.com.
0 Likes
We do often include affiliate links to earn us some pennies. We are currently affiliated with GOG and Humble Store. See more here.
About the author -
author picture
A big fan of platformers, puzzle games, point-and-click adventures and niche indie games.

I run the Hidden Linux Gems group on Steam, where we highlight good indie games for Linux that we feel deserve more attention.
See more from me
The comments on this article are closed.
21 comments
Page: 1/3»
  Go to:

wolfyrion 31 Aug, 2015
at first look with the big shield and sword it kinda reminded me :D

View video on youtube.com


Last edited by wolfyrion on 31 August 2015 at 8:51 pm UTC
sub 31 Aug, 2015
I don't want to spoil the fun but I guess what Jonathan Blow said recently:

QuoteIf you are thinking of quitting your AAA job to go indie,
you probably missed the bus by 3-4 years at this point.

https://twitter.com/Jonathan_Blow/status/637544725298454528

It's hard but I guess he really has a point, sadly.
M@GOid 31 Aug, 2015
When I first saw this game here I immediately understood that YouTube was ruining the details in the game. Is good that the developer learn quickly how to fix this.

As a recently converted indie gamer (my library is loaded with indie games now), my advice to you is: make the controls right.

First, make sure that all the most commons joypads out there are working with your game. It is shocking that a lot of indie games that are made to work with joypads first can't get then to work at the start. A game with problems in the control area makes a very bad first impression. People use joypads in the PC now, don't kid yourself thinking otherwise. Some masochists like to play a non FPS/strategy game in mouse/keyboards, but they are a minority.

Second, spend a good time making the controls response right. And a good button mapping. Games with good controls are almost always well received. Bad controls only threw people away from your game.

And last, good sound effects. The gamer will heard it a lot, so making pleasant sounds only contribute to a good game experience.
valcan_s 31 Aug, 2015
Just wanted to say again a big thank you to Flesk, gamingonlinux.com and Cheeseness for asking me to do the article.

I enjoyed working with you guys on the article and was glad to share my early development and experiences with indie development.

Thanks again.
kingofrodeo 31 Aug, 2015
Very interesting interview. Obviously I will get the game as soon as it's out.
The most important thing in life is to follow your dream, at least once. You can always get another job if you fail miserably as an indie developer.
stan 31 Aug, 2015
  • Supporter
The videos are automatically set by youtube to 360p and I cannot go higher than 720p. But they are already freezing way too often at 720p anyway. I remember seeing a video of that game, it was just a blurry mess. Probably vimeo is better.
valcan_s 31 Aug, 2015
Quoting: kingofrodeoThe most important thing in life is to follow your dream, at least once. You can always get another job if you fail miserably as an indie developer.

This is exactly how I feel ^^^ I don't know what is going to happen in the end but I am going to try my best and make it happen. You only live once so might as well try to make one of your dreams happen and not think down the line "what if?".
kingofrodeo 31 Aug, 2015
Yup totally agree with you. Good luck man!


Last edited by kingofrodeo on 31 August 2015 at 9:58 pm UTC
sub 31 Aug, 2015
Quoting: valcans
Quoting: kingofrodeoThe most important thing in life is to follow your dream, at least once. You can always get another job if you fail miserably as an indie developer.

This is exactly how I feel ^^^ I don't know what is going to happen in the end but I am going to try my best and make it happen. You only live once so might as well try to make one of your dreams happen and not think down the line "what if?".

I hope everything turns out how you expected it to be!
Good luck!
mulletdeath 1 Sep, 2015
This guy seems really cool and I appreciated his down to earth answers. Will no doubt be getting the game.
While you're here, please consider supporting GamingOnLinux on:

Patreon, Liberapay or PayPal Donation.

We have no adverts, no paywalls, no timed exclusive articles. Just good, fresh content. Without your continued support, we simply could not continue!

You can find even more ways to support us on this dedicated page any time. If you already are, thank you!
The comments on this article are closed.