Nový projekt - Dotaleague.cz
i Zdroj: DOTA2.cz
Článek Nový projekt - Dotaleague.cz

Nový projekt - Dotaleague.cz

LadaB

LadaB

3. 4. 2017 19:27
Reklama
Ahoj, tady Láďa. Slyšíme se? 


Ne, bohužel to je jiný Láďa a to byl jeden cringe joik na úvod. Chtěl bych vám oficiálně představit můj projekt věnovaný této komunitě. Na úvod napíšu něco málo o vzniku, poté o vývoji a beta testu. Pak pokusím popsat jak funguje celý systém a jaké přináší výhody. Ti, které to nezajímá, si mohou přečíst alespoň informace o první sezóně na konci článku. Těm z vás, které nezajímá ani to, mohu už jen nabídnout pohled na noční zasněženou krajinu http://dotaleague.cz/welcome (ta krajina tam určitě je, ale protože je noční, tak není vidět).

logo

Projekt pro podporu a rozvoj CZ/SK Dota komunity unikátní svým dynamicky rostoucím prize poolem a plně automatizovaným systémem obsluhovaným boty. Chcete si zahrát s TOP hráči CZ/SK scény? A o peníze? Mambos, cranich, JC, lacek, sehny, SYM i tipek testují a podporují tento projekt také a mohou se objevit právě v tvojí hře!

Chci upozornit, že projekt je vyvíjen pouze mnou. Je to právě komunita, díky které se tento projekt může vypilovat. Neváhej a zahraj si taky.

URL: http://dotaleague.cz/

1. Vznik


Hodně z vás se ptá "Láďo, co tě přimělo udělat takový projekt pro takovou shit polorozpadlou komunitu?" a já vždy odpovím stejně a to protože minulost se nedá změnit. Nápad to nebyl můj. Těsně před vznikem projektu jsem hrál v týmu The Klan na http://dota2league.cz a náš kapitán XLM jednoho dne prohlásil větu: "Ta Skullova liga je tak nap*ču, Láďo měl bys udělat lepší." a já jsem odpověděl: "Ok." (Omlouvám se všem, kteří čekali lepší příběh, ale prostě to tak bylo.)

Další den (myslím, že to bylo 12. ledna) jsem začal a tím se dostávám k druhému tématu článku, k vývoji.

2. Vývoj


Tento nápad mě tak moc zaujal, že se mi po dlouhé době kromě honění rukou honilo něco i hlavou. Začal jsem základní kostrou a snažil se vymyslet základ pro design, který bych později mohl rozvíjet. Do toho mi XLM dával super rady ohledně systému. Něco byla vlastní myšlenka, něco inspirace z platformy Face.it. Také jsem se rozhodoval jaké technologie použít a jelikož se mi v té době zalíbil Python, chtěl jsem to zkusit udělat v něm. V Pythonu jsem předtím programoval dohromady asi 3 hodiny času a jsem dost velký začátečník, co se týče vývoje webu. Vybral jsem si Django framework a asi v půlce vývoje po měsíci intenzivní práce jsem zjistil, že tento framework není ideální na asynchronní práci a stálou komunikaci mezi serverem a klientem. Musel jsem si ho rozšířit o další balíček a celý projekt předělat pro websockety, na kterých teď běží chat spolu s matchmaking systémem.

Co vše používám:

Python, Django, Django-channels, Redis, TS3 server, nginx, uWSGI, ASGI, daphne

Po dvou měsících boje se všemi problémy jsem se rozhodl požádat komunitu o pomoc s doladěním problémů, kterých bylo požehnaně, ale stále to fungovalo nad moje očekávání. Věděl jsem, že budu potřebovat nějak hráče motivovat, aby ligu začali hrát, tak jsem požádal Darerrise o sponzorský dar a nabídl tak komunitě základní prize pool, který se navyšoval o příjmy reklam.

