Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
Tags

My thought process about what engine to use (and configuring it all up).

A topic by kevidryon2 created Aug 01, 2022 Views: 373 Replies: 3
Viewing posts 1 to 4
(1 edit)

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 cloned 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 chowned 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 cloned 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.

Host

Feel free to continue your devlog here :)

Thanks! :)

By the way, at 2AM (Basically i did everything described in my last post from 11PM to 1:30AM) i came up with an idea that i also had earlier. I made a text file to describe how it works:

           /\
          /  \
         /    \
        /      \
       /        \
      /          \
     /            \
    /              \
   /                \
  /\    /\    /\    /\
 /  \  /  \  /  \  /  \
/ 1  \/  1 \/ 2  \/  2 \


Each player has to guess a word that has to do with the word on his left and right triangle.

           /\
          /  \
         /    \
        /      \
       /        \
      /          \
     /\          /\
    /  \        /  \
   /    \      /    \
  /  1   \    /   2  \
 /        \  /        \
/          \/          \

Now starts a cycle: Players 1 and 2 need to guess something that has to do with the words of both players. Whoever is the least accurate gets eliminated:

           /\
          /  \
         /    \
        /      \
       /        \
      /     1    \
     /            \
    /              \
   /                \
  /                  \
 /                    \
/                      \


Step 2 repeats for each group of 2 players, until there's only one player remaining in the triangle:

                       /\
                      /  \
                     /    \
                    /      \
                   /        \
                  /          \
                 /            \
                /              \
               /                \
              /                  \
             /                    \
            /                      \
           /                        \
          /                          \
         /                            \
        /                              \
       /                                \
      /                                  \
     /\          /\          /\          /\
    /  \        /  \        /  \        /  \
   /    \      /    \      /    \      /    \
  /  1   \    /   2  \    /   3  \    /  4   \
 /        \  /        \  /        \  /        \
/          \/          \/          \/          \

                       /\
                      /  \
                     /    \
                    /      \
                   /        \
                  /          \
                 /            \
                /              \
               /                \
              /                  \
             /                    \
            /                      \
           /\                      /\
          /  \                    /  \
         /    \                  /    \
        /      \                /      \
       /        \              /        \
      /          \            /          \
     /     1      \          /      4     \
    /              \        /              \
   /                \      /                \
  /                  \    /                  \
 /                    \  /                    \
/                      \/                      \

                       /\
                      /  \
                     /    \
                    /      \
                   /        \
                  /          \
                 /            \
                /              \
               /                \
              /                  \
             /                    \
            /                      \
           /                        \
          /            4             \
         /                            \
        /                              \
       /                                \
      /                                  \
     /                                    \
    /                                      \
   /                                        \
  /                                          \
 /                                            \
/                                              \

I would use a simulated keyboard on the GBA to write words.

Every bottom triangle will contain a word randomly picked from an array of words; Actually, the array is a table that’s 3 words long; this is the dictionary. The first 2 entries are the entries that have to do with the 3rd word.

I’ll include every single noun in the English language, and sometimes the 3rd entries in the dictionary table will not be in the dictionary, like a “1-up” that has to do with “life” and “mushroom”.

(+1)

I’m sorry about the “experience” you had with gba-modern :D In fact, I never thought it to be a reusable library, more something I could use to make my own games myself. At some point I thought into separating it in libraries and reusable components, but I never really went that far, which is a shame, since there’s a lot of code and research there that I’m proud of. I hope you have the best of luck with your game!