It is a package of four famous modern jet fighters, made above all for arcade and semi-realistic games, like Limit Load. These four jets, MiG-21, MiG-29, F-4E and F-16, are very similar to their counterparts that are used in Limit Load. However jets are built from scratch, according to real blueprints, in order for some errors to be fixed here and there, as well as to avoid any potential problem with licences. Only MiG-29 is inspired directly by the model from Limit Load, which served as the role-model and also as model for Blender-learning many years ago.
Of significant help in building these jets, were two 3D artists:
New version of Advanced Invaders for Android is available at Google Play. In this release:
No more support for x86 architecture
Since Unity has dropped x86 support for Android and Google requires now that all supported architectures have 64-bit support, as of this version of the game, there will be no more support for x86 architecture for Android. This has decreased overall size of game package APK. Other than that, game has been built on the latest version of Unity which gave opportunity for some additional minor optimization.
PDF walkthrough is updated with additional explanations and advices
Added more code comments
Minor code polish
The walkthrough is now 93 pages long. Some sections are updated to provide better explanations and a new one is added. This new section is about building the project into the game and it offers some tips for optimizing the build.
New Unity 2019 gave a nice performance boost to Android version of Advanced Invaders, thus the game is updated to version 1.3 on all platforms:
Performance improvements for Android version
ARM64 support added for Android version
Added Android adaptive icon
Alien bomber yields more points
Some additional minor polish
Particularly in Spacewatch mode, when bullet hell occurs, frame-rate could notably dip down. Now it appears to be solid ~60 in my testing on the same device.
Also, sooner than expected, an update to version 1.2 for Binary Void is available:
Fixed a problem where if project was built as a game for Android in Unity 2018/2019, virtual joypad axis wouldn’t detect dragging input event across the touchscreen
Added more code comments
Problem about joypad axis was really annoying one. In Unity 2018/2019, the virtual joypad axis in Android build of the game, was still functional but without drag events, which means it wouldn’t follow the finger-drag across the touchscreen and inside the axis field, making the use of it rather clunky. Turns out that the culprit was this line of code:
Cursor.lockState = CursorLockMode.Locked;
This code is basically locking the mouse cursor, but as of Unity 2018/2019 it seems to also disable drag detection on the touchscreen (at least for Unity’s UI system). Not sure if this is a bug in newer versions of Unity or intentional “fix” (make somewhat sense to be considered as such), but it sure gave me a headache.
Also, a forum topic about Binary Void has been opened in learning section of Unity boards, and you are invited to visit it :)
Updated PDF walkthrough with more polish and additional explanations and advices
Updated some code comments, in order to be more accurate
Note from experience that could be useful to someone. When importing some project (with project settings), in Unity 2019 from some earlier version (like Unity 2017), you might have, Scripting Runtime Version set at Stable (.NET 3.5 Equivalent) option, in Project Settings/Player/Other Settings. This option is declared deprecated as of Unity 2018, and while in Unity 2018 project could still work fine with this option set, in Unity 2019 number of compiler errors might appear, making project broken right from the start, until the switch to .NET 4.x Equivalent option is made.
This full game project is derived from Advanced Invaders and it’s carefully crafted for the purpose of teaching the general principles of game development in Unity. It features over 6800 lines of organized and commented C# code, and it comes with 90-pages long walkthrough documentation that is covering other assets as well, beside the code. The game itself may be 2D arcade (and of well known type) but it contains a lot of elements useful for many types of games as well as that general structure that most games of whatever genre often have (like saving stuff in files on disk or tweaking various game settings, rebinding of controls and such). While I was making Advanced Invaders, I insisted on building all this in order to learn how to make this structure for future games. Binary Void is the type of example project I wish I had when I was making my first steps in Unity so I figured I could make one myself. It’s long straight-to-the-point practical example that one can experiment with. I got impression that tutorial game examples in general, are all made with idea to push rookie developer straight into the gameplay action, neglecting essential structure that often needs to accompany the game and which is often quite tricky to build (at least it was quite tricky for me).
Nearly everything that Advanced Invaders game offers, is part of Binary Void as well. You can find out more at Advanced Invader’s page.
Based on what I read about publishing on asset store, I would say Unity folks aren’t joking. For example, this project needed to pass these guidelines:
I checked them carefully and then adapted all elements of the project to meet these required standards. The fact that Binary Void passed on the first try after six days of waiting… I wonder if I should think of it as achievement :P Or was all that just a tall talk…
Otherwise, in the meantime, I have been toying with other aspects of Unity and as some of unity folks said, there really isn’t much difference between 2D and 3D in Unity, although it could be that my experience in Limit Load is talking here as well. I honestly feel now that Panda3D is like a spartan 3D engine considering how easy and approachable it is to build some graphical moments in Unity, which I consider essential for achieve the “good enough” 3D visuals :)
Added a blinking halo effect on weapon boxes Weapon boxes should be more visible now, on the field.
The core will not anymore destroy alien bomber This collectable will not be able to damage any alien spacecraft with more than default 50 HP.
A bug in alien bomber’s move procedure has been fixed There was a mistake in bomber’s move procedure where bomber would ignore all retreat orders, from its spawn until its first move. This caused for more than one bomber to be present on the battlefield under certain conditions in Spacewatch mode.
Various smaller fixes and improvements Some tweaks in shake effect, minor optimizations, etc.
New version of the game is available. This is the list of improvements in this update:
Fix for ultra wide aspect ratio There was a problem in background scenery of the levels if aspect ratio was wider than 16:9. Hopefully this is all fixed now, 21:9 should work fine (2560×1080), as well as FHD+ (2220×1080).
Subtle improvement in Mars background scenery Image of the sky improved slightly in level 3. Added a bit more detail.
Higher difficulty in Spacewatch mode on Android PC level of difficulty is applied to Spacewatch mode on Android. This should throw more weight behind the score.
Various smaller fixes Some general fixes in the game. There were a rare situations where some objects would remain in the level for longer than they should.
This is a classic shoot ’em up game with retro-style action and a lot of different features. It has classic arcade campaign (intro-levels-outro) and one unlockable game mode, once the main game has been beaten. I also like to mention that it has one very special level in the campaign that is significantly different gameplay-wise than the standard game (almost like entirely different game) and the one I used to try additional stuff in Unity. It’s a challenging game too, especially Windows/Linux version of it :)
You can find out more about Advanced Invaders at its page.
All in all this has been one hell of a trip. Sometimes frustrating, sometimes boring, sometimes funny, but always interesting as the whole was steadily coming along. The bits and pieces I gathered during development of Limit Load, sure came in handy along the way. This game also gave me a chance to try some ideas about game design in general, some small things that I used to think about. I might write more about that later.
Beside Unity itself, a big thanks goes to its community that asked/answered many great questions about game development. Then various open artist whose work was of great help to me, and who are all carefully named in game’s credits :)