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 - Frondeus

Strony: [1] 2 3 4 5 ... 7
1
Warsztat Summer of Code 2013 / Axis Mundi
« dnia: Wrzesień 02, 2013, 00:24:18 »
Axis Mundi to w założeniu platformówka z elementami RPG.

Setting: Daleka przyszłość. Społeczność dzieli się na dwie widoczne grupy - Czystych i Odrutowanych.
Czyści żyją na górze, w metropolii gdzie górują drapacze chmur wraz z największym i najbardziej okazałym, Axis Mundi - "Oś Świata". Odrutowani żyją na dole. Bez nich miasto by upadło lecz nie są tego w pełni świadomi. To oni utrzymują porządek, regulują systemy, naprawiają i tworzą. Życie na dole byłoby niemożliwe bez wszczepów które u góry są zakazane tak samo jak sztuczna inteligencja. Góra zajmuje się głównie usługami zaś dół przemysłem. Na dole jest też o wiele bardziej niebezpiecznie, ludzie żyją w strachu przed zbuntowaną AI lub przed ludźmi którzy utracili kontrole nad wszczepami. Ludzie przypisują im demoniczne nazwy takie jak "południca", "rusałka", "wampir" wzięte z folkloru Słowian.

Ta część - fabuła itp powstanie na samym końcu o ile starczy mi sił i czasu. Jakiś czas temu wpadłem na pomysł połączenia cyberpunku z mitami Słowian i jestem ciekaw czy taki twór da radę :)

Technologia: Gotowy silnik HaxePunk.

Grafika: Pixelart w miarę moich możliwości :)

Platforma: Android, Linux, Windows.

Cel gracza: Typowy :) Wybić potwory, wypełniać zadania itp.

Team: All in One - czyli robię za grafika, programistę, level designera itp.

Kiedy zacząłem: 10 dni temu. Wcześniej chciałem pracować nad Space Race lecz wiem że nie dam rady (fizyka, multiplayer, komponenty i grafika nie ruszone lub zepsute).

Sterowanie: Klawiatura/Multitouch.

Stan na dziś: Testowy jeden poziom, animacje postaci z tutoriala, reszta własna. Zalążki pogody (deszcz). Napisany eksporter dla DAME, wczytywanie poziomów, prosta grafika zrobiona w Pickle Editor. Gra kompiluje się i uruchamia na Androidzie, Linuxie i Windowsie. Działający parallax, tło itp. W sumie od jutra będzie tworzony gameplay jako taki.

Mały screen na początek (Android Nexus 7) :


2
Projekty zaawansowane / Gravity!
« dnia: Wrzesień 21, 2012, 17:18:55 »
Gravity!

Postanowiłem kontynuować projekt po 2 letniej przerwie.

Co się zmieniło?
1. Silnik - zamiast robić własny bubel postanowiłem użyć gotowego Unity3D 4.6. Warto było. Znacznie ułatwia prace nad grą, w szczególności najnowszy system GUI. Pozwala mi myśleć nad gameplayem a nie zajmować się podstawowymi problemami.
2. Pomysł na menu - zrezygnowałem z oddalanego menu na rzecz zwykłego. Jednakże być może w przyszłości dodam coś pomiędzy. Np. mapę systemu słonecznego jako sposób na wybór poziomu.
3. Dynamizm - z racji synchronizacji wielu elementów z aktualnie granym utworem gra jest nieco bardziej dynamiczna. Cały czas nad tym pracuję aby gracz nie poczuł się znudzony.
4. Muzyka - sama muzyka też została zmieniona. Obecnie korzystam z elektronicznej znalezionej w internecie, lecz trwają prace nad własnymi kawałkami ;)
5. Grafika - obecnie pracuję nad trochę innym stylem graficznym. Całość nie jest jeszcze spójna ale na pewno poprawię jeszcze. Grafika ma być minimalistyczna. Zależy mi na prostych kształtach i kolorach. Być może wybiorę grafikę wektorową.
6. Target - tym razem celuję w urządzenia mobilne. Całość testuję na Nexusie 7.

GIF przedstawiający najnowsze zmiany

Pomysł gry oraz prace do czasu reaktywacji projektu opisałem na stronie

