Autor Wątek: Falleswen - New Land  (Przeczytany 2214 razy)

Offline RhAnjiE

  • Użytkownik

  • +6
# Lipiec 28, 2018, 18:50:40
Tytuł: Falleswen - New Land
Gatunek: Strategia
Technologia: C++ oraz SFML
Zespół: Marcin „RhAnjiE” Dyla, Jakub „seamonster131” Wegner, „Arc"
Grafika wykonana jest w całości przez nas.



Falleswen - New Land to izometryczna strategia czasu rzeczywistego pisana w C++ oraz SFML przez dwóch starych przyjaciół na WSoC 2018. Projekt zaczęliśmy pisać na początku lipca.

Wcielasz się w wodza koczowników uciekających ze swoich rodzimych stron z powodu nękającego was głodu, a twoim celem jest zapewnić swoim ludziom godne życie. Zaczynasz jedynie z niewielkimi zasobami i musisz przystosować się do warunków panujących w tej niegościnnej krainie. Dzikie zwierzęta oraz pogoda nie przyjmą was z otwartymi ramionami, ale bogate zasoby kuszą nierozważnych, którzy marzą, aby stać się panami tych ziem.

Jeśli się nie poddasz i przetrwasz pierwszą zimę, udowodnisz swoim ludziom, że jesteś godny bycia wodzem. Pokieruj swoim ludem i spraw, aby wasze marne szałasy zostały zastąpione wspaniałymi kamienicami, a wasza uboga technologia poszła do przodu. Zadbaj o ekonomię oraz stan skarbca i podporządkuj sobie rywali!

Aktualny stan:
  • Własny format plików konfiguracyjnych, logger, system zmiany scen i inne użyteczne narzędzia.
  • Dynamiczny i żywy świat z animacjami i losowo wygenerowanym terenem.
  • Generator terenu pozwalający modyfikować parametry takie jak: typ terenu, ilość wysp i surowców oraz wielkość mapy.
  • System budowania różnych budynków
  • Pracownicy z AI — potrafią wyszukiwać najkrótszą drogę do celu oraz wykonywać zadania.
  • System tasków, które pozwalają w łatwy sposób skonfigurować pracownika oraz obsłużyć odpowiednio jego dalsze zachowanie w razie powodzenia lub niepowodzenia.
  • Autorskie GUI i stworzony za jego pomocą HUD wraz z minimapą, oknem badań, panelem budowania itp.

W planach:
  • System pór roku, które zmieniają środowisko i ilość zasobów.
  • Drzewko technologiczne z modyfikacjami jednostek oraz budynków.
  • Rozbudowane AI, które będzie stanowić godnego przeciwnika.

Przykładowe zrzuty z gry:



« Ostatnia zmiana: Marzec 06, 2019, 19:06:54 wysłana przez RhAnjiE »

Offline Mr. Spam

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

Offline RhAnjiE

  • Użytkownik

# Wrzesień 06, 2018, 15:38:52
Po dość długiej ciszy wracam z wieściami. Projekt nie stoi w miejscu, zajmujemy się nim w każdej wolnej chwili i staramy się, aby na WSoC była już gotowa pierwsza grywalna wersja. Będziemy oczywiście kontynuować projekt nawet po zakończeniu konkursu.

Skończyliśmy pisać system budowania i obecnie pracujemy nad HUDem, na którym będą wyświetlać się wszystkie potrzebne informacje. Minimapka jeszcze jest do skończenia, bo planuję dodać jej scrollowanie. System ludzi też jest w trakcie prac, więc może uda nam się ich pokazać przed pierwszym października.

Brakuje nam jeszcze tekstur, ale niedługo będą skończone i zaprezentujemy kilka rodzajów budynków. Zwłaszcza, że dodaliśmy wsparcie dla wielkich obiektów, więc możemy trochę zaszaleć. Woda jest animowana i planujemy też dodać trochę życia do obiektów. Potrzebna jest jedynie sama animacja, ponieważ mechanika animowania obiektów jest już dawno skończona.

Oprócz tego naprawiliśmy wszystkie błędy, jakie pojawiły się wcześniej.


« Ostatnia zmiana: Wrzesień 06, 2018, 15:42:29 wysłana przez RhAnjiE »

Offline RhAnjiE

  • Użytkownik

# Wrzesień 26, 2018, 02:04:43
WSoC zbliża się ku końcowi, ale niestety z powodu wielu obowiązków nie zdążymy opublikować pierwszej grywalnej wersji do tego czasu. Postępy są, ale do końca jeszcze daleko. Oprócz zmienionej grafiki i prowizorycznego HUDu dodaliśmy funkcjonowanie kilku rodzajów budynków. Kiedy skończymy HUD, na którym będzie można umieścić więcej informacji, dodamy ładny panel, w którym będą wyświetlone wszystkie informacje o aktualnie zaznaczonym obiekcie.

