poniedziałek, 26 grudnia 2011

Mono i Unity coraz popularniejsze w świecie gier wideo

Miguel de Icaza dokonał podsumowania rozwoju Mono (otwartej implementacji .NET Microsoftu) w 2011 roku. W roku tym Mono wraz ze silnikiem Unity odniosło znaczne sukcesy w segmencie gier wideo. Z kwestii przedstawionych w nocie warto wspomnieć o tym, że:
  • Sony wykorzystało Mono to budowy PS Suite - pakietu wspomagającego tworzenie gier na PS Vita i Androida;
  • Native Client (NaCl) Google otrzymał wsparcie dla kompilacji JIT (just-in-time, obok AOT - ahead-of-time) aplikacji Mono;
  • Większość gier i dem pokazujących możliwości NaCl wykorzystuje właśnie Mono;
  • MonoGame, które jest otwartą implementacją Microsoft XNA, posłużyło do przeportowania gry Bastion (gra 2D znana z Xboksa) pod NaCl, wsparcie dla 3D i OpenGL ES 2.0 w MonoGame ma nadejść w najbliższym roku;
  • Unity - wieloplatformowy, przez wielkie W, silnik gier wykorzystuje Mono. Gry używające Unity można znaleźć niemal wszędzie, od Nintendo Wii, poprzez smartfony, po przeglądarkę Chrome (NaCl);
  • Microsoft wydał Kinectimals, grę "ze zwierzątkami" pod iOS. Aplikacja została zbudowana z wykorzystaniem Unity i Mono.

wtorek, 20 grudnia 2011

Nowa wersja parametrycznego programu CAD 3D: FreeCAD 0.12

Dziś pojawiła się stabilna wersja 0.12 wolnego i otwartego programu CAD FreeCAD. Skrócony opis zmian (w jęz. polskim) można znaleźć na wiki programu.

Należy wyróżnić przede wszystkim:
  • znaczny rozwój szkicownika, obecnie, po napisaniu nowego algorytmu rozwiązywania więzów, można go uznać za w pełni funkcjonalny,
  • rozwój modułu PartDesign, który tworzy bryły na bazie szkiców przez wyciągnięcia, obroty czy wycięcia,
  • pojawienie się modułu dla architektów,
  • utworzenie centrum startowego, które pomaga nowym użytkownikom w pierwszych krokach w programie FreeCAD.

Co dalej?

Przede wszystkim planowany jest dalszy rozwój modułu PartDesign - wprowadzenie narzędzi typu (ang.) Pattern, Loft (już obecny w module Part), Sweep (już dostępny z poziomu Pythona).
Wersja 0.13 ma też wprowadzić obsługę złożeń (assemblies). Będzie za nie odpowiadała rozszerzona wersja autorskiego solvera znanego ze szkicownika.
Zagadką jest rozwój modułu rzutowania 2D. Właśnie dostał on możliwość automatycznego tworzenia kilku rzutów prostokątnych. Wciąż jednak brakuję wygodnej edycji rysunku 2D, w tym wymiarowania i dodawania symboli.

sobota, 17 grudnia 2011

Erewań IT: wirusy w Android Market

Ostatnie tekstu na stronach około-IT dotyczące "złośliwych aplikacji" w Android Market przypominają audycję Radia Erewań:
Słuchacze pytają: Czy to prawda, że na Placu Czerwonym rozdają samochody? Radio Erewań odpowiada: tak, to prawda, ale nie samochody, tylko rowery, nie na Placu Czerwonym, tylko w okolicach dworca warszawskiego i nie rozdają, tylko kradną.
W tytułach pojawiają się "wirusy" [1], [2], [3]. Tymczasem nie chodzi o wirusy, czyli oprogramowanie samoreplikujące się (dołącza się bez naszej wiedzy i zgody do innych programów, rozsyła się dalej). Wirusy widział każdy kto używał Windows 9x, wielu używających Windowsy z rodziny NT - wystarczyło uruchomić zainfekowany plik, by spowodować infekcję kolejnych.
Czy złośliwe aplikacje z Android Market to robią? Nie. Nie mają do tego uprawnień. Inaczej mówiąc aplikacje te nie są wirusami.

Więc o co poszło? O programy z przyznanymi zbyt szerokimi uprawnieniami, np. wysyłania płatnych wiadomości SMS. Problem w tym, że to sami użytkownicy przyznają te uprawnienia, są o nich informowani podczas instalacji programu i muszą je zaakceptować. Informacja pojawia się również podczas aktualizacji, gdy program chce zmienić posiadane uprawnienie.
Problemem nie jest słabość oprogramowania, problemem jest nieświadomość użytkowników. Programy te można przyrównać do SMS przysyłanych od partnerów operatora ("wyślij darmowy sms, a wygrasz Audi"), działań firm udzielających pożyczki, telezakupów, czy wysyłkowych klubów książki.

Co robi Google?
W tej chwili:
  • każda aplikacja ma ściśle określone uprawnienia (np. dostęp do karty SD, wysyłanie wiadomości), użytkownik jest o nich informowany i musi je zaakceptować,
  • aktualizacja ze zmianą uprawnień musi być potwierdzona przez użytkownika,
  • dostępny jest system ocen i komentarzy do aplikacji, dodatkowo Google wystawia dwa odznaczenie "Najlepszy programista" i "Nasz wybór",
  • Google systematycznie usuwa "złośliwe oprogramowanie" z Marketu.

sobota, 10 grudnia 2011

Stało się: wydajne gry 3D w przeglądarce, bez plug-inów.

To co widać poniżej to zrzut ekranu z gry Star Legends uruchomionej bezpośrednio w przeglądarce, bez użycia plug-inów. Za wszystko odpowiada NaCl (Native Client) i OpenGL ES 2.0.


Musiałem tylko w chrome://flags/  (Chrome 17) włączyć opcję[1]:
Zastąp listę renderowania programowego

Różnica względem rozwiązania WebGL/JavaScript to znacznie wyższa wydajność. Co ciekawe, przez większość czasu procesor nie miał co robić, obciążenie to 20-30% na rdzeniach taktowanych 800
MHz.
Różnica względem rozwiązań z plug-inami (np. Quake Live), to możliwość uruchamiania na każdej platformie gdzie jest Chrome (obecnie x86, x86-64, w przyszłości pewnie też ARM).

Jako ciekawostkę poleca porównanie wydajności NaCl JavaScript w prostym demie (OpenGL niewymagany) Flocking Geese. W moim przypadku NaCl był ok. 10 razy szybszy.

Star Legends może nie powala graficznie, bo jest to port z urządzeń mobilnych. Podobno wersja 3.5 silnika Unity3d ma przynieść wsparcie dla NaCl. Zresztą, niedawno otwarty silnik Dooma 3 też powinno dać się przenieść pod NaCl. Pytanie tylko czy jest to opłacalne...

[1] Dla:
OpenGL vendor string: Advanced Micro Devices, Inc.
OpenGL renderer string: ATI Radeon HD 3300 Graphics
OpenGL version string: 3.3.11161 Compatibility Profile Context


PS Jeśli macie kilka osób przed komputerem, polecam port DOS-owego Jump 'n' Bump.

Edit: Poniższe wideo przedstawia AngryBots, grę używającą NaCl, silnika Unity 3D i świetnie działającą pod Linuksem.



Jest ładnie, płynnie i wydajnie.