What to expect at the Manila Game Jam

January 19, 2017 - 6:45 am

I have been a regular attendee at Manila Game Jam since I started in 2011. I was new to game development at that time and joining the event gave me the motivation to improve and be active in the local community. Nowadays, I help organize and host the event for IGDA Manila.

If you are new to game jams, here is a list of what you can expect to prepare you on what lies ahead.

Expect 48 hours of intense non-stop game development

Yes, you read it correctly. 48 hours, intense, and non-stop. Game Jams are designed to pressure jammers to make games under specific constraints which forces them to think creatively and make use of the time effectively and efficiently. It’s not for everyone but it is a unique experience any gamedev should at least try once in their lives.

Here are some game jam games that found success that you might have heard of:

Expect a challenging theme

In game jams attendees are required to make a game that relates to a theme given on the start of the event. This forces everyone to think outside the box and come up with new ideas for their games.

Here’s a list of the themes from the previous years to give you an idea:

  • 2009: As long as we have each other, we will never run out of problems
  • 2010: Deception
  • 2011: Extinction
  • 2012: An image of Ouroboros
  • 2013: The Sound of a Heartbeat
  • 2014: We don’t see things as they are, we see them as we are
  • 2015: What do we do now?
  • 2016: Ritual

(Click to read more…)

Posted under: Blog Post

Learning about the problems with OOP

January 6, 2017 - 5:37 pm

I always try my best to structure my code according to the OOP way. It is a lofty goal that starts out great but then slowly becomes a mess the program gets bigger and new features (mostly unplanned) are added. It comes to a point where managing such messes becomes tedious and time consuming which forces me to rely on dirty shortcuts just to get things moving along. I always feel sad when I this happens. I always vow that next time would be different but, sadly, the same thing seems to happen every time.

My thinking is that maybe I just did something wrong or maybe I’m still inexperienced. While both a possibilty, sometimes I can’t help but feel encumbered by OOP rules where things become more complicated than it should be. Who am I to question things though? OOP has been around for a very long time and everyone seems to be using it everywhere. Surely it’s the best option that we have, right?

I eventually stumbled upon this video below titled “Object Oriented Programming is Bad”. It has a click baity title, but is worth checking out. It is informative, well-presented, and actually makes a lot of good points! The presentation tackles a lot of what makes OOP problematic in specific situations which validated my feelings about it. It also states a great case as to why an alternative (procedural and functional programming) are a better option.

oopisbad.png

My takeaway from the video is that OOP is not the only approach to programming. There are others out there worth discovering like functional and procedural programming, which I already heard about before but did not give too much mind. Maybe now is a good time to give it a better look.

I’m not ditching OOP entirely though as it has it’s uses. It would be nice to learn more about the other approaches in the hopes of helping me manage my current and future projects.

Posted under: Blog Post

Created the “Emacs Haxe Tools” Repo

December 26, 2016 - 10:23 am

I have been using Emacs as my main development environment for my Haxe projects for quite awhile now in spite of the lack of helpful packages for the language.

To remedy this, I have made a number of tools and convenience functions that aid me with my everyday use. I have decided to package these in a repo so that it can be of use for other Haxe developers looking into using Emacs.

The Emacs Haxe Tools is a collection of code to help with Haxe development on Emacs. This package should be considered as a collection of random tools that may or may not be helpful. Most of the functions here were added because I myself need them in my work so do not expect this to be comprehensive.

You can get it or view the source code by going to its Github page.

You might also be interested in my other Emacs package, Emacs Haxe Imports, that handles import declarations for Haxe. Based on the excellent Emacs Java Imports package.

I am planning to add a few more tools to this repository in the future. Mostly helper functions in editing Haxe files. Might even make a tutorial on setting up a working Haxe environment on Emacs. Hopefully, I can find the time.

Posted under: Blog Post

Using Google Drive for Collaborating with Level Creators

March 21, 2015 - 12:58 am

I recently realized that I will be needing an extra hand if I want my game to have the promised 100+ levels before the planned release date.

The solution to the problem is opening up development to level creators by having a system in place that would make level creation easy to set up and use.

After a lot of thought, I came up with a process that would make use of Google Drive.

The Basic Idea

A copy of the game is uploaded to a publicly shared folder in Google Drive. From here, collaborators can run and play the game on their browsers.

google_drive_folders

Each collaborator is then assigned their own levels folder where they could add and edit levels using their own Google Drive accounts. When they’re done, they can just refresh the game to see the new changes.

(Click to read more…)

I created an AnimatedSprite Tool for Flambe

March 10, 2015 - 10:21 am

One of the coolest thing about Flambe is its animation pipeline. Using a tool called Flump, it takes animations made in Adobe Flash, converts them to  texture atlases, and then translates the animation data into a json or xml file which Flambe can recreate the animations inside its engine.

flump

This enables the creation of cool looking vector animations such as this:

Unfortunately, this is the only animation pipeline that Flambe has. Which means it does not support spritesheet animations out of the box.

This was a problem when I started Pop Puff and Away. My artist for the project did not have a Flash Professional application and is more used to spritesheets. This gave way to the birth of the Flambe Animated Sprite class.

I’ve created this tool as an alternative to using Flump. It is a fairly basic system that uses single separate images as frames for the animation. The structure was inspired by Flixel’s sprite animation system which I have used a couple of years back.