Na razie dostępne są trzy rodzaje budynków - główna siedziba władcy, w którym zarządzamy wszystkimi ważnymi kwestiami - podatkami i zasobami; domy mieszkalne, które dadzą dach nad głową naszym ludziom oraz chata drwala, która zajmuje się pozyskiwaniem drewna i transportem do magazynu. Z powodu braku zaimplementowanych pracowników chwilowo symulujemy pozyskiwanie surowców oraz przenoszenie ich do magazynu. System zasobów jeszcze przejdzie duże zmiany.


Offline RhAnjiE

  • Użytkownik

# Październik 02, 2018, 01:24:36
Jednak się udało! Projekt został wysłany i będzie można go samodzielnie przetestować. Niestety czas nie był dla nas łaskawy, więc możemy zaprezentować jedynie solidne fundamenty. Gra będzie mimo wszystko kontynuowana i pomysły, które opisałem w pierwszym poście na pewno pojawią się w przyszłości. Zbyt dużo satysfakcji daje nam ten projekt, żeby go porzucić.

HUD został lekko przebudowany i wreszcie wyświetla informacje o budynkach. Naprawiliśmy sporo błędów i staraliśmy się, żeby pierwsza wersja była stabilna. Wydajność też powinna być w porządku, mimo że nie skupialiśmy się na optymalizacji prawie wcale.

Linki do pobrania na windowsa i linuxa będą niedługo. Na razie gra poszła mailem jedynie do opiekuna WSoCu, a ja przemęczony gonitwą z czasem muszę odpocząć :D


Offline RhAnjiE

  • Użytkownik

# Październik 05, 2018, 13:27:58
W czasie trwania głosowania dalej kontynuuję gierkę. Wziąłem sobie do serca każdy feedback i wprowadzam ulepszenia i poprawki. Oprócz tego zdecydowaliśmy się użyć języka skryptowego lua, aby łatwiej było dodawać nową zawartość i zapewnić wsparcie dla modyfikacji. Czeka nas sporo pracy, ale wyjdziemy na tym tylko lepiej.

Zaraz po tym dodamy robotników, którzy wniosą trochę życia do gry. Tartak będzie funkcjonował jak w grach z serii Stronghold - pracownik będzie ścinał drzewo, zanosił do swojej chatki, przerabiał na deski i transportował do magazynu.

Dodamy również więcej rodzajów budynków, między innymi farmy zboża, młyny i piekarnie do produkcji żywności. W zależności od liczby mieszkańców zmieni się szybkość pobierania podatków i żywności ze spichlerza, więc trzeba będzie dbać o ekonomię i rozwój osady.

Następnie zajmiemy się menu głównym wraz z możliwością ustawienia wszelkich parametrów - rozmiaru mapy, typu terenu, ilości surowców itp.

Offline RhAnjiE

  • Użytkownik

# Styczeń 28, 2019, 23:09:05
Już dawno nastał nowy rok, a od ostatniego wpisu minął jakiś czas. Mimo tego nasz projekt dalej jest kontynuowany i ma się dobrze. Do zespołu dołączyła nowa osoba — Arc, a wraz z nią nowe pomysły, które można zaimplementować. Jednak prace nad grą dalej idą po staremu, czyli ja pracuję, reszta się leni pracujemy w wolnym czasie wtedy, kiedy mamy chęci.

Na pierwszy ogień idą ludzie. Zaimplementowałem pierwszych pracowników, którzy działają według upośledzonego jeszcze systemu tasków. Zadania w przyszłości będą mogły być modyfikowane w skryptach lua, tak samo, jak zachowania pracowników. Pierwsi drwale potrafią już znaleźć drogę do celu, omijając wszystkie przeszkody i potrafią ściąć drzewa i zanieść je do swojego warsztatu, aby przerobić je na deski, a później przetransportować do magazynu.


Język lua został dodany do projektu i działa poprawnie. Niestety dopiero mała część gry opiera się na skryptach, w tej chwili służy nam głównie do ładowania ustawień poszczególnych elementów mapy. Użyliśmy również biblioteki sol2 do owrappowania kodu i lepszej integracji C++ z lua.

Minimapa obsługuje już możliwość przybliżania i oddalania zależnie od preferencji gracza. Dodaliśmy również bibliotekę ImGUI do wyświetlania szczegółowych informacji deweloperskich oraz łatwego dodawania narzędzi ułatwiających tworzenie i testowanie produkcji, którą zajmuje się nasz nowy członek zespołu.

Grafika jest tworzona dalej przez SeaMonster131, który już niedługo wzbogaci grę nowymi teksturami. Naszym priorytetem jest ulepszyć wygląd drzew i roślin oraz zwiększyć ilość dostępnych budynków. Planujemy też dodać animacje drzew, aby kołysały się lekko i dodały lekki powiew dynamiki na ekranie.

