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.


Wiadomości - Risist

Strony: [1] 2
1
ConvexShape sh;

Vector2f origin = coś tam;

sh.setPoint(0,p1);
...
sh.setPoint(n,pn);

sh.setOrigin(origin);
sh.setPosition(-origin);

Ogólnie rzeczywista pozycja wierzchołka to sh.getPosition() + sh.getOrigin() + point (obrócony przez transform)

W razie wątpliwości polecam zajrzeć do dokumentacji lub do źródeł sfml'a.
// Ps. piszę z pamięci więc w szczegółach coś może się różnić.

Edit
Dlatego obraca ci się wokoło początku układu współrzędnych bo pozycja sh jest równa 0, a pozycje punktów to jedynie offset od tej pozycji

2
Tworzenie silników / BVH - optymalizacja kolizji
« dnia: Sierpień 30, 2016, 16:51:23 »
Witam.

Ostatnio postanowiłem ulepszyć część związaną z kolizjami w swoim silniku.
Wybrałem algorytm bvh (a raczej coś na kształt ). Ok, ostatecznie działa, ale wydajność jest gorsza niż w przypadku sprawdzania każdy z każdym.

Obecnie całą strukturę muszę odbudowywać z każdą klatką. Pewnie tutaj leży problem i powinienem jakoś reusować dane z poprzednich klatek. Tylko jak to zrobić? Gdyby część mapy była statyczna byłoby dobrze. Może i będzie ale jeżeli zacina się przy 20-30 koliderach to raczej statyczność mnie nie uratuje. Mógłbym aktualizować jedynie dynamiczne obiekty, ale co mi z tego jak potrzebuję przynajmniej z 30 dynamicznych (na przeciwnika idzie od 5 do nawet  15 )

Pomocy!!!!!!!!!!!!!!!!!!!!!!!!!!

3
Programowanie grafiki / Odp: SFML + Blender zły format?
« dnia: Czerwiec 30, 2016, 20:08:43 »
tak, tak, ale paint nie obsługuje przezroczystości.

I udało nam się rozwiązać problem. Nasz błąd był tak głupi, że ciężko jest się przyznać.

Rozmawialiśmy na facebooku i wysyłał mi zdjęcia przez ową stronę. Facebook po kryjomu przerabiał wszystkie zdjęcia na jpeg ...

Ok, dzięki za pomoc

4
Programowanie grafiki / SFML + Blender zły format?
« dnia: Czerwiec 30, 2016, 18:31:39 »
Witam
Na samym początku chciałbym powiedzieć, że nie wiem, czy ten temat pasuje do tego działu, jak nie to proszę o przeniesienie.

Z kolegą zaczęliśmy pracować nad grą. Plan był taki : on robi modele 3d, następnie rendery tego a ja wykorzystuje to jako grafiki 2d. Niby wszystko ok.

Gdy dostałem pierwszą grafikę, co istotne była ona w formacie png, od razu chciałem sprawdzić jak to będzie wyglądać. Uruchamiam program i dostaje error od sfmla, że nie obsługuje formatu jpeg. Moje zdziwienie było ogromne, ale otworzyłem painta i zapisałem jeszcze raz. Uruchomiło się.

Niestety pojawiły się artefakty na texturach . Po zapisaniu w paincie cała przezroczystość znika, a mój program działa tak, że gdy pojawia się kolor o rgb 255,255,255 jest zamieniany na transparentny. Jednak jak się okazuje muszą tam być jakieś różnice w kolorach, że nie usuwa jak powinno.

Teraz pytanie jak sobie z tym poradzić?

5
Po kolei:

