Competiţie:

Massive Kombat RTS
Iniţiator:
nekitu, pe 25 Jun 2008 16:43:03
COMPETIŢIE ÎNCHEIATĂ
Perioada: 25 Jun 2008 16:00:00 - 23 Sep 2008 16:00:00
TEMA:Un joc RTS (Real Time Strategy) cu multe unitati, zeci/sute/mii(?!), cu foarte multa bătaie intre părţile combatante. Fara management de resurse, doar batalii masive.
REGULI:- cat mai multe unitati angajate in batalii
- AI cat mai... "inteligent", sa poata coopera, angaja in ambuscade, etc.
- proiectie 3D, izometrica, insa poate fi si un mod ground level/3rdperson
- nu se pune mare greutate pe resurse, acest RTS e battle-based, asta ne intereseaza, cand porneste un nivel sa ai deja trupele pregatite, ceea ce conteaza e felul cum le dai comenzi si cum le dai anumite misiuni de exterminare a inamicului
- limbaje C++/C#, Direct3D/OpenGL, engine-uri free sau personale, fara GameMaker & co.
- inovatia e binevenita

- optional, multi-threads pentru AI, use your cores !
- in concluzie, AI foarte bun si numar cat mai mare de unitati, roiuri!
PREMII:Soon...substantiale.
Participanţii şi producţiile lor:
| Mesaj |
Info autor |
Postat la 02 Oct 2008 17:55:28 Subiect: Re: Re:
|
|
|
Dark info:
|
Dark:
Solutia lui John Carmack nu-i deloc a lui. Contributia lui la codul ala consta in cele doua comentarii: Cod sursă:
i = * ( long * ) &y; // evil floating point bit level hacking
i = 0x5f3759df - ( i >> 1 ); // what the fuck?
din care putem deduce cam cit de apropiat a fost de crearea acestei solutii. Lasind la o parte atribuirile meritului, solutia asta are urmatoarele probleme: 1. In era noastra exista instructiuni dedicate pentru aproximat inversa, radacina patrata si inversa radacinii patrate. Precizia este mai buna decit o impartire la 2 urmata de Newton-Rhapson si merg MULT mai repede. In plus, Newton-Rhapson se poate folosi pentru a imbunatati precizia si dupa instructiunile astea daca e nevoie (evident), caz in care tot va merge mai repede. 2. Codul nu e conform cu standardul C(++) si d-aia nu va functiona intr-un compilator modern. Linia asta: Cod sursă:
// float y;
long i = *(long*)&y;
incalca regula de strict type aliasing, deci orice compilator nou (GCC 4.x, de exemplu si urmatoarele versiuni de VC) o s-o ignore cu succes. Dupa executia sa, i va contine ce continea registrul in care e stocat inainte, adica gunoi. In nici un caz nu va contine bitii din "y". Apropo, se poate nascoci un dezastru asemanator si pentru aproximarea radacinii patrate, nu e limitat doar la inversa. Oricum, bine ati venit in 2008. RRR: hai "pretene" ca deja devii plictisitor in prostia ta. Nu te mai flata atit de tare crezind ca ma intereseaza pe mine in care din cele 15 variante de acum 47 de mesaje m-ai incadrat tu. Daca vrei sa-mi mai comunici sugestii si pareri despre caracterul meu te rog s-o faci in scris si sa folosesti hirtie moale, ca in felul asta isi vor gasi o utilitate.
Ultima editare efectuată de Dark pe 02 Oct 2008 18:15:11; 4 editări în total
"Am crezut ca esti ceva mai avansat" - Nekitu, 2008 A.D. Autobaza
|
Status:
Înregistrat pe: 12 May 2007 20:12:30
Vârsta: ? ani
Mesaje: 729
Locatie:
Programator
|
| |
Postat la 02 Oct 2008 18:00:22 Subiect: < fara subiect >
|
|
|
krazilec info:
|
krazilec:
Dupa ce am citit toate aberatiile postate am si eu cateva pareri.
1. Obiectivele concursului au fost un pic nerealiste. 2. Sunt 2 oameni care comenteaza aiurea. Cu toate ca stiti mai multe in domeniul gamedeving decat mine, e vorba de bun simt, si aparent la voi e in minus. 3. Cei care au lucrat la cele 3 joculete ar trebui felicitati pentru efortul depus. Nu e mare lucru.
Asa ca felicit participantii. Sper sa evoluati in continuare.
|
Status:
Înregistrat pe: 05 Feb 2007 15:07:51
Vârsta: 24 ani
Mesaje: 218
Locatie: Constanta
Game designer
Liquid Petrified Studios
|
| |
Postat la 02 Oct 2008 18:04:49 Subiect: Re:
|
|
|
Dark info:
|
Dark:
krazilec a scris: 2. Sunt 2 oameni care comenteaza aiurea. Cu toate ca stiti mai multe in domeniul gamedeving decat mine, e vorba de bun simt, si aparent la voi e in minus. Ah, domnul cu finantare de $500,000 care revolutioneaza viitorul MMO-urilor si cugeto-bloguieste despre teoria conspiratiei, dar ce onoare sa va avem printre noi pentru a ne vorbi de un subiect asa de generos, "bunul simt", care tot pare sa se insinueze in discutie...
Ultima editare efectuată de Dark pe 02 Oct 2008 18:05:47; 1 editări în total
"Am crezut ca esti ceva mai avansat" - Nekitu, 2008 A.D. Autobaza
|
Status:
Înregistrat pe: 12 May 2007 20:12:30
Vârsta: ? ani
Mesaje: 729
Locatie:
Programator
|
| |
Postat la 02 Oct 2008 18:14:13 Subiect: Re: Re: Re:
|
|
|
Sir Game-a-lot info:
|
Sir Game-a-lot:
Dark a scris: [...] Solutia lui John Carmack nu-i deloc a lui. Contributia lui la codul ala consta in cele doua comentarii: Cod sursă:
i = * ( long * ) &y; // evil floating point bit level hacking
i = 0x5f3759df - ( i >> 1 ); // what the fuck?
din care putem deduce cam cit de apropiat a fost de crearea acestei solutii. Well, solutia e veche, meritul lui Carmack consta in gasirea constantei magice, deosebita de solutia matematica. Cat despre 2008, da, sunt considerente perfect valabile, poate cu exceptia faptului ca sursele de Q3 sunt compilabile inca pe VS2005 si executabilul functioneaza relativ ok. In orice caz, Dark, bun comentariul. Am invatat ceva din el, linkuri folositoare (nu sunt ironic).
Nine women working in perfect harmony can't have a baby in 1 month.
|
Status:
Înregistrat pe: 25 Aug 2007 18:20:41
Vârsta: 33 ani
Mesaje: 111
Locatie: Cluj-Napoca
Programator
Zamolxis Interactive
|
| |
Postat la 02 Oct 2008 18:21:32 Subiect: < fara subiect >
|
|
|
Dark info:
|
Dark:
Nu cred ca a gasit-o el. E un articol pe la beyond 3D unde cineva cu mult timp liber (si probabil prea putine competitii de votat) face arheologie virtuala pentru a descoperi ce-i cu codul ala si aparent constanta provine de la un tip numit Gary Tarolli.
Ultima editare efectuată de Dark pe 02 Oct 2008 18:23:32; 1 editări în total
"Am crezut ca esti ceva mai avansat" - Nekitu, 2008 A.D. Autobaza
|
Status:
Înregistrat pe: 12 May 2007 20:12:30
Vârsta: ? ani
Mesaje: 729
Locatie:
Programator
|
| |
Postat la 02 Oct 2008 18:35:54 Subiect: Re:
|
|
|
Sir Game-a-lot info:
|
Sir Game-a-lot:
Dark a scris: Nu cred ca a gasit-o el. E un articol pe la beyond 3D unde cineva cu mult timp liber (si probabil prea putine competitii de votat) face arheologie virtuala pentru a descoperi ce-i cu codul ala si aparent constanta provine de la un tip numit Gary Tarolli. Super, chiar daca asta inseamna ca domnul Carmack pierde 2-3 puncte de popularitate in okii mei 
Nine women working in perfect harmony can't have a baby in 1 month.
|
Status:
Înregistrat pe: 25 Aug 2007 18:20:41
Vârsta: 33 ani
Mesaje: 111
Locatie: Cluj-Napoca
Programator
Zamolxis Interactive
|
| |
Postat la 02 Oct 2008 20:17:00 Subiect: Re: Re: Re:
|
|
|
cippyboy info:
|
cippyboy:
Dark a scris: 2. Codul nu e conform cu standardul C(++) si d-aia nu va functiona intr-un compilator modern. Linia asta: Cod sursă:
// float y;
long i = *(long*)&y;
Am compilat pe VS2008 liniile astea Cod sursă:
float y = 3.14f;
long i = *(long*)&y;
float p = *(float*)&i;
si p e tot 3.14. Dupa spusele tale ar trebui sa fie total alta valoare. M-a intrigat faza pentru ca am ceva cod scris in stilul asta si n-am avut nici o problema cu VS2008. Te refereai la vreun VS2010 ?
Ultima editare efectuată de cippyboy pe 02 Oct 2008 20:19:01; 1 editări în total
|
Status:
Înregistrat pe: 04 Dec 2006 17:14:23
Vârsta: 25 ani
Mesaje: 162
Locatie: Bucuresti
Programator
Relative Team
|
| |
Postat la 02 Oct 2008 20:19:34 Subiect: Re:
|
|
|
pin46 info:
[banned]
|
pin46:
Dark a scris: Hai ca poti mai bine. "Pe ceilalti participanti" nu e un motiv. Pe ce atribut al participantilor astora sint eu invidios? Ce au ei si-mi doresc eu asa de tare? Ca primesc atentie. Un joc nu se rezuma la shadere sau alta technica de randare. Participantii la concurs au facut o tentativa de a veni cu ceva inchegat ceia ce nu poate fi decat laudabil.
Ultima editare efectuată de pin46 pe 02 Oct 2008 20:20:23; 1 editări în total
|
Status:
Înregistrat pe: 06 Aug 2007 23:02:05
Vârsta: ? ani
Mesaje: 683
Locatie: Moldova
PR & Marketing
|
| |
Postat la 02 Oct 2008 20:41:00 Subiect: Re: Re: Re: Re:
|
|
|
Dark info:
|
Dark:
cippyboy a scris: Am compilat pe VS2008 liniile astea Cod sursă:
float y = 3.14f;
long i = *(long*)&y;
float p = *(float*)&i;
si p e tot 3.14. Dupa spusele tale ar trebui sa fie total alta valoare. In primul rind trebuie sa compilezi cu optimizari. Fara optimizari compilatorul va face exact ceea ce-i scrii acolo si normal ca va merge. GCC 4.3 fara optimizari: Cod sursă:
hellgate:~# g++ -Wall -fstrict-aliasing a.cpp; ./a.out
a.cpp: In function int main():
a.cpp:6: warning: dereferencing type-punned pointer will break strict-aliasing rules
a.cpp:7: warning: dereferencing type-punned pointer will break strict-aliasing rules
p is: 3.14
GCC 4.3 cu optimizari: Cod sursă:
hellgate:~# g++ -O2 -Wall -fstrict-aliasing a.cpp; ./a.out
a.cpp: In function int main():
a.cpp:6: warning: dereferencing type-punned pointer will break strict-aliasing rules
a.cpp:7: warning: dereferencing type-punned pointer will break strict-aliasing rules
p is: 0.00
In al doilea rind, compilatorul nu e OBLIGAT sa-ti faca codul varza cind incalci regulile, doar inseamna ca POATE. Intimplator asta e mult mai nasol, pentru ca inseamna ca azi iti va merge codul si miine nu. De exemplu se poate prinde ca nu mai ai nevoie de "y" si sa-l asigneze pe "p" aceluiasi registru. Cum pe "p" nu-l initializezi intr-un mod corect, poate sa ramina cu valoarea anterioara si atunci sa ti se para ca a mers. (Un test mai competent ar fi sa te uiti daca in "i" ai bit pattern-ul ce corespunde reprezentarii binare a lui 3.14f.) Nu stiu care-i statutul optimizarilor cu strict aliasing in VC 2008 de PC (si nu-l am instalat aici ca sa incerc), dar chestia asta e o realitate. Daca scrii astfel de cod o cauti cu lumanarea, ca sigur nu va merge pe alte platforme unde optimizarile se fac si e posibil sa nu mai mearga nici pe platforma pe care-ti mergea la urmatorul hotfix/service pack/whatever al aceluiasi compilator. Nu prea exista un mod corect de a face asta. Un mod ce va fi suportat mult timp de acum incolo si in VC si in GCC va fi cu union-uri: Cod sursă:
union
{
float f;
int i;
} bla;
bla.f = 3.14f;
printf("%d", bla.i);
Dar atentie, nici asta nu e conform standardului (adica intr-o zi s-ar putea sa dai peste un compilator care sa nu colaboreze). O chestie cu care ar trebui sa colaboreze orice compilator ar fi: Cod sursă:
float f = 3.14f;
int i;
memcpy(&i, &f, sizeof(i));
Evident, nu-i tocmai optim sa faci memcpy() pentru 4 bytes. Nici macar asta nu e garantat sa mearga in standard, dar imi vine greu sa-mi imaginez ca un optimizer si-ar putea baga picioarele in memcpy(). In caz ca se gindeste cineva ca toata asta e o gaselnita timpita in limbaj, nu e. Chestia asta deschide oportunitati foarte mari pentru optimizere cu pretul unei functionalitati care nu era teribil de folosita sau de neinlocuit. Dar despre asta, mai multe detalii in episodul urmator. LE: pin46 a scris: Ca primesc atentie. Bravo, ti-as da un premiu de perspicaticate, da' string bani ca sa contribui la cheta pentru cistigatorii competitiei de fata. Cu asemenea pricepere in citirea oamenilor nu stiu cum de nu ti-ai deschis inca un cabinet de discutat cu lumea de dincolo.
Ultima editare efectuată de Dark pe 02 Oct 2008 20:46:31; 4 editări în total
"Am crezut ca esti ceva mai avansat" - Nekitu, 2008 A.D. Autobaza
|
Status:
Înregistrat pe: 12 May 2007 20:12:30
Vârsta: ? ani
Mesaje: 729
Locatie:
Programator
|
| |
Postat la 03 Oct 2008 05:41:54 Subiect: < fara subiect >
|
|
|
Zex info:
|
Zex:
Mde, cei drept snowslap wars a iesit mai bine in final decat competitia de fata, trebuie facuti cativa pasi inapoi si scazut putin (mai mult) nivelul asteptarilor... In prima instanta as fi pus pariu ca ar fi picat toata sandramaua de concurs si s-ar fi trecut la ceva mai potrivit...
...un jump'n'run pentru urmatorul smackdown?
Ultima editare efectuată de Zex pe 03 Oct 2008 05:42:34; 1 editări în total
|
Status:
Înregistrat pe: 28 Sep 2007 20:47:12
Vârsta: ? ani
Mesaje: 51
Locatie:
|
| |
Postat la 03 Oct 2008 09:03:08 Subiect: < fara subiect >
|
|
|
boboS info:
|
boboS:
Corect, aia cu snow fiind mai usoara s-au bagat mai multi. Eu propun urmatoarea competite sa fie de genu "cel mai frumos landscape realtime" si fiecare sa adauge un gram de gameplay in functie de dorinta. Asa sigur s-ar aduna mai multi. A , si in cazul asta ar fi si mai usor de gasit resurse pe net (iarba, texturi etc.) ca sa nu fie nevoie acuta de un modelator.
Ultima editare efectuată de boboS pe 03 Oct 2008 09:09:57; 1 editări în total
"Noi ne facem ca muncim , ei se fac ca ne platesc"
|
Status:
Înregistrat pe: 03 Oct 2006 15:53:21
Vârsta: 25 ani
Mesaje: 949
Locatie: Galați
Programator
|
| |
Postat la 03 Oct 2008 10:16:15 Subiect: < fara subiect >
|
|
|
nekitu info:
|
nekitu:
da, am cam sarit calul cu aceasta competitie, dar e bine sa mai impingi un pic limitele sa testezi nivelul pool-ului. Urmatoarele concursuri vor fi unele focusate pe o singura chestie, nu jocuri intregi, ci chestii gen best terrain, best water, best flocking boids, etc., chestii care nu iau mai mult de 1 sapt. Pentru acestea din urma, engine-urile 3rdparty vor fi interzise.
Ultima editare efectuată de nekitu pe 03 Oct 2008 10:16:54; 1 editări în total
SpoOoOoock! Life Is Too Short For Cheap Chocolate
|
|
| |
Postat la 03 Oct 2008 10:59:11 Subiect: < fara subiect >
|
|
|
c0mas info:
|
c0mas:
Pentru acestea din urma, engine-urile 3rdparty vor fi interzise. Asa ca baieti, bagati tare de pe acuma  ... ca sa nu va prinda competitia cu "enginul in vine"!
Do what you love, money will follow!
|
Status:
Înregistrat pe: 19 Apr 2007 13:41:50
Vârsta: 35 ani
Mesaje: 337
Locatie: Bucuresti
Programator
Dream Builder Studios
|
| |
Postat la 03 Oct 2008 12:19:38 Subiect: Re:
|
|
|
Black_Knight info:
|
Black_Knight:
nekitu a scris: da, am cam sarit calul cu aceasta competitie, dar e bine sa mai impingi un pic limitele sa testezi nivelul pool-ului. Urmatoarele concursuri vor fi unele focusate pe o singura chestie, nu jocuri intregi, ci chestii gen best terrain, best water, best flocking boids, etc., chestii care nu iau mai mult de 1 sapt. Pentru acestea din urma, engine-urile 3rdparty vor fi interzise. da foarte tare asa poate totusi o sa gasesc si eu timp sa-mi termin engineul 
Ultima editare efectuată de Black_Knight pe 03 Oct 2008 12:20:49; 1 editări în total
|
Status:
Înregistrat pe: 07 May 2007 19:49:43
Vârsta: 29 ani
Mesaje: 711
Locatie: Bucuresti
Programator
|
| |
Postat la 03 Oct 2008 12:27:28 Subiect: < fara subiect >
|
|
|
SpOOky info:
|
SpOOky:
Excluderea 3rd party se refera la faptul ca vom folosi low level apis sau ca o sa fie un anumit motor oferit in competitie?
In primul caz presupun ca se refera doar la partea de grafica si ca in rest putem folosi middleware.
|
Status:
Înregistrat pe: 24 Mar 2007 20:48:46
Vârsta: 23 ani
Mesaje: 878
Locatie: Bucuresti
Modelator 3D
elohimSoft
|
| |