Since a few weeks I started to work on simple examples and tutorials in
order to help anyone wanting to build a game easily with this engine. The lack
of documentation was the main critic against the engine since the early years
of the project, so I hope it will make things better.

Here we go for the fourth and last step in the Android port of Andy's Super Great Park. After having
compiled the required libraries in
Part I, having updated to the SDL2 in
Part II and having switched from OpenGL direct mode to GLES in
Part III; it is time to build the Android package and to execute the game
on the phone.

In order to build the package, we will have to create a Java application to
which will be attached the C++ part of the game. I will begin with a brief
description of how Java and C++ code can be written to work together, then I
will describe the creation of the Java project for our specific game using the
resources provided by the SDL2. The third section will detail the build of the
main shared object file, containing all the C++ part of the game, with the
specifics of accessing the game's media stored in the Android application
package. Finally the build of the Android package will be detailed in the last
section, both for a developer version and a release version.

Following the critically acclaimed Part I and the
not-as-good-as-the-first-part-but-still-good-enough Part II, here comes the back-to-the-origins third act of the
Android port of our C++ game Andy's Super great Park!

Today's topic is the migration from OpenGL direct mode to GLES. This is the
last blocking element in the compilation of the engine and the game.
Consequently, this is a very exciting step. As you will see, the changes are
quite straightforward, as soon as we know where to go.

After a short reminder of the original OpenGL direct mode API, I will define
the target GL API and the acceptable compromises in the engine's
functionalities. Then I will describe the conversion of the existing rendering
code using GLES and provide a workaround for the disabled functionalities of
the engine.

Here is the second step in the port of Andy's Super Great Park to Android. As
a reminder, ASGP is a C++ game I decided to port to Android with the help of
the NDK and the freshly released SDL 2. I
have described in
Part I, how I managed to find, patch, build and compile the dependencies of
the game. Now it's time to replace the calls to the old SDL API with calls to
the new one.

In this part, I will describe the changes I had to do in the game engine in
order to get rid of the old SDL API and to replace it with the new one. The
note is organized as a progressive description of the modifications, linked to
the commits in GitHub. As you will
see, updating the code is quite straightforward and no deep changes are
required on it outside the calls to the SDL.

At the end of these modifications, the game still won't run on my phone,
actually it won't even compile as I'll still have to replace OpenGL direct mode
with GLES equivalent and to integrate with some Android behavior (handling
touch events, accessing game's resources…). But this will be the subject of
another note. So let's go for the migration!

A few months ago, when people asked if I would port Andy's Super Great Park (ASGP) to
Android, I answered that I was reticent, especially due to the fact that the
preferred language of the platform is Java (which is not the language of ASGP)
but also because the NDK was advertised as "Not the best tool for Android, try
not to use it!".

To give a quick overview of the game, ASGP is made of 120K lines of C++ code
and relies on several external libraries such as Boost, Claw, SDL, OpenGL,
FreeType and Gettext. Also, OpenGL is used in direct mode, which is not
available in the GLES version. Clearly, I did not want to spent time trying to
bring everything to Android. Also, I did not have any Android device.

Then, during August 2013, I decided to jump into the present (by the time
your read this, it should be known as "the past") by buying an Android phone,
when suddenly the SDL 2.0 was released with official Android support. Hey! Why
not spend a day or two trying to run the game on the phone before deciding to
do a complete port or not?

In the evening of the 4th of September 2013, we have organized a Plee the Bear themed party at
Café Le
Briord, Nantes, France. What a good evening!

I came to the café with my laptop and two pads, plugged the latter and the
beamer in the former, and launched the game. Wow! That's my game on the giant
screen!

There was quite a lot of customers at the café. Some of them came for the
game, in response to the various announcements published on the web and in the
press, traveling from cities like Pornic (60 km. from Nantes) or Paris (385 km.
from Nantes).

Then there was the customers who came to have a drink and who joyfully
discovered the game, taking the pads and playing with their friends in the
mini-games or the cooperative mode, or simply testing the main quest in
solo.

Here are some pictures of people having fun with my game:

We will be back at Le Briord wednesday, 11th of September 2013, from 9 P.M.
to 11 P.M. for a championship based on the mini-games. Join us!

After almost one year of hibernation, we decided to come back working
on Plee the Bear. As you may
know, we had to stop because we did not have enough spare time to spend on this
project anymore. The project was too huge and we could not see its completion
in a foreseeable future, so we went on a smaller game that we could finish in
time: Andy's Super Great Park.
As time went by, we thought we should refocus on Plee the Bear and free
software, but it is clear that we must work on it in a different way.

We have written every
aspect of the game in a single document and estimated the amount of time
required for each one. The result is that the game can be done in approximately
one year with our current team. I am pretty confident about this estimation,
since we have already proven that we can estimate our time accurately with our
other developments. So, how will we buy our food and pay our loans during the
production?

In order to come back on the game without difficulties and not to stop again
in a few weeks or months, we decided to launch a fundraising campaign to
support the development. Our goal is to receive enough money to stop
subsistence work and invest in gaming and free software.

The platform we have chosen is OpenFunding, which is a young
crowdfunding website dedicated to free software. The target of the first call
is 1112.79 € (approximately $1455) that will be spent to refresh the game
toward more recent quality standards and prepare it for the upcoming work. Then
we will propose new content for the game, each time with a new fundraising
campaign. Please note that the content of the game is predefined and should
receive only little modifications as we progress. Thus the donors will for sure
obtain a complete game in a foreseeable future. Moreover, the game will be
available under the terms of the GNU GPL 2 licence for the code and CC-by-sa 3
for the resources.

If you are hesitant, please note an important functionality of OpenFunding,
which is that you will be able to audit the final product to confirm your
donation or to take your money back if the work is not well done. Thus, your
investment is relatively risk free.

So you are developing a 2D game and, suddenly, you discover that the
rendering procedure is slow. What would you do? Would you put less elements in
your levels or would you render them more efficiently? Since you are here, I
suppose that you would pick the latter. So, here we go, I am going to tell you
how to render less things while having more.

The first part of this post describes how much work is done during the
rendering of a scene. Then I will compare it with the results of an easy to
implement improved procedure. And finally I will give you the pointers to an
even better procedure. This final procedure has been used in Andy's Super Great Park
and in the —work in progress— Plee the Bear.

Here we go, we have finally made our first complete game: Andy's Super Great Park. It took a lot
of effort and we are quite proud of the result. Now that the game is available,
we are working to put it on variousportals, like Steam (vote
for us!), Indiecity and Indievania, and we are preparing the Ubuntu
version.

Check the game's page to
watch a video, to see some screenshot and to play the demo,

Stuffomatic is a French company composed of talented
friends from Nantes, France. We joined together to develop entertaining games,
starting with Plee the Bear, a great platform game. Check
this page to learn more about our
team!

Plee the Bear is a platform game in
which the player controls an angry bear, gone after his greedy son after he was
kidnapped. In this great travel taking him all over the world, the daddy will
have to show agility and strength to find and save the cub. The player's
journey is livened up with different game modes implementing varied gameplay
and punctuated with interactions on the social networks.