Today I'm launching a new website called itch.io. It’s a marketplace for hosting indie games with a ‘pay what you want’ pricing model. Anyone can quickly upload their game and then customize the game’s page. Check it out at http://itch.io.
I think a ‘pay what you want’ model is really powerful for independent games. I know there’s a lot of game developers out there who make their games to give away and never consider selling them. With a site like itch.io it’s possible to upload such games with a minimum price of $0. Effectively creating a nice landing page with fast downloads and screenshots. If there’s somebody out there who really likes the game then there’s nothing stopping them from supporting through a purchase.
I've seen a few other indie game marketplace sites but I've been disappointed in them because there is just too much crap on the game pages. Big logos for the marketplace instead of the game, distractions like comments and ratings forced on the game pages, and just poor user experience. I tried to make something clean and focused. The page you create is just about your game. There’s no itch.io branding anywhere, no ads, just your game.
Then there are sites like Steam which are great distribution platforms but impossible for anyone to just starting using right away. itch.io is free for anyone to start using right away. You can go upload your game now!
It’s still early in development, and I've got a lot of ideas to expand it, but the basic idea is fully functioning.
Here’s a screenshot of the game page editor for one of my Ludum Dare games:
Payments are handled by PayPal. It’s the only thing I've had the time to implement at the moment, but I'd like to add a more payment methods. Right now I have it set up to take 10% of all transactions as a fee for hosting. I'm honestly not sure of this number.
I wouldn’t mind lowering it for people especially if you help me test the site out! (Everything is also in USD at the moment, I'll add support for other currencies as I figure this stuff out)
The technology behind itch.io is pretty interesting to me because it’s the culmination of a lot of my projects over the past few years.
The web application is written in MoonScript, the programming language that I've developed that compiles to Lua.
Lua is not a language you typically see powering a web application, so there was a lot of groundwork to lay. For that reason I developed the MoonScript/OpenResty powered web framework called Lapis. It’s pretty powerful and I really like it. Expect an official release soon. It also seems to run pretty well:
My MoonScript/OpenResty app: Requests per second: 4768.42 [#/sec] (mean) #yesplease— leaf corcoran (@moonscript) March 3, 2013
All files are stored on Google Cloud Storage (think Amazon S3 but by Google).
I originally developed the Lua rock
cloud_storage for my last project
(MoonRocks), but it was enhanced a lot to facilitate doing large file
uploads from the browser, and serving signed URLs for expiring downloads.
itch.io is a very image driven website, I needed something flexible to
resize images on the fly. ImageMagick is generally what people use, but I
didn’t see an Lua bindings. Therefore I wrote
magick, bindings to
ImageMagick using LuaJIT’s FFI. Using this I was able to create a very powerful
image server right inside of the application.
I also had to write libraries for PayPal and Mailgun. I might extract those out if anyone is interested.
The entire application runs on a very cool project called OpenResty. It’s a special build of Nginx with emphasis on Lua. It gives me a fast webserver with asynchronous support for HTTP requests and my database (PostgreSQL).
It’s also worth noting that I've written all the code required to run this
entire stack on Heroku, which will host a basic application for free. So
there’s no excuse not to try something like this out! See Heroku Lua
Hopefully you found this interesting, if you haven’t checked out the site you can do so at http://itch.io.