Arc w międzyczasie skończył implementację podstawowego menu głównego, w którym można już łatwo zmienić ustawienia generatora mapy oraz zresetować rozgrywkę. Okno gry można teraz rozszerzać według preferencji, nie martwiąc się o to, że proporcje się zmienią i obiekty będą wyświetlane niepoprawnie.



Naprawiliśmy również sporo błędów i wycieków pamięci, które wykrył Arc. Zoptymalizowaliśmy generowanie mapy, skracając jego czas trwania. Liczba FPS-ów dalej jest satysfakcjonująca, jednak mamy jeszcze szerokie pole do popisu w sprawie optymalizacji wydajności.

W tej chwili naszym priorytetem jest optymalizacja algorytmu A*, aby szybciej wyszukiwał ścieżkę do celu. Drugą najważniejszą kwestią do rozwiązania jest sortowanie obiektów na mapie. Ludzie czasem wyświetlają się w niewłaściwej kolejności, co psuje wygląd i utrudnia nam idealne zaprezentowanie gry. Po naprawieniu tych "usterek" będziemy mogli nagrać film ukazujący cały nasz postęp.

Zajmujemy się również samą rozgrywką. Po ulepszeniu systemu zadań dodamy więcej typów jednostek, które będą pracowały w polu, wydobywały kamień i podróżowały po mapie, a w raz z nimi wprowadzimy nowe budynki.

Kiedy już życie w naszej osadzie będzie stabilne, będziemy mogli skupić się na dodaniu możliwości rekrutacji i kontroli podstawowych jednostek wojskowych. Będzie to potrzebne, aby móc zaatakować naszego wroga, który podobnie jak my założył osadę i pragnie rozwinąć swoje włości, aby stać się potęgą w nowym świecie.

Offline Kuzyn

  • Użytkownik

# Styczeń 30, 2019, 02:33:39
Wygląda to naprawdę ciekawie. Pytanie na ile jest to jakiś konkretny projekt z wizją, a ile w tym po prostu takiego losowego upodabniania się do wielu różnych strategii? Jakies scenariusze są przewidziane czy tylko takie sandboxowe potyczki?

Offline RhAnjiE

  • Użytkownik

  • +1
# Styczeń 30, 2019, 23:21:22
W naszym zamyśle było stworzenie strategii, która wyróżniałaby się swoimi pomysłami i czerpała jedynie najlepsze rozwiązania z innych gier. Dlatego w planach mamy zaimplementowanie rozbudowanego drzewka badań, które powoli zmienić naszą zacofaną wioskę w szczyt technologiczny oraz system pór roku, który zmieni nasze podejście do zarządzania zasobami. Na przykład w okresie letnim będzie trzeba zgromadzić odpowiednią ilość zapasów, aby nasz lud przetrwał, a zimą robotnicy będą mniej wydajnie pracować.

Najpierw skupiamy się na podstawowej mechanice i zwykłych potyczkach, ale nie zaprzeczam, że w przyszłości pomyślimy również o jakichś scenariuszach albo kampanii. Głęboko w naszych głowach tli się nawet pomysł wprowadzenia multiplayer, chociaż do tego daleka droga. :P

Offline RhAnjiE

  • Użytkownik

# Marzec 08, 2019, 13:49:04
Wrzuciliśmy ostatnio nowy screen na stronę główną, ale już od tego czasu trochę się zmieniło. Wszyscy wkręciliśmy się w pracę nad gierką, co widać w statystykach na githubie. Każdy motywuje każdego swoimi postępami w projekcie.





Nowości:
  • Nowe elementy GUI — slidery oraz message log, który zapamiętuje historię wiadomości.
  • Drzewa oraz zboże kołyszą się teraz, sprawiając wrażenie podmuchów wiatru.
  • Lepsze AI farmerów.
  • Ulepszony wygląd HUD.
  • Optymalizacje mapy.
  • Naprawiono wykryte błędy.
Będziemy teraz wprowadzać system pożywienia, który sprawi, że z naszego spichlerza będą ubywać zapasy oraz system podatkowy, który również będzie zależny od ilości mieszkańców naszej wioski. Oprócz tego skończymy system cieni, aby każdy obiekt wyglądał przyzwoicie.

Zbliżamy się powoli do końca fazy dodawania funkcjonalności. Po tym zaczniemy optymalizować grę, ponieważ mamy kilka ciekawych pomysłów na zaimplementowanie. Wtedy wreszcie będziemy mogli zacząć dodawać zawartość — nowe budynki i jednostki. Kiedy aspekt ekonomiczny będzie skończony, będziemy myśleć o części militarnej.


