Sextinction Art Update

Background

I joined the Global Game Jam and made a sex game called Sextinction. It features some of the improvements I made on RPGAutomata (aka my RPG Engine). I spent majority of the weekend getting a pretty kewl dialog tree system up and running. The game turned out crappy.

It was crap because of two things: bad graphics and bad writing. Really, in a game where there’s no ‘fun’ gameplay the worse that could happen is if it had graphics made in 30 minutes and the story less than that –which says a lot at how dynamic my dialog code works btw.

Before

The art is so bad it's worse than the writing.

The style is all over the place. The pixel art characters clash with the crayon drawn background. The font style is bland. The NPC characters are almost invisible.

Now

Srsly. This is so derivative.

Straight lines make everything look rigid and manly. But the uneven shades makes the office look worn and used. I also limited the view to be smaller than the canvas so everything will fit without having to pan the camera. The text is no longer in the way. The overall look might remind people of  photo negatives– those people are voyeurs.

If U R in it, CH side by side

.. is a lame riddle I learned as a child. Oh look:

Catholic?

Is this even Catholic?

New updates to that RPG engine I’m making includes dynamically changing the tilesets and adding mouse controls. So I decided to make a game that features it. This game is about Catholics and their churches. It isn’t ready yet, hence the screenshot.

The code repo is right here: RPGAutomata . Follow it, if that’s your thing.

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.

Love/Hate 1st draft

I had this idea about a 3d game where the player tries to rescue a girl confined in a box. Did my initial sketches in Flash and all of it were crap. I couldn’t imagine good enough gameplay or athmosphere for it to be compelling.

So I scrapped the idea and worked on something a little mainstream: a generic platform game with a twist (like all of them do). The twist is that the player doesn’t directly control the avatar. Throughout the game you or the avatar will converse and “understand” each other.

I’m not exactly sure where this is headed but I am going to stick to a few guidelines:

1. Stay away from puzzles. The game shouldn’t be something you have to solve.

2. Control the scope. I have limited resources so I have to keep things manageable.

3. No pixel art. Not this time. 🙂

Hmm, this looks familiar

From screenies

After taking a crack at it I created my heroine. A little girl wearing a big red shirt. The red and black reminds me of the girls from  Abandon and The Path, haven’t played both of them though.

Biomodd Game Post Mortem

Original design sketch.

I was trying to stay away from writing a post mortem for this game because I don’t want to accept that it’s over. Multiplatform support, multiplayer networking, a 3 (occasionally 2, but usually 1) man development team and a very short project deadline; this was clearly one of the most challenging projects I ever did. It was also the most fun. From the all nighter brain storming session with Jeryll, Angelo‘s wonderful design inputs, game design arguments with Lomel (ex. Should Maria Makiling have a “Wrath” meter that allows her to nuke the whole place?); the whole creative process justified the reason why I chose to make games: it’s way more fun than just playing them.

However, coming from a software engineer’s perspective the project piled up with mistake after mistake that the game would have come out mediocre at best. And it did, actually. The game wasn’t there during the first opening night and it was barely enjoyable when it came out in the second.

What Went Wrong?

Choosing the wrong guns

During the initial planning, I was the only game programmer present, and a very inexperienced one at that. Multiplatform? That leaves GameMaker out. Multiplayer? Hmm, Java has nice networking features. Graphics requirements.. ok there’s no way we can render something that intensive in Flash. I chose Flash and Java anyway for the main reason that Flash is actually more multiplatform than Java, and Java will handle Flash’s networking. I was in the middle of creating my game engine in Flash when I posted this..

That’s right, I can’t make the animations smooth enough for an enjoyable game experience. So I went back to Java. I chose an old Java game framework called JGame and Sun’s Project Darkstar Server. Both frameworks looked easy enough. I put aside JGame since it was the least challenging and began working on the Server Side.

Bad choice number 1. It was too late when I realize that JGame wasn’t a good choice programming wise because it hardly implements any OOP, and there were already two programmers sharing and modifying the same java code file. Plus it became a headache just trying to locate java functions inside a 1000 plus line single file source code.

Bad choice number 2. Choosing to work on the network servers before even creating a working game. I thought that if I finish the hardest part, then everything would be smooth sailing from there. What I didn’t saw, was the possibility that I just might not pull off that hardest part. Blinded by my inexperience and my pride to do something only few developers even attempt to do, I marched on; with the rest of the Biomodd guys not seeing the semblance of a game coming out from my computer screen.

This was a case when a rapid prototype would have benefited the project greatly. More people could have played the game even if it was still on beta. Playtesting and balancing would have been done based on their inputs. And more buzz would have been generated about the game.

Lacking the right tools

Remember Java’s “write once, run anywhere” credo, well, I never realized how much of a fantasy that was until I tried running the server and the client on Ubuntu. I never anticipated the screensize not automatically adjusting plus the sound not working on Linux. Add the extra work of uploading the necessary .jars and you have yourself a big problem that would’ve been easily solved if I used multiple Virtual Machines on my laptop.

I was also using Vista x64 which much to my disappointment, being the fanboy that I am, crashed every time my development processes took 100% of the memory.

Jeryl in the lab

What Went Right?

Changing Horses in Midstream

And having the courage to do so. I have been ignoring Slick2D up until 3 weeks before the Manila exhibit. I realized I can’t go on with JGame and if I continue trying to make it work the code is going to be worse and worse. Slick was actually pretty easy to jump into and I recoded the whole game in just 2 days. The transition was painless I even added some extra holes in it for the networking layer.

The code base itself became more stable and extensible that it just took me a little more than an hour to add the 2-player and Twitter features.

Compromise

