{"assets":[{"original":"http:\/\/www.ludumdare.com\/compo\/wp-content\/uploads\/2012\/09\/GAE_server-550x363.png","local":"\/data\/posts\/2012\/09\/2a3a0d70f6eb38daccd42416e158f1ea.png"}],"author_link":"author\/juaxix\/","author_name":"juaxix","cat":"LD #24","categories":["LD #24"],"comments":[],"epoch":1346652180,"event":"LD24","likes":4,"metadata":{"p_key":"77998","p_author":"juaxix","p_authorkey":"0","p_urlkey":"287008","p_title":"Hosting servers with Google App Engine","p_cat":"LD #24","p_event":"LD24","p_time":"1346652180","p_likes":"4","p_comments":"0","p_status":"WAYBACK","us_key":null,"us_name":null,"us_username":null,"event_start":"1345766400","event_key":"12","event_name":"LD24"},"source_url":"2012\/09\/03\/hosting-servers-with-google-app-engine\/","text":"<p><a href=\"http:\/\/www.ludumdare.com\/compo\/2012\/09\/02\/the-darkness-evolve-post-mortem\/logo-42\/\" rel=\"attachment wp-att-180583\"><img alt=\"\" class=\"aligncenter size-large wp-image-180583\" height=\"202\" sizes=\"(max-width: 550px) 100vw, 550px\" src=\"http:\/\/www.ludumdare.com\/compo\/wp-content\/uploads\/2012\/09\/logo-550x202.png\" srcset=\"http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2012\/09\/logo-300x110.png 300w, http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2012\/09\/logo-550x202.png 550w, http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2012\/09\/logo.png 598w\" width=\"550\"\/><\/a><\/p>\n<p>I thought that players would need other players ip\u2019s to play matches ,and some of them would prefer to hide that so I created in one day a Google App Engine WebApp with a set of servlets to store the ips of the users whose create servers from the game so other players can connect directly by fetching the list via XML and populate a hud list to easily select one of them.<\/p>\n<p style=\"text-align: center\"><img alt=\"\" class=\"aligncenter size-medium wp-image-180978\" height=\"232\" src=\"http:\/\/www.ludumdare.com\/compo\/wp-content\/uploads\/2012\/09\/appengine_final-300x232.png\" width=\"300\"\/><\/p>\n<p>When the server is created, only in Windows,OSX,Linux native versions (I need to create sockets and I cant do it in the browser right now ), the game send a XML petition to the GAE servlet of game matches server application and store the name of the server (given by the player) with the IP of the petition, so, then, other users check the list of available servers and select one of them (there is no limit at all) then connect and in about 2-5 minutes the server is deleted from the list with a cron task that check the creation date. If the server disconnect the game send a cancel server and the match is erased from the list also.<\/p>\n<p><img alt=\"The Match class used in the matches server\" class=\"aligncenter size-large wp-image-180976\" height=\"363\" sizes=\"(max-width: 550px) 100vw, 550px\" src=\"\/data\/posts\/2012\/09\/2a3a0d70f6eb38daccd42416e158f1ea.png\" srcset=\"http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2012\/09\/GAE_server-300x198.png 300w, http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2012\/09\/GAE_server-550x363.png 550w, http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2012\/09\/GAE_server.png 1232w\" width=\"550\"\/><\/p>\n<div>\nSo, I think the hardest part is to find a balance between the streaming load and the number of users in a game to be able of handle connections and avoid lag , if it is well done you will have a great user gameplay experience.\n<p>Hope this help to other people.<\/p>\n<p>Next: I\u2019m thinking in add an AI for players who want to play solo\u2026 I have adquired this book<\/p>\n<p style=\"text-align: center\"><img alt=\"\" class=\"aligncenter\" height=\"614\" src=\"https:\/\/p.twimg.com\/A13gK3FCEAAhE-9.jpg:large\" width=\"461\"\/><\/p>\n<p style=\"text-align: center\">\n<p style=\"text-align: left\"><a href=\"http:\/\/www.ludumdare.com\/compo\/ludum-dare-24\/?action=preview&amp;uid=10960\" target=\"_blank\" title=\"Play now!\">Play the game with GAE matches hosting here<\/a><\/p>\n<\/p><\/div>\n<p>Tags: <a href=\"http:\/\/ludumdare.com\/compo\/tag\/gae\/\" rel=\"tag\">gae<\/a>, <a href=\"http:\/\/ludumdare.com\/compo\/tag\/game-networks\/\" rel=\"tag\">game networks<\/a>, <a href=\"http:\/\/ludumdare.com\/compo\/tag\/google-app-engine\/\" rel=\"tag\">google app engine<\/a>, <a href=\"http:\/\/ludumdare.com\/compo\/tag\/network\/\" rel=\"tag\">network<\/a>, <a href=\"http:\/\/ludumdare.com\/compo\/tag\/videogame-server\/\" rel=\"tag\">videogame server<\/a><\/p>","time":"September 3rd, 2012 6:03 am","title":"Hosting servers with Google App Engine","title_was_empty":false}