The following entry is a guest post from Ahmed Mohamed Maawy, co-founder of AAA Platforms – a Mombasa based gaming institute. In the piece below he outlines the process and execution of their PC title, Mega Craet Box. Read his thoughts below:
AAA Platforms recently developed Mega Craet Box – A Desktop Game available on Windows, Linux and Mac. The download size of this game is – depending on the platform – 12MB to 24MB. You can access the Game Play Trailer on YouTube.
Mega Craet Box is an attempt to create a game to test our skills at AAA Platforms on various interesting Game Mechanics. We attempted to create this game at AAA Platforms in order to test our limits on Game Mechanics design. We are glad that a couple of folks who have played the game have remarked on its fun game play mechanics – which validates that we are on the right track.
Mega Craet Box (Not Crate Box – Craet Box) is a game inspired by Super Crate Box from Vlambeer. Super Crate Box is a very enjoyable game – but have had a lot of problems getting it to work lately – including on Linux (which is my primary OS) and Steam. So for us seeing such a lovely game getting lost slowly has motivated us to recreate a close to similar experience and grow it.
We decided to replicate the experience in the best way possible. And in a way that can be enjoyed on Mac, Windows and Linux. It may not exactly be at par with the original but I guess it can get there some day.
How we went about developing MegaCraetBox
We normally follow a unique methodology that is not conventional at AAA Platforms when we develop games. In that:
- We focus more on Open Source Game technology and Engines – which are cross platform (work on Windows, Linux and Mac).
- We are mostly 2D oriented folks. We believe 2D games have immense potential.
- We prefer light weight Game Development Technology. We focus on Technologies and Engines that can work under tight RAM constraints – and technologies that run with limited CPU and GPU constraints. These are engines or technology that run comfortably on the typical Intel Mesa cards on a Core i3 – with a 4GB RAM on the machine.
The motivation for us to be invested in such technologies is because it presents opportunities for everyone to develop games – regardless of hardware and operating system constraints. This is why we have experimented quite a lot with Engines like the Godot Engine and Defold Engine – as well as Game Frameworks like Love2D.
For MegaCrateBox we settled on Godot Engine for these major reasons:
- Godot has been a tool of choice for us to rapidly train the folks internally on Game Development. It’s easy to learn, easy to get productive with.
- It allowed us to prototype quite quickly. Every aspect of the Engine is simple and rapid – from Game Object design – to the GDScript language bindings and facilities provided – to stage design. Godot has a very interesting tool system that allows you to work with integrating the game elements easily. And iterate on them fast. The design decisions made behind Godot allow us to move with speed.
- The node system on Godot is impressive. There is a node for typically anything you need to do when developing games (there’s always a node for something that’s very routine).
The way Godot is architectured is that it’s primarily coded on C++. Various tedious Game Routines are abstracted in the C++ code and exposed either as GDScript functions / routines – or as Nodes. Using these nodes or GDScript functions expose you directly to the C++ base. Your game can be highly optimized when you know how to maintain the balance between letting nodes work for you and implementing the functionality in high level GDScript.
Decisions on the Game Mechanics
This was perhaps one of the toughest jobs. Developing a game using Nodes and GDScript is normally not hard – it’s when you start to fit these to implement various game mechanics that make the development process hard. Apart from the typical fashion in which the game operates (which is covered in the About the Game Play section below) – we had to think about things like:
- Appealing haptic feedback. What happens when a player is hit, what happens when a weapon hits an enemy – and the various ways we have feedback also from the enemies.
- How various weapons work and their various constraints.
- Implementing simple orientation for 1st time players.
- How to effectively communicate to the game player in each stage of the game play.
- Simple and informative interface design.
- Creating a rewards system (creating a need to achieve to be rewarded).
- Creating an online Leaderboard (which will help create a competitive environment).
The decisions made on the implementations of these various game mechanics allow the game player to be fascinated and attracted to the game and have a fun gameplay experience. What was tough is matching the experience to how Super Crate Box implements these – and doing so by just seeing videos of the game at play – since we couldn’t replicate the experience on PC.
The Game Play for MegaCrateBox
The game play mechanics are such that you need to collect as many crates as possible while evading or getting rid of enemy characters. You start off with a pistol, but get a random weapon each time you access a crate, exposing you to different weapon capabilities.
The following weapons are available without unlocking, and act as a starting set of weapons:
- The Pistol.
- The Shotgun.
- The Machine Gun.
Some special weapons are locked. You need to constantly collect crates (regardless of the level score) to unlock the following weapons as the game progresses – meaning you get rewarded for the total number of crates you collect as you play the game:
|Crates Total||Weapon Unlock|
Weapons Info Panel – showing status of weapons and which ones are locked or unlocked
About AAA Platforms
AAA Platforms is a Software and Game Dev Consultancy organization based in Mombasa, in Kenya. We also harbor a Game Institute. We focus on becoming a Social Enterprise that invests in the development of Gaming & Multimedia Talent and Products in as far as Game Development is concerned.
We have done a couple Game Development experiments as well as Game Technology R&D – including tinkering with some established Open Source Game Engines . We have also developed extensions for some established Open Source Game Engines. We mostly focus on 2D Game Development on PC and Mobile platforms.
We do not only develop Games – but also tweak Engines. We also develop extensions on top of Game Engines – with a major focus on Open Source and Sustainable technologies. We mostly bias on 2D experience.