[ NeznamTkoSam @ 12.01.2005. 22:16 ] @
Tema Najbolji besplatan game engine je otisla u off topic pa evo teme o tome...
Sto mislite o 3D programiranju igara u C#? Je li bolje za takve stvari uzeti C++? Dajte malo recite o gubitku performansa u C#. Vec ima i komercijalnih igara pisanih u C#. Znaci li to da je i C# dobar za programiranje igara? Ipak, ima vise tutorijala za C++.
Isplati li se pisati 3D igre u C#?
[ Nothingman @ 13.01.2005. 00:16 ] @
Ovakva tema moze dovesti do treceg svetskog rata ;) Koristi ono sto ti najvise odgovara...asembler, C, C++, C#....who cares?

[ Filip Strugar @ 14.01.2005. 14:23 ] @
Citat:
NeznamTkoSam: Tema Najbolji besplatan game engine je otisla u off topic pa evo teme o tome...
Sto mislite o 3D programiranju igara u C#? Je li bolje za takve stvari uzeti C++? Dajte malo recite o gubitku performansa u C#. Vec ima i komercijalnih igara pisanih u C#. Znaci li to da je i C# dobar za programiranje igara? Ipak, ima vise tutorijala za C++.
Isplati li se pisati 3D igre u C#?


Generalno, odgovor na pitanje 'da li se isplati pisati igru u C#u' zavisi od mnogih stvari, kao na primer 'kakvu igru', 'koja platforma', 'koji middleware alati se koriste' itd.
Razlika u performansama .NET koda u odnosu na C++ je poslednja stvar o kojoj treba da brines, ima brdo drugih nezgodnih stvari vezanih za pravljenje igre u .NET okruzenju, i to je prica za sebe.

Ali posto tebe ne interesuje da sam napises komercijalnu igru nego da ucis programiranje igara ne bi li nekad nasao posao u toj struci, C# ti je potpuno pogresan izbor jer te niko u doglednoj buducnosti nece zaposliti kao programera igara ako ne znas dobro C++, cak i ako bi te zaposlili kao npr C# tool kodera.

Citat:
Nothingman: Ovakva tema moze dovesti do treceg svetskog rata ;) Koristi ono sto ti najvise odgovara...asembler, C, C++, C#....who cares?