- Przede wszystkim dokumentacja ( j. polski ) - komu się chce pisać dwa razy? I potem to aktualizować? horror
- Możliwości dodania obiektu 2D - jaki silnik tego nie posiada? (nawet w full 3d da się )
- Animacja obiektu 2D ( na podstawie tekstury, nie gif ) - animacja szkieletowa, yep? jak nie to ni cholery nie mam pojęcia o co ci chodzi
- Możliwość ustawienia grawitacji - jeżeli silnik ma obsługę fizyki na poziomie dodawania sił, jaki problem?
- obsługa menu, ustawień - dwie różne rzeczy
- obsługa : klawiatura, mysz, pad ( dostosowywanie przycisków )
- możliwość ustawienia określonej ilości FPS ( docelowo 60FPS i 30FPS )
- ustawianie wagi obiekłów - jak wyżej jak jest jakaś banalna fizka to obiekły będą miały wagę
- obsługa lin ( strzelanie, wspinanie, bujanie się ) - znowu fizyka i to dosyć banalna
- obsługa poruszających się platform - fizyka
- obsługa sytuacji przemieszczania na innym bohaterze ( bohater stoi na innej postaci, ruch postaci pod spodem sprawia przemieszczanie bohatera ) - czysty gameplay
- obsługa drabin - wchodzenie, zsuwanie się, schodzenie - jak wyżej
- obsługa pocisków ( nie natychmiastowych, a poruszających się ) - fizyka + kolizje ( czyli właściwie nadal fizyka)
- oczywiście kolizje między obiektami ( fizyka??? )
- loadingi - jak chcesz na siłe zmuszać gracza do czekania to proszę bardzo
- możliwość wstawienia intra - fsm do stanów gry i gotowe
- możliwość stworzenia na silniku edytora map - wstawianie dowolnych tekstur itp - "możliwość" zawsze jest, więc czego właściwie oczekujesz?
- własny system plików - również nie wiadomo co masz na myśli, tego nie trzeba nawet robić, to akurat sprawa os
- dobrze gdyby system plików zawierał szyfrowanie - jak wyżej
- możliwość stworzenia nakładki która pozwala sterować postaciami za pomocą jednej liczby ( chodzi o to, że np. 1 to ruch do przodu a 3 to ruch do przodu i w górę ) - czyli wchodzą w grę silniki jedynie nie bezpośrednio powiązane akcja-reakcja, bym mógł wstawić akcja-.. kilka zmian... - reakcja - gameplay, a nawet jak nie to 5 linijek kodu
- zliczanie szans - std::rand() ?
- obsługa achivmentów  - gameplay
- obsługa wybuchów (odrzut, zadawane obrażenia ) - fizyka
- obsługa C4 lub jak ktoś woli ładunków wybuchowych ( aktywna pauza - ustawienie czasu do odpalenia ) - fsm/ fizyka
- obsługa tarcz ( zatrzymuje pociski gdy bohater jest w określonych klatkach animacji ) - fizyka

Jeśli mówimy o c++ (bo akurat tym się zajmuję głównie) to sfml + box2d i masz większość tego co chcesz
Pozostałe elementy to tak na prawdę 2-3 względnie proste systemy.

Niby mam swój tech, który większość z tego spełnia, jednak nie udostępnię ci go z prostego powodu. 50-100 zł to jest praktycznie nic, a nie wierzę, że jesteś w stanie cokolwiek zarobić. Jak podniesiesz stawkę z 4-5 razy to ok, możemy pogadać.

6
C++ / Odp: Problem ze złożonym dziedziczeniem
« dnia: Marzec 18, 2016, 13:20:24 »
Miło było by jakbyś opisał dokładniej jak ma działać to sprawdzanie poprawności.
Jeśli rozumiem niektóre kombinacje binding i usage mają być niedozwolone? To się kłóci z twoimi wyliczeniami.

Przy dobrze napisanej klasie bazowej, każda kombinacja będzie poprawna. Ponadto będziesz korzystać jedynie z funkcji wirtualnych interfaceu. Pewnie masz na myśli, że niektóre z komponentów mają funkcje które istnieją jedynie w ich obrębie. Cała sztuka to jedynie zaprojektować dobrze tą klasę bazową, co czasami nie jest łatwe.

W każdym razie skrypt piszący klasy, jeżeli mają być bardzo schematyczne nadal pozostaje dosyć dobrą opcją.

Ewentualnie widzę jeszcze jedno rozwiązanie. W wersji debug sprawdzało by poprawność ( cokolwiek to oznacza), a w release było by wycięte.

7
C++ / Odp: Problem ze złożonym dziedziczeniem
« dnia: Marzec 17, 2016, 21:37:01 »
Ja bym nie szedł w dziedziczenie, a w komponenty. Pomysł z hierarchią jest dobry, jedynie co zamiast tworzyć klasy jak "Texture2D_Immutable_ShaderResource" zrób jedną klasę Texture z tablicami komponentów, które można dodawać ( co więcej dynamicznie nawet będzie można). Jeżeli jakiejś kombinacji nie będziesz używać to nie będzie ci niepotrzebnie zalegać w kodzie, a ponadto jak coś zmienisz w hierarchii nie musisz edytować tych 39 klas. A i czas kompilacji się zmniejszy ;) (zakładam, że korzystasz z cpp )

Ja z takiego rozwiązania korzystam często i zazwyczaj jest ok.

Na ogół hierarchia wygląda mniej więcej tak:

Klasa bazowa z definicją interface'u + jakieś podstawowe zachowania
Klasa przechowująca wiele elementów, dziedzicząca po bazowej
Konkretne klasy realizujące wymagane funkcjonalności ( te z Usage i Binding)
No i konkretna klasa ( u ciebie Texture)

