czwartek, 21 czerwca 2007

ActionScript 3: Biblioteki - Fizyka

Open source to potężny ruch! Od pewnego czasu mam wrażenie, że jak potrzebuję czegoś do zaimplementowania w ActionScripcie 3 to w większości przypadków już znajduję przykłady i udostępnione kody źródłowe.

Zastanawiam się nad zrobieniem pewnego repozytorium kodów źródłowych ActionScript 3 i Flexa 2. Myślę że bardziej przydałoby się lista bibliotek i kodów, które znalazłem w internecie. Tych kodów i przykładów chyba mam już ponad 500. Warto już brać się za uporządkowanie tego wszystkiego. Gdyby jeszcze opisywać jak je używać to pewnie by zainteresowaliby się wydawcy. Jak zauważyłem w książkach o ActionScript 3 czy o Flex 2 brakuje jakby takiej pozycji która byłaby "podsumowaniem" dorobku OpenSource. Myślę, że większość autorów udostępnionych kodów chętnie znalazłoby się w takiej książce. Mam pomysł związany z wydaniem takiej pozycji książkowej, ale do realizacji długa droga.

Repozytoria projektów we ActionScript 3 i Flex 2 znajdują się na: RIAForge (53) czy na Google Code (80). Istnieje też spis komponentów SWC opublikowanych w internecie - Flexbox (140)

Przykładem jest wyjaśnienie w przystępny sposób ludziom zagadnień związanych z fizyką. Są to kwestie dotyczące pisania silników do reprezentacji trójwymiarowej (przedstawiania modeli czy jak nawigacji po przestrzeni trójwymiarowej), ciekawe zagadnienia związane z kinematyką ciała i płynów, a także problemy ze sztuczną inteligencją. Do tego przyda się znajomość fraktali czy silników do animowania.

Obecnie najbardziej popularnym silnikiem 3D rozwijanym bardzo intensywnie jest Papervision3d, natomiast od dłuższego czasu silnikiem 3D który służył programistom do modelowania trójwymiarowego był Sandy. Na Google Code znajduje się kod źródłowy tej biblioteki napisany w ActionScript 3.

Problemy symulacji ruchu są bardzo interesującym zagadnieniem dla programistów gier. Na razie można zapoznać się z takimi bibliotekami jak APE czy Fisix. Alex Cove napisał bibliotekę APE, która pozwala miedzy innymi na testowanie kolizji, wykorzystywanie efektów cząsteczkowych Kod źródłowy tej biblioteki znajduje się na Google Code. Warto też zapoznać sie z API i jak śledzić dyskusje wokół tego projektu. Można zobaczyć demo gry Tetris opartej na tej bibliotece.

Fisix to biblioteka która bardziej jest znana z dem takich jak Mona the RagDoll czy Klepsydra. Obecnie ona jest do ściągnięcia w wersji 0.5, można tez zapoznać się z dyskusjami dotyczącymi tej biblioteki. Ciekawym przykładem wykorzystania tej biblioteki jest gra Calamity. Można też zobaczyć inny przykład wraz z kodem źródłowym

Michael Baczynski pracuje nad kolejnym silnikiem "Motor Rapid Flash Dynamics", na razie można czytać jego wpisy o tym.

Bardzo interesujący blog matematyka Jim Armstrong, o zastosowaniu odwrotnej kinematyki, która była przedstawiania na konferencji FITC 2007 w Toronto wraz z kodami źródłowymi biblioteki Singularity. On też jest autorem ciekawych artykułów o zastosowaniu matematycznych algorytmów których mogą pomóc programistom Actionscriptu w ich rozwiązywaniu problemów z animacja i fizyką.

Problemy sztucznej inteligencji ma przykładach w ActionScripcie 3 omawia Joe Makar w swoim blogu. Przykładem tego jest wynajdywanie ścieżki w labiryncie czy gra w życie.

Ciekawą propozycja dla programistów gier są frameworki napisane z myślą o lepszym programowaniu gier. Są to Data Structures Michaela Baczynski`ego. Zaimplementowano w nim algorytmy: wielowymiarowych tablic, kolejki, stosu, drzew, BST, list, grafów oraz wektora binarnego. Drugim frameworkiem jest Hexagon. Więcej można poczytać na blogu autora tego frameworka

Istotna jest też znajomość mechanizmów animacji. Jedna z nich jest biblioteka Tweener napisana przez Zeh Fernado. Można śledzić dyskusje związaną z rozwojem tej biblioteki, czy zapoznać sie z kodem źródłowym przykładów. Jest interesujący kurs po japońsku wprowadzający w programowanie przy użyciu tej biblioteki. Innym silnikiem animacyjnym, który napisał Ryan Taylor jest AS3 Animation System v2.0. Kod źródłowy można ściągnąć stąd a także wprowadzenie do tego silnika

Jak widać jest wiele interesujących bibliotek - można spędzić wiele czasu na poznawanie ich możliwości. Czy warto napisać o tym książkę?

1 komentarz:

sema pisze...

Myślę, że ze względu na dynamikę jaką charakteryzuje się os i brakiem jakiegokolwiek punktu odniesienia ( riaforge, czy code na google to jedynie zbiory - każdy pisze sobie ) to troszkę karkołomny pomysł. Nawet jak uda ci się zebrać materiały ( na jakiej podstawie zrobić selekcję? ) to w momencie tworzenia książki wysypie się tona kolejnych bibliotek. OS po prostu jest. Dzięki bogu :)