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…)

I Lost the Source Code of My Very First Game

November 17, 2013 - 9:06 pm

I’ll say this outright: always make sure you have a backup of all the games you’ve made. No matter how much insignificant you think they are.

I just found out that I lost my files for the very first game I’ve ever made. It’s a tetris clone titled Petix. For a first attempt, it was an okay game. Too bad I did not think of making a backup when I was switching webhosts a few months ago. Now, I’m afraid, it is gone forever.

I guess it is true what they say about learning the true value once you lose it.

 
Petix was the very first game I have completed from start to finish. I remember my delight when I finished it and showed it to my little brother and sister. All I got was a “Meh”, “It’s Tetris!”, and “Big Deal!” I did not care though as I was busy marveling at my  creation. To me, It was the best thing I have achieved in my life.

Too bad I forgot how important and significant it was. I did not think twice of backing it up because I was too caught up working on newer projects. Who needs a Tetris clone when I can wow the world with my super awesome 3D robot game that has lasers!

Minibots. The game that has robots and lasers.

Petix was special to me as it was also my first foray into game dev and the world of HTML5 back when HTML5 was still considered to be a rookie that had too high of an ambition to overthrow AS3 from its throne.

The game was made using Javascript and HTML5 canvas without the help of any libraries. Everything was made from the ground up. There weren’t too many libraries or example codes during that time so I really did not have a choice.

There was the Akihabara framework but I had no idea how to use it

It’s funny. Looking back, I approached problems very differently back then. I remember using a one second timer for an update loop. For each tick, the next state of the game is updated and processed. This obviously had its problems like input only being processed on ticks. This is very noticeable when you try to quickly maneuver your pieces.

Another approach that I did was I made use of arrays to represent the play area. Each element of the array represents a single block. The tetraminoes are composed of these blocks that when required to move, are instructed as a whole to move with it. When a block needs to be rotated, the value of the array is updated according to the current rotation.

petixmovement

Sigh. I really wish I could find a copy of it. Hope is not lost though. I’ll be booting my old PC and Laptop and try to see if I still have my files there.

I’ll be keeping my fingers crossed.

Posted under: Blog Post

My Thoughts on Lua

October 3, 2013 - 10:17 am

Lua was a language that I really did not give any attention to back when I was making hobby games.Who could blame me? It was not really intended for games. It was more for embedded systems like phones, appliances and the like. It was only natural for it to be overshadowed by the widely preferred Actionscript as well as the advent of Unity and HTML5.

It was only recently that I became acquainted with Lua thanks to a project I have been given that requires me to use Cocos2D-X with Lua.

Now Cocos2D-X is an already well established development platform for mobile devices. Powered by C++, it is already powerful in its own right. Couple it with Lua, and you got yourself a thing that is both powerful and fun to work on.

You see, Lua is, in its basic form, a scripting language. It means that it is not compiled but is executed at runtime.  This gives you the freedom to create your own structures without worrying about rules a compiler imposes. This makes it the perfect prototyping language.

I am not saying, however, that Lua is only limited to prototypes. You can create something as complex as the games found at Castle Jackpot or maybe a Triple-A title given enough time and discipline, of course. I say discipline because since there is no compiler to guide you when writing your code, it is up to you to police yourself to avoid any problems in the future. This means discipline in leaving program comments and a proper program structure followed all throughout.

GTA V clone made with Lua? You are going to need a bucketload of discipline for this.

Lua is a nifty little language. And as I spend my days working with it, I learn always learn something cool and new. I am actually looking forward to create my own game using this platform, but for now, the boss awaits.

Posted under: Blog Post Personal

The Evolution of the Minibots

January 10, 2013 - 10:11 am

As I have mentioned last time, Escape of the Minibots underwent a couple of revivals.

I went back trough my archives and found old screenshots and mock-ups of the game. Here are some of them:

2011Version
Screenshot01-11711

Lots of blue inspired by Dexter’s laboratory.escapeoftheminibots-screenshot

2012 Version
Tried out the pixel art look.
minibots2

2013 Version (Current version)
Here is how it looks now. 2D character sprites on a 3D background.
MinibotsMockup

Take note that the pictures above does not reflect the quality of the final product. A lot of stuff will still be improved.

Stay tuned for more updates about the project soon!

Music Sneak Peek for Escape of the Minibots

January 6, 2013 - 3:00 am

Every game needs to have its bleeps and bloops. It’s a good thing we have our resident music composer, Jerel Limayo, to give Escape of the Minibots its signature tunes.

Here are just a couple of music samples from his music lab. Give it a listen!

Escape of the Minibots (Main theme)

Electronic Feeling

You can listen to more of his video game music here. If you like to contact him you can do so by using our contact form here.

Be sure to leave your comments below. Jerel would really love to hear ‘em!

More to come soon!

Sign up for the 4th Annual Manila Game Jam!

January 3, 2013 - 10:36 pm

gamejam2013_poster2

The biggest game jam in Manila is back for another year!

The Manila Game Jam is an annual game making event where individuals team up with other people to create a game in one weekend all under one roof.

It is one of my most awaited events as I always get to know a lot of really cool people there. Drop me a message if you are going so we can hang out and maybe event team up together!

You can get more details about the event here.

Posted under: Blog Post