Díky této BETA sezóně jsem byl schopný dále debugovat řadu problému, hlavně co se týče matchmakingu, který sám nemám možnost pořádně otestovat. Dohromady jsem matchmakingu za tuto sezónu předělal více jak pětkrát a stále si nejsem jistý jeho funkčností. Dělám ale co můžu a jednoho dne doufejme bude lepší než ten od Valve. 4Head

Myslím, že o vývoji toho bylo dost a teď něco více k BETA sezóně.

3. BETA season


Za začátek sezóny a velkému rozjezdu patří mojé velké diky hlavně JohnnyCryptonovi, který na svém streamu ligu zviditelnil a umožnil mi otestovat všechno potřebné. První dny byly velmi problémové a vypadalo to, že si nikdo ani nezahraje. Později se mi podařilo překonat pár problémů a mohlo se začít hrát.

Sezóna trvala od 4.3. do 15.3. a v průběhu bylo mnoho změn, odstávek serveru a aktualizací. Přesto se může sezóna pochlubit zajímavými čísly. Odehráno bylo více jak 500 zápasů a z toho přes 200 jich bylo 5v5, zbytek 1v1. Online bylo současně i 68 uživatelů a hrály se současně čtyři 5v5 zápasy.

Tabulka umístěných

leaderboard

Prize pool

prize pool

Vyplacení odměn proběhlo v pořádku a bez zdržování. Za to můžou všichni vděčit ochotě Darerrise. V neposlední řadě musím poděkovat za zájem Sehnyho a Naze mi pomoct s algoritmem pro zpracování hráčů ve frontě a v poslední řadě všem, kteří i přes všechny komplikace hráli a snažili se projekt podpořit.


4. Systém


Web se dělí celkem na 9 sekcí: News, Prize pool, Leaderboard, Find match, Leagues, Hall of Fame, Statistics.

Pokusím se vám každou z nich stručně přiblížit a popsat.


4.0 První kroky

steam

Projekt komunikuje se SteamAPI a proto se je nutné k jeho používání přihlásit. Pokud si však chcete pouze něco prohlédnout na webu, stačí kliknout na některé z položek v menu.

Následně máte možnost v pravém spodním rohu webu se připojit do chatu, který vám umožní sledovat počet hráčů online a aktualizuje seznam právě hraných zápasů nebo počet hráčů ve frontě automaticky.

connect


4.1 News

Obsahuje novinky a poslední úpravy webu. Jak nečekané.


4.2 Prize pool

Prize pool se aktualizuje automaticky a není potřeba obnovovat stránku. Prize pool roste spolu s výdělkem webu ze všech dostupných zdrojů. Rozdělení odměny se vypočítává samo dle poměru počtu odehraných her a aktivních hráčů v daném módu hry. Každá vyšší liga má o 50% větší podíl té předchozí v momentě, kdy se v ní odehraje alespoň jedna hra. Každé lepší umístění má taktéž o 50% vyšší ocenění než předchozí.

Příklad toho, jak vypadá tato sekce můžete vidět v části, kde píšu informace ohledně BETA sezóny. 


4.3 Leaderboard

Tabulka nejlepších 10 hráčů v každé lize a módu. Neaktualizuje se automaticky jako tabulka s prize poolem a je nutné ji obnovit kliknutím na odkaz v menu v horní části webu. Data jsou v ní přepočítána po odehrání každého zápasu.


4.4 Find match

Zde najdete možnost příhlasit se do matchmakingu a také uvidíte seznam právě hraných her ve vaší lize.

Nový projekt - Dotaleague.cz
i Zdroj: DOTA2.cz

Sekce také obsahuje odpočet času do konce sezóny a informace o tom, zdali jste zabanovaní.


4.5 Leagues

Každý hráč má možnost jednou za sezónu změnit ligu pro každý mód zvlášt na základě splnění jednoho ze dvou požadavků. 

1. Větší SOLO MMR v Ranked systému od Valve než uvedený limit

2. Top 3 umístění v předchozí sezóně 

ligy

