Jak hrát na lokální síti - podrobný průvodce pro zkušené hráče. Jak vytvořit online hru

Mnoho lidí si klade otázku, jak hrát piráta online licencovaná hra, vše je mnohem jednodušší, než by se zdálo, pro tento případ bylo vynalezeno mnoho programů, které spojují hráče z celého světa.

V tomto článku si představíme nejběžnější programy, které hráči často používají. Pravděpodobně jste často slyšeli, jak hrát přes Hamachi přes síť a podobně. Jak hrát staré hry online? Nástroje pro hraní lokálně a online. Videohra na počítači je přirozeně zajímavá, ale ještě více vzrušující je odolat ne robotovi, ale skutečné osobě! Je možné, že udělá nějakou chybu, neobvyklý krok nebo něco překvapivého. Navíc téměř všichni zkušení hráči hrají mnohem zajímavěji a korektněji než roboti...

Ale pokud u téměř všech pokročilých síťových videoher nejsou žádné zvláštní problémy s připojením WOW, Tanks, GTA a tak dále, pak s videohrami určitý počet starších - téměř všichni hráči mají potíže. Ve skutečnosti v tomto materiálu uvedu různé typy a metody, jak můžete hrát hry lokální síť a internet se skutečnými lidmi (i ve hrách, ve kterých se to nepředpokládá a neexistuje nic kromě režimu LAN, tedy hraní pouze lokálně).

Bezplatná VPN, která vyřeší přesně vaše problémy, připojte vzdálené počítače do jedné virtuální sítě. Radmin VPN je bezplatný a snadno použitelný program pro vytváření virtuálních osobních sítí (VPN). Program umožňuje hráčům navázat bezpečné a spolehlivé spojení mezi počítači přes internet, jako by byli připojeni přes místní síť. Zdroj - https://site/

Evolve je program pro vytvoření lokální (LAN) sítě mezi hráči pomocí internetového připojení. Vylepšená verze programu Tunngle, je mnohem lepší a má více možností. Největší výhodou je, že nemusíte nic instalovat, program udělá vše za vás. Evolve je program pro vytvoření lokální (LAN) sítě mezi hráči pomocí internetového připojení. Vylepšená verze programu Tunngle, je mnohem lepší a má více možností.

Aplikace, která poskytuje virtuální místní síť pro různé počítačové videohry. Je zde možnost vybudovat si vlastní pokoje nebo napojit na stávající. Program GameRanger moduluje virtuální místní síť pro počítačové videohry: to může být užitečné pro ty, které nudí hrát o samotě. Chcete-li to provést, abyste se mohli zúčastnit skupinové videohry, stačí si tento program nainstalovat do počítače. Nejprve byl navržen pro celkem deset herních programů, nyní však podporuje více než 600 videoher.

Jedná se o nástroj pro vytvoření virtuální osobní sítě (VPN) a její správu mezi některými vzdálenými počítači. Můžete také simulovat stoprocentně šifrovanou a zabezpečenou místní síť, což může být u některých videoher velmi užitečné. jeden z nejznámějších nástrojů pro vytváření virtuálních osobních VPN sítí. Pomocí tohoto programu můžete jednoduše vytvořit šifrované spojení přes internet mezi vzdálenými počítači a simulovat tak spojení přes místní síť.

Běžný program, který vám umožní hrát různé hry počítačové hry V týmovém režimu se spojte s hráči z celého světa. Program Garena Plus je všestranný videoherní klient, který vám umožňuje vybudovat místní síť nad World Wide Web. Program se používá ke spouštění kooperativních videoher různých žánrů, což vám umožní rychle a snadno najít konkurenty pro online bitvy.

Tunngle je klientský program, který využívá technologii VPN a byl záměrně vytvořen pro videohry v kooperativním režimu. Díky Tunngle můžete hrát se svými přáteli na internetu, jako by to byla místní síť. Existuje mnoho online programů, které jsou určeny pro kooperativní videohry, ale Tunngle je mezi nimi považován za absolutní favorit a nabízí mnohem více možností než jeho konkurenti.