Ma nema nikakvog rata: jednostavo, postoji malo trziste na koje mozes da izadjes sa .NET (C#)-based igrom, plus raznorazni problemi u produkciji. Neki manji projekti mogu da zaobidju te probleme, ali ozbiljnija veca igra tesko.

Pravo pitanje na tu temu je na primer: "Da li Xbox2 podrzava .NET, tj dal' Microsoft planira da izbaci .net framework za PowerPC-based Xbox2?"

Ako je odgovor 'Ne', kao sto verovatno jeste, ne ocekuj nikakve ozbiljnije .NET-based igre do Xbox-a 3.

Inace, ja mnogo volim C# i radio sam nesto 3d grafike u njemu - mozes da pogledas jedan demo, mator je i pomalo nestabilan, zahteva graficku sa vs/ps 2.0 (DirectX9) i .net framework 1.1: http://www.affinegraphics.com/download/demo.rar, 13mb) - ali sam od toga odustao jer od takvog igranja nema vajda, a moram leba da jedem :)
[ NeznamTkoSam @ 14.01.2005. 18:22 ] @
Vec ima komercijalnih igara. Znam i jednu pisanu u VB.NET!
Zasto u buducnosti nitko ne bi programirao igre u C#?
To nikako ne mogu shvatiti.
P.S. (mislim na buducnost, a ne sadasnjost)
[ Filip Strugar @ 14.01.2005. 19:19 ] @
Citat:
NeznamTkoSam: Vec ima komercijalnih igara. Znam i jednu pisanu u VB.NET!
Zasto u buducnosti nitko ne bi programirao igre u C#?
To nikako ne mogu shvatiti.
P.S. (mislim na buducnost, a ne sadasnjost)


Probaj procitati moju prethodnu poruku jos jednom. Pa ako nesto ne mozes shvatiti, procitaj je jos jednom, pazljivo. Pa pitaj sta ti konkretno nije jasno, jer ja nigde nisam rekao nista priblizno tome sto si naveo, da 'u buducnosti nitko ne bi programirao igre u C#'.

Btw, da dodam, koje su to komercijalne igre napisane u .NET-u o kojima pricas? Ja se prisecam samo jedne (nesto aleksandar veliki, izometrijska strategija il tako nekako), i nesto mi se cini da nije bas posebno komercijalna. Ako vec pricas o necemu, navedi nazive.
[ NeznamTkoSam @ 16.01.2005. 11:15 ] @
Ljudi u svemu i svacemu programiraju igre. Pogledaj samo www.generationstars.com.
Ovi rade igre u VB6.
[ Dark Icarus @ 16.01.2005. 14:32 ] @
Heeeej! Kako to misliš u "svemu i svačemu"? Šta fali VBu?
[ NeznamTkoSam @ 16.01.2005. 20:16 ] @
Smiri se. Samo mi je cudno da se rade igre u VB. OK za neke male logicke igre, ali 3D?
[ Reljam @ 17.01.2005. 00:16 ] @
VB.Net i uopste svi .Net jezici nisu uopste toliko spori kao sto deluje. VB.net nije nista sporiji od C#a, a u C#u moze dosta toga da se uradi. Naravno, ne moze da se uradi Half Life 3, ali opet postoji velika klasa igara koje mogu da se izvedu. Matematika u .net jezicima je otprilike isto brza koliko i u Cu, ono gde su .net jezici spori je alokacija memorije. Posto igre ionako ne treba da dinamicki alociraju i oslobadjaju memoriju dok rade, sa malo paznje moze da se napravi dobra, relativno brza .net igra.

[Ovu poruku je menjao Reljam dana 17.01.2005. u 01:34 GMT+1]
[ Dark Icarus @ 17.01.2005. 00:31 ] @
Znaš li možda nešto više o VB6 po tom pitanju? OO programiranje u VBu 6 je SMRT za procesor. Toliko da umesto kolekcija koristim linearne nizove klasa (Private oObject(1 To 100) As cClass ). Za računske operacije, oddly enough, još nisam radio benchmark.
[ Reljam @ 17.01.2005. 00:33 ] @
Hm, ne znam. Mada iskreno ne vidim zasto bi neko vise radio u VB6 osim ako bas ne mora. :)

Kolekcije ionako obicno nisu dobre za igre, u principu sve moze da se uradi vektorima. Sve maksimalne velicine su unapred poznate (max broj neprijatelja, max broj metaka na ekranu, sve), tako da je mnogo lakse i brze staticki alocirati niz za te stvari i onda dodavati na kraj tog niza - tim pre sto ako se ovo uradi kako treba, nije potrebno alocirati nove objekte dok igra radi.
[ Dark Icarus @ 17.01.2005. 21:26 ] @
Citat:
Reljam: Hm, ne znam. Mada iskreno ne vidim zasto bi neko vise radio u VB6 osim ako bas ne mora.
Pa recimo samo da sam nostalgičar ... e, Komodore, Komodore...

A sada ozbiljno, u VBu radim iz jednog ključnog razloga: vreme. Već imam iskustvo, lakše je debagovati program, kod je mnogo čitljiviji (makar zato što radim u VBu već ihajhaj.)... Svi ćemo se složiti da bi mi VC++u trebalo više rada za iste rezultate kao u VBu (s tim što bi kod u VC++u bio mnogo brži), a pošto sam ja jedan jedini čovek koji sam pravi igru i usput studira neinformatički fakultet koji ne ostavlja puno vremena, onda odjednom brzina postizanja rezultata postaje bitan faktor...