aniamtedSpriteTest

Like I said it is pretty basic. I’m planning to add a spritesheet support in the future but for now it does what it is supposed to.

Check it out in action and download it from its GitHub page.

Hopefully, I can get around to sharing more of the tools that I have made for Flambe. There are a lot of them and I believe it can be of use to other Flambe and Haxe users.

Posted under: Blog Post Programming

Source code for SudokuBoy released!

April 16, 2014 - 11:30 am

After a long time of searching through emails, I finally found the source code for SudokuBoy, a game that I made in Assembly Language back when I was in college.

The reason for unearthing it from its grave is because for the past few weeks, I have been getting requests from people (I’m guessing mostly students) to share the source.

Keep in mind that I did not make any changes to the code. I am not even sure if it is the latest or even if it works at all. But at least, I am hoping that these snippets can help people get an idea on how such a game can be built in a very low level language such as Assembly.

To those interested, I have included the source code inside the downloadable zip file found at the bottom of this page. Please do not forget to read the read-me for details and instructions.

I hope that this helps!

Posted under: Blog Post Technology

Feedback Friday: AI Tweaks for Dice Kingdoms

April 12, 2014 - 12:40 am

I have been working on Dice Kingdoms on and off for the past few months. I am at the polishing stages now and I am in need of feedback with regards to the AIs of the game.

DiceKingdoms-1

Try out the game here.

Dice Kingdoms has 4 different AIs.

  • Normal AI – Your basic AI behavior. Picks attacks where he thinks he can win.
  • Cautious AI – Only selects attacks that has a higher chance of winning
  • Defensive AI – Amasses huge armies before making their attack
  • Aggressive AI – Likes to take risks

Quick guide

  • To see what type of AIs the enemies have, just press the pause button

Feedback I am looking for

  • Is the AI too easy or difficult?
  • Can you easily see the strategies the AI are using?

Short Description of the game Dice Kingdoms is a game based on one of my favorite browser games called DiceWars where you capture other territories through dice rolls. Kinda like a simplified version of Risk.

DiceKingdoms – Update 1: Laying out the Land

November 30, 2013 - 2:34 pm

This article is a part of a series of posts detailing the development of the game DiceKingdoms. The aim is to demystify the world of game development by showing what goes on when making a game. Effort is made so that everything is easily understandable by non-developers but still contain some juicy technical stuff for those who are.

So the first step to recreating DiceWars is that we need to lay out the land.

For this game, we use hexagonal tiles instead of squares. This means that laying them out side by side won’t give us the results we are aiming for:

PlayAreaSideBySide

If we want the tiles to look similar to the one in DiceWars, we need to change the placement a bit. It’s a good thing that I learned a thing or two from my game Complexitivity on hexagonal tile placement.

hexaTilePositining

The trick is to reposition the tiles depending on their column number. If a tile is on an even column number we reposition them a little bit to the left and up. The diagram above shows 2 and 5 have been re-positioned because they are on column number 2. Just repeat this on all the columns and we will end up with:

PlayAreaStart

(Click to read more…)

DiceKingdoms – Intro: Gearing for Battle

November 24, 2013 - 10:15 am

This article is a part of a series of posts detailing the development of the game DiceKingdoms. The aim is to demystify the world of game development by showing what goes on when making a game. Effort is made so that everything is easily understandable by non-developers but still contain some juicy technical stuff for those who are.

As mentioned in my previous post, I will be working on a new gamedev hobby project based on the game DiceWars. But instead of being a browser game, it will be targeted towards mobile phones. The game will be called “Dice Kingdoms”.

But before I can begin working on something, I need to equip myself with tools that can take on the job. In this case, these tools will come in the form of a game development frameworks and/or game engines.

tools

While certainly kid-friendly safe, these wont do.

While there are some people who would just pick anything and make something great out of it. I tend to prefer thinking things through. I do a lot of research and test each one to see if they are a good fit to the needs of my project.

Alas, after a lot of thought (and a couple of tinkering with sample projects), I ended up with two these two:

  • Cocos2D-X with Lua, and
  • HaxeFlixel

(Click to read more…)

DiceKingdoms – Intro: A War is Brewing

November 23, 2013 - 9:06 am

This article is a part of a series of posts detailing the development of the game DiceKingdoms. The aim is to demystify the world of game development by showing what goes on when making a game. Effort is made so that everything is easily understandable by non-developers but still contain some juicy technical stuff for those who are.

For the past few months I have been working hard as a professional game developer at Indigo Entertainment. While the job is certainly a lot of fun there is a part of working on your own games that I really miss. And that is the freedom to do whatever you like. And so, I have decided to embark on a new hobby project.

Let me start by prefacing that I have started numerous projects before that never got finished. This one might not be an exception. It may get released or it may end up half-finished. Either way, I will be logging the development so we can have something to look back to and read, and maybe learn a thing or two along the way.

Alright! So what are we making?

dicewars

DiceWars is a flash game made by a certain Taro Ito from Game Design Japan. It has fairly simple mechanics that is described by others as a simplified game of Risk (Yes, the board game. Which I have not played so I’m taking other people’s word for it).

It’s simple, fun, and easy to pick up. It works well as a online browser game but I have a feeling that it would also work on mobile phones where you can wage wars between breaks or while you are in the John.

(Click to read more…)