Pokaż wiadomości

Ta sekcja pozwala Ci zobaczyć wszystkie wiadomości wysłane przez tego użytkownika. Zwróć uwagę, że możesz widzieć tylko wiadomości wysłane w działach do których masz aktualnie dostęp.


Pokaż wątki - PsichiX (ΨΧΞ)

Strony: 1 2 [3] 4 5 6 7
31
C++ / templatka w templatce
« dnia: Czerwiec 19, 2011, 23:42:22 »
Witam,
tworzę templatkę IItemManager, której argumentami są: kontener (vector, czy list) oraz typ danych składowanych w kontenerze. próbowałem zrobić to tak:

template< typename Tc, typename Ti >
class IItemsManager
{
public:
IItemsManager();
~IItemsManager();
bool attach( Ti* item );
bool detach( Ti* item );

private:
Tc< Ti* > m_items;
};

jednak kompilator mi tego zabrania. Widziałem kiedyś bodajże jakiś trick z templatką w templatce, na wzór tego: template< template< Ti >, Ti >
Ciekawi mnie, czy istnieje rozwiązanie na mój problem.

32
Projekty zaawansowane / INBALL
« dnia: Maj 24, 2011, 04:53:41 »
Tytuł: INBALL

Gatunek: Soccer (multiplayer)

Opis: Sieciowa gra w pilke nozna, w przyszlosci z elementami demolki na boisku. Obecnie dostepny jest tryb prosty, czyli rozgrywka bez ograniczen liczby graczy w druzynie. Chwilowe gui nie pasuje, wiem, ale to sie zmodyfikuje w kolejnej wersji. Do Anty'ego: gra wyjdzie, wiec odpusc sobie swoj sztandarowy tekst :)
Prosze o testy i propozycje, co mogloby urozmaicic gre.

Jak grać:
1. logujemy (Login) się lub rejestrujemy (Register) nowe konto.
2. hostujemy (Host) nowy mecz, lub dołączamy (Join) do już istniejącego.
3. zanim host rozpocznie mecz (Play), gracze chcący grać, powinni wybrać do jakiej drużyny chcą należeć (Go to team 1, Go to team 2).
4. host ustawia parametry meczu i rozpoczyna rozgrywkę (Play).
5. w każdej chwili host może zakończyć mecz (Stop match).
6. w każdej chwili można opuścić mecz (End match).

Download: http://psichix.com/inball/GameFiles/InballGame.zip
Rozmiar pliku: 4 MB

Autorzy:
[indent]Programowanie: PsichiX
Fabuła: <brak>
Grafika: Inkeo, Exigo
Muzyka: <brak>[/indent]
Screeny:


33
Sieć i multiplayer / recvfrom() odbiera własne sendto()
« dnia: Maj 14, 2011, 19:00:42 »
Witam,
Mój problem polega na tym, iż wysyłając komunikat UDP na IP 127.0.0.1, na porcie 12346 (wcześniej zbindowany ten socket z portem 12345), otrzymuje zaraz po tym ten komunikat (IP 127.0.0.1, zaś port nr 0).
Moje pytanie brzmi: Jak powiązać socket UDP na przyjmowanie komunikatów z jednego konkretnego portu, zamiast otrzymywać ze wszystkich?

mój schemat, jak działa obecnie:
1. tworzę i binduję socket z IP 127.0.0.1 i portem 12345 (bind);
2. wysyłam komunikat na IP 127.0.0.1 na porcie 12346 (sendto);
3. czekam na odbiór wiadomości (recvfrom);
4. odczytuję wiadomość i sprawdzam z jakiego IP i portu ją otrzymałem i tutaj pokazuje mi moje IP oraz port 0;

zamiast powyższego punktu 4 powinien czekać na komunikat z portu 12345, a z tego co widać, otrzymuje własną wiadomość wysłaną na port 12346;

Za wszelkie pomocne odpowiedzi z góry bardzo dziękuję,
Pozdrawiam :)

EDIT: Czyżby niemożna było wysyłać i odbierać komunikatów na tym samym sockecie UDP? :0

btw. za co ten "Obserwowany"? D:

34
Sieć i multiplayer / Server w php
« dnia: Maj 07, 2011, 12:08:55 »
Witam,
Tworzę grę opartą na serwerze w php i poszukuje sposobu na przechowywanie danych i szybką komunikację, nie mogę używać bazy danych, ani requestów w formie standardowej. W mojej mysli to wygląda tak, że rozpoczynam z gry (pc) request typu connection keep alive i wysylam dane ciagle do niego i w outpucie tez ciagle otrzymuje dane, czyli jest ciagly ruch, a dane te wisza gdzies na serwerze, chociazby w otwartym pliku.
Nie wiem tylko, czy jest to mozliwe (nie wiem po jakim hasle szukac w sieci info o tym). Czy moze bezposrednia komunikacja z baza danych to lepsze wyjscie? Probowalem sockety php, ale nie widza siebie wzajemnie, serwer php z klientem pc. prawdopodobnie porty poblokowane na serwerze, ale hosting nie pozwoli ich odblokowac. serwer linux odpada kategorycznie.
Za wszelkie pomocne odpowiedzi z gory bardzo dziekuje.
Pozdrawiam.

35
Witam,
chciałbym się dowiedzieć, jakie istnieją algorytmy do niwelowania skutków opóźnień transmisji danych? Kończę opracowywać własny i chcialbym przeprowadzić testy sprawnościowe oraz czy algorytm o podobnej lub tej samej zasadzie działania już nie istnieje.
Za wszelkie pomocne odpowiedzi z góry dziękuję,
pozdrawiam :)

36
Witam.
Chciałbym się dowiedzieć, jak mogę rozwiązać problem wywołania funkcji z dynamicznie przydzielanymi argumentami, coś pokroju:
statycznie:
push arg[ 0 ]
push arg[ 1 ]
call foo
pop ret
dynamicznie:
for( int i = 0; i < arg.count(); i++ )
push arg[ i ]
call foo
pop ret
chodzi mi o to, by nie znając ilości argumentów, oraz ich typów podczas kompilacji, a znając je podczas uruchomienia, mozna byłoby wywołać daną funkcję dynamicznie.

Za wszelkie pomocne odpowiedzi z góry dziękuję.
Pozdrawiam :)

37
Branża / Game Developerzy - Kraków?
« dnia: Styczeń 25, 2011, 00:37:06 »
Witam,
Za niedługi czas przenoszę się do Krakowa i poszukuję tam pracy. Wiadome też, że jak na silnikowca i "nerda" przystało, celuję w studia gamedeveloperskie. Moje pytanie brzmi:
Jakie znacie firmy w Krakowie, zajmujące się tworzeniem gier, godne zaufania, u których warto starać się o pracę?
Ewentualnie, jakie znacie firmy z innych miast, które uznają pracę zdalną?


Za wszelkie pomocne odpowiedzi z góry bardzo dziękuję.
Pozdrawiam! :)

38
Projekty zaawansowane / Essentials
« dnia: Grudzień 19, 2010, 18:59:39 »


Tytuł: Essentials

Gatunek: Aplikacja

Opis: Essentials jest to program typu "niezbędnik", czyli działający w tle, aktywowany za pomocą kombinacji klawiszy WIN + CTRL (flaga windows + control), dający szybki dostęp do aplikacji często przez Was używanych, poprzez wyskakujące ikonki.
Można do niego dodawać nowe polecenia uruchomienia programów lub komend linii poleceń, klikając na plik PPM i wybierając z listy "Add to Essentials", lub edydując plik "EssentialsData/Items".
Niezbędne informacje znajdują się w pliku Readme.nfo, lub po odpaleniu Niezbędnika, klikając na ikonkę Readme.
Jest to wersja beta i prosiłbym o informacje o zachowaniu i ewentualnych bugach.

Mi osobiście najlepiej się sprawuje do rzeczy przenośnych (Portable) które moge szybko odpalać, nie wchodząc do folderów programów na pendrive.

Tą zawartością pliku .reg usuwamy wpisy do rejestru które utworzył program:
Windows Registry Editor Version 5.00

[-HKEY_CLASSES_ROOT\*\shell\Add to Essentials]

Download: http://prototype.psichix.com/Essentials_0950.zip
Rozmiar pliku: 283 KB

Autorzy:

Programowanie: PsichiX
Grafika: PsichiX

Screeny:

39
Witam,
Przejdę do rzeczy, spójrzcie na ten screen:

jak widać jest to menu kontekstowe pulpitu/eksploracji windows i widnieją tam pola akcji różnych aplikacji, takich jak WinMerge, czy Tortoise SVN. Moje pytanie brzmi:
Jak mogę zarejestrować w tym menu akcję, która wykona się dla mojej aplikacji po naciśnięciu jej pola w tym menu?
Nie wiem nawet pod jakim hasłem mam szukać, nie znam fachowej nazwy tego, tak więc zadowolę się nawet naprowadzeniem mnie jak znaleźć informacje o tym problemie.

Za wszelkie pomocne wypowiedzi z góry dziękuję.
Pozdrawiam :)