A da se ne lažemo, C++ je naprosto isuviše van moje lige. Manje programe mogu da pravim, ali kompletnu igru? U principu sve moje programerske avanture u C++u (sa pointerima, virtuelnim metodama i sličnim bakračima) su davale gomilu čudnih grešaka koje moj siroti VBovski um naprosto nije mogao da upije. Svaka čast gospodi programerima, ali ja mu više dođem dizajner koji usput programira svoje igre najbolje kako ume.

Citat:
Reljam:Kolekcije ionako obicno nisu dobre za igre, u principu sve moze da se uradi vektorima.
Auh... ja ovo nisam razumeo kakve veze ima sa kolekcijama. Vektor kao matematički pojam koji ima pravac, smer i intenzitet?

Citat:
Reljam:Sve maksimalne velicine su unapred poznate (max broj neprijatelja, max broj metaka na ekranu, sve), tako da je mnogo lakse i brze staticki alocirati niz za te stvari i onda dodavati na kraj tog niza - tim pre sto ako se ovo uradi kako treba, nije potrebno alocirati nove objekte dok igra radi.
Baš tako i ja radim, s tim što alociram memoriju na početku nivoa.
[ Reljam @ 18.01.2005. 02:42 ] @
Nisam se najbolje izrazio - mislio sam da ne vidim zasto bi neko sada radio u VB6 kada ima VB.net, jer ne vidim prednosti VB6 nad VB.net. A gde je VB.net, tu je vrlo brzo i C# :)

Prednosti VB nad C++om su mi jasne, i uopste ne mislim da je basic kao jezik pogresna stvar.

Pod vektorom sam mislio na C-ovsku definiciju vektora: vektor je niz koji obicno ume da uradi par stvari koji standardni niz ne ume, kao sto je vracanje broja elemenata, dinamicko dodavanje, i tako to. Ali poenta je da je niz, i da je pristupanje proizvoljnom elementu vrlo jeftina operacija, kao i dodavanje na kraj.
[ Duck_ @ 18.01.2005. 03:20 ] @
Vidim smominjete VB.NET i C#
Da li znate nešto o .NET Framework SDK-u?
Na microsoftovom sajtu nisam našao nikakav opis osim da sadrži sve što vam treba za development .NET aplikacija.
Zanima me da li taj SDK sadrži alate (kompajlere i sl.) za VB.NET i C# ? Da li je to nekakva trial verzija visual studia ili je full? Da li je freeware?
Fajl je preko 100 MB pa ne bih da downloadujem ako ne znam sigurno da je to "to".
[ idb @ 18.01.2005. 08:58 ] @
Citat:
Duck_:
Vidim smominjete VB.NET i C# ....
Da bi razjasnio nedoumice pogledaj: http://www.elitesecurity.org/tema/77480 (Top tema na .NET).

[ Filip Strugar @ 20.01.2005. 08:40 ] @
http://www.msdn.microsoft.com/...ats/transcripts/2005_1_13.aspx

