{"id":3689,"date":"2018-11-06T16:05:25","date_gmt":"2018-11-06T15:05:25","guid":{"rendered":"https:\/\/moe.it.slotshaven.dk\/wp\/?p=3689"},"modified":"2018-11-06T16:05:25","modified_gmt":"2018-11-06T15:05:25","slug":"multiplayer-server-skabelon","status":"publish","type":"post","link":"https:\/\/digitalteknik.slotshaven.it\/wordpress\/multiplayer-server-skabelon\/","title":{"rendered":"5 Multiplayer server skabelon"},"content":{"rendered":"<p>Lad os med udgangspunkt i skabelonen med websockets, pr\u00f8ve at s\u00e6tte noget funktionalitet op til et lille multiplayer spil.<\/p>\n<p>Her skal vi holde tungen lige i munden i begyndelsen. Hvad g\u00f8r serveren &#8211; og hvad g\u00f8r klienterne? Vi er jo vant til at programmere javascript s\u00e5ledes, at klienten g\u00f8r alt arbejdet. Hvis vi vil bev\u00e6ge en cirkel p\u00e5 sk\u00e6rmen, bruger vi fx mouseX og mouseY. Hvis vi ville lave en two-player p\u00e5 samme tastatur, kunne vi bruge tasterne WASD osv.<\/p>\n<p>Den g\u00e5r ikke her. For at g\u00f8re det s\u00e5 enkelt som muligt, er det bedre at lade serveren h\u00e5ndtere <strong>alle input fra alle klienter<\/strong>. Serveren modtager alts\u00e5 input fra klienterne og sender dem tilbage og rundt. Klienterne p\u00e5 deres side, s\u00f8rger for at bruge disse input til at vise alle spilleres bev\u00e6gelser. Ja?<\/p>\n<p>Man kan kort sagt sige, at<\/p>\n<ul>\n<li>vi bruger server.js til at holde styr p\u00e5 spilmekanikken &#8211; <strong>alle<\/strong> controls (ogs\u00e5 brugernes egne bev\u00e6gelser) broadcastes <strong>fra\u00a0<\/strong>serveren<\/li>\n<li>klienterne skal vise spillet til brugerne <strong>vha beskeder fra serveren<\/strong><\/li>\n<li>klienterne skal <strong>sende<\/strong> comand-controls (fx brugerens tastatur input) til serveren<\/li>\n<li>serveren skal <strong>broadcaste disse tastaturinput<\/strong>, s\u00e5 klienterne kan vise hvad der sker i spillet<\/li>\n<\/ul>\n<p>Kod videre p\u00e5 dit projekt fra de f\u00f8rste indl\u00e6g, eller&#8230;<\/p>\n<p><a href=\"http:\/\/&lt;a href=&quot;https:\/\/minhaskamal.github.io\/DownGit\/#\/home?url=https:\/\/github.com\/simmoe\/digidaktik\/tree\/master\/sockets\/sockets_multiplayer_template&quot;&gt;Hent tom skabelon her&lt;\/a&gt;\">Hent f\u00e6rdigt projekt her<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Lad os med udgangspunkt i skabelonen med websockets, pr\u00f8ve at s\u00e6tte noget funktionalitet op til et lille multiplayer spil. Her skal vi holde tungen lige i munden i begyndelsen. Hvad g\u00f8r serveren &#8211; og hvad g\u00f8r klienterne? Vi er jo vant til at programmere javascript s\u00e5ledes, at klienten g\u00f8r alt arbejdet. Hvis vi vil bev\u00e6ge &#8230; <a title=\"5 Multiplayer server skabelon\" class=\"read-more\" href=\"https:\/\/digitalteknik.slotshaven.it\/wordpress\/multiplayer-server-skabelon\/\" aria-label=\"Read more about 5 Multiplayer server skabelon\">L\u00e6s mere <\/a><\/p>\n","protected":false},"author":3,"featured_media":3600,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8],"tags":[39],"class_list":["post-3689","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-den-fysiske-verden","tag-sockets"],"_links":{"self":[{"href":"https:\/\/digitalteknik.slotshaven.it\/wordpress\/wp-json\/wp\/v2\/posts\/3689","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/digitalteknik.slotshaven.it\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/digitalteknik.slotshaven.it\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/digitalteknik.slotshaven.it\/wordpress\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/digitalteknik.slotshaven.it\/wordpress\/wp-json\/wp\/v2\/comments?post=3689"}],"version-history":[{"count":0,"href":"https:\/\/digitalteknik.slotshaven.it\/wordpress\/wp-json\/wp\/v2\/posts\/3689\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/digitalteknik.slotshaven.it\/wordpress\/wp-json\/"}],"wp:attachment":[{"href":"https:\/\/digitalteknik.slotshaven.it\/wordpress\/wp-json\/wp\/v2\/media?parent=3689"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/digitalteknik.slotshaven.it\/wordpress\/wp-json\/wp\/v2\/categories?post=3689"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/digitalteknik.slotshaven.it\/wordpress\/wp-json\/wp\/v2\/tags?post=3689"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}