Zpět na článek

Diskuze: Ze zákulisí vývoje počítačových her 1.

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:

Uživatel bez registrace
Uživatel bez registrace
Level 1 Level 1
21. 7. 2008 11:24

Komentáře tohoto uživatele máš zablokované.

Zajimave. Jednak clanek jako takovy, a jednak reakce lidi.

Clanek je napsany opravdu slusne a i kdyz s nekterymi nazory a zavery nesouhlasim, rozhodne poskytuje spoustu materialu pro uvahy pousti se odvazne nekam, kam se mnoho novinaru zatim neodvazilo.

Zajimave jsou i reakce lidi. Je to sice asi zamerenim serveru, ale resi se tady hlavne programovani (v cem, jak, atd...). Ovsem programovani je opravdu jen mala cast herniho vyvoje. Tezko si dovedu predstavit, ze by v soucasne dobe dokazal dobrou hru udelat jeden clovek. Pro uspesny vyvoj hry totiz musite zvladnout ctyri zakladni dovednosti - napad/design, grafika/estetika, programovani a management/obchod (a to jsem jeste zanedbal takove "drobnosti" jako animace a ozvuceni). A to si prave malo lidi uvedomuje. Tatam je doba, kdy mel sikovny programator napad na tetris, naprogramoval ho a vypustil do sveta. S tim si proste v soucasne dobe nevystacite. Dnes funguji herni studia na zaklade pomerne uzke specializace. Uz jen programatori jsou rozskatulkovani do spousty kategorii. Nekdo programuje render, shadery, dalsi fyzyku nebo AI. Nekteri vytvareji jadro hry, jini vyrabeji nastroje na spolupraci s nastroji grafiku, a dalsi naprosto nezbytne nastroje/editory pro scriptery, grafiky, animatory, ...

Mnohem jednodussi cesta jak se dostat k vyvoji her, je najit si misto v jednom z mnoha ceskych studiich. Ja vim, muze vam to prijit tak, ze ztratite nezavislost, ze vam nekdo bude rikat co a jak mate delat. Ano, castecne mate pravdu, ale podivejte se na to z druhe strany: Dostanete sanci spolupracovat s lidmi, kteri jiz nejakou hru udelali, budou s vami sdilet sve zkusenosti a nenechaji vas jit slepymi cestami, ktere uz byly davno odhaleny. A vyvoj her je tvoriva prace - pokud budou vasi kolegove chytri, poslechnou si vase napady a peclive je zvazi, budete mit sanci tvorit.

A dalsi vase vyhoda je v tom, ze v Cechach stale jeste neni dost hernich vyvojaru, studia stale hledaji dalsi kolegy. Protoze ceska herni skola, diky projektum treba Bohemky nebo Illusionu, ma ve svete dobry zvuk a vydavatele jsou stale ochotni investovat do projektu vyvijenych v Cechach.

No, a pokud zjistite, ze to neni nic pro vas, stale muzete odejit a zkusit to na vlastni pest. :)
- eleven

Uživatel bez registrace
Uživatel bez registrace
Level 1 Level 1
22. 7. 2008 00:08

Komentáře tohoto uživatele máš zablokované.

@Uživatel bez registrace Tak ako bolo spomenute.Dnes hry niesu iba o programovani.Prakticky kazdy engine pouziva kopec middlewaru, FMOD kde sa podivam, speedtree a mnohe dalsie.Prakticky uz spolocnosti ani engine neprogramuju od zakladu ale kupia nieco hotove, do toho dokupia jednotlive casti ktore riesia specificky problem a potom sa to odladuje.Skoro by sa dalo povedat ze co sa tyka programovania tak hry uz postupili na uroven aplikacii/web aplikacii.Kupi/pouzje sa framework ktory sa potom upravuje na dane poziadavky.Ale to tu uz bolo spomenute.

Skor som chcel poznamenat ze momentalne su rovnako ak nie viac dolezity grafici,animatory,designary.Dnesne hry su nenazrane na assety a do buducna to bude asi len horsie.Vyssie rozlisenia,vyssie detaily si vyzaduju vecsie kvantum dat.Hi res textury,modely, rozanimovane vsemozne fazy atd.Naprogramovat by sa mozno este dala aj hra v malom teame ale uz graficky sa dostat na slusnu uroven je bez armady profesionalnych grafikou prakticky nemozne.

Z hier sa stal velky obchod so vsetkymi kladmi aj zapormi.
- nemo

Uživatel bez registrace
Uživatel bez registrace
Level 1 Level 1
19. 7. 2008 13:52

Komentáře tohoto uživatele máš zablokované.

už se moc teším na pokračování, to je přesně to na co uz dlouho čekám:) DIKY!
- Ondřej Staněk

Uživatel bez registrace
Uživatel bez registrace
Level 1 Level 1
19. 7. 2008 18:47

Komentáře tohoto uživatele máš zablokované.

@Uživatel bez registrace Tohle je přesně ten článek, který sem si chtěl přečíst, jen jsem o tom nevěděl, takže sem si ho ani nemoh najít :-D
Vždy mě ale zajímalo, jak to je s hrami. Těším se na pokračování. Ono, nadávat na to jak je jaká hra blbá a že to a to mohlo být lepší je sice moc pěkný, ale od doby co pracuji jako konstruktér, tak soucítím s vývojáři her. Čím větší projekt, tím je z toho po chvíli člověk uplně v pr*eli.
- Michal Ondráček

Uživatel bez registrace
Uživatel bez registrace
Level 1 Level 1
19. 7. 2008 20:43

Komentáře tohoto uživatele máš zablokované.