3
Narzędzia / [Solved]Mingw nie widzi kodu?
« dnia: Kwiecień 09, 2012, 15:26:58 »
Kiedyś próbowałem z poziomu linuxa kompilować grę dla windowsa. Wychodziło kiepsko, więc dałem sobie spokój.
Teraz wydawało mi się że jestem troche mądrzejszy, znam linuxa i sobię poradzę. No cóż, moje plany rozbiły się z hukiem o brutalną rzeczywistość. A co takiego zrobiłem:
1. instalacja mingw32 - pacman -S mingw32
2. instalacja sfml2 - za pomocą nieoficjalnego repo - yaourt -S mingw32-sfml-git . Najnowsza wersja pobierana z gita.
3. stworzenie makefile który za jednym zamachem zrobi i exe i plik linuxowy:
#Makefile
CC = g++
W32CC = i486-mingw32-g++ -L/usr/i486-mingw32/lib
OBJ = main.o
W32OBJ = main_w32.o
CFLAGS=-g
LFLAGS=-lsfml-audio -lsfml-graphics -lsfml-window -lsfml-system

.PHONY: clean

all: compo w32-compo
w32-compo: $(W32OBJ)
$(W32CC) $(LFLAGS)  $^ -o $@
compo: $(OBJ)
$(CC) $(LFLAGS) $^ -o $@

%_w32.o : %.cpp
$(W32CC) $(CFLAGS) -c $< -o $@
%.o : %.cpp
$(CC) $(CFLAGS) -c $< -o $@
clean:
rm -f *.o
4. wywołanie "make"

Efektu się nie spodziewałem. Rozumiem gdybym nie zlinkował bibliotek, wtedy powinienem uzyskać błędy linkera w stylu:
undefined reference to `sf::VideoMode::VideoMode(unsigned int, unsigned int, unsigned int)'Ale czemu pomimo że linkuje poprawną bibliotekę (dla Mingw32), dostaję brzydkie:
undefined reference to `__imp___ZN2sf9VideoModeC1Ejjj'
Problem leży w źle zainstalowanym mingw, źle skompilowanym SFML2 czy też może nie dodałem jakiejś bardzo ważnej flagi?
Dla linuxa kompilacja przebiegła gładko, więc kod problemem raczej nie jest.

#Rozwiązanie:
Jak to mówią... Mózg rozj... Dałem $(LFLAGS) na koniec komendy... i zadziałało. Ciekawi mnie jednak czemu GCC się nie pluło a mingw tak...

4
C++ / Przenośność C++11
« dnia: Marzec 22, 2012, 19:02:33 »
Czy jeśli napisze statyczną bibliotekę(nie zależnie czy lib czy a) , z wykorzystaniem bajerów c++11, to czy mogę jej użyć np w NDK androida, lub w Metro UI windows 8?
Chciałbym napisać kod jak najbardziej portowalny, więc zastanawiam się czy użycie c++11 które zdecydowanie poprawia mi komfort pisania (lamdy, auto i foreach) jest dobrym pomysłem.


Dodatkowo czy w NDK jest możliwość podpięcia *.so itp? Jest jakiś rodzaj pluginów? (I analogicznie w Metro UI z dllką). Mam na myśli czy np jest opcja w takich systemach zrobienia pluginów przez graczy? Android chyba tak (Chociażby widżety dla homescreenów), ale nie jestem pewien czy Ms puści taki kod.

5
Java / Serializacja Runnable
« dnia: Styczeń 09, 2012, 21:44:35 »
Witam. Przywykłem (prawdopodobnie jest to zły nawyk, lecz mam go właściwie od pisania pluginów do minecraftowego serwera ) do serializacji obiektów w celu zapisania ich. Dzięki temu "cudownemu" rozwiązaniu moglem zapisać tylko obiekt np "world" który miał listę map które miały listę pol itp.

Ciekawi mnie czy istnieje sposób i czy jest on dobry na zapisanie runnable.

Dla przykładu mam klasę Building która ma Stany(klasa BuildingState) a te Akcje(BuildingAction).

Building
 |
+-State 1
     |
    +-Action 1
    +-Action 2
 +-State 2
     |
    +-Action 3

Czyli mając obiekt np Drzwi wyglądałoby to tak:

Drzwi
|
+-Otwarte
        +-Zamknij
+-Zamknięte
        +-Otwórz
        +-Wyważ
Akcje zaś mają obiekt na interface Runnable:

Przy zahardkorowaniu wygląda to np tak:
Building door = new Building("Door");
final BuildingState closed = new BuildingState("closed");
final BuildingState opened = new BuildingState("opened");

