2DEvolved is Side Scroll Studios in house game engine built by Kai Kubicek aka valcan_s the creator of Corpses ‘N Souls and Side Scroll Studios. The 2DEvolved engine is a powerful modern multi core game engine that takes advantage of modern multi cored CPUs, modern GPUs and multi GPU configurations. From pushing a Physx like dynamic particle system that is not GPU specific to dynamic lighting, normal mapping, shadows, post FX and a host of other modern techniques. All of which is running @ a base line of 1080p 60fps to a staggering 5760x1080 in multi monitor configs. The 2DEvolved engine is ready to evolve 2D games to the modern era. For more information please visit www.sidescrollstudios.com
* Note * - within this article all the game engine work and game content shown are in a work in progress and Pre-Alpha state. Also please note the video linked in this article is a "In-Game Tech Demo video" and is not a completed or official "Gameplay Video" for Corpses 'N Souls. The official Corpses 'N Souls gameplay video will be a separate release and video at a later date.
Making it's first appearance from last years game engine development I am proud to announce and demonstrate a long time dream of mine in the form of Real-time 2D destruction. This feature has been fully integrated into the 2DEvolved game engine and Corpses 'N Souls. With the new ability to convert any sprite into a fully destructible object in real-time(it has no predetermined destruction or out come) has provided a massive amount of possibilities, gameplay opportunities and again provide a greater degree of detail to the game world.
Make sure you watch the GDC 2018 tech demo video linked below that demonstrates the Real-time 2D destruction as well as 36 other features: [ Watch The Video Now! ] or keep on reading.
Last year I decided to focus on completing my game engine's optimizations, scalability, compatibility and also complete the remaining feature sets that where on the engines and games 2017 road map. Since GDC 2018 was last month I decided it was a perfect opportunity to make a video that would showcase all 36 technology features that are part of Corpses 'N Souls and the 2DEvolved game engine. It has been a while since I made an public update on my progress since I have been fully absorbed in my game engine development. Now that I have reached a certain mile stone I felt it was the perfect time to update the fans and gaming community as to what I have been working on and what I have completed during last years intense development cycle.
To display my progress visually a "tech demo" video format was chosen for it since that felt like the perfect solution to demonstrate most of my progress from last year. Not only that a tech demo video is also a cool way to display all the technology features that will be included in Corpses 'N Souls. To take the tech demo one step further the entire video is running all of the technology in-game in real-time @ 60 FPS in a mock up level of Corpses 'N Souls in a real game environment. Note, all of the games core code is running to make sure the technology featured will not hamper the core games performance etc. So basically all of the tech in the video is running at full speed in a real game scenario and is what you can expect in the final game.
After the linked GDC 2018 tech demo video I also go into details on all of the features in the video and also discus more about the progress that I completed last year and what are my plans are for this year and beyond.
* Please make sure to select : 1440p or 4K @ full screen mode for the best quality and experience in YouTube *
* Click on the image below to start watching the new [ Video ] *
* Please view this video @ 1440p if you have a low powered computer and GPU. *
It is recommended by the developer to watch the current video in YouTube's expanded [Theater Mode] or ideally in [full screen] mode on a big screen HDTV(which it has been developed on) at 1440p or 4K YouTube quality setting(the small gear icon on the right of the video).
In this article I will be demonstrating and showcasing 36 engine features that have been added, completed, optimized, allow scalability or have had all four of these action items applied to it. For each feature I will go into detail as to what they are and any other relevant information for that feature. After I have discussed all 36 features I will also go into detail as to what are the plans for the rest of 2018 and also share some big announcements.
Here is a list of the 36 engine features that will be discussed in this article:
A newly added feature from last years development allows any 2D Sprite to be converted into a fully destructible object at a code level. The implementation of this real-time 2D destruction has no pre-baked broken sprite textures pre-made / baked before hand. All destruction is done in real-time as the designated game object(s) collide and does X damage per pixel's initialized life(each pixel actual has an internal health bar). The organic destruction system combined with my other engine technologies in 2DEvolved provides a very detailed plus complete real-time destruction solution. The look of the destruction etc is all flexible, extendable and configurable per artistic and gameplay requirements.
As you can see in the GDC 2018 tech demo video and this GIF the destruction chunks act similar to Voxel destruction in 3D engines. All the destruction bits are persistent on impact and can be further interacted by the player's movement and interaction, like wise the same for any other designated game objects.
The GIF below shows the Harvest Bot for the first time, the Bot is used for harvesting certain object and clearing paths in the game world. The player simply summons the Harvest Bot from a portal and then possesses it to take full control of it. Once in control the player can harvest game objects, clear paths or allow the Harvest Bot to automatically follow the player around the game world until it is needed.
This form of destruction has pre-configured destruction fragments that are set to pre-configured types of fragments and bits that describe the destruction and their specific fragment amounts using MAX ranges during the impact(the set ranges regulates the amount of spawned fragments per unique fragment during the destruction). This configuration provides a specific artistic flexibility on the look of the destruction effect. The programmatic code portion of the solution makes sure that the actually destruction / shattering of the object is always unique and never provides the same effect.
Here we see in the GIF below that the player's equipped Axe type weapon is being hurled in a arc and the projectile is shattered and destroyed on impact. We can also see the fragments from the destruction end up in a rest state on the ground. In this case the different chunks have been pre-made in a texture pool and on impact the bits are procedural generated as well have their MAX amount programmed per unique fragments and bits. So for instance if we only want two handle fragments in the destruction blast this can be set for that specific texture in the destruction pool. No Axe impact will ever generate the same destruction effect since it is always random with constraints / procedurally generated by some properties set for it's specific type of behavior bounds and appearance. The bits from the impact / destruction are fully interactive and can be moved and interacted with after they have stopped in a rest state when the player moves through them etc.
Here we can see demonstrated an Axe being hurled and it is shattered as it hits the ground.
The vegetation in Corpses 'N Souls is fully interactive and reacts to your movement as you walk, land on the ground from a drop or jump, harvesting vegetation by cutting it, firing a projectile near the vegetation and some other cases. The added detail provides a great feedback mechanic for the player and also provides an indication where the player is in the different layers of the game world as the player traverse the areas.
Not only does the vegetation react to different objects movement you can also destroy it with your weapon spinning ability and actually cut the vegetation. Vegetation has two different destruction categories: permanent or re-spawnable. If the vegetation is a type re-spawnable after a certain amount of time you can watch the vegetation slowly grow back to its original full size in a time lapse type effect. Different situations will dictate which type the vegetation is according to certain gameplay needs. When vegetation chunks are flung in the air when being cut they will also stay on the ground during impact for a set period of time. The vegetation pieces are fully interactive if the player or other objects interact with them. This feature provides cool gameplay opportunities, player feedback and makes the environment dynamic and feel alive.
Here you can see the player executing the weapon spin ability to cut the vegetation and also move the vegetation chunks when they land on the ground in a stop/rest state.
Here is an example how a projectile is flung at enemies causing a residual wind force that reacts to the vegetation behind the projectile path as it moves across the screen or till it impacts into an enemy.
Built into the 2DEvolved game engine is a System Spec and real-time computer resource monitor and check list. Each game will provide feedback to the user if their current hardware meets the current requirements of the game. With details plus stats in real-time of the current RAM, CPU core usage, required CPU cores, current GPU memory, etc will all allow for the best user experience and feedback. There is a lot planed with this feature to ensure that the user will have the best feedback and experience while playing Corpses 'N Souls and other titles that use the 2DEvolved game engine.
Here you can see in the options tab of Corpses 'N Souls the System Specs tab and the real-time monitoring at work. The green check marks tell the user, in this case my workstation that it meets all of the requirements for the current game settings.
Here you can see that the game knows 100% what hardware you are running, the Operating System, GPU driver version, graphics API, max resolution and anything else that the game needs to know to make sure you don't run into any issues. No third party app etc is installed to gather this information, everything is exposed from the native code built into the game engine and is 100% none intrusive.
Here you can see all the logical CPU cores listed for the current workstation as well as their current usage. This functionality is helpful for some advanced features in the game engine in order to set features accordingly in respect to current core counts etc.
Many gamers are familiar with an FPS(frames per second) counter/HUD display provided by third party game recording software or even built into a game by default. For this feature I have taken that concept one step further and allow the user to view the logical CPU core usage, RAM usage, total CPU usage and System RAM usage all while playing the game. The logical CPU cores update in real-time like Task manager in Windows when you select performance and then CPU(and make sure you have selected - change graph to logical processors).
The CPU logical core overlay HUD can be modified to your preference in terms of look and style. This feature has to be turned on in the games option menu, it is not on by default.
Here we can see a close up of the Task manager like HUD that displays real-time logical CPU core usage graphs. This HUD also works great as an aid for tweaking your game settings in regards to your personal hardware setup. I also personally use it for a performance check and aid during my development of the game and game engine.
More system monitor HUDs include: current FPS, games current RAM usage, games total current CPU usage and the computers current total systems CPU usage. Each one of these stats can be turned [on] or [off] and are controlled in the games options.
During last years development I was finally able to complete and optimize my interactive physics particle system. All the hard work equated to a massive increase in the particle and hybrid decal budgets, stability, decrease in memory usage, decrease in CPU core usage, etc. After last years work I am no longer constrained by using small amounts of the feature and plagued by the high CPU usage issues and artistic and gameplay constraints. The goal with this feature has always been that it should be enjoyed on all platforms regardless of the hardware specs. I am happy to say this goal has been achieved.
In the GIF below I have turned on the debugging boxes in order to give readers an idea of the amount of interactive physic particles and hybrid decals that are on screen at one time. Every particle is interacting with the player, game objects and environment. The turquoise boxes are the newly added hybrid interactive decal technology, the hybrid interactive decal tech is used for the collision rest states of the interactive physic particles and other cases. Also note that the GPU acceleration works on any GPU brand it is not brand gated like Nvidia PhysX to a specific brand.
Another large task from last year was to take all of the high volume draw areas in the game and convert them to GPU acceleration. While working on the update I came up with a solid hybrid solution by adding multi-core CPU parallelism to work together with GPU acceleration. By adapting this practice of combining both patterns and development technologies has proven to be the best solution in terms of performance, load distribution and flexibility.
Here you can see the particles dripping from the Axe and the interactive physics particles and hybrid decals that are spawned from the Axes impact. As you can see the player moves through the fragments and interacts with the particles and hybrid decals that are in a rest state.
Another cool optimization I worked on last year was the concept to evenly distribute the load of the hybrid decal system to a Load Balanced Node system. Specific hybrid decal groups that are GPU accelerated can be assigned to X amount of load balanced nodes for the hybrid decals that are created. This data can be processed efficiently in a distributed load across your current CPU logical cores for pre processing before they hit the GPU for the final processing and drawing. During my development I found that breaking up the work load on the CPU cores and not overwhelming the GPU and CPU pre-processing worked extremely well rather than brute forcing one massive batch per cycle.
In this GIF you can see the different colors of the debug boxes that represent the different load balanced nodes that each hybrid decal is placed in as it continues to alternate the node group pool.
A key component to the gameplay of Corpses 'N Souls is blood. Last year I worked on a robust blood system that would be visceral during combat and also very detailed and malleable during other gameplay that involves blood that has been spilled on the environment. Blood in Corpses 'N Souls does not just hit the ground and fade out. Each blood drop can have multiple states in it's life time and can also be interacted recursively during it's life span. Some of the possible states are: in the air initial spray, hit platform, rest state, starting to drip off parent, in falling sate from rest, impact and rebound off game object and many more. The blood system was always intended to look awesome since I am fellow mega fan of the Mortal Kombat series and since the blood ties into the unique gameplay in Corpses 'N Souls.
Here you can see the blood starting to drip of it's parent impact platform and then fall and rebound off the player and then start the cycle all over again on the next platform.
All of the blood systems are calculated at a blood drop level as a single unit on a case to case basis, nothing is pre-backed or faked. I don't us any shortcuts like some solutions that turn on a large decal chunk that look like a bunch of blood impacts after X time or after first impact that then exits the code check. All the blood drops are individually calculating through their life span and can also be re programmed or dynamically changed and used for other gameplay scenarios during their life. Basically the blood drops are alive like an enemy or the player and are not just cosmetic and are used during gameplay other than nice visuals.
Here I am throwing a freshly harvested Meat Chunk which can be chucked and then re picked up for certain gameplay mechanics. The Meat Chunk is also an excellent source of fresh blood. As the blood sprays the environment each blood drop is calculated separately as it falls to the ground.
During last years development I removed all bottle necks from my interactive liquid simulation. In the past I was only able to have one water run off feature per game screen and even then it still spiked certain CPU cores and consumed a decent amount of memory and was unstable if you did not move and stayed in the same screen/place for hours. After many hours of re engineering all bottle necks and issues have been resolved and I can now have as many water run off features as needed and they are also all interactive.
Here you can see that when it rains each platform will gain three water run offs per platform and are all interactive with thousands of interactive physic particles. This was a artistic goal I had for years and it is very satisfying to have it finally be a reality with no performance issues.
Here the player is using his weapon matter bending ability and is actually displacing the water particles in a half circle like arc from the spinning force. There are many gameplay opportunities planed with this system and effect, the feature has not been developed for just a nice visual effect.
Within the game engine you can toggle between normal mapping [ on ] or [ off ] in real-time with out any restarting of your game session. A lot of work has gone into the games graphical options and scalability for a wide array of hardware configurations.
Normal mapping provides a really nice detail boost to the sprites and the final render. Another nice effect it provides a really nice 3D like hybrid look and advanced lighting model to your sprites and scene. I have been a massive fan of the earlier version of the tech called Bump Mapping which I first saw in BloodRayne on the PC, it looked amazing! Also I remember modding Elder Scrolls IV: Oblivion with a Ultra Normal Mapping mod and it looked so good, this is why it had to be included in my engine and game.
Each platform has been given an extra layer of detail in the form of procedural detail. By using GPU acceleration and a mask of the features seed zone an object can get specific detail added to it programmatically for extra detail. In the GIF below an extra layer of vegetation has been layered in front of the platform. Not only does it add a nice visual detail and depth each individual plant can be interacted with when the player or other game object brushes against it or by movement. This system is very flexible and allows for some nice artistic options and also a fast turn around in it's construction.
Procedurally Generated Detail: * leaf plants in the front of the platforms *
Procedurally Generated Detail:
During your adventuring you will be exposed to a robust Day and Night cycle system. Each cycle will provide a dynamic look/feel in the form of global lighting, particles, effects, sprites and even the environment it self. The different cycles can also trigger special events and enemies only during those certain times in the cycle.
Cycle: [ Day - Sun out - Clear Sky ]
Cycle: [ Night - Moon out - Cloudy - Medium ]
Cycle: [ Night - Moon out - Dark - Late Night ]
During the Day and Night cycles the vegetation and environment it self can change for those specific times of day. Some plants and inhabitants thrive better in the day time or the night time. The Procedurally Generated Detail is also tied to the Day and Night cycle and will dynamically change depending on the cycle in real-time. So for instance flower blooms only come out in the sun and day time cycles. During the late night cycle glow in the dark mushrooms emerge from the ground. These are just some of the examples and it can be extended to what ever is needed.
Cycle: Day - Sun: blooms emerge from the plants that belong to the Procedurally Generated Detail system
Cycle: Night- Moon: blooms retract from the plants that belong to the Procedurally Generated Detail system
Cycle: Late Night - Moon: mushrooms emerge from the ground and on the platforms that belong to the Procedurally Generated Detail system
A fully dynamic Global Illumination system controls the look and feel of the environment and scenes. Each day and night cycle can have many variation of the global lighting which can be changed in real time for certain events, effects or weather cycles. This feature is a very useful artistic tool to help provide the appropriate overall lighting feel and look for a specific level or area.
Setting: Strong Blue base
Setting: Strong Blue base with Purple
Setting: Strong Orange base with a hint of Red
Setting: Orange base with an over powering Pink Purple tone
A new addition to Corpses 'N Souls is the Harvest Bot. The Harvest Bot can be summoned at any time by the player from a portal. Once summoned the Harvest Bot can be fully controlled after possessing it and then can be used to scan objects in the game world. When scanning objects they can fall into two categories: unknown or already identified. If you find an unknown item you just scan the object with you laser scanners and wait for the scan to complete which is very similar to identifying a Legendary item in Diablo 3. Once the item is identified you can see it's name, rarity, level, description and if it is harvest-able.
If the object is harvest-able you can then use the Harvest Bot's equipped mining blade or other attachments to extract valuable material from the object for crafting and other uses. The real-time 2D destruction is tied directly to the Harvest Bot which performs the majority of mining for you.
Here you can see the lasers which reacts in real-time to the structures dimensions before and after destruction and as it scans the surface area of the targeted object. Once identified the object can be harvested if it is found to be of a type: harvest-able.
Here you can see the Soul Crystal has already been started to be harvested. As the structure changes it's shape from the real-time destruction so does the scanning overlay "rarity grade high light" according to the real-time damage done. Again nothing is pre-backed since we don't know the outcome of the shape from the real-time destruction so everything has to be done in real-time.
Added to the game and engine is a nice Screen Shake effect. The screen shake effect will be configurable in terms of strength and can also be turned off.
When attacking with a projectile a subtle screen shake effect will be triggered to give the player a further feedback. Special moves, leveling up and other key actions will all trigger the screen shake effect.
Here you can see demonstrated the scrolling of the background layers. Each of these layers all have horizontal Parallax scrolling effects applied to it. The Parallax scrolling provides a nice effect of depth and detail to the games environment. This effect has been a long time fav of mine since way back in the Arcade era when I first saw it. I will not be using this effect sparingly :)
Below we can see demonstrated the real-time dynamic lighting effects. Combined with the games normal mapping the dynamic lighting comes alive and further expands the detail and immersion of the game world. Projectiles, the player, enemies, game objects, etc all have lights attached to them that makes the world come alive as you traverse the game world.
Here you can see a yellow light hue cast from the Axe projectile. The light is nicely being dynamically cast onto the sprites around it which further amplifies the depth and detail. The dynamic light from the projectiles also provides a nice player feedback and is also meant to be visually impressive.
Each projectile has a different light property, here we can see the equipped shield's projectile attack which uses a light blue / turquoise hue.
Here we can see the sword attack which produces a nice reddish purple hue. During the snow cycle the dynamic lighting looks especially nice in contrast against the snow.
During my development of Corpses 'N Souls I have always wanted a real night time effect and darkness that would also high light the dynamic lighting systems. By combining the global illumination and the dynamic lighting systems the final effect has created the ultimate real-like night time effect that I was aiming for. No mask or other baked tricks are necessary, true darkness can be achieved and as well the environment and objects can be lit with the dynamic lighting system.
Here you can see the soul glob being activated that is one of your main sources of light during the Night Darkness cycle. With other light sources scattered around the environment the Night time cycles looks especially lavish.
When fighting enemies you can collect their souls after death which then can be used to fuel your Soul Globe which acts as a typical torch so you can better see your soundings while you venture at night in the darkness.
During the Snow Weather cycle and Night Darkness cycle the dynamic lighting is especially impressive and pops on screen.
A Soul Globe gently floats in the air while producing dynamic lighting around the player in a certain radius. The player will be able to upgrade his Soul Glob for different effects and uses.
During last years engine development real-time reflections where given an upgraded. Now shadows, global illumination and dynamic lighting all effect the water and ice reflections in real-time and are now considered feature complete. With all the new effects all reacting to the reflections the solution now provides a complete render and is much more realistic looking.
Here we can see the Global Illumination blended nicely into the reflections in the water which looks cohesive.
In this GIF we demonstrate the new dynamic lighting onto the reflections, the addition is massively better than the earlier versions.
Objects that are on top of the water reflections or ice can also cast dynamic lighting onto the water and ice. Here we can see a floating coffin that is projection dynamic light onto the water reflection layer. This was not possible in the earlier builds.
Here we can see a sword projectile traversing as it casts a shadow in the water reflection and its lighting.
During last years development I completed my interactive particle system. With the completion of the feature and optimizations the particle budget has massively been increased. In the past I had to always decide which particles where to be the special interactive particles and had to use them very sparingly. Now every particle can be fully interactive with no performance impact that is noticeable or impactful in a negative way to the CPU and GPU. With the addition of the new rest state the player and game objects can now interact with the particles after they have stopped from an impact or end of a bouncing sequence. When a particle collides with a game object it can now switch to a rest state it will then switch to my new hybrid decal technology that is also partially based off the interactive particle system. The new effect and feature make the technology complete and feel very similar to Nvidia's PhysX technology.
Here you can see particles dripping off the Axe onto the floor which then can be interacted with after they have stopped moving.
Here you can see the player hurl Axes at the floor and see how they shatter and spawn interactive particles that represent the destruction bits and pieces.
In this GIF you can see the interactive particles that are spread all over the floor from the Axe projectiles that have been shattered.
In this GIF the player has just cut a bunch of vegetation which is using the interactive particles technology for that added detail and realism. You can also see the player is kicking up the broken Axe fragments.
Here we can see the player is kicking up vegetation shards that have been cut by his equipped sword using the weapon spin ability.
A nice feature that is part of the game engine is that game objects can project real-time shadows against specific layers of sprites according to the primary Moon or Suns position and other light sources. In the video I am only showing the shadows reacting to the Moon and Sun which dictate the position of the real-time shadows.
Here you can see that the real-time shadows only appear on the floor, grass and other sprites that are not in the back ground layers and are far away.
This GIF demonstrates the cool real-time shadows projected on the sprites as the player traverse the game world. The effect produces a nice depth effect and adds a more detailed render.
Here we can see the same real-time shadows being projected during the Snow cycle, again none of these shadows are pre-baked. Any gear or weapons that are equipped will change the shadows form and correspond to how you character looks.
Another cool shadow effect that has been recently added is real-time cloud shadows. The moving clouds above are now projected on certain sprite layer zones. The cloud shadows provide a nice effect and work well with the dynamic lighting. This effect can be turned off in the graphics options and provide another degree of detail.
Here you can see what the advanced cloud shadows look like when they are disabled and enabled, the GIF provides a nice comparison on what the difference looks like.
In this GIF you can see how the advanced cloud shadows look disabled and enabled during the Snow cycle.
During last years development both interactive particles and the new hybrid decals both gained the ability to cause water impact splashes when each unit collides with a water feature. This effect was something I had wanted to implement for quite some time and I am very happy to say it turned out really well. The added detail and feedback that is relayed from the water impacts makes the particles, hybrid decals and water all feel more cohesive, fuller, complete and polished.
Here you can see the feature demonstrated as the player passes through the waterfall. Note how each water droplet that impacts the body of water causes water splashes from each units impact.
In this GIF the feature is turned off and you have no visual feedback and the water droplets are just ignored as they pass the impact check zone.
Here you can see the player is using his weapon spin skill and is spraying the water droplets from the water fall and you can see the awesome effect as each droplets impacts the water feature below and causes individual splashes per particle impact.
In this GIF the feature is turned off and shows the massive difference when the new effect is disable in contrast to it being on in the GIF above.
During last years development another major addition to the game engine and game was a hybrid interactive decal system. Much like the interactive physics particles the new hybrid decal system is based on many of those same concepts. Regular decals are spawned at a rest state and don't move this system allows for interaction plus life after spawning and during their entire life span much like the interactive physics particle system. Since the life span of a hybrid decal is generally always longer than a particles life span it will always accumulate much larger quantities in a game screen. This is why GPU acceleration, efficient multi core CPU pre-processing, advanced load balancing where all favored and necessary in it's design.
The main goal of the hybrid decal system was to add that final piece to the interactive particle system which would cover the impact state when the particle should bounce and then stop/be at a rest state. My interactive physics particle system is inspired from Nvidia PhysX design. This is why the particles and decals had to have the same persistence on impact / rest state for a certain amount of time and allow interactivity past that rest state. Your typical decal system is just a visual effect that spawns from of an object impact or event with no further interaction or change in its state from any game object.
Here you can see the hybrid decals in a rest state and the players movement interacts with each decal and switches them into a moving state and then again into a rest state. A hybrid decal can be interacted with till their life span has expired.
In this GIF the player is kicking up Axe shards that where produced from an Axe projectile that impacted with the ground and sprayed destruction bits all over the area. Any interactive physics particle on impact becomes a hybrid decal and is managed by a different system for greater efficiency.
Here you can see the players movement is kicking up vegetation shards that where cut by the weapon spin ability. Having the decal allow further interactivity after they have stopped really brings an extra level of detail that is really awesome and a favorite feature of mine. The feature is also important for gameplay concepts and was designed specifically for actual gameplay in Corpses 'N Souls.
Last years development mainly focused on two main aspects, engine optimizations and feature scalability. Once I completed the interactive physics particles and the hybrid decal system I focused on a light weight version of both of those systems for platforms with light weight hardware.
A key design requirement was to have the light weight version look as close as the full interactive Ultra version as possible. The main sacrifice that was made was after the impact when the hybrid decal goes into a rest state the player and game objects can no longer move the hybrid decals initial impact location. Also the life span of the decal is reduced to save resources. Note if any gameplay that requires a specific hybrid decal to have interaction after it's rest sate for gameplay reasons will be overridden and turned back on even if this feature is set on. This maintains the same gameplay no matter what the games settings are set to.
Here you can see the full interactive version of the particle and decal systems.
Here you can see the low resource version of the interactive particle and decal systems. As you will notice the players movement does not kick up the hybrid decals in their rest state.
Here you can see the full interactive version of the particle and decal systems.
Here you can see the low resource version of the interactive particle and decal systems. As you will notice the players movement does not kick up the hybrid decals in their rest state.
Work has been already started to ensure that all platforms are compatible with the 2DEvolved game engine and Corpses 'N Souls. It is my full intent to put Corpses 'N Souls on as many platforms as possible and have it as a true multiply platform title. The PC platform is the first official platform that has been announced. Having said that I have all intention to also port Corpses 'N Souls to the: Xbox One, PS4 and Switch. Each port will take full advantage of the targeted hardware profile on that specific platform.
The 2DEvovled game engine was designed form the ground up for the PC which is the primary platform target. Since the PC has a wide range of hardware configuration, hardware scalability has to be taken into account when being designed and constructed. Already now the 2DEvolved game engine and Corpses 'N Souls run on a 4 logical core CPUs to 32 logical core CPUs and on low end 2GB GPUs to a high end grade 1080 Ti level GPUs.
Here is a list of compatible platforms which Corpses 'N Souls are planned to be ported to. Official platform announcements and dates will be made at future dates.
All the HUDs in Corpses 'N Souls are fully configurable or are able to be turned completely off.
Here you can see the main weapon, skill, magic, health, stats, etc HUD bar is being turning on and off.
This GIF shows that the FPS HUD can be turned on or off during gameplay.
Advanced CPU core, memory usage, overall CPU usage and other stats are all fully configurable or can be turned off completely while in-game.
Corpses 'N Souls features a robust dynamic weather system that changes in real-time and can re-shape the environments during it's different cycles.
Moon - medium clouds
Snowing - light clouds
Snowing - thick clouds
Sun - clear skies
Raining - medium clouds
Raining - heavy rain
An addition to the dynamic weather system is weather profiles. Weather profiles allow for different degrees of a certain weather cycle effects. So for instance a light rain cycle to a heavy rain cycle, all profiles will randomly and dynamically change or be specifically triggered by an event. The different profiles will also dynamically change the effects. This ranges from more or less particles and other visual effects and changes to the current environment.
Raining: profile - 1
Raining: profile - 2
Raining: profile - 3
Raining: profile - 4
Raining: profile - 5
During last years development I also did some research and work into exposing/adding different FPS targets within the game engine and Corpses 'N Souls. I am happy to report that I already have this feature partially working and have a solution that will allow the user to select between the following FPS targets: 30, 60, 100, and 120. There is still work to be done to convert all of the systems and code but the majority already works with the current solution. All what is left to do is just a matter of converting the rest of the code(like the other sections that have been converted, the pattern is the same) in terms of pure grunt work rather than finding and engineering a solution that works.
Here is a list of planned FPS targets:
* Note - 60 FPS was the very first FPS target that I Corpses 'N Souls was originally targeted to. *
Another cool feature added to the engine was the ability to dynamically change the Post FX profiles of the final render(the last image produced on screen after each draw cycle). The user now will be able to change the look of Corpses 'N Souls to various pre-defined Post FX profiles. So if a user likes a darker moodier look like Diablo 2 that will be included, like wise if vibrant colors is your jam there will be a profile for that style as well. The main goal is to provide options and appeal to as many different gamers tastes as possible.
Here are some samples of the different types of profiles that can be made(and have been made). Note, these are not the final profiles I simply tried out the new features and made a few profiles to demonstrate the feature.
Post FX: profile - 0 * directors cut *
Post FX: profile - 1
Post FX: profile - 2
Post FX: profile - 3
Post FX: profile - 4
Post FX: profile - 5
Post FX: profile - 6
Post FX: profile - 7
Post FX: profile - 8
During last years development a major task was to convert all of the games sub systems in multi-core compatible code. This was a massive and challenging task since all of the games sub systems are by nature intertwined and as you can imagine many issues came to light during the conversion. In many cases it seemed as if a parallel version of a certain system would be impossible if the controlled sequential aspect of the code was lost due to parallelism. Massive amounts of re-engineering was completed to accommodate the new parallelism patterns for all the various game systems and object processing.
Happily with a lot of patience and hard work I was successful to convert nearly all of my games systems and object processing and the results have been amazing! As you will see below I also focused on scalability of the different CPU configurations. Being able to scale from 4 logical cores up to 32 logical cores and beyond is quite the feat and also future proofs my 2DEvolved game engine and Corpses 'N Souls.
As the CPU market and console market has moved to large arrays of logical CPU cores it only makes sense to embrace this movement and future proof your code base now rather then later when you have a large customer base to support. Being a PC hardware enthusiast it only made sense that my love for massive amounts of logical cores was something that my game engine and game would fully utilize. Once you have worked with parallelism in depth you can never go back to the old school code patterns, the power and scalability is truly amazing!
The following pictures demonstrate the logical CPU core scaling on three different platforms that range from 4, 12 and 32 logical CPU cores and different aged CPU architecture. Also the code running is still in a pre-alpha state and has had only had a single main optimization pass done to it. Also note not all the sections / systems have been optimized or converted yet. What this means is I still will be able to get the CPU performance even better than what is displayed in this article. Having said that I am extremely happy with it's current state and the load distribution. The old isolated CPU core overloading issues that I had and lingered for years has all been solved and optimized.
4 Logical core: Intel Xeon X3360
12 Logical core: Intel i7 3930K
32 Logical core: AMD Threadripper 1950x
During last years development I also focused on the games menu framework in order to make sure they had smooth transitions, where fast and responsive, had conveyance features and could have the ability to change all of the games options in real-time while the game is running. Since I am not a fan of restarting a game when you change your game options I put a lot of work into making sure that all of my game options could change seamlessly during the game while it is running.
The results are seamless and satisfying. Looking back on the time I invested in this update I am really glad I took the time and effort to make it a standard and part of the game and engine.
Features like normal mapping [on] or [off] or Ultra particle physics [on] or [off] can all be switched [on] or [off] during your game play session. Being able to tweak and find the right graphical setting for your current hardware configuration is another reason for this update since I know everyone uses different hardware ranges and this is what the majority of gamers like to do.
While developing all of the optimizations, new features and scalability during last years work I decided it was time to add a command console. The command console hooks directly into the main game engine and can expose any feature, options, etc and allow commands to change(disable or enable) what ever features I add to the command console atlas. The benefit while developing the game and engine is really massive and helps isolate features and issues while optimizing and doing scalability work. Even just getting a new feature to work really benefited from the addition of the command console, I highly recommend them. At first I thought it just be really handy for when I make game engine show case videos or feature videos but it has become a crucial tool in my game engine and game development.
This concludes all 36 features that have been added, completed, optimized, allow scalability or have had all four of these action items applied to it. During the rest of my development I am sure more features may be added as needed or dictated by my gameplay development. As of now though these are all the core base features of the game engine and game and they are now feature sealed. Any other features will not be a priority moving forward in development.
Next up in the article is information on the development focus moving forward and what are the big announcements for this year!
Last year was a major do or die moment in time for the project and a chance to achieve a major milestone in completing the engine optimization, scalability, GPU acceleration updates, multi-core overhaul and the rest of the key engine features and updates needed. These major tasks where all crucial in being able to move forward with the project or decide to abandon it all together. Everything depending on the outcome of last years progress. A lot was ridding on the project and my self mentally to come through and not break under pressure, stress, extreme workloads and expectation in my self and the project that I have set.
Here is an insight to some of the major tasks I focused on during last years development:
As one can imagine / assume all of these tasks where all intense, time consuming and challenging to complete in a fixed time span and especially for a solo developer. I am very proud, relieved and happy to announce that all of these major tasks / milestones have been successfully completed or are near completion! Most importantly the project is still a go and moving forward onto the next phase. Finally the game engine development is taking a back seat in favor of adding content, completing gameplay, adding enemies and all the other none engine type work!
Since I left my software development job close to four years ago my current finances have been dwindling overtime as I continue to use up all of my life's savings in order to continue working full-time on my game engine and game. I have even had to go as far as to cash out two years worth of pension from a company I had worked for in the past in order to receive the instant cash buy out option in order to be able to continue working full time on my projects.
Looking forward to my projects success I have decided the best way to stay independent and secure more funds is to create a Kickstarter! I have personally backed 125 Kickstarter video game projects: projects I backed and I 100% continue to believe in Kickstarters system that it allows indie developers and game shops to continue to do what they love un-altered and allow them to make their projects a reality.
Video games have always been a massive part of my life. Since the very begging of the Arcade era to my first computer the C64 to my first owned console the Sega Genesis. I have always been involved in the video game scene from the start and am still an active/current hard core gamer even today.
My own video game support spans way past Kickstarter and I have been doing my part to help out as many video games in general and have been doing so thus far. As a example I have supported over 700 games in Steam alone: my Steam games page. Other PC support also can be found in Uplay, Origin, GOG and other digital stores. Not only have I continued to support the PC scene I have also supported the console world equally and their hardware and software over the decades. In short you could say video games are my life I have always been fully invested in it from the begging and it has only intensified over the decades.
Kickstarter has always been in the back of my mind as an option as I have been working on my project over the years. The first priority has always been that I make sure I have been doing as much preemptive quality work as possible on my project before I even think of starting my Kickstarter campaign. It is important to me that potential backers don't have to put up with a concept only campaign, time consuming issues that delay the project, delays that could of been avoided with preemptive work, engine switches half way through development, and other known issues that come up from a premature Kick starter or not enough preemptive effort. Having said that I fully understand that some of these issues for certain projects are unavoidable and it is the nature of the beast of creating video games. But I still believe there is always preemptive work that can be done to help mitigate some of these issues/risk and that is what I have been doing over these following years.
Currently I already have a solid foundation in my custom game engine and I have completed pre-alpha base gameplay plus various game systems. I have done all of these task first before I have even started to invite potential gamers to be apart of the project. It is my strong belief that ever Kickstarter projects should require that the project creator put in their own time, risk, work, money, planning, commitment and effort way before they even seek out potential gamers to be a part of their project and be a potential backer.
This is why I am also very pleased to announce that I am working on a public demo for my Kickstarter campaign for Corpses 'N Souls! I will not be launching my Kickstarter campaign until I have a solid demo that I am satisfied with. Like I said I am a hard core gamer my self and also a Kickstarter backer/supporter and I 100% understand what it is to be on the other side of the fence. Having said that, I am making sure that the work is being completed up front and that it is substantial and already is stable, high quality, and semi polished state. This is why I have gone to great lengths to ensure my game engine is very solid, feature complete and works 100% in a real gaming environment/scenario.
Also I have decided that I am NOT going to campaign tier pay wall my Kickstarter demo it will be 100% public and free regardless if gamers choose to back the project. Anyone will be free to give it a go and experience a sample of what I have envisioned for the full game of Corpses 'N Souls. Like I said as a KS backer I know what it is like to run into a pay wall when you might be in a current financial situation that does not allow you to back at higher KS tier which usually happens to also be the pay wall for the KS demo. I think everyone knows that every gamer dislikes this approach while I understand the reasoning. It is safe to say that all backers regardless of the backing tier want to try out the demo who are interested and supportive of the KS project.
Right now I am in full development mode for the rest of the year and will be focusing on the public demo and once I am satisfied with it's quality I am going to work on and launch my Kickstarter campaign! I am very fortunate that my parents are caring and have been very supportive of my dream / project and they have agreed to help me out till my Kickstarter is launched. So I am happy to say I will not be living in a tent :). Currently I am living with my parents and I am very grateful and thankful for their support and understanding during my journey to my Kickstarter and demo launch.
As you can see it was quite an intense year in 2017 and 2018 is also jam packed with hard work and exciting new targets but most importantly I am moving forward with the project. There is a lot of work that still needs to be done before the demo is ready and my Kickstarter campaign is completed. Having said that, things are getting real exciting for I can't wait for those interested to try out the demo and be a part of my Kickstarter campaign. I truly believe that the project will be something special, memorable, unique and awesome!
This concludes this months updates for Corpses 'N Souls. I hope you enjoyed the article, video, GIFs, images, news, future plans and are also as excited as I am that the project is moving forward and that a public demo will be releasing this year as well as a Kickstarter campaign for Corpses 'N Souls! Please note if I am not happy with the demo's progress I will not rush it out the door and will move the Kickstarter and demo launch date to a Jan - Feb 2019 launch window if needed. Having said that I have all intentions to do my best to launch the demo and Kickstarter campaign this year(my estimate is 4th quarter 2018).
Remember to stay locked in to indieDB, @SideScrollSTUs , @valcan_s , www.corpsesnsouls.com for all of your latest info on Corpses 'N Souls development and the pending announcement of the public demo and Kickstarter campaign.
A massive thank you for reading the article, looking at the images + GIFs + video and taking your time to look at it all and your continued support and patience. Thanks again, I really appreciate it!
Introducing a interactive super move, this type of super move displays the new level of detail that has been added to Corpses 'N Souls. In today's article...
No articles were found matching the criteria specified. We suggest you try the article list with no filter applied, to browse all available. Join now to share your own content, we welcome creators and consumers alike and look forward to your comments.
A massive 2D Metroidvania fused with Diablo like ARPG mechanics with massive amounts of detail, progressive ideas and Next Gen 2D HD graphics. Corpses...
No games were found matching the criteria specified. We suggest you try the game list with no filter applied, to browse all available. Add game and help us achieve our mission of showcasing the best content from all developers. Join now to share your own content, we welcome creators and consumers alike and look forward to your comments.