40
OpenGL / VBO - multiple vs interleaved, oraz limity
« dnia: Grudzień 13, 2010, 15:39:58 »
Witam,
Ciekaw jestem która metoda użytkowania VBO jest lepsza (czytaj: daje większą wydajność dla małej oraz dużej ilości wierzchołków - mała: do tysiąca, duża: powyżej kilkudziesięciu tysięcy), oraz ogółem zestawienie plusów i minusów, które pomogą mi wybrać tę najodpowiedniejszą spośród dwóch: wiele buforów (każdy atrybut wierzchołka na osobny bufor) kontra jeden bufor (wszystkie atrybuty odpowiednio upakowane w jednym buforze).
Drugim pytaniem jest czy istnieją jakieś maksymalne limity ilości jednocześnie podpinanych buforów, oraz czy jest może jakiś ustandaryzowany limit minimum które karta musi udostępnić.

na logikę jeden bufor zdaje się być lepszym rozwiązaniem dla rysowania, z drugiej strony zaś wiele buforów ma przewagę przy aktualizacji (bardzo częsta aktualizacja, ale nie wszystkie atrybuty na raz), co jest dla mnie ogromnie ważne

Z góry dziękuję za sensowne wypowiedzi,
pozdrawiam :)

41
Projekty rozpoczęte / [TEST][WEB] Oxygen
« dnia: Grudzień 12, 2010, 17:28:25 »
Oxygen jest to silnik XenoN Core w wersji na przeglądarki nowej generacji
(na chwilę obecną: Firefox 4 oraz Chrome 9)


Obecna wersja przeznaczona jest dla dwuwymiarowych gier Casual, zaś wersja 3D opublikowana zostanie wraz z przejściem WebGL z etapu testowego do stabilnej wersji.

Ficzery:
  • Tekstury
  • Meshe
  • Shadery GLSL
  • Sprajty
  • Kolizje
  • Obsługa myszy i klawiatury
  • Automat scen i przebiegu gry (użytkownik określa zachowania, silnik zajmuje się ich wykonywaniem)
  • Warstwa ładowania oraz interfejsu (modyfikowalna zawartość HTML)

ONLINE TEST: http://oxygen.psichix.com

W tym wątku będę prezentował gierki testowe, które powstają w ramach tworzenia tego silnika i bardzo bym prosił o testy :)

Z góry dziękuję,
Pozdrawiam

42
OpenGL / Ubershader i korzyści z niego płynące
« dnia: Grudzień 08, 2010, 08:59:53 »
Witam,
Od niedawna zainteresowałem się ubershaderami, gdyż mówi się, że pozwalają zwiększyć wydajność grafiki. Testowałem to na NV 9800gt i aż tak dużego skoku nie odnotowałem. Chciałbym więc zapytać Was:
1. W jakich przypadkach pozwala on na uzyskanie dużego skoku wydajności?
2. Czy ma znaczenie typ uniformu odpowiadającego za wybór podshadera?
3. Czy stosowanie ifów zapewnia że spełnienie jednego warunku sprawi iż reszta ifów zostanie pominięta?

Oczywiście mowa o GLSL.

Przykładowy kod takiego shadera jeśli komuś będzie potrzebny:
// System:
varying vec4 Color;
uniform sampler2D Tex;

// Input:
uniform float Pass;
uniform vec2 TexSize;
uniform float Size;
uniform float Intensity;
uniform float Scale;
uniform float Aspect;
uniform float Contrast;

vec4 FixedColor( sampler2D texture, vec4 col )
{
vec4 color = texture2D( texture, gl_TexCoord[0].xy );
return( color * col );
}

vec4 BluredColorH( sampler2D texture, vec4 col, float size, float intensity )
{
if( TexSize.x <= 0.0 ) return( col );
vec4 color = texture2D( texture, gl_TexCoord[0].xy ) * intensity;
float pix = 1.0 / TexSize.x;
float temp;
for( float i = 1.0; i <= size; i += 1.0 )
{
temp = 1.0 - 1.0 / size * i;
color += texture2D( texture, gl_TexCoord[0].xy + vec2( pix * i * Scale, 0.0 ) ) * intensity * temp;
color += texture2D( texture, gl_TexCoord[0].xy - vec2( pix * i * Scale, 0.0 ) ) * intensity * temp;
}
return( color * col );
}

vec4 BluredColorV( sampler2D texture, vec4 col, float size, float intensity )
{
if( TexSize.y <= 0.0 ) return( col );
vec4 color = texture2D( texture, gl_TexCoord[0].xy ) * intensity;
float pix = 1.0 / TexSize.y * Aspect;
float temp;
for( float i = 1.0; i <= size; i += 1.0 )
{
temp = 1.0 - 1.0 / size * i;
color += texture2D( texture, gl_TexCoord[0].xy + vec2( 0.0, pix * i * Scale ) ) * intensity * temp;
color += texture2D( texture, gl_TexCoord[0].xy - vec2( 0.0, pix * i * Scale ) ) * intensity * temp;
}
return( color * col );
}

