I Q and A myself: About that new game

How this article should be visualized

How this article should be visualized

Q: Hi, how are you? What is your next game? I am not a very good interviewer.

I am ok. I am now making a social game. And by social I mean facebook. Old people still think all games involving more than one player is social, but apparently old people are wrong. Hence I am making a facebook game.

Q: Umm.. why?

Mainly because making facebook games is also my day job. And I often have these ideas that would be flat out rejected if I suggest them at work (I am not very convincing). So I try them out instead on the games I make during my free time.

Q: So like most of your games, this one is another experiment.

Yes. Wait a minute, I didn’t make as much games than I planned this year. In fact, I only released one game. The rest were spectacular failures. I also became a professional game developer and got involved in some commercial projects so I have an excuse in not releasing as many games as planned.

But yes, this is another experiment.

Q: Experiment on what, exactly?

Goal #1, this is a technical experiment. Basically poking and prodding on the technology to see what it can and can’t do.

Second, the Facebook landscape is changing. Some say the wild days of the cheap viral facebook game are over and, based on the current top games, content and gameplay are becoming benchmarks for success. I think in the coming months we are going to see the cheap facebook games flounder. Zynga was in the best position to start that trend and I commend them for doing just that. First FrontierVille and now with CityVille, their games are starting to get deeper/richer and most game companies are also doing the same.

I think Facebook itself has something to do with it — the platform now limiting viral channels and allowing non-obtrusive ways to enjoy Facebook apps.

As a web developer I always hated app spam and black hat viral tactics with a passion. Same way I hate SEO and social ‘marketers’.

But now with these changes in Facebook and the maturing taste of the gamers in it I feel that I can now dabble into social games without doing anything that would make me feel dirty or dishonest. Whether the game I made fails or succeed it did so because of the games merits and not because I failed to spam more friends.

To make a successful game with as little ‘spam’ as possible, that’s goal #2. Every ‘social’ aspect of the game should be connected to the game itself.

Q: But aren’t most of the new games in Facebook relying on organic means too? Like you said, Facebook is changing.

Dude, exactly my point. The new games that are coming out will rely on at least gameplay and production value. That’s the same criteria we judge PC and XBOX games with!

And I’m not that into competing with other games anyway. So yes, becoming the top 10 Facebook game isn’t my goal #3.

Q: So what is goal #3?

This interview is now risking tl:dr status so I’ll save that for part 2.

Self Assuring Status Update

A month ago, some business guy offered me a job — a senior game development position for their startup. Which I accepted. Given my anti game development company stance, some people might think that I’m selling out. Which I’m totally not. Here are my excuses justifications:

  1. It’s a startup. At my age, it’s the best time to join one. I learned applied software design, marketing and game industry in my previous companies. Startup 101 will be the last course and I will have finished a more practical Master’s degree in Software Making.
  2. I’m not making video games for kids. I don’t think my bosses even play Starcraft.

Also I’m broke. I tried the indie route for a while, but it was harder than I imagined. Games always take longer to develop. And elitist and artsy games don’t sell. (Note to self: I’ll make a full post about this if I find time)

People I previously worked with have seen the kind of dedication I can give given the right kind of project. I already sacrificed part of my personal life for this so this is totally hardcore.

With that I will be postponing further development of my current indie projects:

  • RPGEngine — last update was a cutscene parser. Was supposed to work on a quest parser next. Will opensource this after it gets stable.
  • BiomoddPlant — an update on the Biomodd-Makiling game I made a year ago. Last update is on simulating plant growth.
  • Jollibug, Love/Hate — games I already put on limbo. Might still work on it, if only for the awesome game titles.
  • Project GPAD (Game the Philippines of Association Development) — working title of a site I’m making about video game makings. Halted because I ran out of money.

There, I’m on full work mode the whole October. People I previously worked with also know that the only way to stop me is to mess with my salary, my work hours, or my girl.

To my team, if you read this, October is gameface on!

Under $350 a month

I’ve been using GnuCash since I started receiving a monthly salary back in 2008. It tells me I earned about 250k since Oct 2008, and that I currently have nothing in my bank accounts which I really need to close.

Also according to it, I spent less than 15k pesos last month:

  • Rent, Utilities (gas, water, electricity), and Groceries are the essentials. I’m looking after my little sister so I split the rent with my parents (parental subsidy, hehe) but I pay the rest.
  • I bought ink cartridges and a desk so that would explain the Supplies.
  • I definitely have to stop eating out, I spent more on dining than my groceries.
  • Entertainment (books, movies, music) is a big chunk of my Other expenses. I’m a very depressed person.

Getting to know the Tiled map editor

I came across this tutorial on parsing .tmx maps into AS3. While I find it useful enough to get me started there are still other parts I had to figure out myself.

Using multiple tilesets

When using multiple tilesets additional <tileset> nodes are added to the .tmx file. This means we need to register listeners to each of the images and track when all of them have finished loading. In my case, I implemented a flag on my “onLoaded” function that triggers only when all the images are fully loaded.

Only when the images are fully loaded can you start the actual render process. Else you might end up with a null bitmapdata.

Using the firstgid attribute.

Each <tileset> has an attribute called firstgid. It simply tells the gid of the first element of the tileset. So if you have two tilesets one has firstgid = “1” and the other has firstgid=”301”, the tiles with gids from 1 – 300 are located on the first tileset and >=301 on the second tileset.

two tilesheets

CSV layer parsing

It is possible to specify other encryption methods but I have only tried XML and CSV. Parsing XML layers can freeze the flash player especially on large maps. The CSV layer can be treated as a String so parsing it is only a matter of using split() operations.