V případě první varianty je nutné mít zviditelněné MMR na profilu, aby je bot mohl zkontrolovat. Změna vašeho profilu se může projevit až po několika hodinách. Není chyba na straně webu. 


4.6 Hall of Fame

Zajímá vás kdo byl nejlepší předchozí sezónu nebo chcete být na vždy viditelní v tabulce? Tato sekce vám to umožní. Můžete přispět na chod serveru nebo se umístit první v jakémkoliv módu a lize a místo je vaše!

hall of fame



4.7 Statistics

Jak již z návzu vypovídá v této sekci naleznete jednoduché základní statistiky všech hráčů. Počet odehraných her, winrate, detaily o zápasech. Může si zobrazit i profily hráčů, kteří v zápase byli a zjistit, kdo z nich zápas abandonul.

stats


4.8 Blacklist

blacklist

Jednou z nejnovějších vychytávek je možnost blokovat hráče, kterého už nikdy nechcete vidět ve svém týmu.

Je to geniální řešení report systému a přínáší další super výhodu. Nejen, že si s tím člověkem již nezahrajete, ale máte ho možnost ještě obrat o body a vzít si zpět ty, které jste kvůli němu ztratili, protože se stále může objevit v neprátelském týmu!



4.9 Teams

Máte svůj tým a scrimujete? Nyní máte možnost oslovit nepřátelský tým a vyzvat je na hru v této lize! Nejen že si zahrajete a zatrénujete, ale můžete vyhrát i zajímavou částku. Týmove hry mají při výpočtu odměn 10-krát větší hodnotu než 5v5 MIX. 

team

Abyste mohli hru úspešně odehrát, musí váš tým mít 5 členů. Hledat týmový zápas může jen leader týmu. Jediný kdo musí být na webu a potvrdit zápas je leader. Do lobby už dostávají pozvánku všichni členové týmu.

Leader může měnit členy týmu kdykoliv chce za kohokoliv, kdo žádný tým nemá.

K dispozici je také velké tlačítko Disband nezbytné pro každý CZ/SK Dota tým.

Dále může leader týmu přídávat do kalendáře čas, kdy by měli zájem hrát. Každý uživatel na webu může tak v tabulce zjistit, kdy by bylo ideální přijít a ostatní týmy se mohou přízpůsobit, nejlépe přidat svůj tým do kalendáře na stejný čas a dorazit též.

kalendar

Týmový matchmaking při BETA testu nebyl nijak otestován (odehrálo se 0 her) a proto neznám jeho přesný stav funkčnosti. Při mém osobním testování bylo vše v porádku. Myslím, že za tak velkou odměnu to ale za zkoušku stojí.


4.10 Matchmaking

Teď když už znáte základní princip fungování webu se pustíme do detailů toho nejdůležitejšího.

Fronta funguje na základním principu "Kdo dřív přijde (a nemá bloknutých milion lidí nebo není milionkrát bloknutý), ten dřív hraje".

Pokud se najde dostatečný počet hráčů, vyskočí pro každého z nich výzva na potvrzení, že jsou připraveni hrát. Pokud kdokoliv výzvu nepotvrdí je penalizován na 5 minut. Když jsou všichni hráči připraveni na hru, po krátke animace se jim zobrazí tabulka hráčů hry a také jméno bota, který vám zašle pozvánku do lobby. Pokud žádný bot není k dispozici, zobrazí se na místě jeho profilu načítání a musíte počkat než se bot uvolní.


ts

Tabulka také obsahuje tlačitko, které vám umožní se jedním kliknutím připojit na TS do předem vytvořené roomky určené přímo pro váš tým.


V lobby má každý přidělený svůj slot dle tabulky viditelné na webu. Hráči mají 5 minut na připojení do lobby a svého slotu. 

Penalizace

Akce Minut
Nepotvrzení zápasu 5
Nepřipojení do lobby/slotu* 15
Opuštení probíhajícího zápasu* 60

* Vztahuje se pouze na módy: 1v1 SOLO, 5v5 MIX


Hráč nemůže hledat zápas do doby, než skončí ten, který právě hraje.

V případě, že se hraje zápas těsně před koncem sezóny, hra se stále započítá. Počítá se každá hra, která začala do poslední vteřiny sezóny.



4.10.1 Herní mód - 1v1 SOLO

V momentě, kdy jsou oba hráči připraveni v lobby na hru se objeví na webu tabulka s výběrem hrdinů.

Každý hráč má 20 sekund na výběr pěti hrdinů. 

Poté následuje banovací fáze. Po 10 vteřinách banuje první hráč.

Hráči se střídají v následujícím pořadí:

R -> D D -> R R -> D -> R -> D

Každému hráči zůstane 1 hrdina. Server následně vybere náhodně jednoho z nich, kterého musí oba hráči hrát. V případě, že tak neučiní a hráč si vybere špatného hrdinu, hra je "Free to leave". Hráč, který si vybral špatného hrdinu dostává mínusove body za prohru. Hráči se správným hrdinou se body nemění.

Žádná další pravidla toho módu ze strany ligy nejsou modifikovány a zůstávají takové, jak je má Valve nastavené. Jsou povolené runy, shrine, atd.


4.10.1 Herní mód - 5v5 MIX

 Hráč, který opustí (abandonuje) zápas v tomto módu dostává postih v podobě mínusových bodů za všechny spoluhráče v týmu. Na zbytku pak zbývá rozhodnutí, jestli chtěji pokračovat a pokusit se vyhrát nebo napsat "GG" a jít další. Body za prohru i výhru stále všichni dostávají.

Další možností tohoto módu je hlasování o změně typu lobby. Defaultní mód je CM. K dispozici jsou všechny "draftovací" módy ve hře. Se změnou musí souhlasit všichni členové lobby.

Příkazy: !vote help !vote cm|ad|cd|rd

!vote cd - Captains Draft
!vote ad - All Draft (Ranked All Pick)
!vote cm - Captains Mode
!vote rd - Random Draft


4.10.1 Herní mód - 5v5 TEAM

 Na tento mód se nevztahují žádná pravidla. Je na každém tymu se postarat o své spoluhráče a je nepodstatné řešit jejich opuštení zápasu.



5. Informace o první sezóně


Začátek: 5.4.2017 v 00:00

Konec: 1.5.2017 v 1:00

Základní prize pool: 6500,- Kč + přijem z reklam

Dostupné ligy: Bronze, Silver

Počet oceněných umístění: 8


Před touto sezónou proběhlo mnoho úprav a změn, které nebyly součásti BETA sezóny. Proto berte v potaz možnost objevení chyb a problémů, které znemožní hladké fungování ligy. Hrozně moc bych si přál, aby se tak nestalo, ale není v mých silách vše udělat na první pokus spravně. V některých případech jsou věci tak komplikované, že ani autoři python balíčků, které používám pro některé funkce v backendu nebyli schopní mi poradit s mým problémem.

Bude to spíše taková lepší beta sezóna v pokročilé fázi vývoje. Všechna data z předchozího testování budou smazána den před začátkem. Děkuji za pochopení.


Závěr


Do začátku sezóny web nemusí být vždy v provozu. Zítra dojde k čištení databáze a přidání reklam.

Projekt stále není dokonalý a nesnažím se ani tvrdit, že ano. I když bych si to přál. Pokud se setkáte s bugem, prosím nahlašte ho.

Veškeré dotazy, návrhy a připomínky můžete směřovat do mojí sekce na zdejším fórum: https://www.dota2.cz/forum/viewforum.php?f=51


Při psaní tohoto článku jsem se snažil projevit co nejméně autismu. Bohužel, narozdíl od Aprílu, který trvá jeden den, autismus bude trvat celý můj život. :-(



Reklama
Reklama

Komentáře

Nejsi přihlášený(á)

Pro psaní a hodnocení komentářů se prosím přihlas ke svému účtu nebo si jej vytvoř.

Rychlé přihlášení přes:

Google
Reklama
Reklama