vec4 ContrastColor( vec4 col, float contrast )
{
vec4 result = ( col * ( vec4( 1.0 ) - contrast ) ) + ( ( col - vec4( 0.25 ) ) * vec4( 2.0 ) * contrast );
result.w = col.w;
return( result );
}

void main()
{
if( Pass == 0.0 )
gl_FragColor = BluredColorH( Tex, Color, Size, Intensity );
else
if( Pass == 1.0 )
gl_FragColor = BluredColorV( Tex, Color, Size, Intensity );
else
if( Pass == 2.0 )
gl_FragColor = ContrastColor( FixedColor( Tex, Color ), Contrast );
}

Z góry dziękuję za pomocne odpowiedzi.
Pozdrawiam :)

43
Witam,
Nawiązując do słusznej wypowiedzi Krzyśka K. w tym temacie, chciałbym spytać Was, kompotowcy, czego wymagacie od bibliotek, by móc szybko i bez problemowo tworzyć gry na Compo 2h/3h?

Z tego co powiedział Krzysiek wychodzi na to że nigdy nie są to gry 3D, więc ficzery odnośnie gier 2D mnie interesują. Wspomniał On także, że za dużo linii kodu - musi być jedna funkcja od tworzenia okna. Renderowanie musi także zawierać możliwość rysowania podstawowych kształtów, takich jak czworokąt, trójkąt, okrąg.

Proszę o to byście opisali czego (jakich ficzerów) zwykle używacie w swoich kompotowych produkcjach.

Pozdrawiam :)

44
Silniki / SOUL - śliwka w Kompot?
« dnia: Październik 26, 2010, 22:04:39 »
EDYTA: Aktualizacja: http://psichix.gmclan.org/download.php?file=soul_sdk_1100.zip

Witam,
Z racji że jakiś czas temu prowadzone były dyskusje na temat stworzenia prostej biblioteki na potrzeby kompotów, wiele osób obiecało takową zrobić, mieliśmy potem decydować o dalszym kroku w tym kierunku, aby jakoś ujednolicić szanse osób startujących w kompotach, ale dotąd nie zauważyłem aby ktoś już takową bibliotekę zrobił, tak więc mając cały dzień na kodzenie, stworzyłem taką oto bibliotekę (która mam nadzieje że zmotywuje resztę osób, może wspólnie wybierzemy coś odpowiedniego).

Biblioteka Soul zawiera w sobie podstawową funkcjonalność: renderer podpinany pod okno, zmiana koloru tła, rysowanie tablic wierzchołków, teksturowanie (tekstury ładowane z plików PNG, JPG, BMP; zmiana filtrowania oraz przycinania), operacje na macierzach widoku / projekcji / tekstur, blending, depth test, kamera prostopadła i perspektywistyczna (jako szybkie ustawienie macierzy projekcji 2D i 3D).

Tak więc do ściągnięcia beta biblioteki Soul, wraz z przykładem:
http://psichix.gmclan.org/download.php?file=soul_sdk_1000.zip


Powiedzcie czy taka forma prostej biblioteki nadaje się na dalsze myślenie o jednakowych narzędziach w tworzeniu gier na kompoty.

Opcjonalnie  jeśli była by taka chęć, mogę dodać obsługę shaderów, więc z fixed pipeline można by od razu na nowych technologiach tworzyć, ale raczej mija się to z celem tworzenia szybko i przyjemnie gier, ale ciekaw jestem jakie zdanie o tym macie Wy.

Pozdrawiam :)

PS. Dla tych którzy narzekali na strukture kodu xenona - nie, tutaj zastosowałem już prawidłową, przyjemnią w użyciu strukturę kodu, nie bójcie się więc potwora z lasu :D

45
Witam,
Próbuję konwertować pozycje XY mapy na długość i szerokość geograficzną, jednak szerokość geograficzna nie jest poprawnie obliczana, mapa wygląda jak mapa googli:

i problem występuje w obliczaniu szerokości geograficznej z punktu XY na tej mapie, dokładniej: jest on zwykle przesunięty na  wyżej na północy i niżej na południu niż wskazuje punkt XY. Zgaduję że to wina coraz mniejszej przestrzeni mapy pomiędzy liniami:


Jak mogę poprawnie obliczać szerokość geograficzną?

Strony: 1 2 [3] 4 5 6 7