Open and Free

UI draft: Pretentious Art Deco Style

Yessir, I spawned yet another open-source hobby project. Here are the codes:

https://github.com/zerojuan/ForgeStory-Server

https://github.com/zerojuan/ForgeStory-Client

In terms of technology and innovation, this project is nothing special. There are a lot of other games like it, the concept isn’t new. I try to keep the code as easy to maintain as possible but that’s the norm. So why am I doing this? Well, why not?

I Have Nothing to Lose

Once I met a team of student developers who made an award winning game. I asked them about the future of the game, whether they want to share the codes or not, and they said, citing commercial and business reasons, no.

Are you planning to sell the game? Nope, it’s available to play on my website.

Am you using proprietary algorithms as the secret sauce on your business plan to world domination (ala Google)? Nope.

Is there something in your code that will directly lead to you losing anything? Umm, someone could use it to make a game exactly like mine and then pass it off as their own… Aaand? Can they steal design instincts? Or marketing? Do they have all the other skills you (or your team) have that made the game successful? Nope.

Then why aren’t your sharing your code?

The Philippines isn’t exactly a hotbed of game development right now. It’s a country where formal game education and training isn’t a big priority and we are only restricting ourselves by being selfish to one another.

And Have Stuff to Gain

As far as I know, the challenges in making persistent web games isn’t very documented. Trying to learn this stuff from scratch isn’t an enjoyable experience and most people are put off by it. I always believed that the web is the future of gaming and the more accessible we make it the easier that transition will be. By putting this very standard project in front of everybody I hope I’m inspiring more developers to try this social web gaming thing.

When you are open, other people tend to be open too. I’m not the best programmer. I only have a year of “professional game development experience”. There are a lot of things I don’t know. By making this opensource, I subject myself to other developer’s scrutiny. I’m hoping someone would declare my code crap then proceed to tell me why. Worst will be if no one cares about this project.

And as my hidden agenda: having a github account makes it easy for employers to evaluate my work. And people who interview me without bothering to check for my online projects, while not exactly a deal-breaker, is a bad sign.

Conclusion

Filipino game developers should really try sharing their magic tricks. No one will benefit from a community who keeps secrets from one another.

I know that there is a lot more to this open source thing than just pushing to a public code repository, but it’s a start.

Advertisements

Forge Story, The Next Chapter

As promised, I am going to start updating Forge Story once the LD judging is over.

I was supposed to keep working on it on a local server the weeks prior, but I keep getting sidetracked with personal (read: unemployment) issues. And I’m afraid I’ll be sidetracked even more as my not-receiving-a-salary status worsens.

 

How I went from being promoted one day to resignation 2 months later is a story for another time

I almost considered giving up on this project if it weren’t for 1) the peer reviews the game got on LD and 2) the cool user generated art that piled up in my server.

Why Make A Game ON Facebook?

While the finished game is, to put it kindly, raw for game standards, the comments and the low play rate it received seems to suggest that the majority of  indie developers doesn’t like the idea of social network games.

Challenge, accepted! I am going to work on this game some more using garage indie resources and methods and prove to the community that the social network platform is perfectly workable and is a very exciting place to work on. I have decided to keep the development of the game  as open as possible with hopes that others can learn or get inspired by it. Seeing that I am already planning on making this guide.

User Generated Joy

Most of my past efforts consisted of me making games for myself. And Forge Story would have been the same if it weren’t for this:

Pixel art from my social network

People, mostly my friends, are using the game to create awesome stuff. This never happened before! Wonder what it would be like if I let them animate their creations or turn them into quest items or pokemons. This is the question that keeps me awake at night  and I can’t let my codes rot any longer!!

What will become of Forge Story?

It will be opensource and all possible aspects of its development will be public. This means features and roadmaps will be shared. The game is also being built on top of RPGAutomata (for the battle and animation system) so RPGAutomata will still be active as well.

And of course, there’s an ulterior motive: making a Facebook game will at least keep me relevant while I’m looking for my next job.

 

 

 

By making this post public, I am making myself accountable for making this game so played it will crash my webhost.

Like the app page here

 

Forge Story: A #LD48 Post Mortem

Spamming soon, on a wall near you

I made a Facebook game in under 48 hours.

What’s the game about?

The theme for this quarter’s Ludum Dare was “It’s Dangerous to Go Alone, Take This”. So I immediately thought that it would be perfect for a facebook or social network game.

