Hello, Commander

(Felipe Manga) #1

“Hello, Commander” is a Turn-Based Strategy game for the Arduboy.

I’m releasing it as-is since tweaking and balancing a TBS is going to take forever.
Since I don’t have an Arduboy yet, all coding/testing was done in ProjectABE. [1]

Main features:

  • Heart-warming, award-winning holiday story with an engaging plot that will change the way you look at life. [2]
  • Complex AI that is totally not just Brownian Motion and “shoot whatever’s in range”. [2]
  • Completely original game design. [2]
  • Unique soldiers/enemies that level up and earn perks
  • Hundreds of complex terrains that influence tactical decisions [3]
  • Permadeath. No saves. Doesn’t touch EEPROM. It’s a game-design feature!
  • I didn’t want to make another game featuring cats, so mine has a bunny.
  • Lots of programmer art.

Exhibit A:
Soldier inspection:

Exhibit B:
Me attacking an elf in an elevated position (not a good idea):

Latest: Play Online - Hex file - Source

v0.6 (Jam version):
Play Online - Hex file - Source

v0.5 (initial preview release):
Play Online - Hex file - Source

[1] EDIT: Managed to squeeze flashlight() in by removing the ear variations in character avatars.
[2] Yeah, not really…
[3] I guess? Give or take. Dunno how far it goes! :sweat_smile:

[WIP] A simple isometric engine
[POLL] Game Jam 2 Vote!
On Randomness
[POLL] Game Jam 2 Vote!
Help me with C++ for my game
(Molly C) #2

See if you can add arduboy.safeMode(). It would go after arduboy.boot(). The docs say safeMode “Allow upload when the bootloader “magic number” could be corrupted.”. It will help people avoid having to use the reset button to program a new sketch if they are having trouble.

(Felipe Manga) #3

With safeMode I get:

Sketch uses 28686 bytes (100%) of program storage space. Maximum is 28672 bytes.

So close… I’ll have to do some experimenting. I think I’ll remove some of the ear variations, they’re hidden by hair anyway.

(Molly C) #4

I’m sure you’re fine just using boot if space is that tight.

(Josh Goebel) #5

Copy, but some of us aren’t going to take the time to flash it and install it and even try it without seeing it first or a gameplay video. Holidays and only so many hours in the day. Unfortunately I’m one of those people.

So here is a vote hoping you’ll decide to post some screenshots or gameplay later.

(Scott) #6

I would be hesitant to release anything that doesn’t leave a hundred bytes or so of free space. Newer versions of the libraries used or the IDE could produce more code. This might make the game become too large in the future without you even making any changes.

For instance, the Sprite class drawPlusMask() function has been changed in the master branch to fix problems with it, and is currently being tested before release. These changes increase the size of drawPlusMask().

Even compiling for board type Arduino Leonardo instead of type Arduboy increases the size of all sketches by 8 bytes.

(Josh Goebel) #7

Using sprites that embedded the masks (and using drawPlusMask) would likely free up some space… all those references you’re passing around to both the image AND the mask take up valuable space in the flash.

(Josh Goebel) #8

Also, does isqrt absolutely require uint32_ts? 32 bit math on a 8 bit chip is very expensive in terms of flash space.

(Scott) #9

@FManga, You should rename main.ino to HelloCommander.ino or something similar. Calling it main.ino means it has to be in a folder called main in order for it to be recognised as a member of the IDE’s sketchbook.

(Felipe Manga) #10

Noted. I was kidding about the profound plot. Gifs added.

I hadn’t thought about that. I need to make an “import image” dialogue to my IDE, right now it just creates these image+mask pairs.

I think so. Depends on how far players get. Since the game has no end, theoretically, players can get high Exp values. After proper balancing, maybe this can be reduced to uint16_t.

(Felipe Manga) #11

Current build (after I took out the ears) uses 28342 bytes, leaving 330 bytes free, so safe for now.

I didn’t know about this, I’ve been using Arduino Leonardo all along.

Will do. The IDE just names it “main.ino” by default.

(Scott) #12

Considering the number of bitmaps that you have, you may wish to look into compressing them and then using the Arduboy2 drawCompressed() function or the ArdBitmap library.

(Felipe Manga) #13

When I started this, it was just meant to be a test-bed for features of ProjectABE’s IDE, so I just used whatever it already supported. Time to add compressed image support to the to-do list.

(Felipe Manga) #14

@MLXXXp and @Dreamer3: Thanks for the tips, btw. I don’t know if I’ll have the time to free space and then actually use that space to improve the game before the jam’s deadline, but I’ll definitely work on it. :slight_smile:

(Simon) #15

This looks great and I can’t wait to give it a go.

Looks like a competitor to Arduventure!

(Felipe Manga) #16

Thanks! It’s a totally different genre, though. This is meant to be like X-Com.

(Simon) #17

Right. I’ll hopefully get a chance to play over the next few days.

(Michael Gollnick) #18

Feels a little bit like command and conquer or jagged alliance. Great game!

(Pharap) #19

I you want, I could have a go at trying to reduce the progmem usage after the jam and after Dark & Under is released.

(Felipe Manga) #20

Sure! Awesome! :smiley: