Korra fan-art
by Viljar âWillâ Vali for Throw Away Games (digital artist, game designer & developer from Toronto, Canada)
seen from China
seen from Germany
seen from Philippines
seen from Kuwait
seen from Russia

seen from United States

seen from United States
seen from United States
seen from Germany
seen from United States
seen from United States
seen from China
seen from Germany
seen from Chile
seen from United States

seen from Singapore

seen from United States
seen from United States

seen from United States

seen from Australia
Korra fan-art
by Viljar âWillâ Vali for Throw Away Games (digital artist, game designer & developer from Toronto, Canada)

Anya is live and ready to show you everything. Watch her strip, dance, and perform exclusive shows just for you. Interact in real-time and make your fantasies come true.
Free to watch ⢠No registration required ⢠HD streaming
Getting started on Project: FlashBang - Basic Load Balancing
We at Throw Away Games are happy to be working with a local Toronto start up to build out their MPV. Â Because of the nature of these things, we canât publicly disclose exactly what the project is, but we ARE good to talk about all the technical stuff weâre doing. Â So this will be our first public post about Project: FlashBang!Â
So far weâre in the very beginning stages of the process. Â Iâs started setting up a development environment currently consisting of 3 servers:
An HTTP server using NGINX
An app server running PHP-FPM
A database server running MariaDB
For anyone whoâs still wondering in 2015 whatâs so special about the cloud, this is it. Â We can spin up small servers whenever we want, and scale them at a moments notice. Â These three servers are all using the lowest possible resources our host provides, as itâs all private right now anyway. Â Once we really start testing things we can figure out how many serverâs weâll actually need, and what resources each one will require.
But why have a different server for each item? Â Shared hosts will put both your HTTP server(usually Apache rather than NGINX, which is what weâre using) and PHP on the same machine. Â By separating them, weâre allowing each one to focus only on itâs task, while also allowing for some neat things like load balancing and caching.
Load balancing is used to reduce the number of connections to a particular machine. Â As you've probably seen when you have too many programs open on your own computer(or in my case, too many chrome tabs), the more stuff going on at once, the slower your computer will go. Â Well, the same is true for web servers. Â They are just computers, and if too many people ask for too many things at once then everything could come crashing to a halt. Â So a load balancer will distribute the user connections to different servers on the network, with the hope of making sure no one server has too much to handle at once.
This is where NGINX comes in.  Iâve referred to it as an HTTP server, but what does that actually mean?  In simple terms, it takes requests for something over HTTP(Hyper Text Transfer Protocol, the language of the web), and sends something back to your web browser.  Pretty straight forward.  Compare this to our app server.  This is the server our program, or APPlication, runs.  It takes instructions, executes functions, and does most of the fancy logic to determine what the HTTP server should be sending.  If you then make 3 of the same app servers, you can use NGINXâs built in load balancing to split the user connections between them.  So for example, if youâre on www.fancycats.com, and click the âgive me a fancy catâ button, youâll send your request for a fancy cat to the HTTP server.  The HTTP server will forward your request for a fancy cat to one of your app servers.  The app server will look at your request, look through the list of cats, and know to return only a fancy one to the HTTP server.  The HTTP server then gives you the cat.
How NGINX actually does load balancing is pretty simple. Â If youâre reading this part, Iâm assuming you know how to install NGINX and PHP-FPM, or you just like reading server configuration snippets for some reason. Â In the http block of your nginx.conf, create the following:
upstream appserver { Â Â server xx.xx.xx.01:9001; Â Â server xx.xx.xx.02:9001; Â Â server xx.xx.xx.03:9001; }
This sets up a group of servers, labelled appserver(change this to your liking), which NGINX will choose from. Â Replace the dummy ip addresses with your own, same with the port number. Â By default, the balancing method is one called round robbin, which basically takes the first request and sends it to server 1, the second request to server two, and etc. Â You can also specify the least connections method(least_conn), which sends the request to the server with the lease number of connections to it at the time, or the ip hash method(ip_hash), which assigns a user to a particular server, so each request from that user goes to that same app server every time. Â To use one of those methods, place the method name above the ip addresses.
Next, in the location block of your HTTP servers config, have something like the following:
location ~* \.(php)($|/) { Â Â Â Â fastcgi_index index.php; Â Â Â Â include fastcgi_params; Â Â Â Â fastcgi_pass appserver; Â Â Â Â fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; }
The key part here is the fastcgi_pass. Â This is what sends the request to PHP. Â It would normally point to 127.0.0.1, or to a PHP socket on your machine, but instead we have it pointing to the appserver group, which will then direct it to the proper APP server.
Finally, on our actual app server. Â Youâll need to open up your conf file for the pool youâre using(for example on Ubuntu, /etc/php5/fpm/pool.d/www.conf), and set the following:
listen = 9001 listen.allowed_clients = xx.xx.xx.xx
These lines tell PHP-FPM where to look for incoming connections, and whoâs allowed to connect. Â Note that listen is set to the port listed in the appserver group. Â allowed_clients should be the ip address of the HTTP server(s) your using to connect from. Â You can use more than one ip address by separating them with commas.
We weâre all good to go now, right? Â Not quite, there are a couple of problems with this. Â Number one, if your app requires sessions, youâre basically forced to use ip-hash as a load balancing method, which may not be what you want. Â As well, any files you need to access on your app server also need to be in the same place on your HTTP server for nginx to proxy properly, which really annoys me personally. Â So while this is a good starting point, for this project we canât keep it like that. Â Iâll be detailing what steps we take next in upcoming posts.
A quick look at the fully detailed first level with lighting in Roboâs World.
TOJam:Â Tentacular!
For those of you not in the know, for the past 10 years Toronto has been the host to an amazing game jam which goes by TOJam. Â A game jam is basically like a hackathon, but for games. Â You hold up with a bunch of other people in a room for the weekend and try to create a working game by the end. Â There are regularly OVER 400 people attending every year. Â This will be Throw Away Gamesâ third year attending(my 5th time), and weâre hoping to surpass what we did with Cat Damon last year with what is currently looking to be a fast paced pixel fighter(possibly with some form of goat based super powers). Â Weâve also decided to give a little something back, by providing one of the raffle prizes... Â Not gonna say what it is here, but trust me, it was hard to actually hand off to someone else. Â So if you want to find out what it is, you should register before all the spots are filled(assuming itâs not already too late)!
Weâve official launched our new web site! Â Check it out to see all the cool thingâs weâre up to, or to get in touch with us

Anya is live and ready to show you everything. Watch her strip, dance, and perform exclusive shows just for you. Interact in real-time and make your fantasies come true.
Free to watch ⢠No registration required ⢠HD streaming