door.AddState(closed);
door.AddState(opened);

BuildingAction open = new BuildingAction("open");
closed.AddAction(open);
closed.setDefaultAction(open);
open.SetRunnable(new BuildingRunnable()
{
    @Override
    public void run()
    {
  building.setCurrentState(opened);
    }

});

BuildingAction close = new BuildingAction("close");
opened.AddAction(close);
close.SetRunnable(new BuildingRunnable()
{
    @Override
    public void run()
    {
    building.setCurrentState(closed);
    }
});

Dzięki temu chciałem aby np dało się za pomocą dźwigni otworzyć drzwi itp.

I teraz chciałbym móc zapisać do do pliku, i ciekawi mnie czy mogę zrobić to z Runnable za pomocą serializacji czy tez lepszym wyjściem byłoby użycie czegoś innego. (same building czy stany mogę zapisać po prostu dzięki DataInputStream, lecz to raczej nie przejdzie jeśli chodzi o takie metody).

Wiem że mógłbym użyć LUA itd... ale nie wiem czy to dobra opcja używać języka skryptowego w języku interpretowanym (który może być np na stronie www).

6
Java / [LWJGL] Uniknięcie fixed pipeline
« dnia: Grudzień 04, 2011, 16:04:57 »
Witam. LWJGL umozliwia pisanie gier w opengl1.1 az do 4.0. To oznacza że programista sam może wybrać featury. Jednakże czy w przypadku LWJGL jest sens wybierać nowoczesne rozwiązania typu własna biblioteka macierzy + shadery + VBO ?
Na wiki LWJGL piszą jak używać shader oraz VBO, a także coś nt macierzy (glOrtho niestety).
Czy gracz odczuje dużą różnicę?
Staram się programować w Opengl 2.1/1.1 + rozszerzenia, mam gotową klasę shaderów i vbo(opartą na tutorialach). Nie znalazłem biblioteki jak GLM dla javy więc używam rozszerzonej wesji Matrix4 z LWJGL wzbogaconą o własną glOrtho. Jednakże wydaje mi się że LWJGL włącza na starcie jakiś stan gdyż nie chce to zbytnio grać ze sobą (głównie macierze robią problemy mimo że oparłem je o dokumentacje opengl).

Zdaje sobie sprawę że Java nie da mi jakiś kosmicznych osiągnięć jeśli chodzi o wydajność, lecz programuje mi się w niej naprawde przyjemnie więc nie chciałbym z niej tak szybko zrezygnować.

7
Matematyka i fizyka / Fizyka ciała z kolizja perpixel
« dnia: Grudzień 01, 2011, 11:52:05 »
Witam. Tworze coś w rodzaju symulacji/gry gdzie piłka ma się poruszać po mapie ala Wormsy ( 2D ). Mam problem z fizyka, czyli jak poruszać piłka w sposób podobny do rzeczywistego. Mam tu na myśli obrót, tarcie itp.
Niestety nie mogę wykorzystać box2d gdyż obsługuje kształty Max 8 wierzcholkow.

Myślałem nad calkowaniem wzorow dynamiki ciała sztywnego z Perełek Programowania Gier I. Wydaje się być to dobrym pomysłem lecz lekko skomplikowanym. Na szczęście jest przykład na płytce.

Innym pomysłem byłoby tworzenie normalnej do prostej powstałej z kolidujacych pixeli. I na tej podstawie robić odbicie ciała od prostej.

Który sposób jest lepszy? AABB odpada chyba ze aby sprawdzić tylko pobieznie i przejść do per-pixel.
A może istnieje silnik który wspiera kolizje per pixel?
Pracuje głownie Javie. Ale c++ nie pogardze :)

Ps: Wybaczcie brak polskich ogonkow i interpunkcji. Pisanie z iPoda jest męczące. Jak tylko będę mógł to zedytuje posta.

8
Webowe / [JS HTML5] Przypisanie zamiast referencji
« dnia: Wrzesień 24, 2011, 18:50:54 »
Witam... programując w Js prostą gierke która wyświetla się w Canvas napotkałem na tragiczny problem.
Otóż jestem nowy jeśli chodzi o Js i wydawało mi się że jeśli napiszę:
var bufor = map;
gdzie map jest Array();