The original vision was a trading game between players. They can create items and sell them. Players aren’t allowed to use their own items. They should buy them from their friends. When players create an item, they give it a price which gets deducted to his coins. This way, players will have real investment on the items they make. When a player buys an item, its creator gets paid.

But players can also get items for free. Creators can publish their items as wall posts, and players who click through that link get the item for free. The creator still gets paid (by the system, for being a viral channel 😉 ).

I originally planned on a battle system, Go Aloning!, so that the items will be more than decorative but I ran out of time.

I wanted to explore the gift giving and wall spamming mechanic of facebook games. If people share a personalized wall post, would his friends respond positively?

What went wrong?

My work desk

Software Crisis – I wasn’t really planning on making a facebook game, until the last minute. (Ok, maybe I did, but I wasn’t decided until I knew the theme). So most of the tools I used were downloaded as I needed it. I had to download XAMPP and SQLYog and had to look for my day job projects which was tucked away in my backup drive.

On the morning before the theme was announced, I discovered that it was my Photoshop trial’s final instance. The backup plan was to create procedural art, which is also fun.

Hardware Poverty –  I made this on a netbook. 1.6Ghz processor and 2GB of RAM and all my browser tabs and IDEs == frequent freezes. Also, my internet connection was a very unreliable Sun Broadband USB dongle. Disconnections and freezes were frequent. My brain took it as an opportunity to freeze as well.

Inaccurate Task Estimates – I still suffer from this. But I feel I’m getting better at it now. The more projects I make, failed or not, the easier it gets to guess my capabilities and limitations. That’s why I had to let go the battle system. Either that or miss the deadline.

What went right?

Simplified Concept – the game looked simple on paper. It required a simple database backend. And doesn’t require me to draw assets (no Photoshop needed).

wireframes is GDD for gangstahs
more wireframes
my database tables, just waiting to get hacked

Worked on a familiar platform – I make facebook games for a living. This means I’m not exactly a noob when it comes to making this sort of stuff.

One of the risks I was anticipating was the development to production deployment. My typical day job project takes careful setup in syncing the development and production servers. I didn’t have time for that, so I just made sure the folders, urls, database names are configurable and hoped that my local server was exactly like my webhost’s. It worked flawlessly — the webs didn’t notice I swapped servers.

What now?

The game is far from finished. But the vision is doable and seems like a good learning exercise for me. I’m keeping the app active and updates will come as soon as the judging is over. If anyone is interested in following the development of a true indie social network game, like this page: http://www.facebook.com/apps/application.php?id=189157287797834

Oh and here’s a timelapse video:

Timelapsssssseeee!

A Poor Person’s Guide to Making a Facebook Game: A Intro

Dudes, here’s the thing. When I was first starting out on this Facebook game making business I had no idea how complicated things would get. It’s like no one told me about this side of flash programming. You can’t just google and forum lurk your way into wisdom. You have to go deep, like 5+ sub links deep. Is it because most social games are run by companies who don’t want to share their secret sauces? Yes, maybe. Companies are evil like that.

Not me. I’m a friend. And I want to share what I learned. Partly because I’m a good person and don’t want other people to suffer like I did, but mostly because I want to get other (read: smarter than me) people’s feedback. Disclaimer: I haven’t made a successful facebook game (yet) and some of the things I’ll write about are things I didn’t do but totally should have.

Making a social game is different from making ordinary for-flash-portal games. Way different. For a typical flash game to be profitable, it has to be distributed to as many portals as possible. So it is common wisdom that you should put everything on a single .swf file, otherwise the portal people are going to hate your guts for making their lives miserable. Try to do that for your social game, cram 250+ animations of houses and racially diverse avatar skins and “save this cute lost puppy” dialog popups and you have yourself a slightly less heavy MMO client. And look, databases! And server queries! And user metrics! And Facebook credits!

It’s more like making web apps really. You provide them a service: you free them from boredom. The customers/players pay you to keep tabs of the data they generated from your app/game. This is similarities are uncanny for spreadsheet style games.

This is my linkedIn if my contacts have really cool job titles. My real linkedIn sucks.

So I think I will be writing about how to make games as apps. And here is a list of random topics I might write about:

  • Optimizing loading time
  • Dynamic asset loading
  • Efficient asset pipelines
  • Vector caching
  • Continuous integration
  • Transacting with real money
  • Connecting to social graphs and APIs
  • Virtual spaces
  • Logging user metrics

Btw, I use flash (as3) and php because I don’t know other languages.