Diskuze: C# by mohl být dobrou volbou ale mám obavy...
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.

Člen

Zobrazeno 50 zpráv z 63.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
C# odstraní několik problému c++ a c. Nicméně takové ty herní pecky se píší v c++, protože je potřeba větší výkon.
Ale zase málokdo dokáže vytvořit takovou hru aby potřeboval vyšší výkon spojený s c++, to je spíše pro týmy o více lidech
no tak jestli se tím chce profesionálně živit.
Ano, C# může být vhodná cesta, aspoň pro začátek, vývoj v něm jde rychleji než v C++.
C# (popř. Java) jsou pro tvorbu jednodušších her a naučení se principů tvorby her dostatečné, i když pro opravdu AAA hry je už pak mnohem vhodnější C++ a 99% všech velkých studií hry píše v C++.
Jinak záleží na tom, co se chceš naučit - jestli se chceš naučit
všechny části tvorby her (což bys využil v menší společnosti) nebo
třeba jen nějakou část.
Ve velkých firmách obvykle mají na různé části různé lidi - třeba
jeden člověk (v opravdu velkých firmách i třeba celý tým) programuje
nástroje, další vykreslovací engine, další zvukový engine, další
fyziku...
A školu na to nepotřebuješ, stačí umět programovat a znát nějakou tu
základní matiku - matice, goniometrické funkce, vektory .
Mockrát děkuji za Tvou odpověď no - jasně, že v konečný fázy bych se spíš zabýval vývojem enginu hry. Toolkity a podobný věci uplně nejsou moje kafe... Ale tak z počátku samozřejmě bych rád dokázal naprogramovat celý projekt sám. Mým celkovým snem... by bylo psát RPG, RTS a Tower Defense hry. Jasný, chápu, lítám s v obláčcích. Ale, proč by toho nemělo jít dosahnout? Nikdo neříká že chci Blizzardum nakopat zadek s hrou lepší než je Diablo. Jinak umět programovat - chápu, že to asi stačí, ale pro získání zaměstnání? Ani bez kurzu, že by se šlo uplatnit?
ještě jsem se chtěl zeptat - v případě c# jakou literaturu krom online tutoriálů byste mi asi na tohle doporučili? Krom devbook.cz bych rád využil tutorial na http://msdn.microsoft.com/…=vs.71).aspx
Z knih bych doporučil Microsoft Visual C# 2010 Krok za Krokem:
http://knihy.cpress.cz/…-c-2010.html
Není zač, přijde mi jako jedna z více kvalitnějších a hlavně je téměř aktuální.
PS: Anglicky vyšlo i nové vydání C# 2012 Step by Step (Bohužel není
česky)
http://shop.oreilly.com/…145356765.do
Pokud chceš v programování se někam dostat nebo nějakou hru
naprogramovat, tak se rozhodně připrav, že to zabere spoustu času -
ideálně několik hodin denně .
Pro získání zaměstnání je ideální mít aspoň něco na ukázku, klidně i nedokončeného - když jsem poprvé sháněl práci jako programátor, tak jsem ukazoval svoje "rozdělané" RPG (Mělo název Projekt Diablo 3, mám ho tu někde v profilu na devbooku) a vzali mě, i když tam nic moc nefungovalo, jen se generovala a kreslila mapa a šlo s postavou chodit po mapě (a to se často někde zasekávala, protože nedokázala správně najít cestu).
Jinak ideální by bylo, kdyby jsi nám řekl, co už ovládáš, podle toho ti lépe poradíme vhodný tutoriál - jestli už ovládáš nějaké základy nebo máš problém i s cykly a podmínkami.
Mno doposud jsem programoval v C++ za použití SDL API.
Výsledky mých pokusů a snah dopadly takto:
Dva nedokončené větší projekty... de fakto fakt jen pokusy...
Jsou to spustitelné projekty i s kodem a projektovým souborem...
Programoval jsi to podle nějakých tutoriálů nebo sám? Nemyslím teď samotné vykreslování přes SDL, ale zbytek.
Zvládneš třeba sám napsat algoritmus, který by do pole vygeneroval nějaké náhodné hodnoty a pak vypsal tu největší?
Jinak pak v C# doporučuji do začátku XNA nebo možná spíš SharpDX (XNA už není dále vyvíjeno).
Něco podle tutoriálů něco jsem si vyvinul sám. Třeba to, aby se lod šoupala směrem za myší je kompletně moje práce.
No tvůj příklad, vytvořil bych pole s nějakým množstvím indexů. pomocí rand()a nějakého cyklu bych do něj naházel nějaké hodnoty. A pak porovnáváním těch hodnot mezi sebou bych docílil aby se do výstupu dostala ta nejvyšší. Aspoň mě tedy lepší řešení nenapadá.
C++ je system level language a zameriava sa na tieto domeny:
Hry patria hlavne do kategorie 3.
C#, Java... su jazyky ktore su urcitym kompromisom. Vyvoj v nich je jednoduhsi a tym padom aj rychlejsi a lacnejsi ako v c++, cena za to je ale relativna pomalost (casto krat je ale lacnejsie kupit silnejsi hw ako zaplatit viac programatorov).
Kym nebudes programovat na hernom engine ktory bude limitovany dnesnim HW
alebo dakej jeho sucasti tak c++ nepotrebujes.
Takze ako zaciatocnik si kludne vyber C#/Javu.
Ještě poradím, je tu MonoGame přímá nadstavba XNA, která podporuje i jiné platformy než Desktop. Takže pokud si vybereš do začátků C# zkus tedy MonoGame nebo SharpDX
opravdu jen začínám... takže diky za pomocnou radu
Doporucuji ze zacatku zacit co nejjednodussimi hrami - klidne neco na zpusob
tetrisu , mas vetsi sanci, ze
je dokoncis, nez kdyz si rovnou naplanujes rozsahle mmorpg.
Bavi-li te rpg, doporucuji zacit treba krokovym rpg, kde se hrdina pohybuje
po celych kostickach, klidne zatim ovladaneho klavesnici po prazdne mape.
Pote pridat editaci terenu nebo nahodne generovani, kolize s terenem
(voda/skala), staticke objekty a nakonec nepratele s nejakou ai.
Ja vim, ale porad je jednodussi nez mmorpg
No nejdriv si musim přesně ujasnit čeho se chytit... a jak začít... takže začnu se učit c# tady na webu a budu makat ve visualku - další tutoše jsou na microsoftu. Potom až budu něco umět se budu pouštět do SharpDX protože XNA už se nevyvíjí...
Vývoj - > jednodušší hry a časem RPG v nejjednodušších hodnotách...
Podle mě - pokud umíš základy z C++ a orientuješ se v OOP, tak ty
tutorialy jen tak proleť, aby sis ujasnil syntaxi a přečetl si nějaké
špeky. A rovnou se do něčeho pusť.
Zastávám názor, že až něco budeš potřebovat vědět, tak si to
vygooglíš.
Vyvíjet hry můžeš na různých úrovních, zjednodušeně řečeno máš
tři možnosti.
Nativní DirectX/OpenGL
XNA/Mono což je již trochu vysokoúrovňovější nástroj
A vzít rovnou nějaký hotoví Engine.
Co se týče první možnosti je nejtěžší, nejdelší a nejnáročnější jak z programátorského tak matematického hlediska, výhodou je že pak opravdu rozumíš tomu co se v nitru programu děje a jsi schopen to maximálně efektivně využít a jak říkal Satik hodně profesionálních studií si vyvíjí vlastní engine práce přímo proti DirectX/OpenGL, Satik tu zmiňoval SharpDX to jsou v podstatě knihovny zpřístupňující DirectX pro C#, programoval jsem DirectX jak v C# tak v C++ a můžu ti poradit že to už se ten C# ani nevyplatí kód je podobně složitý jen pomalejší.
/*Kdyby jsi chtěl programovat takto a váhal mezi DirectX a OpenGL, tak jsou téměř stejné, DirectX je trochu modernější a najdeš na něj víc příkladů a OpenGL je zase více multiplatformní*/
Co se týče Xna a Mono osobně tomu moc nefandím, vím že jsou hodně
pomalé zvlášť XNA ale neprogramoval jsem v tom tolik abych si to dovolil
soudit, osobně ti radím tímto směrem nejít ale jistě se najdou lidé co se
mnou budou nesouhlasit
Co se týče zvolení již existujícího enginu a naučení se práci v něm: Je to více méně nejlepší volba pokud ti jde o to prostě a zkrátka udělat hru, nedovolí ti to tolik co práce s directX ale vývoj hry je mnohonásobně pomalejší a rozhodně neplatí že by jsi nemohl programovat profesionálně hry jen se znalostí enginu, hodně studií (Krom AAA, tam je to výjimka) používá enginy a je to zajímavá volba, ale občas je to více o porozumění tomu enginu než o programování v tomto směru bych ti doporučil buďto Unity3D nebo Unreal Engine, v unity se programuje buď v Javascriptu nebo v C# a pokud umíš základy C++ C# se naučíš velice snadno a rychle. Oba enginy jsou pro profesionální použití placené ale jinak mají verzi zdarma.
Takže moje rada zní programovací jazyk se naučíš, když už umíš
programovat není to tak těžké, pokud chceš opravdu rozumět programování
her nauč se DirectX/OpenGL pod C++, pokud chceš vidět své výsledky v
reálném časovém rozmezí a jde ti o to udělat hru, zvol nějaký Engine.
Co se týče zdrojů odkud se čerpat a učit:
Pro naučení se programovacích jazyků určitě doporučuji tutoriály na
Devbooku obzvláště C# je tu velmi dobře sepsaný, pokud chceš hodně dobře
umět C++ tak určitě doporučuji knihu Mistrovství v C++.
Pokud chceš dělat DirectX nejlepší kniha je 3D Game Programming with DirectX 11 je to asi nejlepší titul pro DirectX, krom toho mohu doporučit stránku http://www.rastertek.com/ o dobré knize pro OpenGL nevím ale na stránce co jsem výše zmiňoval jsou i nějaké tutoriály na openGL
Pokud chceš dělat pod Enginem tak krom fór mohu poradit aby jsi si onen engine stáhl a potom pracoval podle video návodů co jsou na youtobe, osobně se mi to osvědčilo a je to asi nejlepší možnost jak do enginů proniknout.
A abych nezapomněl co by sis měl k čemu stáhnout
pro DirectX určitě vývojové prostředí Visual Studio (DirectX stejně není
multiplatformní takže ničemu neublížíš)
http://www.microsoft.com/…dows-desktop
A také je potřeba DirectX SDK kde jsou knihovny pro vývoj pod DirectX
http://www.microsoft.com/…details.aspx?…
Pokud chceš vyvíjet OpenGL tak radím IDE QT Editor, je do skvělé IDE pro
C++ a má OpenGL přímo integrované
http://qt-project.org/downloads
Pokud chceš dělat pod Enginem tak odkaz na Unity je zde:
http://unity3d.com/unity/download
A UDK zde:
http://www.unrealengine.com/udk/downloads/
A hodně štěstí občas
je to boj ale stojí to za to
Teda tak teď mám vydažený dech! Vůbec teď netuším, co si z toho vzít.
V c++ jsem vyvíjel za pomocí SDL API. Což jsem se učil právě proto, že jsem se nechtěl učit DirectX protože s dX se člověk musí učit i WinAPI. To jsem docela vzdal jakože to prostě bych se ani za rok nikam nedostal. => SDL mi přišlo jako cesta.
Osobně jsem tedy se snažil o engine. Vykreslování, testování kolize, změna stavu aplikace (menu, hra, credits,....) ale nějak mě pustila motivace či co. Nebo jsem si prostě vzal příliš velké sousto bo na to prostě nemám.
Vzít engine a učit se.... osobně jsem pár enginů stahoval a snažil se v nich nějak učit, ale když se stahne engine je to halda kódu ve, kterým je kopice věcí, kterým nerozumím. Spousta nových f-cí atd. A pro mě je těžké se v tom orientovat. Takže když to tak vemu suma sumárum c# by pro začátek a pochopení jak to ve hře choí a tak měl být asi dostatečný. Ikyž vždy jsem byl zástupcem C++, ale tak nějak mi přijde, že je to dost těžký jazyk pro mě...
Prosím nepoužívej výraz JavaScript pro Unity. JavaScript je silně zavádějící název pro ten jazyk. V oficiální dokumentaci to nazývají UnityScriptem.
Rozhodně tě od C# nechci odrazovat, osobně jsem to měl tak že jsem začal na C# SharpDX a dneska se učím nativní DirectX v C++, jen upozorňuji že pokud zvolíš SharpDX budeš to mít lehčí jen o trochu, nebudeš muset používat ukazatele a budeš moci na GUI používat prvky z WinForm ale jinak jsou kódy téměř totožné.
Rozdíl v rychlosti mezi C# a C++ není tak zásadní, pokud DX/OGL používáš rozumně, tak rozdíl v rychlosti vykreslování je v řádech jednotek, maximálně několika málo desítek procent, což pokud to není AAA hra nijak zásadně nevadí.
Pokud bys tu hru dělal zatím jen v 2D, tak máš s XNA tak obrovskou
výkonovou rezervu, že je zbytečné sahat po něčem jiném, viz třeba moje
rozdělaná strategie (XNA, http://www.youtube.com/watch?… ) , kde jsem měl i při
nahrávání obrazovky 1800 fps (jinak kolem 3000fps)
A rozdíl v rychlosti napsání toho kódu možná není u vykreslování tak velký, ale přece jenom tam je. A u psaní logiky hry také, hlavně pro začátečníka, který stráví v C++ spoustu času lovením různých chyb spojených s ukazately nebo memoryleaky.
A pokud dokáže napsat slušnou hru v C#, už pro něj nebude tak velký
problém kdykoliv přejít na C++ a napsat slušnou hru tam
Jen pro inspiraci, co se dá v C# napsat
Pro mě je hlavní problem to že jeslti opět začnu plavat v celým dění ohleně tvorby her, tak to buddu muset vzít od začátku. Takže mě nakonec veme bud c# a sharpDX nebo C++ a dX tak ted si to musím nějak rozdělit protože s dx prijde i WinAPI
Jestli tohle si delal ty sam tak to jsi borec teda !
Ten odkaz vede na projekt psany v c++ a DX 11ce
ja delal jen tu strategii
ajo, to jsem si nevsiml, predchozi verzi ty planety mel v xna
mmno prave tu strategii myslim na to bych hlavu nemel tyjo
Kdyz si to rozlozis na mensi casti, tak tam v podstate neni nic moc sloziteho, jde jen o to nejakym polem reprezentovat mapu, tu vykreslovat (projedes kazde policko a vykreslis odpovidajici obrazek) a postupne pak pridavat editaci, mazani, animace...
no já tedy nevím zda jsi videl co jsem tu dával odkazy.... ale myslim že komplexností kodu - ten je tam taky tak opravdu nedostihuju ... holt asi vemu c++ opět do ruky a půjdu v začátcích no...
no to jsi trošku pleteš se shadery ty mají svůj jazyk
Direct se vykašli a použij OpenGl s freeglut pro c++ je to jednodušší pro začátek jenom tě upozorním , že c++ není na pár měsíců je to těžký jazyk a aby jsi byl dobrý programátor tak to nějaký pátek potrvá.U C++ máš plnou kontrolu co program dělá např u správy paměti kde u java-like jazyků jako je chválený C# apod.. se moc starat nemusíš , protože je to řešeno jinak než u C++, scriptování se používá lua binding u her , tutoriály nehe...takže asi tak
Na komplexnostech podobných jako DirectX apod. jsem selhal proto chci začínat jednodušejc...
dyt o tom mluvim žejo
proč asi říkám že jsem raději začínal na SDL? Akorat jsem prostě padl
na tlamu z nedostatku motivace ... od programka jsem dal pracky pryč na rok ...
takže se chci k tomu vrátit... tedy nechci se vracet k sdl chci prostě něco
jednoduššího abych prostě mohl co nejsnáze chápat ty systémy a tak abych
si to osahal jak to v tý hře funguje
Ak sa ti zdá SDL zložité tak sa do DirectX alebo OpenGL ani
nepoúšťaj...
složitý ani až tak moc ne, ale spíš prostě sám bez komunity a motivace
se člověku učí blbě i html a to ani není programovací jazyk
Myslíš, že nevím, že shadery se píšou v jiném jazyce? Bylo to na
ukázku, že i když je základ hry v C#, tak výsledek může vypadat dobře
On tu píše, že programoval v SDL C++ a přišlo mu to zdlouhavé a ty mu doporučíš C++ a GLUT, což je v podstatě to samé, jen místo DX by využíval OGL?
Ja bych taky asi mel problemy s dokoncovanim neceho v C++ (to mam obcas uz i
v C#)
Hlavne kdyz clovek na necem dela sam a treba po dni programovani neni ve hre
v podstate nic noveho videt...
Jako člověk si nabije hubu při programování a je to jedno v jakém
jazyku
Tak skus OGL třeba tě chytne já používám freeglut ta je udržovaná
Zobrazeno 50 zpráv z 63.