Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/JoaoBaptMG/gba-modern
An attempt to create a Game Boy Advance game using Modern C++
https://github.com/JoaoBaptMG/gba-modern
game game-engine-2d gba modern-cpp
Last synced: 3 months ago
JSON representation
An attempt to create a Game Boy Advance game using Modern C++
- Host: GitHub
- URL: https://github.com/JoaoBaptMG/gba-modern
- Owner: JoaoBaptMG
- License: mit
- Created: 2019-08-10T03:52:52.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2023-06-26T14:42:05.000Z (over 1 year ago)
- Last Synced: 2024-04-16T21:18:08.622Z (7 months ago)
- Topics: game, game-engine-2d, gba, modern-cpp
- Language: C++
- Homepage:
- Size: 12.4 MB
- Stars: 73
- Watchers: 7
- Forks: 4
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
- awesome-gba-dev-zh - gba-modern - 用 modern C++编写 gba 游戏。 (工具包)
- awesome-gbadev - gba-modern - Write GBA games using modern C++. (Toolkits / Other places)
README
**WARNING: this is not a library or in a state to be reused right now. This is a toy project that I played with for some years, and most of the code is not in a reusable state. The project is also in a stale state, and will probably be archived.**
gba-modern
==========
The objective of this project is to aim to create a Game Boy Advance game using C++17, while employing generators to the assets of the game.Building
========
**Warning:** currently the project does not work in a Windows environment! Use WSL to build it on Windows.**Warning:** this repository uses submodules, be sure to initialize them properly by cloning this repo using the `--recursive` or then using the command `git submodule update --init` after cloning it!
This project consists in a toolkit written in C++17 to generate assembly files for the resources (tilesets, maps and sprites as of writing), and it also includes the source files of the game, written in C++17. The included *Makefile* makes sure all the files are properly built. It requires a `g++` which supports C++17 (possibly every Linux distribution has one). **It also requires the `freetype` library**, and also the `unzip` package, since it might not be installed by default in some distributions! Once all of those are done, you can properly `make` the project, and the ROM will be available in the path _bin/game.gba_.
Screenshots and Videos
======================[Working video](videos/video.mp4) | [Bitmask test video](videos/bitmask.mp4)
![Image 1](screenshots/game-0.png)
![Image 2](screenshots/game-1.png)
![Image 3](screenshots/game-2.png)
![Image 4](screenshots/game-3.png)Contributing
============
All contribution is welcome. If you have interesting things to add, please submit a pull request!Credits
=======
All files in this repository with exception of specific libraries and the fonts located in the _fonts_ foder are Copyright (c) 2019 João Baptista de Paula e Silva and are under the MIT license.Niels Lohmann's "JSON for Modern C++" library can be found [here](https://github.com/nlohmann/json) and is also under the MIT license.
The LodePNG files belong to Lode Vandevenne and can be found [here](https://lodev.org/lodepng/) also under the zlib license.
The font _monogram.ttf_ belongs to Vinícius Menézio can be found [here](https://datagoblin.itch.io/monogram) under the CC0.
The font _Sweet16.ttf_ belongs to Martin Sedlák and can be found [here](https://github.com/kmar/Sweet16Font) under the Boost Software License.
The library GCE-Math used by generating LUTs belongs to Keith O'Hara and can be found [here](https://github.com/kthohr/gcem) under the Apache-2 License.
The font _Spleen_, used on the "Game Pak removed" screen, belongs to Frederic Cambus and can be found [here](https://github.com/fcambus/spleen) under the BSD-2 license.
Finally, the graphics for the "Game Pak removed" screen belong to Damian Yerrick (aka [pinobatch](https://github.com/pinobatch)) and are licensed under the CC0.