Angel Wings: Endless Night - Developer Update III: Tech and Engine (August 2023)
Hi everyone, We're back again with some insight into the development process of Endless Night, written by our fabulous developer virusek20.
Full notes
Full Angel Wings: Endless Night update
Read the full published notes in a cleaner layout. The original post stays linked below.
What changed
1 fix0 additions6 changes0 removals
Gameplay
UI and audio
Compatibility
Fixes
Server
changedThis time we will focus on the more technical aspects of development, talk about what's changed since the last game, and what to expect this time around.
changedWe switched to UnityAngel Wings used a mostly custom engine built on SFML (Simple and Fast Multimedia Library). This worked well enough for our purposes, but for Endless Night we needed something that was quicker to develop with. With Unity we can skip writing our own rendering code, input handling and other aspects that would just eat up time that could be better spent on other things. We had some alternative options like Godot but as we were the most familiar with Unity we decided to stick with the safer option. This way we can support things like controllers or dynamically scaling UI without any extra effort and even speed up our development by writing custom editor plugins.
changedVoice Acting and AudioA major change is that we have full voice acting for Endless Night , meaning we had to rethink our approach to audio engineering. Previously, we simply played vorbis audio files, looped them for music and changed their volume depending on the scene, which limited our options. In the spirit of not reinventing the wheel, we decided to go for a well-established library - FMOD.
changedVoice Acting and AudioThis allows us to organize and use the many audio files that we had for voice acting, as well as apply all sorts of effects for a more immersive experience. Currently we have several thousand audio files just for voice acting and another few hundred or so for music and sound effects, something that would be impossible to manage with our old engine.
changedMultiplatform SupportSince we are using Unity, we can technically publish to a wide variety of platforms, but we have decided to focus mostly on Windows for now to cut down on testing time. We have also performed cursory testing on Linux/Mac/Steam Deck as possible options in the future. Non-desktop platforms are mostly a theoretical possibility, although we would need to remake a decent chunk of the UI as well as decouple from steam for things like cloud saves.
fixedAMD BugBut what about the AMD texture bug in Angel Wings? Is it going to be fixed? We are well aware of the rainbow texture bug in the old game, but unfortunately, we can't too much about it with our current situation. We have pieced together that it only happens on newer AMD cards, which makes debugging basically impossible for us since our entire team only has Nvidia cards. To make matters worse the bug suddenly appeared without us changing the game at all, which means we are doing something undefined in our OpenGL code that used to be ok, but some driver change broke it. The only way for us to fix it would be to get a PC with an AMD card, install all required tooling for building Angel Wings and figuring out what is wrong.
Angel Wings: Endless Night changes
changedThis time we will focus on the more technical aspects of development, talk about what's changed since the last game, and what to expect this time around.
changedAngel Wings used a mostly custom engine built on SFML (Simple and Fast Multimedia Library). This worked well enough for our purposes, but for Endless Night we needed something that was quicker to develop with. With Unity we can skip writing our own rendering code, input handling and other aspects that would just eat up time that could be better spent on other things. We had some alternative options like Godot but as we were the most familiar with Unity we decided to stick with the safer option. This way we can support things like controllers or dynamically scaling UI without any extra effort and even speed up our development by writing custom editor plugins.
changedA major change is that we have full voice acting for Endless Night , meaning we had to rethink our approach to audio engineering. Previously, we simply played vorbis audio files, looped them for music and changed their volume depending on the scene, which limited our options. In the spirit of not reinventing the wheel, we decided to go for a well-established library - FMOD.
changedThis allows us to organize and use the many audio files that we had for voice acting, as well as apply all sorts of effects for a more immersive experience. Currently we have several thousand audio files just for voice acting and another few hundred or so for music and sound effects, something that would be impossible to manage with our old engine.
changedSince we are using Unity, we can technically publish to a wide variety of platforms, but we have decided to focus mostly on Windows for now to cut down on testing time. We have also performed cursory testing on Linux/Mac/Steam Deck as possible options in the future. Non-desktop platforms are mostly a theoretical possibility, although we would need to remake a decent chunk of the UI as well as decouple from steam for things like cloud saves.
Hi everyone,
We're back again with some insight into the development process of Endless Night, written by our fabulous developer virusek20.
This time we will focus on the more technical aspects of development, talk about what's changed since the last game, and what to expect this time around.
We switched to Unity
Angel Wings used a mostly custom engine built on SFML (Simple and Fast Multimedia Library). This worked well enough for our purposes, but for Endless Night we needed something that was quicker to develop with. With Unity we can skip writing our own rendering code, input handling and other aspects that would just eat up time that could be better spent on other things. We had some alternative options like Godot but as we were the most familiar with Unity we decided to stick with the safer option. This way we can support things like controllers or dynamically scaling UI without any extra effort and even speed up our development by writing custom editor plugins.
Voice Acting and Audio
A major change is that we have full voice acting for Endless Night, meaning we had to rethink our approach to audio engineering. Previously, we simply played vorbis audio files, looped them for music and changed their volume depending on the scene, which limited our options. In the spirit of not reinventing the wheel, we decided to go for a well-established library - FMOD.
This allows us to organize and use the many audio files that we had for voice acting, as well as apply all sorts of effects for a more immersive experience. Currently we have several thousand audio files just for voice acting and another few hundred or so for music and sound effects, something that would be impossible to manage with our old engine.
Visual effects
To further justify the switch, we decided to implement dynamic lighting effects that would have been unfeasible with our old engine. With this addition, scenes should never feel too static and instead give an impression of a realistic environment. Right now, we included animated lights and particle effects, but there is nothing stopping us from implementing more advanced animations in future games.
Multiplatform Support
Since we are using Unity, we can technically publish to a wide variety of platforms, but we have decided to focus mostly on Windows for now to cut down on testing time. We have also performed cursory testing on Linux/Mac/Steam Deck as possible options in the future. Non-desktop platforms are mostly a theoretical possibility, although we would need to remake a decent chunk of the UI as well as decouple from steam for things like cloud saves.
AMD Bug
But what about the AMD texture bug in Angel Wings? Is it going to be fixed? We are well aware of the rainbow texture bug in the old game, but unfortunately, we can't too much about it with our current situation. We have pieced together that it only happens on newer AMD cards, which makes debugging basically impossible for us since our entire team only has Nvidia cards. To make matters worse the bug suddenly appeared without us changing the game at all, which means we are doing something undefined in our OpenGL code that used to be ok, but some driver change broke it. The only way for us to fix it would be to get a PC with an AMD card, install all required tooling for building Angel Wings and figuring out what is wrong.
Want to Help?
We are slowly but surely approaching the release but since this is a hobby project sometimes real life gets in the way of development, slowing it down. We figured some of our fans want to help us develop the game, so if you know a thing or two about Unity and want to help us out, please join our Discord server and/or send us an email at angelwdev@gmail.com.
Thank you all for your continued support! -RumR Design Team (but mostly virusek)