Transkript chat-a sa Tom Miller-om (on je glavni za Managed DirectX), pa koga zanima... :)
[ Duck_ @ 24.01.2005. 20:19 ] @
A šta je u stvari Managed DirectX? U čemu je razlika u odnosu na "prosti" DirectX?
[ Reljam @ 24.01.2005. 22:30 ] @
Managed DirectX je varijanta DirectXa prilagodjena koriscenju iz .NET jezika. Laksa je za upotrebu od obicnog DirectXa, ali je zato i malo sporija. Krajnjem korisniku je nebitno da li igra koristi MDX ili DX, dok je programeru koji pise u nekom od .NET jezika (C#, VB.NET, MC++) to ipak bitno.
[ Duck_ @ 25.01.2005. 13:06 ] @
Znači li to da programer .NET jezika može da bira ili mora da koristi Managed varijantu?

Šta je potrebno za razvoj Managed DirectX igara? Da li se to dobija uz .NET Framework SDK ili uz DirectX SDK ili ima nešto treće?

Citat:
Reljam: Krajnjem korisniku je nebitno da li igra koristi MDX ili DX,
Da li to znači da MDX igra koristi iste DirectX "drajvere"?
Da li MDX igra uopšte koristi DirectX drajvere ili joj je dovoljan .NET Framework?
Ukoliko koristi DirectX, da li to mora da bude DirectX 9.0 ili može bilo koji?
[ Reljam @ 25.01.2005. 16:34 ] @
Ok, evo kako izgleda pojednostavljeni software stack kod nekog 3D programa:

1 - Aplikacija
2 - C runtime
3 - Direct3D 9.0
4 - Drajveri
5 - Hardver

Kod .NET programa, to izgleda ovako:

1 - Managed aplikacija
2 - Managed DX
3 - .NET Framework
4 - Direct3D 9.0
5 - Drajveri
6 - Hardver

Znaci kod .NET programa, postoji jedan dodatni sloj, ManagedDX koji 'prevodi' (tacnije: wrappuje) .NET pozive u Direct3D pozive. ManagedDX inace nije drajver, kao sto ni ceo DirectX nije drajver - to su sve 'samo' sistemske biblioteke.

Za razvoj ManagedDX programa je potreban DirectX SDK u kome se dobija sve za pravljenje i native i managed programa.

Kod korisnika je potrebno instalirati redist verziju DirectXa i ManagedDXa, a obe stvari se dobijaju uz SDK.

[Ovu poruku je menjao Reljam dana 28.01.2005. u 20:46 GMT+1]

[Ovu poruku je menjao Reljam dana 28.01.2005. u 20:47 GMT+1]
[ Duck_ @ 28.01.2005. 11:14 ] @
Hvala ti mnogo na objašnjenju!
Svi tekstovi u kojima se spominje MDX i DX polaze od toga da čitalac to već zna pa čoveg prosto nema gde da pročita o tim najosnovnim stvaraima.
Inace, znam da DirectX nisu drajveri ali nisam znao kako da ih nazoivem pa sam ono "drajveri" stavio pod navodnike.
[ Dejan Mitrovic @ 01.02.2005. 14:29 ] @
Citat:
Duck_: Znači li to da programer .NET jezika može da bira ili mora da koristi Managed varijantu?

Šta je potrebno za razvoj Managed DirectX igara? Da li se to dobija uz .NET Framework SDK ili uz DirectX SDK ili ima nešto treće?

Da li to znači da MDX igra koristi iste DirectX "drajvere"?
Da li MDX igra uopšte koristi DirectX drajvere ili joj je dovoljan .NET Framework?
Ukoliko koristi DirectX, da li to mora da bude DirectX 9.0 ili može bilo koji?


Ako vec planiras da se bavis DirectX-om i znas C++, nemoj pocinjati sa upravljanim kodom. Jes' da ga je lakse svariti i savladati, al' nije to to. Na netu imas mnooogo vise coda i textova o neupravljanom kodu tako da ces ti kasnije dobro doci.
[ dejanikus @ 21.06.2006. 18:03 ] @
Dali neko zna neki dobar video tutorial ili knjigu za 3d game programming
[ masetrt @ 22.06.2006. 10:10 ] @
E kako je ova tema opet isplivala a neke stavri se malo promenile da i ja nesto napisem :). U medjuvremenu je izasao .NET 2.0 koji u sebi ima genericke kolekcije. Same performanse generickih kolekcija su dosta vece od performansi obicnih "object" kolekcija iz .NET-a 1.1 (inace java ima ovu foru od verzije 5.0, koga zanima neka obrati paznju na 6.0 mustang ludnica). Sad nisam bas uporedjivao genericke kolekcije sa stl klasama, ali ne verujem da je bilo kakva osetna razlika u performansama. Za razliku od vektora pretrazivanja su znatno brza (npr klasa Dictionary) tako da bi ja trenutno prihvatio odgovornost da na primer A* implementiram u c#-u. C++ ce definitvno jos dugo imati najveci udeo u svakom obliku programiranja kod kojeg su performanse bitne, ali se stvari polako menjaju i .NET tehnologija nalazi i na tom terenu svoje mesto. Usput mislim da sam citao (mislim he he) da su na xbox360 dev kitu terali managed kod, pa ako neko zna koliko je tacna ta informacija.
[ Filip Strugar @ 22.06.2006. 11:54 ] @
Citat:
Sad nisam bas uporedjivao genericke kolekcije sa stl klasama, ali ne verujem da je bilo kakva osetna razlika u performansama. Za razliku od vektora pretrazivanja su znatno brza (npr klasa Dictionary) tako da bi ja trenutno prihvatio odgovornost da na primer A* implementiram u c#-u.