w ten oto sposób zrobisz nie kilkadziesiąt, nie kilkanaście, a poniżej 10 w miarę prostych klas, z swobodnymi możliwościami rozwoju systemu o dodatkowe komponenty bez zawrotów głowy przy wielogodzinnym, mozolnym pisaniu.

Ewentualnie możesz napisać sobie skrypt w bashu, który wygeneruje ci te klasy xD

8
Dźwięk / Odp: SFML Audio - Błąd / crash
« dnia: Luty 04, 2016, 20:16:08 »
"kod odpowiedzialny za to" - tutaj może być problem, bo kodu jest dużo, a co ma z tym bezpośredni związek nie jestem pewien. Źródło można znaleźć na http://globalgamejam.org/2016/games/endless-loop . Pisane na game jamie, teraz próbuję przeprowadzić refaktoryzacje kodu.

Wszędzie gdzie korzystam z dźwięku działa to na zasadzie:
// w jakiejś klasie jako składowa
sf::Music music;

// podczas initializacji albo podczas aktualizacji obiektu

music.openFromFile("Audio\\wrota2.wav");

// podczas aktualizacji gry albo jako ostatnia część initializacji
music.play();
//



Korzystam z sf::Music bo patrząc na specyfikacje powinno być nieco bezpieczniejsze w przypadku braku pamięci. Nawet w przypadku krótkich dźwięków. Chociaż jak tak teraz patrzę błąd pojawia się gdy nowy dźwięk jest ładowany ( przypadek w trakcie gry ). Może to być problemem?

Tak opakowuję klasy sfmla na potęgę, dla bezpieczeństwa dodałem virtual do dekonstruktorów, w ogóle zapomniałem o tym, że może to być potrzebne. Jednak problem pojawia się nieco przed końcem gry, a po drodze niczego nie usuwam. Więc to chyba nic nie da.

Jednak crash nie występuje za każdym razem, wygląda to trochę jak zależność od dostępnej pamięci.


/// EDIT

Chociaż nie, w nowszej wersji dodałem Game::State, więc coś jest jednak usuwane ...
No cóż zobaczymy czy zadziała.
W każdym razie w poprzedniej wersji też błąd występował, a usuwania rzeczywiście nie było

9
Dźwięk / SFML Audio - Błąd / crash
« dnia: Luty 03, 2016, 18:12:27 »
Witam
Otóż właśnie zacząłem korzystać z modułu audio w sfml i w pewnym momencie zaczął się pojawiać dziwny błąd w terminalu, a następnie gra crashowała się. Jednocześnie pojawiają się problemy z uruchamianiem na pełnym ekranie (chociaż pewnie nie jest to powiązane). Nie mam pojęcia jak to zinterpretować, co powinienem z tym zrobić. W załączniku jest zdjęcie terminala. Korzystam z wersji bodajże 2.1 .

10
C++ / Odp: Funkcja zwracająca.
« dnia: Styczeń 25, 2016, 23:54:50 »
Zacznijmy od tego, że pytanie jest źle zadane.

Będę wredny i odpowiem na dokładnie to co zostało napisane:

sf::TcpSocket client; // tak aby był dostęp z funkcji, np. gdzieś globalnie

// dosłownie funkcja zwracająca wartość :P
sf::TcpSocket f()
{
return client;
}


11
Projektowanie kodu / Odp: c++ skill desing
« dnia: Grudzień 23, 2015, 15:48:52 »
Od siebie mogę podrzucić rozwiązanie, które zastosowałem ostatnio.

Mam sobie interface GameEvent w którym opisane są wszystkie zdarzenia na jakie obiekt gry musi umieć reagować. Następnie od tej klasy dziedziczy klasa GameEfect która dodatkowo posiada informacje o obiekcie do którego należy oraz GameMultiEfect która przechowuje wiele efektów i na każde zdarzenie uruchamia wszystkie.

Klasa GameObject ( czyli właściwie główna klasa systemu ) dziedziczy po GameMultiEfect z czego wynika, że można dodawać efekty jako swoiste pluginy. Więc można w ten sposób zrobić dowolną zdolność, cały system do obsługi tego jest już gotowy. Zdolności całkowicie pasywne też nie są problemem bo statystyki obiektu mogą być zmieniane podczas dodawania efektu.

Można w tym momencie dodać klasę Skill, która będzie posiadała standardowo zaimplementowane typowe dla wszystkich zdolności, czyli jak zostało wcześniej wspomniane np. nazwa, ikona itp.

I w ten oto sposób można otrzymać prosty do napisania, w miarę uniwersalny i łatwy do korzystania system.