@Uživatel bez registrace Horší je, když děláš na hře, už při vývji víš, že za nic nestojí a doufáš, že si toho nikdo nevšimne a prodá se aspoň milion kusů :D
- [CZ]Hunter

Uživatel bez registrace
Uživatel bez registrace
Level 1 Level 1
19. 7. 2008 19:44

Komentáře tohoto uživatele máš zablokované.

@Uživatel bez registrace Já už mám takovou deformaci, že když něco hraju, místo abych se plně věnoval příběhu, pořád přemýšlím a vypočítávám, kolik to dalo práce, kolik tohle dělalo lidí, jak to udělali apod. :-) No jo, začínat něčemu rozumět není vždycky + . :-D

Jinak bezva článek opravdu se rovněž těším na pokračování.
- Aros

Uživatel bez registrace
Uživatel bez registrace
Level 1 Level 1
19. 7. 2008 23:06

Komentáře tohoto uživatele máš zablokované.

@Uživatel bez registrace @Michal Ondráček: Nemyslel sem nic konkrétního, jen že si vzpomínám, že někdo z Pterodonu říkal, že už když dělali Vietcong 2, tak jim to přišlo nějaký divný. Graficky lepší než jednička, rozsáhlejší mapy,lepší nepřátelé ... ale vlastně z toho nikdo neměl nějak moc dobrej pocit.
A skončilo to tak, že ta hra byla v podstatě propadák a vedla ke krachu Pterodonu (respektive ke sloučení s IS).
- [CZ]Hunter

Uživatel bez registrace
Uživatel bez registrace
Level 1 Level 1
19. 7. 2008 21:54

Komentáře tohoto uživatele máš zablokované.

@Uživatel bez registrace @Michal Ondráček: Crysis je vynikající hra. Sice se zprasenou optimalizací, ale nanosuit je skvělý oživení monotónních stříleček:)
- Ace

Uživatel bez registrace
Uživatel bez registrace
Level 1 Level 1
20. 7. 2008 10:12

Komentáře tohoto uživatele máš zablokované.

@Uživatel bez registrace @[CZ]Hunter: Tak o Crysisu se zase radši přestaneme dohadovat. Je vidět, že jsou dva typy lidí. Jedni Crysis rádi hrajou a líbí se jim, druzí (jako já) se jim pouze líbí grafika ale hratelnost a příběh hledáme marně.
Nanosuit je jediná věc, proč jsem tu hru dohrál. Jo a taky proto, že jsem čekal až přijde nějaká zajímavá věc v ději.

Vietcong 2 - je pravda, že jedničku sem hltal, dvojka už mě tolik nevzala, ale rád si jí občas pustím, kde jinde potřílet šikmoočky :-)
- Michal Ondráček

Uživatel bez registrace
Uživatel bez registrace
Level 1 Level 1
19. 7. 2008 22:09

Komentáře tohoto uživatele máš zablokované.

@Uživatel bez registrace @Ace: Crysis hra? sry ale je to trapne a nudne jako sledovani benchmarku, a vlastne to je jedine k cemu se to hodi, na porovnani kdo ma nabusenejsi masinu... hry uz davno nejsou o toho kdo prinese vetsi zabavu ale o tom kdo stvori pozadavkove prehnany nesmysl...radsi ani nebudu rikat kdy jsem si schuti zahral nejakou novinku ktera by me bavila a udrzela by me u monitoru na delsi dobu, ale bylo to uz hodne davno...
- osprey

Uživatel bez registrace
Uživatel bez registrace
Level 1 Level 1
19. 7. 2008 22:06

Komentáře tohoto uživatele máš zablokované.

@Uživatel bez registrace @Ace: V cem a proc ma Crysis "zprasenou" optimalizaci? Nikdo, kdo nestudoval zdrojaky, nemuze s urcitosti rici, jestli je neco zprasene nebo ne.
Tento oblibeny nazor se pravdepodobne traduje z toho duvodu, ze si lide predstavuji, ze kdyz je hra 2x tak narocnejsi nez konkurence, ze musi 2x lepe vypadat, jinak je jeji optimalzace "zprasena".
Coz samozrejme neni pravda.
Vubec by bylo zajimave udelat rozhovor ci clanek o vyvoji her se zamerenim na hw, jak probiha optimalizace a jake jsou realne moznosti vyvojaru z hlediska rozpoctu, jak se voli cilovy hw atd. Aby se predeslo ruznym naivnim prohlasenim o linych vyvojarich a podobne.
- glowi2

Lachtánek
Lachtánek
Level 1 Level 1
22. 5. 2010 21:47

Komentáře tohoto uživatele máš zablokované.

@Uživatel bez registrace @Aros: [quote=Aros]Já už mám takovou deformaci, že když něco hraju, místo abych se plně věnoval příběhu, pořád přemýšlím a vypočítávám, kolik to dalo práce, kolik tohle dělalo lidí, jak to udělali apod. :-) No jo, začínat něčemu rozumět není vždycky + . :-D

Jinak bezva článek opravdu se rovněž těším na pokračování.[/quote]

To ja zas u filmu nebo treba u televiznich novin, jelikoz se zajimam o strihani videa a grafikou.. :)

Uživatel bez registrace
Uživatel bez registrace
Level 1 Level 1
30. 7. 2008 16:33

Komentáře tohoto uživatele máš zablokované.

@Uživatel bez registrace @Michal Ondráček: No V2 jsem nehrál, ale co vím, tak nejvíc se mu vyčítalo, to co mne vadilo už v jedničce, i když tam to bylo únosný, a to že AI vlastně byla dělaná jen skripny a tím, že počítač věděl, kde hráč je, takže na vyšší obtížnost nešel překvapit
- Jaroslav Brümmer

Uživatel bez registrace
Uživatel bez registrace
Level 1 Level 1
21. 7. 2008 17:06

Komentáře tohoto uživatele máš zablokované.

@Uživatel bez registrace @Michal Ondráček: Jo, přesně... Jednička se mi velmi líbila, než jsem narazil na jakýsi podělaný bug, přes který se nešlo dostat a hrát znova se mi to nechtělo. Dvojku jsem akorát nainstaloval a zase odinstaloval :-(
- Aros

Uživatel bez registrace
Uživatel bez registrace
Level 1 Level 1
20. 7. 2008 17:57

Komentáře tohoto uživatele máš zablokované.

@Uživatel bez registrace @glowi2: jednoduche... kdyz ta hra pojede na pocitaci.. kterej poplacas do kupy za 20K(ne pocitac za 10 a k tomu za 10 hyper mys ze zlata), je hra v poradku. A stejne tak byl i Crysis. Otazka optimalizace. V Defaultu na pocitac za tech 20K. Ale proc by mela bejt hra(pitoma strilecka se zamerenim na vizualno) behat na nejaky sragore. Neni potreba tam poslouzi plno starsich her. WOW, SIMS,SPORE, to jede i na relativne slabejch pocitacich , protoze grafickej vykon tam neni moc potreba, protoze ta hra je vo necem jinem. POdle mne kdyz ma nekdo na to koupit si monitor 24'' s resolution 1920*1600 mel by mit taky na poradnou grafiku. Remcat v tomhle a vetsim formatu na to ze mam 256 MB grafiku a vo no se mi to cuka. Tim se nema cenu zabejvat. Napr PS3 XBOX360 je presne specifikovanej kus zeleza a da se na to optimalizovat do mrte.Ale na PC. Kazdy je jiny. Jinej pomer mezi RAM/CPU/GPU/VRAM/ZVUK tak na 1Mil moznosti se dost blbe optimalizuje. Proste nezbejva nez odhadnout to optimum pro cas vydani a na to to nastavit.
- samboush

Uživatel bez registrace
Uživatel bez registrace
Level 1 Level 1
20. 7. 2008 14:22

Komentáře tohoto uživatele máš zablokované.

@Uživatel bez registrace @glowi2: Víš, jak pracují vývojáři v Cryteku už od dob Far Cry? Oni dělají engine tím způsobem, že nakoupí ty úplně nejnovější technologie, splácají to dohromady, vypadá to úžasně, je to ale prasárna. Potom se teprve starají o nějakou optimalizaci. Tohle je potvrzený fakt a nechci jim kvůli tomu nějak nadávat, je to jejich věc, ačkoliv to ve výsledku dopadne tak, že jejich hry si normální člověk vychutná až několik let po vydání.
- Jindy

Uživatel bez registrace
Uživatel bez registrace
Level 1 Level 1
19. 7. 2008 22:11

Komentáře tohoto uživatele máš zablokované.

@Uživatel bez registrace @glowi2: "zprasenou optimalizaci" si já osobně představuju tak, že vývojáři se buď dostatečně nesnaží, nebo do hry přidávají takový featury, který v podstatě znemožní jejich použití na jakémkoliv v současnosti dostupném HW. Příklad: částicovej efekt kterej sice vypadá pěkně - super - ale v jeho průběhu mi klesne FPS na 13 protože ani nejsilnější prodávanej procesor/GK ho nestíhá spočítat.

Prostě pokud vím že na to HW nemá, radši něco málo uberu aby to vůbec jelo. I když můj osobní názor je že je to doopravdy málo optimalizovaný(úpravy kódu, efektivnější postupy), protože "zas tak super" to teda fakt nevypadá.
- Ace

Uživatel bez registrace
Uživatel bez registrace
Level 1 Level 1
21. 7. 2008 22:44

Komentáře tohoto uživatele máš zablokované.

@Uživatel bez registrace @Ace: Můj osobní názor na optimalizaci je takový že vývojáři ne že jsou zhnilí optimalizovat hru ale myslím že každá dnešní hra by šla udělat tak aby nebyla nijak moc náročná,samozřejmě že jde např. o použitý Shader model atd. ale hry si myslím že není až takový problém optimalizovat tak aby je rozjeli i slabší stroje ale proč by to vývojáři dělali?vždyť to jde jedno s druhým,vývojáři HW taky musí z něčeho žít.Jde o koloběh různých věcí: herní engine vs HW.....samozřejmě s vyšším výkonem HW se otvírají nové možnosti herních enginů.Všechno je to ale marketing o kterém běžný smrtelník nemá ani páru.Kdyby vývojáři jak HW tak enginů nechtěli aby byli jejich výtvory výkonější a u hry náročnější tak to prostě nedělaj,všichni to děláme kvůli penězům.Vemte si takový HL2, ten na to jak pěkně v té době vypadal byl možný rozjet na kdejakém krámu bez trhání...ale taky to byl projekt za obrovské peníze tak si na něm vývojáří dali záležet
- romis

Uživatel bez registrace
Uživatel bez registrace
Level 1 Level 1
19. 7. 2008 23:03

Komentáře tohoto uživatele máš zablokované.

fajn clanok :P
ako sa pohybuju ceny tych enginov? napr graficke ako cryengine 2,ue3 a tak? :)
- sorry nie

Uživatel bez registrace
Uživatel bez registrace
Level 1 Level 1
20. 7. 2008 00:06

Komentáře tohoto uživatele máš zablokované.

Zajimave, tesim se na dasli dil, jinak pro nadšence co umí C++/C#/delphi nebo VB.NET je tu truevision3d engine, kterej je pro nekomerční použití zdarma a z free enginů se mi jeví jako nejlepší :-) a jedna komerční licence vyjde asi na $350. Nevim, jestli sem muzu hodit link, ale zkuste googlit :-) klíčový slovo je truevision3d :-)
- Jiří Popsíšil

Uživatel bez registrace
Uživatel bez registrace
Level 1 Level 1
20. 7. 2008 02:20

Komentáře tohoto uživatele máš zablokované.

Dobrý den,
rád bych se začal učit nějaký programovací jazyk. Psal bych jak běžné aplikace, tak i jednoduché hry. Ideální by bylo kdyby to byl jazyk široce použitelný a praktický. Znalí věcy - poraďte prosím který, nebo které jazyky by byly vhodné a na co je který nejlepší(aspoň zhruba). Uvažuju o C++, nebo Jave. Děkuji za každou odpověď.

P.S. V jakých jazycích jsou psané dnešní hry jako např. Crysis, CS:Source, CoD a WoW?
Ještě jednou děkuji.
- Honza

Uživatel bez registrace
Uživatel bez registrace
Level 1 Level 1
20. 7. 2008 09:13

Komentáře tohoto uživatele máš zablokované.

@Uživatel bez registrace No, dnešní moderní enginy jsou v drtivé většině psané v C++. Máme tu sice C# a managed Direct3D, ale to jaksi není to pravé ořechové. Co se 3D týče na Javu zapomeň.
Nezapomeň ale, že ani jazyk ani perfektní znalost Direct3D a pochopení práce grafického čipu (shaderů, atd..) ti engine "nevykouzlí". Na to je potřeba hlavně setsakramentsky dobrá znalost matematiky a fyziky.

Ale zase na druhou stranu pro obyčejné okenní aplikace je C# (WinForms) nebo Java (Swing) jednodušší než C++, ve kterém buď jedeš přímo ve WinAPI, popř. MFC (což značně ulehčuje cestu).

- DavesMan

Uživatel bez registrace
Uživatel bez registrace
Level 1 Level 1
20. 7. 2008 18:10

Komentáře tohoto uživatele máš zablokované.

@Uživatel bez registrace Tak pokud delas neco pro Directx, tak zas tak velkej rozdil neni jestli to delas v C# nebo C++, na tom vykonu ve 3D se to moc nepozna. teoreticky de udelat hra v C# a nektere casti , muzes optimalizovat a napsat to v C++ , v ASM a v tom C# to jen vyuzivat. Duvod pouzivani C++ neni ani tak skutecnej vykon , ale spis nasledujici porting na neco jineho nez PC..ale pokud nekdo vyvaja hru jen pro PC muze pouzit C#. De spis o to klicove navrhnout, vrstvy aplikace, co je samotna logika hry, co primo komunikuje se systemem, rozhrani na grafickou implementaci atd. Proste moduly kde pak clovek prepise jeden kterej leze do systemu,nebo graficke rozhrani. Proto ty multi platform engines, pouzivaj napriklad primo Api ovladacu grafiky. A napisou se moduly pro HW , konzole atd.
- samboush

Uživatel bez registrace
Uživatel bez registrace
Level 1 Level 1
20. 7. 2008 20:35

Komentáře tohoto uživatele máš zablokované.

@Uživatel bez registrace @samboush: Plus-minus se s tim da souhlasit, napr. vykon ve 3D je pro C# a C++ temer identicky, nebot Managed DirectX neni nic jineho nez wrapper na DirectX, takze se akorat presmeruji volani vsech metod, coz je pri rychlosti dnesnich procesoru a pri relativne malem mnozstvi techto volani naprosto zanedbatelne.

Jediny problem C# vznika v okamziku, kdy je aplikace velice narocna na pamet. Coz jsou typicky dnesni AAA tituly, ktere bezne sezerou 2GB RAM. V takovem pripade vetsinou generacni GC v .NETu docela dostava zabrat. Proto se C# dnes typicky pouziva na "mensi" hry, ktere jeste nejsou tak moc pametove narocne, ale limitujici to rozhodne neni, protoze nejakych 512MB RAM je porad dost na spoustu pekneho obsahu.

V C# se da samozrejme pouzit i vice pameti, ale pak to chce hodne dobrou alokacni strategii (ktera je teda potreba i v C++, ale tam jde zas o trochu neco jineho), aby GC neovlivnoval frame rate.

Jinak samozrejme plati, ze napr. kombinace C# a C++ (prip. ASM) je vynikajici, prip. je C# vhodne rovnou pouzit jako scriptovaci jazyk.

2 HONZA: Celkove pro zacatek programovani her doporucuju spise C++, pokud se vynechaji sablony nebo aspon jejich slozitejsi aplikace, pak se jedna v podstate o primitivni jazyk. Zaroven se z nej clovek snadno preorientuje na C# nebo Javu. Pro zacatek je samozrejme i C# dobry, v nekterych ohledech je ale C# 2.0 (resp. 3.0) uz docela slozity, resp. zavadi prilis mnoho konstrukci, ktere jsou sice velmi vyhodne pro praci, ale zacatecnika mohou zmast. Nicmene vyhodou je zase dostupnost vynikajiciho free vyvojoveho prostredi v podobe Visual C# Express. S takovym nastrojem je pak programovani opravdu zabava :)
- Tom

Uživatel bez registrace
Uživatel bez registrace
Level 1 Level 1
21. 7. 2008 20:28

Komentáře tohoto uživatele máš zablokované.