LanGame++ umožňuje lidem na různých sítích hrát online hry, pokud to není možné v samotné videohře. LanGame++ je program, se kterým můžete hrát síťové hry pro lidi přítomné v různých sítích a podobně v místních sítích v různých podsítích, pokud tato možnost není k dispozici v samotné videohře. Nevyžaduje připojení k World Wide Web.

Nejprve nainstalujte závislosti. Vytvořte složku projektu, přejděte do ní a spusťte následující kód:

Npm init npm install --save express socket.io

Pro rychlé nastavení serveru, je vhodné použít Express framework a pro zpracování webových soketů na serveru balíček socket.io. Do souboru server.js umístěte následující kód:

// Závislosti var express = require("express"); var http = vyžadovat("http"); var cesta = vyžadovat("cesta"); var socketIO = require("socket.io"); var app = express(); var server = http.Server(app); var io = socketIO(server); app.set("port", 5000); app.use("/static", express.static(__dirname + "/static")); // Směrování app.get("/", function(požadavek, odpověď) ( response.sendFile(path.join(__dirname, "index.html")); )); // Spuštění serveru server.listen(5000, function() ( console.log("Spuštění serveru na portu 5000"); ));

Toto je poměrně typický kód pro server založený na Node.js + Express. Instaluje závislosti a základní trasy serveru. Tato ukázková aplikace používá pouze jeden soubor index.html a statickou složku. Vytvořte je v kořenové složce projektu. Soubor index.html je poměrně jednoduchý:

Naše herní plátno pro více hráčů (šířka: 800px; výška: 600px; okraj: 5px plná černá; )

Vaše uživatelské rozhraní může obsahovat mnohem více prvků, takže pro větší projekty je lepší umístit styly CSS do samostatného souboru. Pro zjednodušení nechám CSS v HTML kódu. Vezměte prosím na vědomí, že jsem do kódu zahrnul skript socket.io.js. Při spuštění serveru bude automaticky fungovat jako součást balíčku socket.io.

Nyní je třeba nakonfigurovat websockets na serveru. Na konec souboru server.js přidejte:

// Obsluha webového soketu io.on("connection", function(socket) ( ));

Ve hře zatím nejsou žádné funkce, takže do obslužného nástroje websocket není třeba nic přidávat. Pro testování přidejte na konec souboru server.js následující řádky:

SetInterval(function() ( io.sockets.emit("zpráva", "ahoj!"); ), 1000);

Tato funkce odešle zprávu se jménem zprávy a obsahem hi do všech připojených webových zásuvek. Nezapomeňte později odstranit tuto část kódu, protože slouží pouze pro testovací účely.

Ve statické složce vytvořte soubor s názvem game.js. Můžete napsat krátkou funkci pro protokolování zpráv ze serveru, abyste se ujistili, že je přijímáte. Do souboru static/game.js napište následující:

Var socket = io(); socket.on("zpráva", funkce(data) ( console.log(data); ));

Spusťte server příkazem node server.js a v libovolném prohlížeči přejděte na odkaz http://localhost:5000. Pokud otevřete okno vývojáře (klikněte pravé tlačítko myš → Prozkoumat), uvidíte, jak každou sekundu přichází nová zpráva:

Obvykle socket.emit(name, data) odešle zprávu s daným jménem a daty na server, pokud požadavek přichází od klienta, a naopak, pokud požadavek přichází ze serveru. Chcete-li přijímat zprávy pod určitým jménem, ​​použijte následující příkaz:

