Rise of Kramora, now available for Android (phone)

Well,  I just felt like I had to make the game available for phones as well because:

  • … not many people has Android Wear smartwatches these days
  • … specially, wanted the 7DRL jurors to be able to play.
  • … wanted to create a native android app
  • … wanted to test how hard it’d be to create an app to run in both type of devices.

This mean you can play the game now in your Android Phone! have in mind that this is STILL the original 7DRL edition. I haven’t made any enhancements to it! You can find more info about the 7DRL release here. Basically, don’t expect a revolutionary game, but I hope you can find it entertaining: The main goal (game-design-wise) was making something you could play any time, without any commitment, but still find challenging.

Play now for free!

onphne

In order to make it happen I had to move some things around, creating an Android Library module on Android Studio, moving all the generic code and resources into it and linking the wear and mobile modules with it. This module contains the game classes (the “model”), the sprite “engine” (i.e. the library for sprite management and tweens) and the generic view (based on an android.graphics.Canvas, and thus compatible with both the wear and mobile modules) and controller.

Screen Shot 2016-03-21 at 7.53.42 PM

The wear module was then left with just the WatchfaceService (wired to the Game, View and Controller); since it has built-in messaging-based timing functionality, it could easily be wired to the sprite engine, to provide animations at a given frame rate (24FPS).

The mobile module, on the other hand, had none of this…. Fortunately I stumbled upon this tutorial, which was very helpful on creating a simple rendering engine backed by a SurfaceView, which in turn was wired to the game, view and controller. Lastly, there was a simple Activity which set the SurfaceView as its ContentView.

The hardest part however was memory management… because of its 7DRL nature I was pretty sloppy, loading all bitmaps (AND their scaled version) into memory. For some reason it went well on the initial Android Wear version, but the bitmaps on memory were just too big for the phone.

The first change I had to make was no longer storing the scaled versions, but rather using methods to scale them on the fly while drawing. It’s a balance of processing power vs. memory, but it seems to be able to handle it pretty well. However there’s still room for improvement, I may revisit this if I find out it’s a big problem.

After this, and adding a “wristwatch” border, the phone version  was almost working, then I wanted to double check the watch version and, weirdly, tons of memory errors happened.

Oddly, I spent lots of time just trying to get the Wear version working back again…  I did lots of changes, including loading bitmaps on request instead of caching them, but I did it on the main thread because I needed them available immediately (bad idea). It worked, but was pretty choppy so in the end I discarded that, and settled for manually downscaling all the game graphics from a 512×512 base to a 320×320 one, which made sense since in any case that’s what most Android Wear watches are up to now. (and in any case it should upscale for newer devices).

In any case, I hope you enjoy it! Please let me know if you run into any issues running it!

Rise of Kramora, day 3 7DRL 2016

Well, this is getting interesting 🙂

Looking forward to add simple animation, I am creating a simple sprite management engine for Android wear. I refactored the code and also changed the interaction model to be able to handle up to three actions per state.

image

Giovanny has been hard at work too illustrating the enemies (so far we have 4). They are looking great.

image

As you can see, I’ve also redesigned the game so there are more interactions now; in battle you will be able to use mind and elemental magic as well as doing basic attacks. The engine is flexible enough to add new actions as needed.

Things are looking for the release. This is a rough plan:
– Implement magic spells
– implement tweens for damage values, combat and movements.
– Add balanced content.
– Add pending graphics.

2016 7DRL – Rise of Kramora, Day 2

We have a new name and a new theme:

After much pondering you have come to a conclusion… there’s only one solution to save this decadent world: Summoning the Great Serpent Kramora to exterminate all life on the planet, and let new life arise…

Decades of studying scrolls of magic and history point you towards the path of your fate: You must climb the Tower of Sephira, battling the holy knights guarding the Ancient Tome of Kramora Summoning. Will you be able to overcome the defenders of Order?

12776866_10153205474312563_606495102_o

In the small amount of time I managed to scrap today, I added support for graphics. It’s almost working.

The graphics are being drawn by Giovanny Ramirez, my cousin, who’s also done some quality Ananias work in the past. I hope we manage to have all required assets on time!

2016 7DRL, Relojiah Day 1

Legend of Relojiah is a lightweight roguelike designed to be played on smart watches. Explore the labyrinthine Tower of  Time, battling monsters and finding powerful artifacts.

Today I managed to implement all basic interactions for the first iteration of the game, there’s a playable game already!

20160308_175057

You play by tapping on the screen, depending on your current mode you’ll either continue exploring the current level (looking for more powerful weapons and armor), or attack the enemy you are fighting. Once you find the stairs to the next floor you can decide if you continue exploring the current level, or climb to the next one. The design is based on the roguelike in a tweet I made some months ago.

2016-01-16 18.57.13

There are no graphics yet. I’ll get to that tomorrow with my provisional art, but I’m also looking for an artist to work with. What would be required would be some low resolution illustrations for the background, items, monsters and the player.

2016-01-16 18.58.26

After graphics are implemented I’ll play a bit with the content to make it balanced. In the unlikely event I’ve got more time to work on it, I may add some simple tactical options for battles.

I also plan to make it available for other devices; I’m still wondering whether doing it on JavaScript so it can be played anywhere, or creating a native Android app (the watchface would come bundled with it)

KnightWatch v1

It has come to my knowledge that there are still some people in the world who cannot afford a fine watch such as the Roger Dubuis Excalibur Knights of The Round Table, this saddens me a lot.

Roger-Dubuis-Knights-of-the-Round-Table-ii-10
Image from http://www.ablogtowatch.com/

That’s why I have decided to do a small side project along with my pal, Giovanny Ramirez (same guy who did the illustrations for the latest Ananias Crowdfunding Campaign), we are going to create a similar fantasy watch, but a tad more affordable for the common man, running on Android Smartwatches.

So far I’ve been fiddling with Android Studio, trying to set up the correct combination of SDK / AVD / Tools etc. I had to give up with the emulators for Android Wear; they simply didn’t work (the watch face never showed up) and my 4GB MacBook Pro is just too weak for android emulation (it works perfect for JS dev but this is another beast)…

Working with the real watch on the other hand was a much better experience, debugging via bluetooth adb bridge is a breeze, and Android Studio is a pretty cool IDE (still trying to get accustomed back to strong typing, the delights of Java)

I have created a simple initial version of the watch, still lacking optimizations for battery consumption and fancy features but it WORKS 🙂

First shot at the KnightsWatch
First shot at the KnightsWatch

I think it will look even better with one of the newer smartwatches with metal bezels and bands.

These are the features we are planning for the watchface:

  • All new art inspired by the original watch but with our own twist.
  • Different ambient based on the time of the day / season of the year.
  • Probably some interactive activities / minigames

The watch will be available at google play for a very affordable price tag. Giovanny is going to be working on the art department the next days, stay tuned!