I’m sorry if you don’t like devlogs in your Community page, so please reply if i can continue to post here my game’s devlog or if i should do it somewhere else. By the way, once i post the game, i’ll put the devlog in the game’s page and (if you want to) remove it from here.
My first decision is to choose an engine; I’m a C programmer. I don’t want to deal with any low-level stuff, so a high-level C library with a lot of good documentation and examples (like some DS libraries I’ve used before and probably use again) would be awesome.
My first pick was gba-modern
, but it had virtually zero basic examples or documentation so I can’t use it.
Then I looked at gba-plusplus
, and (at least at first) it looked quite nice! OK tutorials to build my game from the ground up, and overall a pretty good library!
So I decided to select it.
Though, to use it, obviously, I’ll need to install it first.
So I immediately git clone
d the repository and tried to build it with cmake
…
And my version of cmake
was too low. So I got around that by editing the minimum required version of cmake
…
And I was missing SPHINX_EXECUTABLE
, with the error “Cannot find Doxygen”.
I have no idea what it wanted to build, but I installed every single sphinx
package I could find and tried again. And it complained about Doxygen. So I installed that and tried again. And it complained about a dot
component of Doxygen. So I installed every single Doxygen package that exists and tried again. Now it complained about some error I didn’t understand:
CMake Error at CMakeLists.txt:8 (set_target_properties):
INTERFACE_LIBRARY targets may only have whitelisted properties. The
property "LINKER_LANGUAGE" is not allowed.
-- Configuring incomplete, errors occurred!
See also "/home/<username>/Documents/Code/gbapp/gba-plusplus/CMakeFiles/CMakeOutput.log".
At this point, I just game up and uninstalled every unnecessary package I installed. The only thing it would have built anyways was the Doxygen wiki…
So I went and took a peek at the include/gba
directory, and found the header files of the library. Turns out I could just use it right away!
But I still needed to create the project with a Makefile, and I realized a problem…
None of the examples were building. It turns out that the environment variables weren’t set in the root
user, and because the examples were in a directory that I couldn’t write to without root privileges, I was forced to compile as root. So I copied one of the examples to another directory I had write access to, and I got Permission denied
.
Turns out the directory itself was write-protected for me. I chown
ed the directory to me and it finally built.
And it worked like a charm.
Now I had to just copy the Makefile over to my game’s directory, copy gba-plusplus
to it, change the game’s and directories’ names to my liking and I was good to go!
But then I had to decide on the name of my game, and none of the themes were particularly interesting or I couldn’t think of good ideas for them, but I really wanted to use one of the LOWREZJAM’s themes.
After a lot of thinking. I had these ideas:
- A platformer where you go through wells to change gravity…
And that was it. So i setted up everything i needed while i thinked of some ideas.
But in the middle of setting up, i noticed one of gbaplusplus
’s examples and went “oh no this is too complicated”. So i changed to Butano.
I git clone
d Butano into a directory and compiled the text
example. It took a pretty long time to compile, even with all my cores.
I copied the template to my game’s directory and set everything up to run and compile with Butano, but had to modify the Makefile a bit to point to the corrent location of Butano.
Here’s the setup i used:
- OS: Linux Mint 20.3 Una
- Butano directory: “./butano/butano”
- Emulator used: mgba-qt
- CMake version: 3.16.3
- Make version: 4.2.1
- Editor used: Vim & Gnome Builder
- G++/GCC/C++/… version: 9.4.0
I wrote this post as i went through everything i did in this post, and i still haven’t comed up with a theme, so it took me hours to write.
EDIT: I put Butano’s directory inside of the source code, so that it can be directly downloaded and builded without needing to first build Butano.