A lot of the features originally stated in the game design didn’t make it to the final game (or at least the game that was played in the exhibit). My inadequacies in programming skills prevented me from creating a stable networking layer. Hardware issues made receiving data streams from environment sensors a difficult task. The way we intended to represent Maria Makiling seemed impractical considering our lack of artistic skills. We also have to let go of the much debated Wrath issue of Maria Makiling. It looked as if the features that made the game fun on paper weren’t going to be part of the actual software.

Then, 2 weeks before the end of the exhibit, I made some of the few good decisions I made in this project.

  1. Put the game source on code sharing.
  2. Dropped the networking layer altogether.
  3. Made a single machine 2 player game.
  4. Connected the game to twitter.

First, I shared the game in Google Code. This way the game can finally declare itself open-source. (Well, not really that open, outsiders only have read privileges). It didn’t actually contribute anything development-wise, but putting it up there made the project “immortal”. The installation may be dismantled, its parts distributed or recycled, but the software and the source will always remain in the clouds free for anyone to check out – and/or laugh at. (Which reminds me, I might need to clean up the code a bit for those who are allergic to duct-tape coding).

Second, I made the painful decision to let go of the highly unstable networking code. It was becoming a monster and working on it ate a lot of valuable dev time that should have been spent on improving the gameplay. Throughout the project, the multiplayer feature took the highest priority; the game cannot be the game if it wasn’t multiplayer, the game design hinges on that. Also, call it programmer’s ego, but the thought of giving up on the coolest thing you have ever coded simply didn’t enter my thoughts during that time.

It was after taking a few days off that it finally hit me. There simply isn’t enough time to pull off what I’ve been trying to do. And it wasn’t that I was giving up on my code, I simply saw a different way to write it. The networking layer needs to be taken down, but that doesn’t mean the game had to change. In fact, releasing it on single player for the exhibit was already shameful in my part.

The game should only be played with other people. So I settled with the easiest option: make it 2 player. With only a few days left on the exhibit, I thought it was too late.

Lastly, there’s “the game tweets” decision. Originally, Tina, the electronics ninja, setup some sensors to connect to the internet and visualize the state of the installation. The game was supposed to hook to that as well, creating a unique interaction that fuses everything in Biomodd together. Sadly, because I was too focused on unimportant stuff (curse you, networking and parallel programming!) I didn’t give much attention on this until it was too late. I was trying my hardest to get pachube feeds to the game when I thought, “It’s going to take a lot of time to set this up. And I still don’t have any idea how to interpret the data into the game aside from changing the background. Maybe if the sensors just tweet me stuff they want to happen to the game…”

So I connected the game to twitter and the possibilities of the tweeting interaction began pouring as I code it. The game tweets, players tweet the game. And since I know that the game was only going to be played within the PCs of Biomodd, I can get away with this easily. It won’t flood Twitter’s bandwidth, players feel Makiling in the context of the game and the installation and there’s certainly the “Whoah, this has never been done before” factor.

Conclusion

The project is definitely my most challenging yet. I don’t want to conclude.

Links:

Biomodd[LBA2] website: http://www.biomodd.net/
Google Code Project Repository: http://code.google.com/p/biomoddgame/
Maria Makiling’s Twitter account: http://twitter.com/maria_makiling

It is what is. 🙂

Quitz Quiz Post Mortem



I was commissioned to create an interactive quiz game in flash. “Quitz Quiz” is a quiz game for an anti-smoking campaign. The project was supposed to last for 1 week, it was delayed to 2, and finally got the pay 3 weeks after that.

What Went Wrong

Asking Price. Inexperienced at this kind of business, I offered a cheap price tag. $200 for “just” another quiz game is a sweet deal, I thought. Quizzes are the type of games they teach you when you were starting programming and $200 is already pretty big in the third world – my monthly salary is approximately $300. It was during the development phase itself that I realized my mistake. They are paying me for my expertise, besides the client wasn’t just some college friend who can’t make their homework, it was a company with a budget and my asking price wouldn’t have meant anything to them. Asking cheap made me think cheap, it was as if there was this very low ceiling that didn’t force me to expand the game or at least made the art a little better.

Assets. Although I got the quiz list the night after I took the job, the rest of the game assets took a pretty long time considering the game is supposed to be finished in a week. My lack of a decent internet connection limited our exchange of communication to SMS. I was only able to check my email once per day (after work), so if ever there were questions that lack answers or a missing art asset, I would get the response the next day. This delayed the project and pushed it to a total of two weeks (including play testing and QA).

Being too greedy. After realizing how cheap my asking price was I decided to hard code the questions–instead of putting them on a separate editable XML file or something. I could have just embedded an XML file or something, but being the greedy programmer that I was, opted to create a separate Factory class containing all the questions in an array. My evil plan backfired, when during the play testing process, they discovered a lot of spelling errors and I had to go back to the code and examine each question one by one with my IDE- FlashDevelop- lacking a spell checker. If I wrote the questions on a text file, I could have just run it on WordPad or something or better yet sent them that file so they can edit the questions themselves.

What Went Right

Modularity. This was my first completely AS3 flash game, and I have to say, I was very impressed at how my project structure turned out. The assets were completely separate from the code. I’d use Flash CS3, or Photoshop, or Painter, or Audacity for the assets and just use the embed tag to link them with the code. This way, if ever I had a separate artist working on the same project, we can go our own ways without relying on each other.

Experience. The project forced me to treat the game I was developing as work. There was a deadline, a paycheck, and a real client (not the hey-I-need-help-here-I-give-you-money friend but a real business client) involved. It helped me evaluate my “business model” and also expose my weaknesses. From now on, I’ll specialize on game development as a freelancer (I’ll only consider web dev/design jobs when I’m really desperate). I also realized that I can only go so far as a visual artist (I need training or better yet, I need a partner artiste.)