@Uživatel bez registrace @Tom: Co treba volat GC.Collect() po kazdem spocitanem framu? Nebo i v mezifazich... Imho GC neni problem obzvlast u multicore platforem.
- polygon

Uživatel bez registrace
Uživatel bez registrace
Level 1 Level 1
20. 7. 2008 22:18

Komentáře tohoto uživatele máš zablokované.

@Uživatel bez registrace @Tom: tak urcite de o to jak si clovek navrhne ty data.Tzn vim co budu a v jakym meritku potrebovat tak si vytvorit buffery pri startu nainicializuju a pak uz pouzivam pro ukladani hodnot. Ale pokud pri praci s daty ktery jsou virtualni a probiha tam vice inicializace a destrukce (jaka koli pro hru naprogramovana chache), tak napriklad je to dobry to nechat bezet v jinym threadu a nenechat GC delat si to jak chce ,ale praci GC alespon castecne ridit tak jak potrebuji. Napriklad veci destruhovat prubezne a nenechat to jen na jednou za cas. Tak se da to tak nejak optimalizovat.
- samboush

Uživatel bez registrace
Uživatel bez registrace
Level 1 Level 1
21. 7. 2008 20:49

Komentáře tohoto uživatele máš zablokované.

@Uživatel bez registrace @polygon: To opravdu neni dobry napad volat takto casto GC :) Pokud si vzpominam, tak v nejakem clanku sem cetl, ze by se GC.Collect nemelo v prubehu aplikace volat uz vubec, protoze to ovlivnuje algoritmy pro urcovani, kdy uklizet pamet. Doporucene je volat GC.Collect napr. pri zacatku aplikace (ve hre treba po zacatku levelu), kdy se provede jednorazovy uklid, ale pak uz by to mel zvladnout vlastni algoritmus v ramci .NET frameworku.

Jinak s tim GC na multicore to je prave naopak, v okamziku kdy se rozbehne GC, tak se ostatni vlakna musi blokovat (minimalne v prvni fazi, kdy se prohledavaji reference objektu ... casto ale i ve fazi preusporadavani objektu v generacich GC), takze paradoxne tomu multicore system moc nepomuze, protoze vsechna vlakna cekaji.
- Tom

Uživatel bez registrace
Uživatel bez registrace
Level 1 Level 1
21. 7. 2008 17:17

Komentáře tohoto uživatele máš zablokované.

@Uživatel bez registrace @samboush: No prostě pořádné věci(které, pokud nejsi úplně geniální nikdy neuděláš sám) se dělají v C++. Pak je tu Pascal, který je jednoduší(viz Delphi, které jde v usnadnění až na samé hranice, kam to jen jde), ale výsledný kód je tak o 10% pomalejší než v C++, záleží na aplikaci. Je dobré používat různé komponenty třetích stran, ale zase pozor - ty jednoduché na použití bývají omezené, nebo jsou velmi málo výkoné. Hry třeba ve Flashi zvládne každý, ale zase to není 3D... Jinak 3D programování je oproti 2D extrémě složité a bez hlubšího studia to normální člověk nezvládne.

Dnešní velké hry jsou v podstatě všechny v C++, já znám jen jednu vyjímku - to bylo Original War, která byla udělána právě v Delphi. Casual se dělají ve všem možném. Tam záleží co ti sedne.
- Aros

Uživatel bez registrace
Uživatel bez registrace
Level 1 Level 1
21. 7. 2008 21:15

Komentáře tohoto uživatele máš zablokované.

@Uživatel bez registrace @Tom: GC.Collect by se volat nemelo vubec s tim souhlasim, ale time critical aplikace jsou vyjimka :) Vydim to asi tak ze jsou dve moznosti. Volat GC synchronne s fps, nebo si napsat vlastni GC.
Pokud jde o multicore, nemate pravdu, tedy imho. Prohledavani referenci nenarusi beh threadu, krome toho ktery provadi uklid a to je novy thread v MTA prostredi. Pri cteni poctu referenci objektu by nemelo dochazet ke kolizi, protoze jedine cislo, ktere GC zajima je 0 a kdyz je jednou 0 uz se nemuze zmenit. Neni tedy treba zamykani. Ale treba se pletu :)
- polygon

Uživatel bez registrace
Uživatel bez registrace
Level 1 Level 1
21. 7. 2008 20:35

Komentáře tohoto uživatele máš zablokované.

@Uživatel bez registrace @Aros: No taky jde o to ktera cast hry se dela v cem. Engine se treba pise v C++, ale engine dela jen urcita cast hry. Zbytek jsou skripty a ty muzou byt v cemkoli.
- polygon

Uživatel bez registrace
Uživatel bez registrace
Level 1 Level 1
21. 7. 2008 23:58

Komentáře tohoto uživatele máš zablokované.

@Uživatel bez registrace @polygon: No s tim GC v .NET, stejne jako v Jave, je to tak, ze neni zalozeno na pocitani referenci, ale na tradicnim pristupu mark-and-sweep a tam je prave nutne vsechna vlakna pozdrzet (alespon profazi MARK), GC se pousti ve svem vlastnim vlaknu automaticky a ostatni vlakna zablokuje vzdy.

Konkretne se o tom zminuji primo na MSDN v tomto clanku o GC:

http://msdn.microsoft.com/en-us/library/s5zscb2d(VS.80).aspx

Nicmene koukal sem na popis GC v .NET 3.0 a tam uz ta zminka chybi, takze ji tam bud zapomeli napsat nebo se to zmenilo :) Nicmene spis myslim ze to plati i pro .NET 3.0, sice GCs nejsou oblast meho zajmu, ale nezaslechl sem nic o zadne nove lepsi strategii nez mark-and-sweep.