Socket.on("name", function(data) ( // argument data může obsahovat jakákoli data k odeslání ));

Pomocí socket.emit() můžete odeslat jakoukoli zprávu. Můžete také předat JSON objekty, což je pro nás velmi výhodné. To umožňuje okamžitý přenos informací ve hře ze serveru na klienta a zpět, což je základem hry pro více hráčů.

Nyní nechte klienta odeslat některé stavy klávesnice. Umístěte následující kód na konec souboru static/game.js:

Pohyb var = ( nahoru: nepravda, dolů: nepravda, doleva: nepravda, doprava: nepravda ) document.addEventListener("keydown", function(event) ( switch (event.keyCode) ( případ 65: // Pohyb.left = true; break; case 87: // W move.up = true; break; case 68: // D move.right = true; break; case 83: // S move.down = true; break; ) )); document.addEventListener("keyup", function(event) ( switch (event.keyCode) ( case 65: // A movement.left = false; break; case 87: // W move.up = false; break; case 68 : // D pohyb.vpravo = nepravda; zlom; případ 83: // S pohyb.dolů = nepravda; zlom; ) ));

Toto je standardní kód, který vám umožňuje sledovat stisknuté klávesy W, A, S, D. Poté přidejte zprávu, která server upozorní, že do hry vstoupil nový hráč, a vytvořte smyčku, která bude server informovat o stisknutí kláves.

Socket.emit("nový hráč"); setInterval(funkce() ( socket.emit("pohyb", pohyb); ), 1000 / 60);

Tento kus kódu umožní odeslání stavu klávesnice klienta na server 60krát za sekundu. Nyní musíme tuto situaci zaregistrovat ze strany serveru. Na konec souboru server.js přidejte následující řádky:

Hráči Var = (); io.on("connection", function(socket) ( socket.on("new player", function() ( players = ( x: 300, y: 300 ); )); socket.on("movement", function (data) ( var player = hráči || (); if (data.left) ( player.x -= 5; ) if (data.up) ( player.y -= 5; ) if (data.right) ( player.x += 5; ) if (data.down) ( player.y += 5; ) )); )); setInterval(function() ( io.sockets.emit("stav", hráči); ), 1000 / 60);

Pojďme pochopit tento kód. Informace o všech připojených uživatelích budete ukládat jako objekty JSON. Protože každý soket připojený k serveru má jedinečné ID, bude klíč představovat ID soketu připojeného přehrávače. Hodnota bude jiný objekt JSON obsahující souřadnice x a y.

Když server obdrží zprávu, že se připojil nový hráč, přidá nový záznam do objektu player pomocí ID zásuvky, které bude v této zprávě. Když server obdrží zprávu o pohybu, aktualizuje informace o přehrávači spojeném s tímto soketem, pokud takový existuje.

io.sockets.emit() je požadavek, který odešle zprávu a data do VŠECH připojených soketů. Server odešle tento stav všem připojeným klientům 60krát za sekundu.

V tuto chvíli klient s těmito informacemi ještě nic nedělá, takže přidejte na straně klienta handler, který bude zobrazovat data ze serveru v Canvas.

Var canvas = document.getElementById("canvas"); canvas.width = 800; výška plátna = 600; var kontext = canvas.getContext("2d"); socket.on("state", function(players) ( context.clearRect(0, 0, 800, 600); context.fillStyle = "zelená"; for (var id v přehrávačích) ( var player = hráči; context.beginPath (); context.arc(player.x, player.y, 10, 0, 2 * Math.PI); context.fill(); ) ));

Tento kód přistupuje k id plátna (#canvas) a kreslí tam. Pokaždé, když je ze serveru přijata stavová zpráva, budou data v Canvas resetována a všichni hráči budou znovu zobrazeni jako zelené kroužky.

Nyní bude každý nový hráč moci vidět stav všech připojených hráčů na Canvas. Spusťte server příkazem node server.js a otevřete dvě okna v prohlížeči. Když přejdete na http://localhost:5000, měli byste vidět něco podobného tomuto:

To je vše! Pokud máte problémy, podívejte se do archivu zdrojového kódu.

Nějaké jemnosti

Když vyvíjíte funkčnější hru, je užitečné rozdělit kód do několika souborů.

Hry pro více hráčů, jako je tato, jsou skvělým příkladem architektury MVC (Model-View-Controller). Veškerá logika musí být zpracována na serveru a vše, co klient musí udělat, je odeslat uživatelský vstup na server a zobrazit informace, které obdrží ze serveru.

Tento demo projekt má však několik nedostatků. Aktualizace hry souvisí s posluchačem socketů. Pokud bych chtěl ovlivnit průběh hry, mohl bych do konzole prohlížeče napsat následující:

While (true) ( ​​​​socket.emit("pohyb", ( vlevo: true )); )

Nyní budou data pohybu odesílána na server, v závislosti na vlastnostech počítače, více než 60krát za sekundu. To způsobí, že se hráč bude pohybovat neuvěřitelně rychle. Tím se dostáváme ke konceptu definice autoritativního serveru.

Klient by v žádném okamžiku neměl ovládat žádná data na serveru. Nikdy byste například neměli na server vkládat kód, který umožňuje klientovi určit jeho polohu/zdraví na základě dat, která jsou odesílána přes soket, protože uživatel by mohl snadno podvrhnout zprávu přicházející ze soketu, jak je uvedeno výše.

Když jsem vytvořil svou první hru pro více hráčů, napsal jsem kód, aby hráč mohl střílet, když byla odeslána zpráva o střelbě, která byla spojena s kliknutím myši na straně klienta. Zkušený hráč by toho mohl využít vložením řádku JavaScriptu velmi podobného tomu, který je zmíněn výše, a získat tak téměř neomezenou rychlost střelby.

Nejlepší analogií, kterou mohu uvést, je, že klienti by měli pouze posílat informace o svých záměrech na server, které pak budou zpracovány a použity ke změně stavu hráčů, pokud jsou platné.

V ideálním případě by cykly aktualizace klienta i serveru měly být nezávislé na soketu. Zkuste mít aktualizace hry mimo blok socket.on(). V opačném případě můžete skončit se spoustou podivného nelogického chování kvůli tomu, že aktualizace hry je vázána na aktualizaci zásuvky.

Zkuste se také vyhnout kódu, jako je tento:

SetInterval(function() ( // kód... player.x += 5; // kód... ), 1000 / 60);

V tomto kódu souvisí aktualizace souřadnic x hráče se snímkovou frekvencí hry. SetInterval() vždy nezaručuje, že interval bude splněn, takže místo toho napište něco takového:

Var lastUpdateTime = (new Date()).getTime(); setInterval(function() ( // kód... var currentTime = (new Date()).getTime(); var timeDifference = currentTime - lastUpdateTime; player.x += 5 * timeDifference; lastUpdateTime = currentTime; ), 1000 / 60);

Není to tak elegantní, ale poskytne hladší a konzistentnější zážitek. Udělejte svůj ukázkový projekt složitější a snažte se aktualizovat na základě času, nikoli snímkové frekvence. Pokud se tam nechcete zastavit, zkuste si na serveru vytvořit fyzikální engine, který bude ovládat pohyby hráčů.

Můžete se také ujistit, že postižení hráči budou ze hry odstraněni. Po odpojení zásuvky se automaticky odešle zpráva o odpojení. Dá se to napsat takto:

Io.on("connection", function(socket) ( // obsluha události... socket.on("disconnect", function() ( // smazání odpojeného přehrávače )); )); ,

Pokud chcete hrát na dvou počítačích bez použití internetu, okamžitě přenášet soubory z různých zařízení bez USB disků, pak musíte vědět, jak vytvořit místní síť mezi dvěma počítači. Tato technologie propojení dvou PC se používá již poměrně dlouho a ani dnes neztratila na aktuálnosti.

Příklad místní sítě

Lokální síť je skupina vzájemně propojených zařízení: PC, televize, tiskárny, které se obvykle nenacházejí dále než do jedné místnosti. Zařízení využívají sdílenou paměť a servery, čímž se vzájemně doplňují. Toto připojení umožňuje vytvořit herní plochu pro několik počítačů, snadno a poměrně rychle přenášet jakákoli data, tisknout dokumenty, pokud je nainstalována jedna společná tiskárna, a dělat mnohem více. K připojení zařízení dnes nejčastěji dochází pomocí routeru, ale lze využít i jiná připojení, o kterých si můžete přečíst níže.

Vytvoření spojení

Vytvoření připojení je poměrně snadné a také různými způsoby: přes router nebo kabel Nastavení zařízení pro oba způsoby je velmi podobné. Rozdíl spočívá především ve způsobu připojení: přes kabel nebo přes Wi-Fi.

Komunikace přes Wi-Fi, která se dnes používá mnohem častěji, může být mnohem pohodlnější, ale propojení dvou PC kabelem bude stát méně, pokud jste z nějakého důvodu ještě nenainstalovali router.

Připojení přes kabel

Většina starý vzhled spojení mezi dvěma stroji. Vše, co musíte udělat, je připojit síťový kabel RJ45. Kabel se musí křížit, i když pro moderní počítačeČasto postačí běžné rovné kabely. Přesto je lepší si při nákupu ověřit typ kabelu u prodejce. Když přidáte konce kříženého kabelu, budou se barvy konců vodičů lišit - to je jeho hlavní rozdíl. Také připojení vyžaduje síťové karty na obou zařízeních, ale dnes jsou již nainstalovány. Musíte si uvědomit, že pokud je síťová karta již obsazena připojením k internetu, nebudete ji moci používat.

Toto připojení bylo dříve používáno ke hraní. Někomu to ale dnes může vyhovovat, zvláště pokud ještě máte operační systém Windows XP, který má problémy s podporou bezdrátového připojení.

Po připojení samotného kabelu musíte vědět, jak nastavit místní síť mezi dvěma počítači:

  • Ovládací panely, vyberte položku související se síťovými připojeními.
  • Vybereme, co jsme tam vytvořili, klikneme na to pravým tlačítkem, vybereme „Vlastnosti“
  • Dále, v závislosti na „Windows“: pro Windows XP vyberte Internet Protocol (TCP/IP), pro Windows 7/8/10 - Internet Protocol verze 4.

  • Ručně zadejte IP adresu: 192.168.xxx.xxx. Posledních šest číslic můžete zadat sami, hlavní je, že se na různých zařízeních neopakují.

  • V systému Windows 7 budete také muset přejít do Centra ovládání sítě, kde v položce „Nastavení“ vyberte pro naši síť „Soukromé“.
  • Poté v Ovládacím centru povolte sdílení souborů, zjišťování sítě a vypněte ochranu přístupu heslem.

Poté je také potřeba nastavit sdílení. To se provádí tak, aby si počítače mohly vyměňovat jakékoli soubory. Metody se v různých operačních systémech liší. V systému WindowsXP:

  • V části Síťová připojení přejděte na „Nástroje“ a vyberte „Možnosti složky“.
  • Na kartě „Zobrazit“ zaškrtněte políčko vedle „Použít jednoduché sdílení souborů“.
  • Dále přejděte do okna „Vlastnosti systému“: RMB na „Tento počítač“ - vyberte Název počítače.
  • Klikněte na „Změnit“, vyberte „Je členem“ pracovní skupiny. Přicházíme se společným názvem skupiny pro oba počítače.
  • Můj počítač, klikněte pravým tlačítkem myši na pevné disky (například Windows (C:)), v záložce „Přístup“ klikněte na odkaz, nastavte oprávnění ke sdílení.
  • To je vše, přístup k souborům na vybraných discích je zcela otevřený. Ve Windows 7/8/10 postupujeme následovně:

    • Ovládací panely a poté Možnosti složky.
    • Zaškrtněte políčko „Použít průvodce sdílením“.
    • Následující kroky budou stejné jako u XP.

    Připojení přes router

    Toto je nejpohodlnější způsob, protože vám umožňuje připojit nejen dva, ale větší číslo počítače nebo jiná zařízení s podporou Wi-Fi. Přes toto připojení můžete hrát bez zdlouhavého nastavování.

    IP adresy pro takové připojení budou nastaveny automaticky. Chcete-li používat sdílené soubory, budete muset pouze sdílet soubory a poté přidat dva počítače do jedné pracovní skupiny, jak je popsáno výše.

    Nyní pro přenos souborů stačí zadat název počítače pomocí adresního řádku: \\název\. Můžete to provést také prostřednictvím sekce Síťová připojení. Vyplatí se také zabezpečit své osobní nebo zvláště důležité soubory, aby se k nim nikdo nedostal z blízkého počítače. Chcete-li to provést, je nejlepší určit jednotky, které neobsahují pro vás důležité informace. Například disk obsahující data účty uživatelům, je lepší nenechat jej otevřít všem, nebo pomocí nabídky nastavení pro soubory a složky k nim omezit přístup: RMB na požadovanou složku a tam vybrat nastavení sdílení.

    Hraní v místní síti

    Podařilo se nám tedy připojit dvě zařízení do stejné sítě bez internetu, což jim umožnilo vyměňovat si soubory. Jak začít hrát v lokální síti?

    K tomu zpravidla nemusíte provádět žádná další nastavení. Hru pouze zapneme, a pokud můžete hrát přes místní připojení, vyberte příslušnou položku a poté hrajte přes tu, kterou jsme již vytvořili.

    Pro různé hry připojení ke sdílenému serveru se může lišit. Někde budete muset zadat IP nebo název počítače. Pro Minecraft, Protiúder, například budete muset vytvořit server. Ale zpravidla se vše dělá docela jednoduše.

    Hamachi

    To se stává poměrně zřídka, ale někdy vám hra neumožňuje hrát přes internet, ale umožňuje vám ji hrát přes místní síť. Nezoufejte, i když se ukáže, že váš přítel žije daleko od vás.

    Program Hamachi umožňuje emulovat lokální připojení a tím k němu připojit PC přes internet. Chcete-li to provést, stačí si stáhnout program, zaregistrovat se a poté vytvořit nové připojení, zadat jméno a případně heslo. Poté můžete tuto síť snadno používat k hraní.

    Jak vidíte, připojení počítačů do místní sítě je poměrně snadný proces. Nezabere vám to moc času a můžete propojit dva počítače a pak hrát se svými přáteli, oba jsou daleko od nich a jsou s nimi v jedné místnosti.

    Metody pro vytvoření připojení jsou vhodné pro všechna Windows, od XP po Ten.

    dobrý čas trávení času hraním na počítači se pro velké množství lidí stalo normou. Pamatujete si, jak jste po procházení jedné hry za druhou chtěli víc a víc něco nového? Něco opravdu vzrušujícího a emocionálního. Bohužel se stává, že mnoho her, které právě vycházejí, nemá vynikající děj, atmosféru a další atributy kvalitního produktu. To hlavní, čeho však počítačové hry nikdy dokonale nedosáhnou, je Umělá inteligence, jehož chování dokonale kopíruje lidské chování. Myslím, že každý chápe, proč je tento úkol nemožný - každý člověk je jedinečný a je nemožné předvídat jeho činy ve hře.
    Proč si ale nad tímto problémem lámat hlavu, když můžete svého přítele pozvat na online bitvu? Koneckonců, nyní, ve věku špičkových technologií, je to snadnější než kdy jindy. Podívejme se, jak hrát počítačové hry přes lokální síť.

    Šachy