{"id":41,"date":"2016-01-24T04:48:34","date_gmt":"2016-01-24T03:48:34","guid":{"rendered":"http:\/\/adamk.cz\/?p=41"},"modified":"2016-05-20T13:11:52","modified_gmt":"2016-05-20T12:11:52","slug":"game_project","status":"publish","type":"post","link":"https:\/\/adamk.cz\/en\/game_project\/","title":{"rendered":"Game Project, <span class=\"caps\">WIP<\/span> name \u201c\u201d (TORs)"},"content":{"rendered":"<p><a href=\"http:\/\/adamk.cz\/wp-content\/uploads\/2016\/01\/screen.jpg\" target=\"_blank\" rel=\"attachment wp-att-61\">1st Feb&nbsp;2016 ScreenShot<\/a><\/p>\n<ul>\n<li><span class=\"caps\">MMORPG<\/span> game based sole\u00adly on <span class=\"caps\">HTML<\/span>, <span class=\"caps\">CSS<\/span>,<span class=\"caps\">JS<\/span>+jQuery with turn based combat<\/li>\n<li><span class=\"caps\">JRPG<\/span> sty\u00adle, <span class=\"caps\">PVE<\/span> (solo\/group [max 3]\/dungeons\/bosses), <span class=\"caps\">PVP<\/span>(casual \u2014 offli\u00adne and&nbsp;livePVP\/ranked\/3v3\/Total <span class=\"caps\">PVP<\/span> Ser\u00adver \u201cCha\u00ados mode\u201d \u2014 <span class=\"caps\">PVP<\/span> com\u00adbats ran\u00addo\u00admly inser\u00adted between <span class=\"caps\">PVE<\/span> encoun\u00adters \u2014 lorewi\u00adse: Pla\u00adyers have gone mad under some kind cur\u00adse in the realm, so eve\u00adry\u00ado\u00adne see each other as monsters)<\/li>\n<li>Main sto\u00adry line, side quests, each ser\u00adver will have unique and dif\u00adfe\u00adrent&nbsp;map.<\/li>\n<li>Unique items drop\u00adped from ene\u00admies (ran\u00addom stats, all item stat effects will be per\u00adcen\u00adtu\u00adal) ove\u00adrall cha\u00adrac\u00adter stats max&nbsp;cap.<\/li>\n<li>Possi\u00adble micro\u00adtransacti\u00adon sys\u00adtem \u2014 only visu\u00adal items. Sub\u00adscrip\u00adti\u00adon (some\u00adthing like 5$ a&nbsp;mon\u00adth, just to sup\u00adport cre\u00ada\u00adtors) \u2014 no wai\u00adting time after death and lower <span class=\"caps\">XP<\/span> dept after&nbsp;dying?<\/li>\n<li>Pro\u00adba\u00adble sup\u00adport of all sys\u00adtems (basi\u00adcally all sys\u00adtems, that have modern web brow\u00adser \u2014 <span class=\"caps\">WIN<\/span>, <span class=\"caps\">OSX<\/span>, Linux, <span class=\"caps\">IOS<\/span>, Andro\u00adid + Consoles?)<\/li>\n<li>So far very good <span class=\"caps\">RAM<\/span> usage, just the nwjs after log\u00adging in and ren\u00adde\u00adring a&nbsp;sec\u00adtor, who\u00adle pro\u00adcess takes only <span class=\"caps\">25MB<\/span> of&nbsp;<span class=\"caps\">RAM<\/span>.<\/li>\n<li><span class=\"dquo\">\u201c<\/span>Pixel art\u201d gra\u00adphics, opti\u00adon to turn on \u201cpret\u00adtier\u201d gra\u00adphics \u2014 bet\u00adter weather effects and <span class=\"caps\">3D<\/span> world effect with per\u00adspecti\u00adve (not just from top&nbsp;down)<\/li>\n<li>Game con\u00adta\u00adins one main html, which is affec\u00adted and modu\u00adla\u00adted by con\u00adt\u00adrol\u00adling javascripts, which can call each other and run functions.<\/li>\n<li>It will be basi\u00adcally impossi\u00adble to che\u00adat in the game, because user peri\u00ado\u00addi\u00adcally reads a&nbsp;game sta\u00adte from the ser\u00adver eve\u00adry second (so far qui\u00adte good <span class=\"caps\">TTFB<\/span> spe\u00adeds 30\u201350ms on <span class=\"caps\">PHP7<\/span>&nbsp;free hos\u00adting endora)<\/li>\n<li>Main con\u00adt\u00adroll algo\u00adri\u00adthm will run once in a&nbsp;second (mea\u00adning the ser\u00adver will be \u201c1tick\u201d)<\/li>\n<li>Game has sim\u00adple bru\u00adte-for\u00adce pre\u00adven\u00adter + you need to autho\u00adri\u00adze from each new <span class=\"caps\">IP<\/span> add\u00adress via email \u2014 unau\u00adtho\u00adri\u00adzed IPs will have que\u00adry limit once in a&nbsp;five seconds (Bru\u00adte\u00adFor\u00adce part of script pre\u00adven\u00adting attacks have not yet shown nega\u00adti\u00adve effect on&nbsp;<span class=\"caps\">TTFB<\/span>)<\/li>\n<li>All infor\u00admati\u00adon about pla\u00adyers, par\u00adta\u00adken fights, tra\u00addes and so on (basi\u00adcally all acti\u00adons) will be zlib com\u00adpres\u00adsed and recor\u00added, ser\u00adver will also peri\u00ado\u00addally bac\u00adkup the <span class=\"caps\">DB<\/span> once a&nbsp;day for possi\u00adble rollbacks.<\/li>\n<li><span class=\"caps\">DB<\/span> is local based in json for\u00admat, passwords are bcryp\u00adted, user after suc\u00adcess\u00adfully log\u00adging in will rece\u00adi\u00adve an access token,&nbsp;valid only for logged one current <span class=\"caps\">IP<\/span>. Token will be used for com\u00admu\u00adni\u00adcati\u00adon with ser\u00adver inste\u00adad&nbsp;con\u00adstant reva\u00adli\u00adda\u00adting the password. Token will be used for peri\u00ado\u00addi\u00adcal rea\u00adding of \u201cgamesta\u00adte\u201d and also for sen\u00adding an acti\u00adon requests to ser\u00adver. With access from unau\u00adtho\u00adri\u00adzed <span class=\"caps\">IP<\/span> \u2014 possi\u00adble hac\u00adker could guess the right token to user\u00adna\u00adme (high\u00adly unpro\u00adba\u00adble with possi\u00adble frequen\u00adcy of 1&nbsp;guess in 5&nbsp;seconds \u2014 the token will be revo\u00adked and dele\u00adted from data\u00adbase and the real user will be asked to reva\u00adli\u00adda\u00adte his login with new&nbsp;token.<\/li>\n<li>World map \u2014 with own <span class=\"caps\">PHP<\/span> tool, the world is gene\u00adra\u00adted from an map image (png 2000x2000) -&gt; <span class=\"caps\">4M<\/span> tiles into smaller sec\u00adtors 50x50 -&gt; 1600 smaller sec\u00adtors (~7.33kB sec\u00adtor, ~11.<span class=\"caps\">7MB<\/span> who\u00adle world). Pla\u00adyer down\u00adlo\u00adads and caches sec\u00adtors he has visi\u00adted even for futu\u00adre&nbsp;use.<\/li>\n<li>Free hos\u00adting like an Endo\u00adra (<span class=\"caps\">PHP7<\/span>, limit&nbsp;3&nbsp;simul\u00adta\u00adne\u00adous pro\u00adces\u00adses at once) could possi\u00adbly take care of 60 pla\u00adyers at once without any lag and issu\u00ades. Esti\u00adma\u00adted ban\u00addwi\u00add\u00adth per second is gues\u00adsed to be 0.5\u20131kB\/s per&nbsp;user.<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p>Per\u00adso\u00adnal&nbsp;notes:<br>\n(most of the time just stuff that comes to my mind during a&nbsp;day and i \u201cwri\u00adte it down\u201d&nbsp;via my&nbsp;phone)<\/p>\n<blockquote><p>Levels:1\u201310 (to start&nbsp;with)<br>\n<span class=\"caps\">XP<\/span> to level:8,12,18,27,40,60,90,135,200<br>\nkillXP:25% +\/- for each level difference<\/p>\n<p>Tra\u00adde double hand\u00adshake \u2014 after agre\u00ade\u00ading to tra\u00adde, you will have to agree once aga\u00adin to can\u00adcel out possi\u00adble&nbsp;scams.<br>\nWeather,Day\/Night Cycle, Light\/Shadows (sha\u00addow inset), rain, clouds, storms, weather affecting com\u00adbat, lowered visibility?<\/p><\/blockquote>\n<p><\/p>","protected":false},"excerpt":{"rendered":"<p>1st Feb&nbsp;2016 Scre\u00aden\u00adShot <span class=\"caps\">MMORPG<\/span> game based sole\u00adly on <span class=\"caps\">HTML<\/span>, <span class=\"caps\">CSS<\/span>,<span class=\"caps\">JS<\/span>+jQuery with turn based com\u00adbat <span class=\"caps\">JRPG<\/span> sty\u00adle, <span class=\"caps\">PVE<\/span> (solo\/group [max 3]\/dungeons\/bosses), <span class=\"caps\">PVP<\/span>(casual \u2014 offli\u00adne and&nbsp;livePVP\/ranked\/3v3\/Total <span class=\"caps\">PVP<\/span> Ser\u00adver \u201cCha\u00ados mode\u201d \u2014 <span class=\"caps\">PVP<\/span> com\u00adbats ran\u00addo\u00admly inser\u00adted between <span class=\"caps\">PVE<\/span> encoun\u00adters \u2014 lorewi\u00adse: Pla\u00adyers have gone mad under some kind cur\u00adse in the realm, so eve\u00adry\u00ado\u00adne see each other&nbsp;as&nbsp;[\u2026]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"wp_typography_post_enhancements_disabled":false},"categories":[1],"tags":[],"_links":{"self":[{"href":"https:\/\/adamk.cz\/en\/wp-json\/wp\/v2\/posts\/41"}],"collection":[{"href":"https:\/\/adamk.cz\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/adamk.cz\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/adamk.cz\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/adamk.cz\/en\/wp-json\/wp\/v2\/comments?post=41"}],"version-history":[{"count":33,"href":"https:\/\/adamk.cz\/en\/wp-json\/wp\/v2\/posts\/41\/revisions"}],"predecessor-version":[{"id":167,"href":"https:\/\/adamk.cz\/en\/wp-json\/wp\/v2\/posts\/41\/revisions\/167"}],"wp:attachment":[{"href":"https:\/\/adamk.cz\/en\/wp-json\/wp\/v2\/media?parent=41"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/adamk.cz\/en\/wp-json\/wp\/v2\/categories?post=41"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/adamk.cz\/en\/wp-json\/wp\/v2\/tags?post=41"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}