TDI 2D – założenia

Dodano: 5 czerwca 2017 o godzinie 18:47

Tak jak wspomniałem we wcześniejszym poście – zaczynam pisać silnik pozwalający w prosty i przyjemny sposób tworzyć proste gry 2D. Dziś chciałbym sprecyzować dokładnie co chcę osiągnąć, oraz czego można się spodziewać po tym dieslu.

Skąd nazwa?

TDI 2D jest nazwą tymczasową. Przyjąłem taką, gdyż chcę się zająć pisaniem kodu a nie wymyślaniem właściwej nazwy. Ta zapewne przyjdzie podczas programowania, jeżeli nie to aktualna może pozostanie.

Trochę o środowisku

Cały projekt będzie tworzony na platformie .NET w języku C#. Biblioteka, na której w głównej mierze będzie się opierał to SFML. Ostatecznie kod będzie otwarty, co oznacza, że będzie można podpiąć projekt pod swoją solucję i zmodyfikować go wg własnych upodobań, jednak udostępnię także rozwiązanie w formie biblioteki.

Co właściwie będzie oferował silnik

Program będzie miał być zamkniętą skrzynką, do której będzie można podać dane, podpinać się na różne sposoby, oraz wydawać jej polecenia co z podanymi danymi ma zrobić.

Główne funkcje jakie silnik będzie oferował:

  • sceny – będą one zbiorem aktualnie wyświetlanych i uwzględnianych w przeliczeniach obiektów w grze,
  • kolizje – grupy kolizji gromadzące referencje do obiektów będą na siebie wzajemnie oddziaływały,
  • animacje – obiekt w grze będzie mógł posiadać własny zestaw animacji odtwarzanych w jego sprecyzowanych stanach,
  • obsługa wejścia – reagowanie na kliknięcie na dany obiekt, wciśnięcie klawisza myszy, ewentualnie w końcowej fazie tworzenia dojdzie obsługa innych kontrolerów,
  • multiplayer – opcja, którą chciałbym zawrzeć, ale nie jestem pewien czy się na nią skuszę. Na razie w mojej głowie siedzi pomysł, żeby napisać oddzielny program pełniący rolę serwera i udostępnić z silnika możliwość łączenia się do niego i prostej wymiany danych, ew obiektów w grze. Największa niewiadoma całego projektu.

Komunikacja programista – silnik

TDI 2D będzie pozwalał programiście zdefiniować zestaw obiektów gry, umieścić je na odpowiednich scenach, podpiąć się pod eventy i wystartować. Podczas pracy silnika będzie możliwość odczytania informacji o aktualnym stanie obiektów, oraz wydania instrukcji sterujących nimi. Jedną z kluczowych opcji podpięcia będzie możliwość zaprzęgnięcia swojego delegata do wykonania się co zdefiniowany interwał czasu, ew co klatkę gry. Da to możliwość ciągłej kontroli sytuacji i zaimplementowania własnych rozwiązań, niezależnych od mechanizmów silnika.

Tak to widzę

Wszystko co opisałem powyżej jest moim konceptem, który chcę wprowadzić w życie. Zdarzyć się jednak może, że część z opisanych powyżej rzeczy ulegnie zmianie, nie zostanie wprowadzonych, albo zostaną wprowadzone inne. Tak czy inaczej kurs już obrałem i na razie będę się go trzymał.

4 odpowiedzi na “TDI 2D – założenia”

  1. StaszeG .NET | TDI 2D – założenia

    Dziękujemy za dodanie artykułu – Trackback z dotnetomaniak.pl

  2. Krzysiek pisze:

    Czekam na kolejne informacje. Udostępnisz gita, jak tylko zaczniesz prace? Z chęcią będę śledził postępy 🙂

    Pozdrawiam!

  3. […] repo na githubie (link), oraz na licencji MIT. Cele które chcę osiągnąć (wypunktowane w tym wpisie) nie podlegają zmianie, natomiast ciągle zostawiam otwartą furtkę dla nowych, które zrodzą […]

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *