We are super excited to interview Paige Marincak, the founder of Atemly Games, a graduate of the University of Ottawa (specializing in Computer Science), and native to Ottawa, Canada.
1. Tell us where you came up with the idea for this game. What were your inspirations?
While I was in my second year of University, the Playbook was beginning to gain Android support and my father suggested to me that I make a game for it. Up until that point I was working on a fan game for PC, and wanted to do something original. As a fan of RPGs, I wanted to do something with that genre, and I wanted to do something different from the traditional medieval-fantasy setting. As such, Gataela, a Victorian-Steampunk RPG was born.
Gataela is influenced a lot by Tales of Symphonia (and Tales games in general), Illusion of Gaia, Pokemon and Eternal Sonata. You will likely see their influences in the battle systems, and various gameplay elements, such as skits and costumes.
Story-wise, I wanted to create an RPG about saving your country where just fighting your way through and defeating the big bad wouldn’t lead to proper salvation. That’s where I came up with the idea for the debate system: a system that would allow the player to pick options to convince and negotiate with NPCs.
2. What version of cocos2d-x did you use?
If I recall correctly, I started with version 2.1.0 beta and upgraded sporadically over time. At the moment I’m using version 3.8 with a couple minor customizations for Android OBB files and physics.
3. How did you decide to use cocos2d-x instead of Unity, Unreal Engine or SDL?
When I first started on the project in 2012, it was mainly going to be a Playbook and Android tablet game. Cocos2dx was the only engine that supported Blackberry devices, and full Android support wasn’t available on the Playbook at the time. I also liked the possibility of doing easy ports to iPad or PC later on.
4. What features did the engine offer you that made development easy? What do you wish the engine did better?
The engine does a great job with multiplatform development, and the API works very well with little need to modify. I would love it if the engine:
- • had better support for Android OBB files without the need for modifications in the library
- • handled very large TMX files better
- • had better audio support, for instance implementing crossfades
- • had support for cutscene-like events
- • being able to easily create strokes/outlines for sprites (and by extension BMF fonts)
5. What tools did you use besides the engine?
Tools: Photoshop, Tiled, TexturePacker, PoEdit, Angel Code’s BMFont
IDEs: QNX Momentics IDE, Visual Studio 2013, XCode
6. What 3rd party libraries did you need to use?
So far I’ve made use of the C implementation of SQLite, and an MO file reader for localization.
7. Did you create the art yourself? What tools?
I’m creating half of the game maps, some character sprites, and the UI. I use Photoshop for these. The rest of the art is made by various people. Reka and Lackless are handling the character designs, and they’re joined by Cie Marincak to create the in-game portraits. Kristen Parham is creating various in-game graphics, and the logo. Candacis is handling the other half of the game maps, and Buko Studios creates the tileset, game icons, sprite sheets and animations.
8. Did you create the music yourself? What tools?
No, William Vuong is the composer, and Tonescapers is creating the SFX.
9. Will you continue to make games in the future?
Yes, definitely, whether as a hobby or as work.
10. Do you use SDKBOX? If so, what plugins are you currently using?
No, but I will likely be considering using some of them closer to release.
11. How did you go about developing such a large game?
I think the most important thing is planning for large games. When I first started out I spent quite a while picking the game engine, doing some prototyping, deciding on the story and the features I wanted, etc. I made a document of all the things I needed in the game, and all the things that I would’ve liked to have, but weren’t necessary. In other terms, I made a Game Design Document. As a result, it was easy to keep focused on the main tasks, and toss away ideas that would’ve likely caused scope creep otherwise.
Proper planning also comes in handy in regards to iteration and making sure your development pipelines are effective. The easier it is to iterate, the more likely you’ll be open to changes and balancing, and putting content in.
That being said, you shouldn’t focus on getting everything planned out 100% and sticking to it. If you’re adding something new, get it working, then look how to clean it up and optimize it. Time yourself and figure out where large time sinks and pit falls are and look to improving your pipeline.
Essentially, plan your game out as much as you can, and be prepared to make changes, but don’t lose sight of your original goal.
12. Lastly, any advice for those also making games on how to get to a release point?
We haven’t reached a release point yet, but here’s a short list of things we’ve found, which might be useful.
- 1. Make sure you have development pipelines that allow you to make changes and update the game easily. For instance, putting in animations, or updating game maps, and so on.
- 2. You should consider localization from the very start, especially if you will have a lot of text. PoEdit and Mo files are great for this or general getText methods.
- 3. For C++ development, never assume that NULL is 0 if you plan to port to other systems (ex. PC). It’s better to check for nullptr.
- 4. For C++ as well, make sure to initialize your variables for your classes to default values in your default constructor, whether this is false, 0 or nullptr. Other platforms (ex. PC) can have it set to other values by default which may cause crashing and unexpected behaviour.
- 5. Try to change up your type of tasks every once in a while to keep burnout away.
- 6. Break down your goals into extremely small pieces and try to complete at least one each development session.
- 7. Log how long you spend on what type of tasks, you may be able to find ways to speed things up.
And as always, do your best and persevere!