Nagrałem również testowy filmik prezentujący zmiany. Nie zawiera wszystkiego, co opisałem wyżej, ale jest bardziej świeży od screena na stronie głównej.

Offline siso

  • Użytkownik

# Marzec 29, 2019, 21:50:18
Fajne :)

Trzymam kciuki!

Offline RhAnjiE

  • Użytkownik

  • +2
# Lipiec 10, 2019, 02:45:25
Po długiej ciszy wracam z nowymi wieściami. Projekt cały czas idzie do przodu, chociaż nastąpił pewny zastój spowodowany moją maturą. Niestety projekt piszę sam, ponieważ reszta osób w teamie ma trochę obowiązków w życiu i mniejsze chęci. Chciałbym wypuścić grywalne demo na następną edycję WSoC, dlatego będę ciężko pracował przez te trzy miesiące, żeby dotrzymać słowa.

Od ostatniego posta nastąpiło sporo zmian, głównie w kodzie. Najważniejszą i największą zmianą jest przepisanie części systemów na język skryptowy lua, który ułatwi dodawanie nowych rzeczy i zmienianie istniejących, co pozwoli również na tworzenie modyfikacji przez osoby trzecie.

Każdy obiekt w grze można oskryptować i dodać indywidualne efekty dla niego. Na przykład tylko zboże modyfikuje grunt pod sobą, żeby wyglądał na zaorany. W przyszłości planuję stworzyć edytor, który w łatwy sposób pozwalałby modyfikować obiekty dostępne w grze, bez ręcznego zmieniania wielu dostępnych parametrów.

Dodałem również drzewko badań, które pozwala nam rozwijać naszą wioskę. Istnieje możliwość badania nowych budynków, ulepszania jednostek (na przykład poprzez wynalezienie żelaznych narzędzi), usprawniać pracę budynków (np. poprzez użyźnianie gleby) i wiele więcej. Wszystko oczywiście można modyfikować w skryptach.

Od teraz należy również dbać o zapasy w spichlerzu. Konsumpcja żywności przyśpiesza, jeśli mamy dużo ludzi w osadzie, więc nie należy przesadzać z mieszkaniami. Należy zadbać o odpowiednią ilość zbieraczy owoców, ale jest to mało wydajny i ograniczony sposób na utrzymanie swojej wioski przy życiu. Istnieje jednak możliwość zbadania technologii uprawy ziemi, która da nam dostęp do farm, które pozwolą na wydajniejszą produkcję jedzenia.

Oprócz tego naprawiono wiele błędów. Gra jest o wiele stabilniejsza i wydajniejsza. Duże mapy generują się szybciej i sprawniej, a robotnicy szybciej znajdują drogę do celu. Wciąż jednak mam kilka pomysłów, jak mogę jeszcze bardziej usprawnić działanie gierki.

Planuję zająć się niedługo nowym generatorem terenu. Bawiłem się ostatnio w Unity3D i naoglądałem się materiałów o generowaniu, więc mapy będą bardziej funkcjonalne i ładniejsze. Dodam podgląd wygenerowanego terenu w formie minimapy oraz więcej suwaków do modyfikowania ustawień generatora w menu głównym.

Oprócz tego zajmę się tworzeniem jednostek ofensywnych, którym będzie można wyjątkowo wyznaczać polecenia. Robotnicy są niezależni i sami wykonują swoją robotę w zależności od tego, do jakiego budynku są przydzieleni, więc nimi nie powinno się sterować. Jednostki ofensywne będą potrzebne, aby móc na przykład zbadać teren i zaatakować rywali.

Offline RhAnjiE

  • Użytkownik

  • +2
# Lipiec 16, 2019, 03:20:06
Zacząłem się bawić generatorem terenu i wpadłem na pomysł, że skoro już używam zmodyfikowanego szumu perlina, to dlaczego miałbym nie dodać nierówności. Pierwsze efekty moich działań możecie zobaczyć w załączniku.

Czeka mnie trochę pracy nad zmuszeniem obecnych mechanizmów do współpracy. Na przykład muszę zadbać o dobre ustawianie pozycji postaci w zależności od wysokości kafli oraz spowolnić ich ruch, jeśli idą oni pod górę. Zmodyfikuję również algorytm wyszukiwania drogi, aby brał pod uwagę ukształtowanie terenu i w razie możliwości wybierał równiejszą drogę.

Oprócz tego ulepszyłem sposób ładowania tekstur, który już nie jest zależny w całości od lua. Gra sama potrafi znaleźć wszystkie tekstury we wszystkich podkatalogach i je załadować, a skrypty lua są opcjonalne, jeśli chcemy zmodyfikować konkretne parametry tekstur, np. przedział koloru albo typ, jeśli jest to spritesheet.

Oprócz tego zrefaktoryzowałem trochę kod i naprawiłem pare bugów.