Jinak fungovani GC v .NET a obecne techto veci je pekne popsane v knize Pro C# 2005 And The .NET 2.0 Platform (nejlepe posledni vydani, mam treti), pripadne se da dohledat na webu spousta clanku, dobre je treba

http://www.codeproject.com/KB/dotnet/GarbageCollectionOverview.aspx
nebo
http://msdn.microsoft.com/en-us/library/ms973837.aspx

ktery se sice tyka .NET 1.1, ale vysvetluje fungovani taky pekne.
- Tom

Uživatel bez registrace
Uživatel bez registrace
Level 1 Level 1
21. 7. 2008 20:42

Komentáře tohoto uživatele máš zablokované.

@Uživatel bez registrace @polygon: Skripty jsou pro hru napsanou v C++ nejlepsi asi pres Lua, obcas se pouziva i Python nebo pres Java pres JNI, ale ta Lua je dnes pro C++ nejlepsi volbou, protoze je nativne psana v C, takze je to rychle a da se nalinkovat primo do kodu.

Jinak samozrejme nektere spolecnosti pisou svoje vlastni skriptovci jazyky jako napr. QuakeC od IdSoft, ktery je vice nez povedeny.
- Tom

Uživatel bez registrace
Uživatel bez registrace
Level 1 Level 1
22. 7. 2008 11:47

Komentáře tohoto uživatele máš zablokované.

@Uživatel bez registrace @Tom: Tak to vypada, ze GC je schopen pracovat opravdu paralelne. Zalezi na poctu jader v PC. viz treba [URL=http://blogs.msdn.com/clyon/archive/2004/09/08/226981.aspx]Chris Lyon's blog[/URL]
To znamena, ze uklizeni je dnes spise problem vykonu a mnozstvi pameti, nez ze by zpusoboval "cukani".
Strategie GC viz [URL=http://en.wikipedia.org/wiki/Garbage_collection_(computer_science)]wikipedia[/URL]
- polygon

Uživatel bez registrace
Uživatel bez registrace
Level 1 Level 1
22. 7. 2008 12:49

Komentáře tohoto uživatele máš zablokované.

@Uživatel bez registrace @polygon: Ano paralelne GC schopen pracovat je, ale pouze v ramci sve cinnosti, ne vzhledem k aplikaci. Konkretne v .NETu existuje ten serverovy typ GC, ktery vytvori vice virtualnich heapu v ramci jednoho heapu a ty pak spravuje pomoci jednotlivych vlaken, takze jak alokace, tak uklid probiha pekne paralelne. Nicmene stejne porad plati, ze pri uklidu se musi vlakna aplikace zastavit. Je to logicke, protoze se musi projit cely strom objektu na heapu a oznackovat je, nasledne je pak nutne je prekopirovat a nereferencovane objekty vynechat. To kopirovani znamena i zmenu adres objektu, coz vyzaduje prave pozastaveni aplikacnich vlaken.

Samozrejme ze strom objektu lze opet prochazet paralelne, kopirovat objekty take, navic se da urcite paralelizovat prace v jednotlivych generacich GC pokud se provadi plny GC. Nicmene aplikace musi na urcitou dobu zastavit a cekat.

Mozna te zmatnul ten pojem Concurrent GC, ale tam je to trochu nepresne vyjadrene. Znamena to pouze to, zda se bude na single-core stroji poustet GC ve vlaknu aplikace nebo v samostatnem vlaknu (coz je defaultni volba). Samozrejme soubezny beh je vyhodnejsi, protoze ikdyz GC pozdrzi vykonavani aplikacnich vlaken, tak ne po celou dobu behu GC je nutne zastavovat beh aplikace.

Kdyztak doporucuju nekde sehnat tu knizku jak sem zminoval nahore a tam si precist kapitolu o zivotnim cyklu objektu a praci GC, tam je to popsane celkem rozumne.
- Tom

Uživatel bez registrace
Uživatel bez registrace
Level 1 Level 1
20. 7. 2008 08:27

Komentáře tohoto uživatele máš zablokované.

@Uživatel bez registrace Ahoj,

moje doporučení je: Nauč se víc jazyků. A je asi jedno, kterým začneš.

1. Na různé problémy se hodí různá řešení.
2. Snáz se naučíš porozumět základním pricipům, táhnoucím se napříč (téměř) všemi jazyky.
3. Nikdy nevíš, který programovací jazyk bude odnesen proudem času.

- Spok

Uživatel bez registrace
Uživatel bez registrace
Level 1 Level 1
20. 7. 2008 09:20

Komentáře tohoto uživatele máš zablokované.

Super článek.
Třeba si teď už budeme cenit práce lidí a nebudeme hry jen stahovat :) . . . .
- Milan Krejzlik

Uživatel bez registrace
Uživatel bez registrace
Level 1 Level 1
20. 7. 2008 23:08

Komentáře tohoto uživatele máš zablokované.

@Uživatel bez registrace No jak rikam, chce to poradnou alokacni strategii, ktera je ale v ramci prostredi s GC docela problematicka. Precijen GC nelze jakkoliv deaktivovat, takze v pripade tech velkych dat je to problem. Ono ve hrach s rozsahlym hernim svetem, kde dochazi k postupnemu nacitani obsahu za behu je to vazne s tou pameti problem.

V C++ kodu hry se typicky pouziva vlastni alokator pro pamet (bud rucne napsany nebo je spousta dobrych jiz vytvorenych), ktery naalokuje na zacatku pamet jako ohromny blok a z toho se pak ukusuje, nejlepe se jeste takovy vlastni alokator optimalizuje pro ruzne velikost datovych bloku apod. Pro specialni datove typy jako retezce se pak vyuziva jeste specializovany alokator. Obecne je prace s pameti jedna ze zakladnich veci, ktere mohou urcit jak moc vykonna aplikace nakonec bude. V C# je jedna z moznosti pouzivat intenzivne unsafe mod a normalne si hrat s pointery, ale to uz zas trochu komplikuje situaci.
- Tom

Uživatel bez registrace
Uživatel bez registrace
Level 1 Level 1
20. 7. 2008 23:11

Komentáře tohoto uživatele máš zablokované.

@Uživatel bez registrace Sakra, toto mi trochu uskocilo:)