12
Sztuczna inteligencja / Odp: Obstacle Avoidance
« dnia: Lipiec 24, 2015, 12:10:31 »
@koirat Tak znany jest. Jednak, wolałbym o ile to możliwe pozostać przy swoim pomyśle,
nie musiałbym całej struktury zmieniać.

@maro Nie wierzę, że sam na to nie wpadłem. Ok już działa wszystko jak należy.

@Krzysiek K. voodoo czy nie voodoo, ważne, że przynajmniej przeważnie działa. Kiedyś próbowałem takiego rozwiązania, że dosłownie wszystko chciałem planować. W efekcie doszło do tego, że praktycznie nic nie zrobiłem przez ten cały czas. Takie coś ma raczej sens gdy ma się jakieś większe doświadczenie, gdy robi się coś co jest chociaż podobne do tego co się kiedyś robiło.

Gra jest 2d, jednak układ współrzędnych jaki będzie docelowo wykorzystywać będzie trójwymiarowy ( z czego jeden wymiar będzie dosyć trudny do przemieszczania się). Pathfinding raczej będzie, ale później. Chodziło mi o coś w guście korekty do głównego toru ruchu. Np idzie postać do jakiegoś celu, ale w jej stronę leci pocisk. Więc w takim razie postara się lekko skorygować tor ruchu tak aby wyminąć pocisk. Tak samo miało by to działać z "pozytywnymi" obiektami, w stylu jakieś wzmocnienia.

W każdym razie dziękuję wszystkim za pomoc.

13
Sztuczna inteligencja / Obstacle Avoidance
« dnia: Lipiec 22, 2015, 12:38:27 »
Witam

Ostatnimi czasy próbuję napisać coś co można wykorzystać jako prosty sposób na omijanie przeszkód.
Miało to działać coś na kształt tego:

Wyliczam sobie wektor pomiędzy botem, a każdym obiektem mapy i sumuje je.
Następnie z powstałego wektora wyliczam kąt pod jakim powinien skierować się bot i poruszam go w tym kierunku (to akurat działa )

Jest jednak jeden mały problem, ale na tyle specyficzny, że nie mam pojęcia jak sobie z tym poradzić.
Efektem tego algorytmu jest to, że obiekty znajdujące się dalej oddziałują silniej na kierunek, a te które są bliżej nie wpływają praktycznie wcale. Powinno być dokładnie na odwrót.

Próbowałem sumować odwrotności wektorów, ale niestety wtedy pojawiają się problemy z dzieleniem przez zero. Próbowałem też ustalić maksymalną wartość jaką mogą osiągać zmiany sumy wektorów, jednak tutaj to już w ogóle była porażka.

Jakieś pomysły jak sobie z tym poradzić?


14
Branża / Odp: Trailer The Witcher: Battle Arena
« dnia: Sierpień 22, 2014, 11:40:10 »
Podejrzewam, że jak większość nowych moba nie będzie warta najmniejszej uwagi. Z tym gatunkiem powoli się zaczyna jak z mmorpg.

Nie wiem, dlaczego żaden z twórców tych gier nie może zrozumieć co najbardziej wpływa na rozgrywkę w tym gatunku. Przecież wszystko opiera się na zdolnościach kontrolowanych postaci. Jak są dobrze zaprojektowane, to gracze będą grali, jak nie to uciekną dość szybko. Jedyna gra która jakoś sobie radzi na tym polu to lol. Jednak chociaż robią jedną postać ponad pół roku to i tak mają często z nimi problemy.

No właśnie, w tych nowo wychodzących grach czas produkcji to coś około roku - dwóch. Jak myślicie ilu ludzi zajmuje się mechaniką postaci? Dodać należy, że w tym czasie należy zrobić min z 8 postaci i vuala mamy typową masówkę.

15
Programowanie grafiki / Odp: SFML biały sprite
« dnia: Kwiecień 16, 2014, 16:03:50 »
Nie czytałem innych odpowiedzi, ale chyba wiem co ci nie działa.

Aby wszystko działało texture musisz trzymać gdzieś w pamięci, a z tego co widzę ty ją wczytujesz dopiero gdy tworzysz obiekt. Zrób sobie jakiś vector na textury, wczytuj je przy starcie programu, a do sprite wysyłaj tylko jej referencje i powinno być ok.

I kolejna porada, jeżeli do tego samego sprite'a przypisujesz kilka razy texture o różnym rozmiarze to musisz zaktualizować rozmiar, bo inaczej albo ci zetnie obrazek, albo zostanie kawał białego. ( parametr domniemany w setTexture na true)

Strony: [1] 2