To mażąc po buforze nie zepsuje mapy...
Co muszę zrobić aby nie było referencji/wskaznika lecz kopia mapy?
A może pisanie nawet prostej gry w JS to samobójstwo? W takim razie co mi zostaje?
jQuery ? Ajax? C# + ASP.NET? Liczy się dla mnie aby działało multiplatformowo oraz ew korzystało z Canvas.

9
Skrypty / Skrypt przyjazny użytkownikowi.
« dnia: Wrzesień 09, 2011, 19:55:44 »
Witam! Piszę język skryptowy gdyż chcę wraz z grą udostępnić edytor map oraz skryptów.
Czyli nie chce 100% zahardkorować gameplay tak aby gracze nie mogli stworzyć wlasnej mapki, kampanii itp.

Problemem nie jest ani analiza leksykalna, skladniowa, semantyczna itp. Na ten temat jest bardzo dużo materiałów. Także po polsku.

Problemem jest fakt że jako programista napisałbym język wyglądający np tak:

^OnInit: $Var1,$Var2
$Var3 = Var1 + Var2
OnLoad: Var3
Ret

^OnLoad: $Var1
Write: Var1
Ret
Wiem nie jest to piękne ale to tylko przykład powstały pod wpływem improwizacji.
Jak widać gracz chcący zrobić skrypt najpierw musiałby przebrnąc przez te znaczki itp.

LUA i Angel Script wyglądają jak c++ - a do tego trzeba być programistą (czego staram się uniknąć dzięki radom PPG tom 1 art 1 ;) ). Może Basic? Lub jakiś inny twór? Powinienem postawić jednak na składnie typu c++ czy lecieć w słowny zapis "if x < 2 then begin read() end"??

Cały język byłby kompilowany do bajtokodu.

10
Narzędzia / [Eclipse] Podgląd std::vector
« dnia: Wrzesień 08, 2011, 22:06:27 »
Witam!
Zainstalowałem CDT + Mingw32 po czym zacząłem pisać program używający std::vector.
Nadszedł moment w którym musiałem sprawdzić w trakcie programu jak wygląda wynik w nim przetrzymywany. Nie chciałem używać printf itp więc postanowiłem użyć ... debuggera. I tu się okazuje że nie ma takiej pomocy jak w msvc że mogę spokojnie przeglądać wnętrze tej dynamicznej tablicy.
Google pokazuje mi że trzeba pobawić się z Pythonem.
Czy to jedyny sposób czy też może jest jakiś plugin itp?

11
Programowanie grafiki / [SFML] Dostęp do pixeli textury.
« dnia: Sierpień 21, 2011, 20:13:06 »
Witam po raz drugi...
Mam pytanie do osób które miały większa styczność z SFML.
Otóż jak najlepiej zmieniać pixele(pojedyncze) w teksturze?
Tekstura dla ułatwienia jest RenderTexture z SFML 2.0


a) glVertex itp czyli render do tekstury.
    -glVertex
    -VAO i wyswietlanie
b) sf::Shape, addPoint i na końcu Draw.
c) SetPixel?

Żeby nie było próbowałem każdej metod i żadna nie działa poprawnie bądź nie-odpowiednio napisałem kod.
a) użyłem glVertex, ustawiłem macierz projekcji na gluortho2D, macierz modelu-widoku na jednostkowa. użyłem glVertex2f. Rezultat - nic nie widać ;)
b) Przy większej ilości pixeli wywala program, czasem przy mniejszej też:
[... jakaś tam pętelka]
shape.AddPoint(X,Y,color);
[/...]
texture.Draw(shape);
w tym przypadku zamiast "jakiejś tam pętelki" miałem funkcje FloodFill która leciała przez większość pixeli. Aby uniknąć pomyłki dałem też for przelatujący przez wszystkie pixele - ten sam efekt. Gdy np dałem:
[... jakaś tam pętelka]
static int  i =0;
shape.AddPoint(X,Y,color);
if(i > 100)
{
texture.Draw(shape);
shape.~Shape(); // Nie wiem czemu sf::Shape nie ma funkcji Clear -.-
shape = sf::Shape();
}
i++;
[/...]
problem był mniejszy lecz nadal występował(rzadziej, losowo).
c) Set pixel największy niewypał . Otóż do tej funkcji ma się dostęp TYLKO:
texture.GetTexture().CopyToImage().SetPixel();
A jak można wyczytać z dokumentacji SFML2.0 : Get Texture zwraca referencje read only - mogę użyć Get Pixel lecz Set nic nie daje. Jak więc powinienem wypełniać tą teksturę? Spróbować jeszcze raz glVertex / VBO?
Zakładam że jest na to sposób choćby w czystym OpenGL. W końcu takie programy jak GIMP korzystają często z akceleracji sprzętowej GPU i bez problemu zapełniają nawet bardzo duże obszary.