Ne razumem bas kako mozes da poredis brzinu pretrazivanja izmedju 'Dictionary' i 'vector' containera?!

Ako nisi uporedjivao, onda bolje cuti ;)

STL i .NET System.Collections.Generic kolekcije se mnogo razlikuju po gotovo svim stvarima - STL se kompajlira u native kod koji jeste osetno brzi kada je rec o takvim low-level stvarima od managed koda; STL je baziran na templejtima a s.c.g. (hehe) su generics, sto je znatna razlika; STL i s.c.g. imaju potpuno drukciji style i STL ima mnogo vecu funkcionalnost (mnogo vise kontejnera, algoritama, etc). STL je mnogo customizabilniji (custom memory allocatori, plus imas kontrolu nad svime jer imas ceo kod, etc etc). Na kraju, i namena im je potpuno drukcija.

A A* mozes da uradis i u Perl-u, i u vb 6-ici, i gde god hoces, sa ili bez containera, samo je pitanje za sta ti treba...
[ masetrt @ 22.06.2006. 14:12 ] @
Toliko o pazljivom citanju celog thread-a :). Prvo da se zahvalim na objasnjenju razlike izmedju stl i generics klasa (sarkazam). Sto se tice uporedjivanja brzine pretrazivanja mislio sam na nalazenje elemnta po nekom kljucu u vector-u (mislim da je Reljam mislio na obican c niz a ne na stl vector kontejner u kojem neki elemnt trazis standardnim algoritmima za pretrazivanje) i dictionary kontejneru, i sta je tu brze poprilicno je jasno. Drugo namena i primena nije jedna te ista rec jer dve stvari razlicite namene mogu da imaju istu primenu (konkretno mislim bas na stl hash_map i generics Dictonary kojima i namena nije bas razlicita jer je Dictionary implementiran kao hash tabela). Trece onaj odgovor kako algoritam mozes implementirati u bilo kom jeziku, e to nisam znao (opet sarkazam). Ja sam rekao da bi prihvatio odgovornost da cu da uradim implementaciju A* u c# za potrebe necega i da ce ta solucija zadovoljavati brzinske potrebe aplikacije. stl klase i generics klase nisam uporedjivao u realnom radu ali sam uporedio kompleksnost algoritama koje koriste i na osnovu toga sam doneo zakljucak. Inace A* sam izabrao cisto zato sto je zgodan algoritam koji do .NET verzije 2.0 nije imalo smisla implementirati u c#-u koristeci collection kontejnere koji su stizali uz verziju 1.1. Mozda ja nisam bio bas najjasniji i mozda sam malo offtopic (jer je pitanje bilo o 3D grafici vido tek sad :) )
[ Filip Strugar @ 22.06.2006. 14:26 ] @
Citat:
Sto se tice uporedjivanja brzine pretrazivanja mislio sam na nalazenje elemnta po nekom kljucu u vector-u (mislim da je Reljam mislio na obican c niz a ne na stl vector kontejner u kojem neki elemnt trazis standardnim algoritmima za pretrazivanje) i dictionary kontejneru, i sta je tu brze poprilicno je jasno.


Verovatno mislis na stl::map ili stl::set ili neku od varijanta? Zasto sto, ako nisi znao (sarkazam), std::vector predstavlja jednostavan niz u stl-u, pa je ta rec mozda bila uzrok zabune.