Melo to patrit k prispevku:

RE: PORAĎTE PROSÍM! Napsal: samboush Datum: 2008-07-20 22:18:39
- Tom

Uživatel bez registrace
Uživatel bez registrace
Level 1 Level 1
20. 7. 2008 10:17

Komentáře tohoto uživatele máš zablokované.

@Uživatel bez registrace Jj taky si myslím, že podobný články o tom, jak složitý a finančně náročný je hru udělat, že lidé co to dělají to nemají lehký ani se svým zaměstnavatelem... jsou přínosnější pro "nepirátění" než neustálý přemlouvání a přesvědčování Jana Stacha (DDW).
- Michal Ondráček

Uživatel bez registrace
Uživatel bez registrace
Level 1 Level 1
20. 7. 2008 20:47

Komentáře tohoto uživatele máš zablokované.

Dalsi duvod proc kupovat original, aspon obcas
Jinak super clanek
- laDyN7

Uživatel bez registrace
Uživatel bez registrace
Level 1 Level 1
20. 7. 2008 21:21

Komentáře tohoto uživatele máš zablokované.

Nádhera,od malička si razím cestu že budu dělat hry.Od 4 hraju,každé dva roky kupuju nový stroj,píšu scénaře a design documenty. Zatim mám úspěch,dostal jsem se na školu ktera mě naučí vtomhle chodit (C++),takže se těším na svoji budoucnost.

Je to obtížné se prosadit,ale podle mě hra neni vubec o technologiii ani o grafice,ale o stylu.Gdo hrál GTA Vice City,carmageddon,prehistorika,resident evil,bioshock ví o čem mluvím...tyhle hry byli založeny na stylu a proto měly uspěch.

myslím si že pokud vývojář vsadí vše na souhru a atmosféru vloží do toho kousek sebe a místo nějakých hi-tech features použije funkce ktere vytvoří osobitý styl tak ta hra bude o5 tím o čem hry bývali.A přesně takovým smrem chci jít já.

Akorát se chci zeptat...přesně sem nepochopil výše uvedenou tezi že to chce setsakramensky dobrou znalost matiky a fyziky mužete mi to někdo objasnit? díky
- L@nce! Vance Dance

Uživatel bez registrace
Uživatel bez registrace
Level 1 Level 1
20. 7. 2008 22:37

Komentáře tohoto uživatele máš zablokované.

@Uživatel bez registrace tak 3D grafika je o Matematice. A simulace realnyho chovani veci je o Fyzice vs Matematice. Tzn je jedna vec neco namastit v nejakym jazyku a druha vec je chapat to co chci delat. Tak urcite de plno veci ocurat a napriklad to udelat tak, ze se to chova jako by to bylo realny. Ale od urcity urovne komplexnosti je proste efektivnejsi , ty fyzikalni veci naprogramovat matematicky OK a pak je jen pouzivat.
- samboush

Uživatel bez registrace
Uživatel bez registrace
Level 1 Level 1
21. 7. 2008 06:43

Komentáře tohoto uživatele máš zablokované.

@Uživatel bez registrace Pravda,pravda. Je tedy fakt, že programování a programování her mi zůstane navždy odepřeno. Na matice sem totiž zkončil VŠ :-)
- Michal Ondráček

Uživatel bez registrace
Uživatel bez registrace
Level 1 Level 1
21. 7. 2008 09:49

Komentáře tohoto uživatele máš zablokované.

@Uživatel bez registrace @Michal Ondráček: No taky v matice zrovna nevynikám sem trochu pomalejší a mám delší vedení,ale nakonec se ke všemu stejně nějak dopídím takže doufám že to zvládnu.Jinak díky za objasnění.Ztoho prohlášení,že je potřeba perfektní znalost M a F sem měl pocit,že budu muset mít IQ jako charlie ze seriálu Numb3rs :D
- L@nce! Vance Dance

Uživatel bez registrace
Uživatel bez registrace
Level 1 Level 1
24. 7. 2008 13:49

Komentáře tohoto uživatele máš zablokované.

@Uživatel bez registrace @L@nce! Vance Dance: Tak konkretne pri PROGRAMOVANI her se s vysoce nadprumernou inteligenci tak nejak pocita. ;)

- Shinji Ikari

Uživatel bez registrace
Uživatel bez registrace
Level 1 Level 1
20. 7. 2008 22:21

Komentáře tohoto uživatele máš zablokované.

@Uživatel bez registrace To bylo asi myšleno na naprogramování umělý inteligence. Jinak taky nevím, naco je potřeba vinikající znalost M a F. Pokud se tedy nebavíme o PhysX orgiích :-D
- Michal Ondráček

Uživatel bez registrace
Uživatel bez registrace
Level 1 Level 1
20. 7. 2008 22:21

Komentáře tohoto uživatele máš zablokované.

