Status Update
Added 2019-06-07 21:48:02 +0000 UTCHey everyone! Sorry for being silent for so long since our last post. We have been, and still are, hard at work on a few projects in parallel. In this post, let us give you an little insight at what we have been up to this year so far.
Tutorials
We were pretty happy to learn, through our survey in December, that so many people are interested in learning how to create their own games with VUEngine, and we are eager to create a series of tutorials to empower you to do so!
The idea is to create a simple game, for example a Shoot 'em Up, during a series of tutorial videos which guide you through all the necessary steps. We'll start with the very basic topics like setting up a new project, show you how to create graphics and import them into your project, set up in-game entities and attach logic to them, and eventually extend the project with more and more features, one per video. We might end up with something like the following list, each point representing a video that builds upon the progress made in the previous videos.
- Setting up a new VUEngine project (Including an introduction to the IDE)
- Getting an animated ship on screen (Including graphics conversion and an introduction to VUEngine States, Stages and Entities)
- Creating a custom ship class and reading the controller to move it
- Implementing shooting mechanics (ProjectileEjector plugin)
- Implementing a destroyable enemy (Messages and Events)
- Creating a repeating background (MBgmapSprite) and make the level auto scroll (Streaming)
There's still one thing that is holding us back from starting to create these, though. In order to be able to show you things with the same tools you will eventually be using, we first need to finish our work on the next generation VBDE. Read more about that in the following paragraph...
Going beyong VBDE
We have long been looking for a replacement for IDEA, the IDE that comes bundled with VBDE. The aim was to have a more friendly, and easier to use development environment. During our searches, we stumbled across Visual Studio Code, and found that it has some very interesting extension capabilities.
In mid-January, we had already written the first lines of code of a VSCode extension, but it took us a while to figure out the best format for the "new VBDE". While we learned more about the possibilities of the IDE, it became obvious that tailoring the extension for use with VUEngine (while keeping it "backwards compatible" with libgccvb) and building a bunch of VUEngine-specific tools into it would be the way to go. At that point, VBDE was dead, "VUEngine IDE" was born.
Having the extension somewhat already working on Windows, and after ElmerPCFX released his patches for GCC along with scripts to streamline the building process, we tried to have a complete tool chain on OS X and, not without some headaches, we were surprisingly able to build GCC (and the other tools for VB development) for it and integrate those with VSCode. That naturally pushed us to do the same for Linux. Therefore, VUEngine IDE will work on all three major platforms.
We are currently in the final phase of development, with only few issues to get out of the way before we can make the first version of VUEngine IDE available on the official VSCode marketplace. Here's a glimpse of what awaits you when the extension is finally out:

VUEngine, preprocessor and parallelization
In February, we found that when method declarations changed from non virtual to virtual, or viceversa, the VUEngine preprocessor didn't propagate the change to all the necessary files, causing undefined behavior all over the place. That is fixed now and the preprocessor is much more robust than before. Going forward, any changes to a base class properly propagates to all inheriting classes through all plugins and to any file that uses any of those classes. And, in addition to the usual bug fixes, we have reduced the CPU usage quite a bit too, improving the compilation times by a noticeable amount.
But a more impactful improvement to reduce compilation times was achieved by finally using make's multiple jobs capabilities. Now that the new VSCode extension figures out the optimal number of jobs to use based on the amount of logical cores that you have available in your machine, the time that takes for a clean build to complete on our largest project is quite impressive: less than five minutes on Windows and less than one and a quarter minute on Linux and on Mac.
As usual, there have also been bug fixes and performance improvements across the board since December, but on top of that, and thanks to the specific requirements imposed by Formula V, we have implemented behaviors at the level of our Entity class in order to support something analogous to Unity3D's Monobehaviors and, in particular, to add a plugin that implements physically based steering behaviors that are used to drive the AI in our upcoming futuristic racing game.
Formula V
We finally have a playable demo for our promised game (already in the hands of a kind collaborator). The building blocks to achieve a content complete game are already in place: the AI, track streaming, and any other logic that is required to drive the core gameplay. It is just a matter of creating the tracks, the game modes, so, only "the remaining" content. Hopefully, the soon to be released ROM will entice people to show enough enthusiasm to push us to finish it.

SPONG
The December poll steered us away from putting more time into our multiplayer showcase. It seems appropriate to make it go public by releasing both a playable ROM and its source code. Look for the release post soon!

Capitán Sevilla 3D
After the Mid-November release of our first Capitán Sevilla 3D demo, we have finished rebuilding the fourth and final area of the original demo and have updated the game with various beautiful new graphics and animations by Rubén. Most notably, the main character was completely redone.
We eventually want to head in a different direction with the game and turn it into some sort of action puzzle platformer. But for now, we are focusing on eliminating the remaining bugs to be able to release a new demo that has all the original 2010 demo's content plus the new graphics.
