{"id":4471,"date":"2016-12-18T21:50:04","date_gmt":"2016-12-18T21:50:04","guid":{"rendered":"http:\/\/phoenixgamedevelopment.com\/blog\/?p=4471"},"modified":"2016-12-18T21:50:57","modified_gmt":"2016-12-18T21:50:57","slug":"p0-p-172-part-72-procedural-city-generator","status":"publish","type":"post","link":"https:\/\/phoenixgamedevelopment.com\/blog\/p0-p-172-part-72-procedural-city-generator\/","title":{"rendered":"P0-P-172: Part 72: Procedural City Generator, Asynchronous Server"},"content":{"rendered":"<p>I have finished my procedural city concept. I think the server side and database code is working ok.<\/p>\n<p>The solution I have implemented also seems reasonably neat and efficient.<\/p>\n<p>The\u00a0only thing that I haven&#8217;t done with it is create an asynchronous server. I thought that this would be relatively simple, but I am having some issues with it.<\/p>\n<p>I need a server that can handle multiple simultaneous client connections, and that can handle clients continuously sending data to the server (as opposed to connecting, sending data, then disconnecting). The server should also be able to send data to the client at any time.<\/p>\n<p>I have found a lot of examples of C# socket servers but none of them seem to do what I need them to do. I will need to keep researching this, I would like to have an asychronous server working in MS1, because it is a fundamental feature for my game concept.<\/p>\n<figure id=\"attachment_4462\" aria-describedby=\"caption-attachment-4462\" style=\"width: 300px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2016\/12\/PhoenixGameDevelopment-17_12_2016-03_31_56-AM.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-4462\" src=\"https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2016\/12\/PhoenixGameDevelopment-17_12_2016-03_31_56-AM-300x163.jpg\" alt=\"Unity 17\/12\/2016 , 03:31:56 AM Unity Personal (64bit) - P0Main.unity - New Unity Project - PC, Mac &amp; Linux Standalone \" width=\"300\" height=\"163\" srcset=\"https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2016\/12\/PhoenixGameDevelopment-17_12_2016-03_31_56-AM-300x163.jpg 300w, https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2016\/12\/PhoenixGameDevelopment-17_12_2016-03_31_56-AM-768x416.jpg 768w, https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2016\/12\/PhoenixGameDevelopment-17_12_2016-03_31_56-AM-1024x555.jpg 1024w, https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2016\/12\/PhoenixGameDevelopment-17_12_2016-03_31_56-AM.jpg 1920w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><figcaption id=\"caption-attachment-4462\" class=\"wp-caption-text\">Unity<br \/>17\/12\/2016 , 03:31:56 AM<br \/>Unity Personal (64bit) &#8211; P0Main.unity &#8211; New Unity Project &#8211; PC, Mac &amp; Linux Standalone<\/figcaption><\/figure>\n<figure id=\"attachment_4461\" aria-describedby=\"caption-attachment-4461\" style=\"width: 300px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2016\/12\/PhoenixGameDevelopment-15_12_2016-12_44_23-AM.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-4461\" src=\"https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2016\/12\/PhoenixGameDevelopment-15_12_2016-12_44_23-AM-300x163.jpg\" alt=\"Unity 15\/12\/2016 , 12:44:23 AM Unity Personal (64bit) - P0Main.unity - New Unity Project - PC, Mac &amp; Linux Standalone \" width=\"300\" height=\"163\" srcset=\"https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2016\/12\/PhoenixGameDevelopment-15_12_2016-12_44_23-AM-300x163.jpg 300w, https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2016\/12\/PhoenixGameDevelopment-15_12_2016-12_44_23-AM-768x416.jpg 768w, https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2016\/12\/PhoenixGameDevelopment-15_12_2016-12_44_23-AM-1024x555.jpg 1024w, https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2016\/12\/PhoenixGameDevelopment-15_12_2016-12_44_23-AM.jpg 1920w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><figcaption id=\"caption-attachment-4461\" class=\"wp-caption-text\">Unity<br \/>15\/12\/2016 , 12:44:23 AM<br \/>Unity Personal (64bit) &#8211; P0Main.unity &#8211; New Unity Project &#8211; PC, Mac &amp; Linux Standalone<\/figcaption><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>I have finished my procedural city concept. I think the server side and database code is working ok. The solution I have implemented also seems reasonably neat and efficient. The\u00a0only thing that I haven&#8217;t done with it is create an asynchronous server. I thought that this would be relatively simple, but I am having some [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3,17,10,11],"tags":[],"class_list":["post-4471","post","type-post","status-publish","format-standard","hentry","category-astral-realms","category-p-0","category-software-and-games","category-spiritus-astrum","has-post-title","has-post-date","has-post-category","has-post-tag","has-post-comment","has-post-author",""],"aioseo_notices":[],"builder_content":"","_links":{"self":[{"href":"https:\/\/phoenixgamedevelopment.com\/blog\/wp-json\/wp\/v2\/posts\/4471"}],"collection":[{"href":"https:\/\/phoenixgamedevelopment.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/phoenixgamedevelopment.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/phoenixgamedevelopment.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/phoenixgamedevelopment.com\/blog\/wp-json\/wp\/v2\/comments?post=4471"}],"version-history":[{"count":2,"href":"https:\/\/phoenixgamedevelopment.com\/blog\/wp-json\/wp\/v2\/posts\/4471\/revisions"}],"predecessor-version":[{"id":4474,"href":"https:\/\/phoenixgamedevelopment.com\/blog\/wp-json\/wp\/v2\/posts\/4471\/revisions\/4474"}],"wp:attachment":[{"href":"https:\/\/phoenixgamedevelopment.com\/blog\/wp-json\/wp\/v2\/media?parent=4471"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/phoenixgamedevelopment.com\/blog\/wp-json\/wp\/v2\/categories?post=4471"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/phoenixgamedevelopment.com\/blog\/wp-json\/wp\/v2\/tags?post=4471"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}