Category Archives: Programming

Caveman Sim 2.0

Last week my brothers and I had a post-Ludum Dare talk. We decided we want to see where the game goes, as we envision it in our heads. Since I have a little more time to do things the right way, I’ve scratched the game and started completely over. Here’s the current build:

Caveman Sim 0.2a

Features: Map traversal (only four locations so far). Additional exploration opportunities (try exploring from the Lake). Ability to harvest resources from a given location.

To Do: Event rewards. More content. Sounds. Day cycles.

Bug: Travel button has to be clicked on twice before working. Online build not showing how many hours it takes to travel to each location (You go from river to lake to cave to hunting grounds, a total of 3 hours. River to lake is only one hour).

Ludum Dare 36: 4320 BC – The Story of Caveman

4320 B.C: The Story of Caveman is a text-based simulator of the life of a caveman family. You play as Mathias, who must gather enough food and wood to help his family survive the upcoming winter. You will explore various locales, experience unique events, and learn innovating concepts such as fire and grass clothing. Are you fit enough to survive?

Event_100WARNING: It’s not a fun game. It’s not a unique game. I don’t even think you can beat it. But we made it! So there’s that.

  • Audio: Louis
  • Game Design: Leo
  • Graphics: Vince, Brent, Jessica
  • Programmer: Anthony

Ludum Dare 36: Day 2

Adding more of the same. A LOT more. So much more that features are being cut left and right. I’m in the middle of night summaries, where it tabulates your daily progress. I’ve cut two thirds of the locations, and thus resource depletion and replenishment by location. The tech tree seems to be in a final state. Everyone else is busy adding assets.

Now featuring day cycles!

Now featuring day cycles!


AMAZING work by newcomer Jessica. This makes me want to be a better game designer just to justify the art.


African woods by Vince


Really cool Axe by Brent

Funny sound effect by Louis

Ludum Dare 36: Day 1

Things are in full swing as Ludum Dare day one ends! I’m already sore and tired. Thankfully the temperature isn’t hitting 90 degrees anymore.

This year’s theme is Ancient Technologies. We are going with a Caveman Sim, where you try to save up and survive a year. I really tried to push for time-traveling robots, but I was unanimously voted against. Maybe next time.

Somehow the game is even less interactive than my previous games. It feels like I’m programming a complicated menu. Just take a look at the current build:

Caveman Sim aka Menu Game

Caveman Sim aka Unity Menu: The Game

None of the artwork has been added. Same with the audio. Still need to implement a day / night cycle, where random events happen each day, after your resources deplete. Since I seem to wake up in the middle of the night anyway, I’m gonna try to go to bed early tonight.


Perspective from within the home cave
Sound file: acquiring tech
Revised trackingTech icon: tracking
2016-08-27 tech treeTech tree

Hopefully it comes together tomorrow.

Pixel Horse

Just something stupid I whipped up for the depot. Needed a horse, and found a some animation frames to trace over.

Blob-headed horse

Blob-headed horse

Afterwards, I wondered why I didn’t make it a blob like the rest of the characters. Oh well. Placeholder artwork is interesting too!

Brainstorming: Purchasing Objects

How do users purchase objects in game? Unsurprisingly, there are a number of alternatives available to us.

Instant vs Build: Should purchases happen instantly, when at the click of a button the item springs up out of nowhere? Or a blueprint option, where the user places a “ghost” of an item and an in-game character acquires it from a depot and places it without user intervention?

Resources vs Money: Do I want to use resources such as wood and stone as currency, or something more abstract, like dollars? Should it be a combination of both?

2016-08-19 age of empires II gui

Age of Empires II’s bankable resources

Bank vs Vault: Should the chosen currency be portrayed in the overlay, or should it be represented in the world as an interactive entity?

Buffet vs Unlocks: Do I give the user access to all purchasable items from the get-go, or should users unlock items throughout the game?

Replaceable vs Artifacts: Should all items be purchasable, or should the world contain unique, irreplaceable artifacts that can be fought for and lost?

The feature I think would be most fun is an in-game Vault. A place to store your precious loot and guard against would-be thieves. The concept opens up several possibilities. Items can be acquired and protected. Characters can guard entrances and patrol surrounding areas. Allies can betray you and swipe some coin when you’re not looking: sticky-fingered rogues! Traps (magical and mundane) can be set to capture intruders when your guards fail you.

Evil Genius' vault full of gold bars, which are often stolen by both enemies and allies

Evil Genius’ vault full of gold bars, which are often stolen by both enemies and allies

If we assume the Vault is the way to go, then the other choices should support that feature. Items need to be a real thing: no instant-placements. If we want piles of gold, we need a use for it: items are purchased with gold rather than stone or wood. Gold exists as physical items, but the total amount needs to be displayed on the menu. The question of buffet versus unlocks is irrelevant for this feature, so let’s go with the easier option: everything purchasable is available from the start. To create a sense of real gain and loss, not everything can be bought: some items are unique and irreplaceable.

2016-08-19 dwarf fortress trading

Dwarf Fortress has no currency. While everything has a value, players barter for items and resources they want with merchants at the trade depot.

Now I just need to implement everything. Easy, right?

Atlas Manager 0.2 Update

After spending some time creating the atlas for my own game, I improved Atlas Manager to streamline sprite creation (and fixed a terrible bug). More updated are likely, as I don’t like using the mouse to click buttons all the time i.e. hotkeys.

Change log:

  • BUG FIX: atlas now saves origin properly (previously saved as “output” instead of “orig”)
  • Default grid size changed to 16
  • New sprites are initialized to the right of the currently selected sprite
  • New sprite creation prompts for a sprite name

Download here.

Atlas Manager 0.1

Download here: Atlas Manager 0.1

Do you like working directly with spritesheets? Do you hate the tediousness of editing and saving dozens, if not hundreds, of individual sprite files? Do you wish there was a program that helped you edit your atlas?

Well, look no further! Introducing…Atlas Manager!


  • Create, load, and save atlases specific for use in libgdx programs
  • Intuitively add, remove, and edit sprites
  • Easily add animations to existing sprites at the click of a button
  • Adjustable grid overlay
Atlas Manager

Atlas Manager in action.

Download Atlas Manager today!


  • No rotating, scaling, or offseting. Will override existing atlas data.
  • While sprites can be edited to be non-powers of two, doing to isn’t streamlined

Screenshot Saturday

Here’s a screenshot showing off the new sprites. The walls definitely need some shadows effects. It’s not perfect, but it’s getting there. Certainly better than how it looked before!

New item and ground sprites

New item and ground sprites

Developer Tool: Atlas Manager for libgdx

I have a problem. My sprite creation workflow goes like this: add a new sprite to a spritesheet, then hardcode the coordinates and dimensions in various places. I don’t even use an atlas. So this week I decided to start using one.

Then I have another problem. It seems most devs have individual sprite files, and use tools like Texture Packer to create a spritesheet and atlas. My sprites are on the sheet itself, in one big image file. (This let’s me easily adjust sprite colors and see how sprites look next to each other) That means I would have to create my atlases by hand. Pre-made tools aren’t an option.

Enter Atlas Manager. It’s a program specifically for libgdx that allows the user to add and remove sprite entries to and from an atlas without the need of creating individual image files for each sprite. Users can edit existing sprites. Animations will also be supported. So far ,it’s mostly a bunch of Scene2d widgets stuck together.

Atlas Manager as it looks today

Atlas Manager as it looks today

It’s nice to finally be comfortable enough with Scene2d to be able to whip something out this quickly. While developing tools isn’t pushing the game towards completion, the goal is to save time in the long run.