piątek, 5 sierpnia 2011

Silnik NeoAxis 1.0


Niedawno ukazała się wersja 1.0 silnika NeoAxis. Jest to silnik oparty o Ogre3D, jeden z lepszych darmowych silników graficznych. NeoAxis jednak nie jest tylko silnikiem graficznym. Jest to całościowy silnik do gier (grafika, dźwięk, fizyka, AI, kontrolery, GUI itd.) napisany w C# (plus niewielki udział natywnych DLL napisanych w C++). Dlaczego akurat on zwrócił moją uwagę? W skrócie: łatwy do użytku, tani (jest też wersja free, dostępna bezpośrednio do pobrania ze strony), zawierający mnóstwo features-ów, ale, co najważniejsze - w pełni rozszerzalny. Przedstawię tutaj pokrótce najważniejsze możliwości tego silnika:

  • Platformy aktualnie obsługiwane: Windows, Mac OC, Linux
  • Platformy planowane: iOS, Android
  • Edytory wizualne: Edytor zasobów (edytor GUI, edytor fizyki, edytor particli), Edytor map (edytor terenu, kalkulator oświetlenia statycznego), Edytor logiki/skryptowania
  • Bardzo dobra integracja z Visual Studio i współpraca z .NET 4.0 (zalecane jest używanie C# 4.0 + Visual C# 2010)
  • Wczytywanie meshy: .mesh (Ogre3D), .dae (Collada), możliwość łatwej implementacji własnego importera (dostępna przykładowa klasa, wraz z komentarzem)
  • Programowanie: silnik zoptymalizowany, wykorzystuje SSE, umożliwia podpinanie natywnych bibliotek (napisanych w C/C++ i w wielu innych językach), wsparcie dla Visual Studio (2008/2010), Sharp Develop, Mono Develop, możliwość pisania własnych wizualnych edytorów (w WinForms lub w WPF)
  • Dużo gotowych klas, typowych w programowaniu gier: realistyczna woda, z obsługą fal i plusków, manager cut-scenek, broń + pocisk + wybuchy - idealne do gier FPS, drzwi, przełączniki, punkty spawnowania, obsługa kamer, bogaty zestaw pomocnych w pisaniu gier funkcji matematycznych i wiele wiele więcej
  • Rendering:
    - 64-bit HDR system
    - Optymalizacja silnika pod kątem wielu kart graficznych
    - Proceduralne generowanie shaderów + materiały
    - Hardware-owy instancing geometrii (dobre dla takich gier jak RTS-y, klony MineCrafta, ogólnie gdzie na scenie są setki tysięcy tych samych elementów)
    - Animacja: skinned mesh, pose animation, morphing, oraz możliwość zaimplementowania własnych typów animacji (prawdopodobnie 3Ds Max CAT też by się dało tutaj importowac)
    - Gotowe efekty postprocessingowe: blur, radial blur, korekcja koloru, bloom, motion blur, obraz podczerwieni, efekt starego telewizora
    - Efekty cząsteczkowe, wstęgi szlaku za obiektami (fajnie wygląda przy broni białej),
    - Zaawansowany profiler dostępny pod klawiszem F11
  • Oświetlenie: shadowmapy zwykłe, shadowmapy PSSM, cienie na stencilu, wsparcie dla normalmap, bumpmap, paralaxmap, emissive, reflection, cienie mogą rzucać obiekty z kanałem alpha (półprzezroczyste cienie relatywnie do przezroczystości tekseli tekstury obiektu), obsługa fixed pipeline dla starszych kart graficznych, light mapy, irradiance volume, światła punktowe, spotlight-y, kierunkowe, miękkie cienie, i wiele, wiele innych fajnych rzeczy
  • Fizyka: NVisa PhysX, Open Dynamics Engine, wspomaganie budowania modeli fizycznych przez wizualny edytor fizyki
  • Obsługa multiplayera (w katalogu SDK przykład aplikacji serwerowej, oraz chatu - kody źródłowe)
  • GUI: można tworzyć własne skiny i rozszerzyć istniejące klasy: button, checkbox, combobox, editbox, listbox, scrollbar, tabcontrol, textbox, videobox. Można odtwarzać wideo w GUI, można także pokazywać GUI (interaktywne) na obiektach 3D. Do GUI jest wizualny edytor - można też kodować ręcznie, albo oba sposoby na raz. Wsparcie dla lokalizacji oraz użycie kodowania Unicode.
  • Kontrolery: joy-e, pady, kierownice, a nawet wsparcie Kinnecta!
  • Gry web: możliwość publikacji gry jako komponent na stronie www, po uprzednim zainstalowaniu NeoAxis player-a.
  • Cena: zależy czego potrzebujemy. Cena waha się od 99$ do 9800$ (to już jest pełny kod źródłowy wszystkiego). Ja wybrałem wersję Indie Personal za 99$. Wszystkie licencje Royalty Free. Szczegóły można poznać tutaj: http://www.neoaxis.com/neoaxis/licensing 
  • SDK zawiera wiele assetów, oraz kilkanaście przykładów demonstrujących możliwości SDK, a także parę mini-gier.
 
Według mnie silnik zapowiada się rewelacyjnie (nie będę już przytaczał fragmentów kodu, aby pokazać jak fajnie się robi nowe typy obiektów w grze, które są modyfikowalne w edytorach). Znacząco przyspiesza tworzenie gry. Poprzednio programowałem z użyciem XNA, ale teraz definitywnie przesiadam się na ten silnik. Na koniec review-sy silnika na DevMasterze: http://www.devmaster.net/engines/engine_details.php?id=383

środa, 30 marca 2011

niedziela, 24 października 2010

Mission Galaxy - Nowy Portal Gry

Witam serdecznie. Mam dla Was miłą informację. Prace nad grą znowu ruszyły. Powstał oficjalny portal gry:
http://mgalaxy.mkinfo.i8p.eu/
Wkrótce, będzie tam wszystko co potrzeba aby zacząć grać. Tymczasem zapraszam gorąco do rejestracji i zapoznania się z portalem :) Pozdrawiam.