Citat:
Mozda ja nisam bio bas najjasniji i mozda sam malo offtopic (jer je pitanje bilo o 3D grafici vido tek sad :) )


MaaaAaa nema veze i ja sam malo drndav... :)

Sto se genericsa tice, mozes u starom C#-u da uradis podjednako efikasno bilo koji algoritam koji mozes i u novom, razlike u performansama nema, samo (velike) razlike u jednostavnosti upotrebe i code reuse-u.



A sada, glavna tema:


C# u gamedevu? Sta mislite tome?


Ja mislim da vremenom moze da postane zastupljen kao jezik za PC casual igre, i druge manje PC naslove. Pored toga, kolko vidim dosta se koristi za game tools (i kod nas u zoot-u se koristi za raznorazne alatke).

Da li ce se probiti bar malo u gamedev mainstream zavisi najvise od toga gde ce .net platform biti zastupljen - samo na xp/visti ili i na 360?

[Ovu poruku je menjao Filip Strugar dana 22.06.2006. u 16:20 GMT+1]
[ tosa @ 22.06.2006. 14:47 ] @
Citat:
Filip Strugar:Verovatno mislis na stl::map ili stl::set ili neku od varijanta? Zasto sto, ako nisi znao (sarkazam), std::vector predstavlja jednostavan niz u stl-u, pa je ta rec mozda bila uzrok zabune.

Mislim da je Marko rekao da je mnogo brže naći element u hash mapi nego u vectoru, što je skroz tačno.
Ajmo bez svađe, može to i lepo da se prodiskutuje ;)
Što se .NET-a tiče, nadam se da će biti podržan na Xenon-u (negde je to već i nagovešteno, ne sećam se gde sam to pročitao).
Onda bi stvano bio kraj sa Sony & SN Systems pričom o dobrim alatima ;)
[ Filip Strugar @ 22.06.2006. 15:22 ] @
Citat:
Mislim da je Marko rekao da je mnogo brže naći element u hash mapi nego u vectoru, što je skroz tačno.


Ne, rekao je da je mnogo brze naci element u C# dictionaryju nego u STL vectoru, sto je logicno, ali nije nikakav dokaz brzine C#-a u odnosu na C++/STL.

Stvarnost je upravo obrnuta: hash table search implementiran na .NETu je uvek (dosta) sporiji od istog C++ algoritma, zbog slabije optimizacije, bounds checkinga, i slicnih osobina .NET koda.

Ne kazem da je ta razlika uopste bitna za vecinu stvari.


Citat:
Ajmo bez svađe, može to i lepo da se prodiskutuje ;)


Heh, ko mi kaze ;)
Ma nema svadje, opusteno, izvinjavam se ako sam preterao (bez sarkazma) :)



Citat:
Što se .NET-a tiče, nadam se da će biti podržan na Xenon-u (negde je to već i nagovešteno, ne sećam se gde sam to pročitao).
Onda bi stvano bio kraj sa Sony & SN Systems pričom o dobrim alatima ;)


E pa to sam i ja tu i tamo procitao, ali nikako da neko izjavi nesto konkretnije.

Makar neki scripting za pocetak... Ne verujem da ce iko u skorijoj buducnosti reskirati da neki veci naslov radi cak i delimicno pod .net-om, jer:
1.) uvodi mnogo nepoznanica u vec nesiguran posao,
2.) zatvara sebi prolaz na ps3 (a nikad se ne zna sta ce biti sa IP-jem igre i sta ce izdavac traziti)
3.) za ozbiljniju upotrebu C#-a bar neko u timu mora dobro da vlada managed/unmanaged interop-om i da se detaljnije razume u .NET, tako da u pocetku jos dodatno komplikuje stvari
4.) nema jos dovoljno dev. iskustva - kad se negde zaglibis - sam si - nema ko da ti pomogne po forumima...

Sa druge strane, za neki PC casual.. moze da dosta pojednostavi stvari.
[ masetrt @ 22.06.2006. 19:43 ] @
Uf nisam mislio da se svadjam, zao mi je ako je tako ispalo, a mislim da ni Filip nije hteo ;). Performanse c# coda su u svakom slucaju slabije nego c++ coda samo sam mislio da neke stavri u gamedev-u mogu da se urade i u nekom managed codu. Zbog jednostavnosti procesa razvoja (mislim konkretno na brzinu pisanja koda) mislim da konkretno c# nije los za isprobavanje ispravnosti nekog algoritma (pa ako proradi prevedes ga na c++, ako ima potrebe za tim). Ako bi neki tim i odlucio (mislim kada bi timovi odlucivali) da jedan deo razvija kao manged modul po mom misljenju bi razvoj modula trajao krace nego da se radi u c++ pitanje je koje to oblasti mogu biti. Ne mogu tacno da se setim naslova gde je scripting bio kompletno uradjen uz pomoc jave, ali znam da je bio neki, te verovatno na tom polju ima mesta i za .NET. Takodje mislim i na polju vestacke inteligencije (opet vecinom za ispitivanje algoritama) da mu se smesi dobra buducnost (ako vec nije uleteo)

Citat:
Ne, rekao je da je mnogo brze naci element u C# dictionaryju nego u STL vectoru, sto je logicno, ali nije nikakav dokaz brzine C#-a u odnosu na C++/STL.


Ovo se odnosilo na poruku Reljem sa pocetka treda gde se navodi da se u gamedev uglavnom koriste nizovi (koje je on tu nazvao vektorima kao sto ih i zovu mnogi ljudi (znaci nisam mislio konkretno na stl vector, ali to je sve jedno) gde se unapred zna max broj elemenata koji su znacajno brzi od .NET kolekcija sto je naravno skroz tacno. A nisam pokusao ni da kazem da je c# brzi ili podjednako brz kao c++ vec da je sad prihvatljivo sporiji. To se desava jer po nekad otkucam poruku na poslu pa je poprilicno nejasna jer mislim na druge stvari, a ovo dodje kao relax

Citat:
Kolekcije ionako obicno nisu dobre za igre, u principu sve moze da se uradi vektorima. Sve maksimalne velicine su unapred poznate (max broj neprijatelja, max broj metaka na ekranu, sve), tako da je mnogo lakse i brze staticki alocirati niz za te stvari i onda dodavati na kraj tog niza - tim pre sto ako se ovo uradi kako treba, nije potrebno alocirati nove objekte dok igra radi.


Zbog toga sam i naveo kao primer A* algoritam za koji je potrebno (u igrama mislim) pretrazivanje po hash mapi (a potrebno su i nove alokacije memorije) i mislim da Dictionary klasa moze skroz dobro zameniti stl hash_map klasu (uz prihvatljiv pad performansi a bez memory leek-a koji se nakako uvek javi :) ) . Ako se pak manje "skriptuje" a koriste sistemi odlucivanja (neke varijante decison trees-a) opet je mi nekako deluje da je zgodnije raditi u c#.

Aliiii, Filip je spomenuo interop izmedju managed i unamanaged koda i bas sam pre neki dan poludeo zbog toga (sva sreca uporan search po MSDN-u je urodio plodom i naleteo sam na clanak koji mi je pomogao, ali da nisam ...)

Citat:
Sto se genericsa tice, mozes u starom C#-u da uradis podjednako efikasno bilo koji algoritam koji mozes i u novom, razlike u performansama nema, samo (velike) razlike u jednostavnosti upotrebe i code reuse-u.


E ako se koriste stare object kolekcije iz .NET-a 1.1 (mislim da je bila HashTable) prelaskom na Dictionary klasu performanse su primetno porasle (ista masina je bila u oba slucaja nego je u firmu konacno stigao VS2005 pa smo presli na 2.0)
[ bkaradzic @ 22.06.2006. 21:49 ] @
Citat:
tosa: Što se .NET-a tiče, nadam se da će biti podržan na Xenon-u (negde je to već i nagovešteno, ne sećam se gde sam to pročitao).