12
Programowanie grafiki / Gra typu Wormsy - fizyka.
« dnia: Sierpień 20, 2011, 19:55:29 »
Witam. Tworze grę gdzie teren jest niszczony jak w wormsach.

Zamierzam zrobić to (i po części już robie) na zasadzie tekstury z informacją czy jest widoczny pixel, oraz tekstury z kolorem. W trakcie wybuchu wypełnie koło kolorem przezroczystości przez co bedzię widoczne zniszczenie.Mając tą teksturę będę mógł także wykryć kolizje.  Jednakże, nie chciałbym aby np zostawały w powietrzu odłamki , tylko spadały na dół itp. Czyli zakładam możliwość że nieostrożny gracz zamiast kryjówki wykopie sobie grób ;) Jak do tego podejść od sprawy technicznej? Robić tak jak dotychczas i sprawdzać czy dany obszar wokół zniszczenia nadal przylega do skały macierzystej. np za pomocą A*? Jeśli A* nie znajdzie drogi to znaczy że pixel jest odłamkiem?

Z góry dzięki za pomoc.

13
Platformy mobilne / Xperia X10 mini pro na linuxie.
« dnia: Sierpień 16, 2011, 18:59:14 »
Mam pytanko:
Jak debugować program na Xperii X10 mini pro gdy korzystam z Linuxa? Prawie wszystko odnosi się do windowsa.
Wyczytałęm tylko że linux powinien zadziałać z automatu bez USB drivers. Niestety wykrywa:
Cytuj
List of devices attached
????????????    no permissions
emulator-5554   device
Muszę dościągać jakieś dodatkowe SDK z SE? Narazie mam EDK by SE ale dla 2.3 - innego nie było.
A może jestem skazany na emulator/instalacje windowsa?

14
C++ / Dziedziczenie ostream i przeciążanie <<
« dnia: Lipiec 08, 2011, 23:31:57 »
Witam. Mam następujący problem.
Posiadam klasę logger, która posiada dowolną ilość (std::vector) wskaźników na ostream.
System działa bardzo dobrze - mogę łatwo dodać cout, ofstream itp.
Załóżmy (bo kod w rzeczywistości jest troszkę bardziej pogmatwany), że mam funkcję Message:
void Message(std::string msg)
{
for(uint  i = 0;i < destinys.size(); i++) *(destinys[i]) << msg << endl;
}
Jak się domyślacie destinys to owy wektor.

Chciałbym teraz stworzyć własną klasę wyjścia, tzn wyświetlić log np. w postaci fonta z OpenGL.
Tworzę więc klasę dziedziczącą od ostream:
class Console : public ostream
{
[..]
};

Po czym tworzę przeciążenie << dla string:
Console& operator<<(Console& console,std::string s)
{
[..]
return console;
}
Problem w tym, że o ile to działa:
pconsole << "Foo" << endl To wywołanie funkcji:
Message("foo")Nie daje pożądanych efektów.
Zakładam, że mimo wszystko jest wykonywany kod ostream, a nie dziedzica.
Lecz czemu? Czyż nie powinna być wywołana wersja dziedzica?

/edit : Przepraszam za błędy, mam nadzieję że udało mi się znaleźć wszystkie braki w ogonkach i interpunkcji.

15
OpenGL / Jak przekazać informacje o swietle - Deferred shading.
« dnia: Czerwiec 29, 2011, 17:47:20 »
Zastanawia mnie jak powinienem przekazać informacje takie jak kierunek, kolory o swiatlach do quadów.
Tzn chce rysować wszystkie quady za jednym zamachem - uniform chyba odpada.
Nie jestem pewien, czy lepiej dać sobie spokój i przeżyć te np 500 glDrawElements, czy zapisywać dane w teksturze bądź w wierzchołkach.

Jak Wy sobie z tym problemem poradziliście? Narazie umiem wyświetlić jedno światło przez uniformy czyli deferred mija się z celem.

Strony: [1] 2 3 4 5 ... 7