Autor Wątek: Multicolor - silnik 2d, opensource  (Przeczytany 2722 razy)

Offline moonshield

  • Użytkownik
    • ::devBlog

# Lipiec 13, 2016, 18:12:22
Hej!

Jako, że w życiu kodu nigdy za wiele, postanowiłem wystartować kolejny projekt, tym razem open source. Jest to, a jakże, silnik ;) Nic zaawansowanego (przynajmniej na razie) - ot renderowanie w 2D. Oglądnąć kod można tu: https://bitbucket.org/dynamicreflectance/

Technologie: OpenGL (w zamiarach 3.3), C++ 11, Visual Studio Community 2015. Oczywiście porty na inne platformy niż Windows w planach.
Aktualnie nie ma tam za dużo - malowanie sprite'ów. W między czasie dochodzić będą kolejne ficzery - od animacji sprite'ów, przez zabawę ze sceną (obsługa parallax scrolling) po obsługę elementów gameplayu (triggery itp).

Będę wdzięczny za uwagi, komentarze, itp. W razie czego zapraszam do współpracy ;)

Z pozdrowieniami,
msh :)
« Ostatnia zmiana: Październik 26, 2016, 03:56:55 wysłana przez moonshield »

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline Rakieta

  • Użytkownik

# Lipiec 14, 2016, 16:43:33
Hej. Zastanów się nad WebGL. Brakuje silników dedykowanych dla małych gier web z edytorami, a to wcale nie jest gorszy rynek od gier Standalone. Jest masa ludzi, którzy lubią po prostu odpalić coś na miniclipie i grać, wraz z optymalizacją performance w Chrome/Operze wszystko jeszcze szybciej powinno się rozpędzać.

Jakbyś kiedyś zmienił zdanie to napisz do mnie.
Powodzenia :)

Offline moonshield

  • Użytkownik
    • ::devBlog

# Lipiec 14, 2016, 22:32:58
Pomyślę.

Swoją drogą Chrome / Firefox nie mają jakiś natywnych API, gdzie kod jest kompilowany do binarki?

//edit
Ha, NaCl. Ktoś się bawił tym? Opłaca się ewentualnie iść w coś takiego?
« Ostatnia zmiana: Lipiec 14, 2016, 22:38:21 wysłana przez moonshield »

Offline ΨΧΞ

  • Użytkownik
    • PsichiX Website

# Lipiec 14, 2016, 23:53:28
nope. Chrome oficjalnie odszedł od pluginów (dlatego też Unity rozwija WebGL, porzucając swój webplayer). Kwestią czasu jest, kiedy Firefox od nich odejdzie.
Dołączasz właśnie do listy oczekujących na WASM (WebAssembly) :)

Offline moonshield

  • Użytkownik
    • ::devBlog

# Lipiec 15, 2016, 00:05:47
NaCl jest równoznaczne z pluginami?

Offline Avaj

  • Użytkownik

# Lipiec 15, 2016, 00:06:17
nope. Chrome oficjalnie odszedł od pluginów (dlatego też Unity rozwija WebGL, porzucając swój webplayer). Kwestią czasu jest, kiedy Firefox od nich odejdzie.
Dołączasz właśnie do listy oczekujących na WASM (WebAssembly) :)
Ja jestem na liście oczekujących aż ta cała farsa z cyklu HTML5 upadnie i ludzie powrócą do czegoś podobnego do apletów Javy.

NaCl jest równoznaczne z pluginami?
nie, ale jest równoznaczne z Chromem

Offline ΨΧΞ

  • Użytkownik
    • PsichiX Website

  • +3
# Lipiec 15, 2016, 01:00:53
Avaj:

Wyobraź sobie, że pozwalasz na uruchamianie kodu 3rd party w swoim sofcie poprzez zewnętrzne, niezależne od Ciebie środowisko uruchomieniowe.

Teraz wyobraź sobie, że pojawia się luka w tym środowisku i ktoś wykorzystuje go do tego, by zyskać dostęp do Twojego komputera i/lub danych (wirusy, exploity, cokolwiek, co wykorzysta tę lukę do złych celów).