Ovde? :)
http://www.elitesecurity.org/tema/168364/0#1093207

Izgleda da XNA Framework još uvek nije dostupan...

Trenutno problem sa .NET-om je da mora posebno da se instalira. Znači i kada se radi o casual igrama praviti ih u C# je možda brže i lakše, ali ne i najpovoljnije ako hoćeš da ih prodaješ, jer osim instaliranja igre zahteva dodatnu instalaciju .NET framework-a (~22 MB). Pretpostavljam da će ovo biti preinstalirano u Visti, tako da će za par godina, kada Vista postane glavni OS na tržištu, korišćenje C# biti sasvim normalno.
[ tosa @ 23.06.2006. 05:50 ] @

Skroz moguće ;)
Citat:
bkaradzic:Trenutno problem sa .NET-om je da mora posebno da se instalira. Znači i kada se radi o casual igrama praviti ih u C# je možda brže i lakše, ali ne i najpovoljnije ako hoćeš da ih prodaješ, jer osim instaliranja igre zahteva dodatnu instalaciju .NET framework-a (~22 MB).

Ovo sam osetio lično po prodaji svog programa pisanog u C#. Nažalost, većina korisnika je veoma
inertna i ne pada im napamet da instaliraju .NET Framework, čega se plaše da mi je znati... ?
[ bkaradzic @ 23.06.2006. 06:34 ] @
Ne plaše se, nego neće da se cimaju sa instalacijom dodatnog softvera...

Recimo ideš u prodavncu da kupiš neki proizvod, a tamo ti traže da napraviš 10 čučnjeva (ili sklekova) pre nego što uđeš u prodavnicu. ;) Ići ćeš u tu prodavnicu samo ako ne postoji neka druga prodavnica koja to od tebe ne traži i ako imaš ogromnu želju da imaš taj proizvod.

Kupcima treba što više olakšati pristup proizvodu koji nudiš i ne treba praviti nikakve nepotrebne prepreke između njihove kreditne kartice i tvog računa... :)
[ Filip Strugar @ 23.06.2006. 08:20 ] @
Citat:
bkaradzic: Ne plaše se, nego neće da se cimaju sa instalacijom dodatnog softvera...


Yup, to je jedini razlog, ali Vista definitivno dolazi sa preinstaliranim frameworkom 1.1 i 2.0, tako da to makar delimicno resava problem.

I DirectX redist ima isti problem - zbog onog d3dx9_xx.dll-a moras zahtevati od korisnika da se cima sa instalacijom novog directx-a (ili da krsis zakon i isporucujes odgovarajuci d3dx9_xx.dll uz igru).



Imam jedno pitanje: koliki je realni smisleni limit za velicinu casual (download-only) igre? 2mb? 20mb? 200mb?
Normalno, zavisi od tipa igre, ali okvirno, da li je broj ljudi koji ima mogucnost da download-a 200mb bez muke dovoljan ili ne?
[ tosa @ 23.06.2006. 12:14 ] @
Citat:
Filip Strugar: Imam jedno pitanje: koliki je realni smisleni limit za velicinu casual (download-only) igre? 2mb? 20mb? 200mb?
Normalno, zavisi od tipa igre, ali okvirno, da li je broj ljudi koji ima mogucnost da download-a 200mb bez muke dovoljan ili ne?

Po meni, 200MB je daleko od prihvatljivog. 20MB i nije tako strašno, ali bih se trudio da igra bude manja i od toga...
[ bkaradzic @ 23.06.2006. 19:20 ] @
Evo interesantan post u vezi veličine downloada:
http://www.philsteinmeyer.com/98/download-size/
http://forums.indiegamer.com/showthread.php?t=7024

Ovo je za casual igre. Što se tiče hardcore igara tipa HL2, mislim da je veličina fajla koji se downloaduje manje bitna (i više predstavlja tehnički problem, kada gomila hardcore igrača počne da skida ogroman fajl).