piątek, 13 sierpnia 2010

Mission Galaxy - Warming Up :>

W ciągu dwóch dni powstał serwer do gry. Napisany został w C#, bo po prostu w Javie to działy się jakieś dziwne rzeczy :) Serwer na razie obsługuje sam protokół gry a do zrobienia po jego stronie została już tylko logika gry. Równolegle powstaje dokument http://mkinfo.i8p.eu/pub/Projekt%20systemu%20komunikacji%20Mission%20Galaxy.pdf w którym jest opisane mniej więcej jak to wszystko działa. Klasa obsługująca protokół sieciowy gry w kliencie również została zaimplementowana. Wczoraj również zrobiłem 3 rodzaje działek: laserowe, atomowe i karabinek maszynowy w 3D. Dzisiaj zrobiłem nowy projekt statku-matki w 3D. Także praca wre :)

czwartek, 22 lipca 2010

Oficjalna strona gry Mission Galaxy

Dzisiaj oddaję w ręce graczy stronę domową mojej najnowszej gry - Mission Galaxy.
Link: http://mgalaxy.mkinfo.i8p.eu/
Strona jest jeszcze w budowie, ale prawdopodobnie będzie w pełni funkcjonalna w tą niedzielę (25.07.2010).

piątek, 25 czerwca 2010

Przydatne narzędzia w tworzeniu gier #2

Kontynuując poprzedniego posta zamieszczam kolejnych kilka narzędzi:

  1. Visual Studio Express - http://www.microsoft.com/express/Downloads/ - Darmowe środowisko programistyczne obejmujące takie języki jak C#,C++,Visual Basic. Również do użytku komercyjnego
  2. Eclipse - http://eclipse.org/ - Darmowe IDE dla takich języków jak Java, C/C++, PHP, Javascript
  3. NetBeans - http://netbeans.org/ - Również darmowe IDE dla takich języków jak Java, C/C++, PHP, JavaScript, Groovy i Ruby
  4. Geany - http://www.geany.org/ - nieduży i szybki edytorek
  5. FX Composer - http://developer.nvidia.com/object/fx_composer_home.html - Edytor shaderów od NVidii
  6. AMD RenderMonkey - http://developer.amd.com/gpu/rendermonkey/Pages/default.aspx - Rozbudowane IDE do tworzenia shaderów od AMD. Idealne zarówno dla programistów jak i grafików
  7. Jeskola Buzz Maker - http://www.buzzmachines.com/ - Tracker do tworzenia muzyki. Współpracuje z wirtualnymi instrumentami (VST).
  8. Softimage MOD Tool - http://usa.autodesk.com/adsk/servlet/pc/item?id=13571257&siteID=123112 - Narzędzie do edycji animacji i grafiki 3D darmowe do użytku niekomercyjnego. Przeznaczone również do tworzenia tzw. modów do gier.