Dzięki temu, że użytkownicy to mało obeznane z tą tematyką istoty, Twój program zyskuje złą sławę (tzw. "zły PijaR"), a że nie możesz nijak tego naprawić, bo to nie jest problem Twojego softu, a binarki której używasz, to jedyne co Ci pozostaje to dręczyć i męczyć autorów o naprawienie.

Powiedz mi, czy rozumiesz już dlaczego Chrome (oraz zaraz inne przeglądarki) odchodzi od tego i wręcz narzuca wykorzystywanie VMki JSa (nad którą mają pełną kontrolę i mogą naprawić lukę niemal niezwłocznie od chwili wykrycia)?

To jest bardzo dobra decyzja biznesowa i cieszę się, że nie ustępują w tej kwestii niczyjej opinii.

Offline moonshield

  • Użytkownik
    • ::devBlog

# Sierpień 01, 2016, 01:33:30
Swoją drogą, całkiem niespodziewanie projekt ciągle żyje ;)
Pełna obsługa sprite'ów (multitexturing, animacje), kamery oraz sceny (podział na warstwy - parallax scrolling). Kolejne ficzery już wkrótce. Całość rozwija się dość wolno - koduję głównie po godzinach, ale systematycznie.

Będę wdzięczny za propozycje, uwagi, komentarze :)

msh

Offline ArekBal

  • Użytkownik

# Sierpień 01, 2016, 21:12:27
Małe code-review zrobiłem, bo sam swój wieloletni kod sobie sam odkopuje i reformatuje na nowo:
Wszelkie dyskusyjne kwestie zostawiam na boku...
namespace dynamicreflectance {
namespace multicolor
{
Nie wiem w którym cepie to weszło, ale możesz w ten sposób:
namespace dynamicreflectance::multicolor {
Zawsze kilka linijek mniej.

        LINIES,
isRelased()

getFrameArrayDimmensions
literówki

const float DEFAULT_SPRITE_WIDTH = 1.0f;
const float DEFAULT_SPRITE_HEIGHT = 1.0f;
zbędne

Cytuj
To many colors passed to sprite
Too many

const ModelTransformation& getTransformation() const
        {
            return this->modelTransformation;
        }

        ModelTransformation* getTransformation()
        {
            return &(this->modelTransformation);
}
Mógłbyś wyjaśnić? ;)

Offline Satirev

  • Użytkownik

# Sierpień 01, 2016, 22:14:30
namespace dynamicreflectance {
namespace multicolor
{
Nie wiem w którym cepie to weszło, ale możesz w ten sposób:
namespace dynamicreflectance::multicolor {
Zawsze kilka linijek mniej.
Nested namespace dopiero wejdzie w C++17.

Offline moonshield

  • Użytkownik
    • ::devBlog

  • +1
# Sierpień 01, 2016, 23:22:24
@ArekBal
dzięki! Masa literówek jest widzę, poprawię jak najszybciej ;)

const ModelTransformation& getTransformation() const
        {
            return this->modelTransformation;
        }

        ModelTransformation* getTransformation()
        {
            return &(this->modelTransformation);
}
Mógłbyś wyjaśnić? ;)

Przez referencję zwracam consta, przez wskaźnik nie-consta. Jakoś czytelniej tak jest imho, ale faktycznie coraz bardziej w to zaczynam wątpić ;)

Wszelkie dyskusyjne kwestie zostawiam na boku...

Poczytałbym o nich :)

Z pozdrowieniami,
msh

Offline moonshield

  • Użytkownik
    • ::devBlog

# Październik 26, 2016, 04:07:24
Tak w ogóle,

to projekt jeszcze żyje ;) Przeniosłem się na bitbucketa (nowy link w pierwszym poście). Między czasie zmieniło się kilka koncepcji, ale całość nadal celuje w 2d.
W zasadzie na ukończeniu jest podział sceny oparty o BHV (dodawanie, usuwanie i aktualizowanie liści). Frustum culling śmiga.
Teraz bloom. Durzo ( ;) ) blooma!

Z pozdrowieniami,
msh ;)