@Uživatel bez registrace Ale fakt tomu vůbec nerozumím, takže to je jen můj typ... Rád si přečtu vysvětlení, naco je dobrá matika..
- Michal Ondráček

Uživatel bez registrace
Uživatel bez registrace
Level 1 Level 1
21. 7. 2008 00:13

Komentáře tohoto uživatele máš zablokované.

@Uživatel bez registrace @Michal Ondráček: A jak bys chtěl naprogramovat kolizní model objektů, nevědět nic o kinetické energii?:)
- Ace

Uživatel bez registrace
Uživatel bez registrace
Level 1 Level 1
21. 7. 2008 00:38

Komentáře tohoto uživatele máš zablokované.

@Uživatel bez registrace @Ace: google nebo wikipedia pomůže kdykoliv, o fyzice toho moc nevim ale i tak, když jsem si hrál s tvorbou her, co jsem potřeboval jsem si našel. naprogramoval jsem model dieselového motoru, zjišťoval jsem převodové poměry, diferenciál, nakonec ztráty rychlosti vlivem tření, vše se dalo jednoduše vypočítat, výhoda pc je že to člověk nemusí umět spočítat, stačí znát platný vzorečky, dohledat všechny "konstanty", popř. si to přikrášlit "bulharskou konstantou", kupříkladu vědět že výkon a dieselu je určitá rovnice, resp. polynom třetího řádu . . Prostorová orientace a představivost jsou ovšem nepostradatelné. bohužel jsem ztroskotal u výpočtů souvisejících s odpružením . . . mimochodem: snažil jsem se simulovat autobus :-) Takže, znaslost matiky a fyziky, budiž, ale až tak vynikat ve fyzice není potřeba.
- Jiří Popsíšil

Uživatel bez registrace
Uživatel bez registrace
Level 1 Level 1
21. 7. 2008 21:02

Komentáře tohoto uživatele máš zablokované.

A to jste zcela opomenul team management! :) Takovy houf lidi bude ridi kdo? :) Ted si vemte ze mate team 20 specialistu, ridit to neni prace pro jednoho cloveka.
- polygon

Uživatel bez registrace
Uživatel bez registrace
Level 1 Level 1
22. 7. 2008 11:19

Komentáře tohoto uživatele máš zablokované.

@Uživatel bez registrace jj to je pravda je potřeba aby to někdo koordinoval...je zajimave jakym směrem se to ubírá zajímalo by mě jestli začínající vývojáří kteří se ze začátku pouští do indie a casual her mají u nás ještě v dnešní době šanci :-)
- L@nce! Vance Dance

Uživatel bez registrace
Uživatel bez registrace
Level 1 Level 1
22. 7. 2008 17:51

Komentáře tohoto uživatele máš zablokované.

@Uživatel bez registrace No, otazka je, co je meritko uspechu. Jiste se da i v malem teamu nebo jednom cloveku udelat slusna hra, kterou si lide radi zahraji. Druha otazka je, jestli jsou za ni ochotni zaplatit.
V soucasne dobe se jevi pro mensi teamy jako zajimava platforma mobily, protoze tam preci jen neni kladeny takovy duraz na rozsahlou grafiku atd. Stejne tak muze byt zajimave vyvijet pro Xbox Live! Arcade. To je navic i zajimava skola, protoze Microsoft si vsechny projekty schvaluje a kontroluje, tzn. rekne vam co je spatne.

Ale at tak, ci onak, vydelat na tom "velky prachy" je priblizne stejna sance, jako vyhrat jackpot ve sportce.
- eleven

Uživatel bez registrace
Uživatel bez registrace
Level 1 Level 1
23. 7. 2008 21:20

Komentáře tohoto uživatele máš zablokované.

Taky zajimavou školou je projekt Build The Game od Microsoftu,dá se tam hodně naučit....jinak si myslím že na maličkých hrách se dá něco málo vidělat nic velkeho to neni ale dá se..
- L@nce! Vance Dance

Uživatel bez registrace
Uživatel bez registrace
Level 1 Level 1
24. 7. 2008 14:17

Komentáře tohoto uživatele máš zablokované.

hezký článek, kdy bude pokračování? :-)
- tom4

Uživatel bez registrace
Uživatel bez registrace
Level 1 Level 1
24. 7. 2008 19:53

Komentáře tohoto uživatele máš zablokované.

Ještě dotaz co přesně znamená to slovo Optimalizace vtéhle problematice to jako že si vývojáří nastahujou plno různých toolsů a ty potom musí nějak sladit dohromady tak že se vnich budou hrabat a budou je upravovat tak jak se jim hodí? přesně to nechápu...
- L@nce! Vance Dance

Uživatel bez registrace
Uživatel bez registrace
Level 1 Level 1
25. 7. 2008 11:29

Komentáře tohoto uživatele máš zablokované.

@Uživatel bez registrace Optimalizace to je kdyz nahradiz algoritmus ktery dela urcitou cinnost jinym algoritmem, ktery dela to same ale jinak a rychleji. A na optimalizaci se zpravidla kasle ze dvou duvodu:
1. napsat optimalizovany algoritmus trva zpravidla dele
2. optimalizovany algoritmus je obvykle "hure citelny", takze kdyz je potreba nejaka uprava, tak se v tom uz nikdo nevyzna.
- polygon

Uživatel bez registrace
Uživatel bez registrace
Level 1 Level 1
26. 7. 2008 10:51

Komentáře tohoto uživatele máš zablokované.

@Uživatel bez registrace aha diky myslel sem že optimalizace se použiva hojně ale podle toho co si napsal se nepouživa skoro vubec co?

- L@nce! Vance Dance

Reklama
Reklama