wtorek, 22 czerwca 2010

Przydatne narzędzia w tworzeniu gier

Każdy kto chciał napisać jakiś poważniejszy projekt prędzej czy później musiał dokonać wyboru narzędzi, edytorów i innych przydatnych aplikacji, bez których tworzenie gry byłoby ciężkie, czy wręcz niemożliwe. Życie trzeba sobie ułatwiać. W tym poście postaram się zamieścić listę darmowych aplikacji które dotyczą poruszanego tematu.

W czym pisać grę?
Języków jest wiele (C,C++,C#,Java,Python,etc.etc.). Ich wybór zależy od typu gry jaką piszemy. Generalnie jednak większość komercyjnych tytułów jest oparta o C/C++ i/lub ewentualnie jakiś własny język (np. do skryptów). IDE jest wiele (każdy język ma jakieś wiodące IDE). Bibliotek jest wiele (mam tu na myśli biblioteki do grafiki, dźwięku itd. typu DirectX, OpenGL...). Możemy również zdecydować który silnik wybrać jako punkt wyjścia - tego też jest wiele. Aktualnie i osobiście pracuję w takiej konfiguracji:
Język: C#
IDE: Microsoft Visual C# 2008
Biblioteka: XNA (czyli w sumie DirectX)
Rezultaty mojej pracy są widoczne tu: http://www.gamedev.pl/user.php?x=view&id=4111

Niezależnie od tego w jakiej konfiguracji Ty pracujesz, jest parę aplikacji, które przydają się w codziennym życiu domorosłego game-codera:


  1. Blender - jedno z najważniejszych narzędzi przy tworzeniu gier 3D. Dzięki Blenderowi stworzysz wszystkie elementy świata gry 3D: assety (postacie, budynki, maszyny) wraz z animacjami, cutscenki, mapy i poziomy gry. Jest to program niezwykle elastyczny, a każdą rzecz można zrobić na setki sposobów. Swoje dzieła możemy eksportować domyślnie do kilkunastu formatów 3D, więc z wczytaniem ich do gry nie ma problemu. Program ten można pobrać ze strony: http://www.blender.org/ Obecnie mamy dwie wersje programu do pobrania: stabilna 2.49b oraz bardzo niestabilna (ale będąca synonimem doskonałości) wersja 2.5 alpha 2. Co do tej drugiej wersji to polecałbym ściągnięcie aktualnego builda Blendera ze strony: http://www.graphicall.org/builds/ Ja sam pracuję obecnie na jednym z najnowszych buildów 2.5 i muszę przyznać że jest to niesamowity komfort pracy.
  2. Inkscape - http://www.inkscape.org/ - program do edycji grafiki wektorowej podobny do Corel Draw.
  3. GIMP - http://www.gimp.org/ - taki darmowy Photoshop. Edycja grafiki bitmapowej. Przydatny do tworzenia tekstur.
  4. MapZone - http://www.mapzoneeditor.com/ - zaawansowany edytor tekstur proceduralnych.
  5. Unity - http://unity3d.com/ - Bardzo rozbudowany edytor gier. Można w nim stworzyć niemal każdy rodzaj gry. Nie trzeba umieć programować, lub wystarczy minimalna wiedza programistyczna.
  6. http://www.udk.com/ - Unreal Development Kit. Cały zestaw narzędzi do tworzenia gry w oparciu o silnik Unreala.
Kolejne pozycje będą w następnym poście... :)