August 2008

Uwaga! Informacje na tej stronie mają ponad 5 lat. Nadal je udostępniam, ale prawdopodobnie nie odzwierciedlają one mojej aktualnej wiedzy ani przekonań.

# NVScene 08

22:06
Fri
29
Aug 2008

W dniach 25-28 sierpnia 2008 w San Jose (USA) miała miejsce impreza demoscenowa NVScene 08. Warto pościągać i pooglądać zaprezentowane tam dema, bo są jak sądzę na najwyższym światowym poziomie. Kto z czytelników mojego bloga nie wie jeszcze, co to jest Demoscena, niech czym prędzej się dowie, bo będę tu czasem o niej pisał. Dema scenowe naprawde warto oglądać! (A samemu tworzyć pewnie też, jeśli ktoś umie...)

Comments | #demoscene #events Share

# Własne narzędzia w Visual C++

20:03
Tue
26
Aug 2008

Do projektu Visual C++ można dodać pliki o nieobsługiwanych domyślnie rozszerzeniach i ustawić ich obsługę tak, żeby podczas kompilowania projektu wszystkie takie pliki były przetwarzane przez określony program konsolowy. To może być na przykład generowanie parserów za pomocą Flex i Bison czy jakiekolwiek inne czynności, które wygenerują na podstawie plików źródłowych pliki docelowe, z przygotowanym kodem C++ lub inne.

Służą do tego dwa mechanizmy. Ten starszy to Custom Build Steps i Build Events. Ten nowy, bardziej potężny, dostępny od wersji Visual C++ 2005, nazywa się Custom Build Rules. Jego skonfigurowanie jest bardzo proste - wszystko da się wyklikać w oknach dialogowych.

Comments | #visual studio Share

# Mass Effect - polecam!

23:35
Sun
24
Aug 2008

Mass Effect to osadzona w przyszłości i w kosmosie gra RPG z elementami strzelania TPP (kamera jak w Gears of War), w którą gram od pewnego czasu i którą chciałbym wszystkim gorąco polecić. Jest świetna! Po pierwsze, to jest prawdziwy rasowy cRPG, a nie żaden Hack'n'Slash. Jest dużo dialogów, dużo eksploracji świata, dużo zadań pobocznych, dużo przedmiotów do zebrania, trudne dylematy moralne itd. Po drugie, fabuła jest bardzo ciekawa i powinna się spodobać każdemu miłośnikowi Science-fiction. Po trzecie, gra jest zrobiona z prawdziwie epickim rozmachem. Wszystkie dialogi są nagrane jako dźwięk (i przetłumaczone na polski). Duże wrażenie robi możliwość odwiedzania różnych układów słonecznych i planet w galaktyce czy jeżdżenia po powierzchni planety. Takich ciekawych rozwiązań jest w grze więce.

Oczywiście Mass Effect nie jest idealny. Pisząc o wadach trzeba wspomnieć przede wszystkim, że "śmierdzi konsolą" - choćby w kwestii sterowania i celowania. Grafika też jest jakości średniej, a niską jakość tekstur i ogólną sterylność lokacji twórcy spróbowali zakryć dodając na cały ekran... szum. Moim zdaniem to jest cios poniżej pasa. Na szczęście można go wyłączyć w opcjach. Tak to wygląda w powiększeniu:

Mass Effect - Szum

Mimo tego grę polecam wszystkim miłośnikom komputerowych RPG i nie tylko.

Comments | #games Share

# Raw Input

21:22
Thu
21
Aug 2008

Trafiłem ostatnio na ciekawą, a mało chyba znaną część WinAPI - Raw Input. Pozwala ona na otrzymywanie przez okno komunikatów WM_INPUT z informacjami od podłączonych do komputera klawiatur, myszek i innych urządzeń wejściowych, jak joystick, ekran dotykowy czy nawet mikrofon. Celowo napisałem w liczbie mnogiej - to API pozwala na obsługę i rozróżnianie wielu podłączonych do komputera myszek i klawiatur! Ponadto daje dostęp do informacji od myszy w wyżej rozdzielczości, niż standardowa.

Ale coś za coś. Raw Input nie przetwarza za to przyspieszenia kursora Pointer Ballistics, do którego przyzwyczajeni są użytkownicy. Dlatego ten artykuł zaleca, aby do obsługi kursora stosować standardowy WM_MOUSEMOVE, do poruszania kamerą i wszędzie gdzie przyda się duża precyzja - Raw Input, a DirectInput stosować tylko do obsługi manipulatorów (joysticki, pady, kierownice).

Na koniec ciekawostka: Jest też darmowa, wieloplatformowa biblioteka do obsługi wielu myszek - ManyMouse.

Comments | #winapi Share

# SIGGRAPH 2008 i Larrabee

00:09
Mon
18
Aug 2008

W dniach 11 - 15 sierpnia 2008 w Los Angeles odbyła się konferencja naukowa SIGGRAPH 2008 poświęcona grafice komputerowej. Większość z artykułów została udostępniona w Sieci: SIGGRAPH 2008 papers on the web. Warto je poprzeglądać, nawet jeśli nie wszystko się rozumie :)

Jednym z najciekawszych jest ten opisujący nową konstrukcję firmy Intel - Larrabee (zobacz artykuł lub hasło na Wikipedii). To będzie (sprzedawany zapewne jako karta rozszerzeń) zbiór procesorów typu x86 z dodatkowymi instrukcjami. Jednostka wektorowa (vector processor - VPU) będzie miała instrukcje podobne do shaderów (swizzle, replicate, mask). Każdy rdzeń będzie miał własny 4 MB cache L2. Zakodowane na sztywno w sprzęcie pozostaną tylko niektóre funkcje tradycyjnych GPU - samplowanie i filtrowanie tekstur. Inne znane z potoku graficznego - rasteryzacja, interpolacja i blending - będą realizowane programowo.

Larrabee będzie wykonywał normalny kod x86, jak również będzie działał jako zwykła karta graficzna. Mamy więc do czynienia z rewolucją. Pozostaje tylko przekonać użytkowników do kupienia takiego urządzenia. A my programiści... wracamy do pisania software rendererów :)

Comments | #events #hardware Share

# Wielka Warsztatowa Ankieta 2008

20:05
Sat
16
Aug 2008

Zorganizowałem ostatnio trzecią edycję projektu Wielka Warsztatowa Ankieta. To badanie statystyczne, które ma na celu poznanie cech i preferencji ludzi z Warsztatu - odwiedzających portal www.gamedev.pl, forum.gamedev.pl lub kanał IRC #warsztat. Zbieranie danych trwało 2 tygodnie. W tym czasie osoby zainteresowane mogły amonimowo wypełnić ankietę złożoną z wielu pytań. Nadeszło 605 wpisów. Wczoraj udostępniłem opracowane wyniki. Zapraszam do przeglądania dokumentu Wielka Warsztatowa Ankieta 2008.

Comments | #warsztat #web Share

# Visual C++ - jak zacząć

23:32
Thu
14
Aug 2008

Właśnie zagadał do mnie na Gadu-Gadu jeden z kolegów z Warsztatu z pytaniami, lękami i wątpliwościami na temat przesiadki z Code::Blocks na Visual C++. Odpowiadając uświadomiłem sobie, że Visual, jakkolwiek jest moim zdaniem najlepszym IDE, jest wygodny, potężny, szybki itd., ma pewien problem - nie można w nim od tak zacząć programowania, napisać "Hello World" czy wkleić kod z jakiegoś tutoriala. Na drodze stoją opcje projektu, które w wersjach 2005 i 2008 domyślnie są tak ustawione, że kod się nie kompiluje albo też nie działa na komputerach innych niż programisty. Początkującym można więc polecić proste kroki do wykonania po utworzeniu nowego projektu:

  1. Wejść do opcji projektu - Project > Properties.
  2. Przestawić General > Character Set na Not Set - pomaga na błędy z Unicode, wchar_t itp. dziwnymi hasłami :)
  3. Przestawić C/C++ > Precompiled Headers > Create/Use Precompiled Header na Not Using Precompiled Headers - pomaga na błędy z Stdafx.h.
  4. Przestawić C/C++ > Code Generation > Runtime Library na Multi-threaded Debug (w konfiguracji Debug) i Multi-threaded (w konfiguracji Release) - pomaga na błędy z brakiem plików DLL po przeniesieniu programu na inny komputer.
  5. Dalej warto zgłębić ten temat czytając Warsztat FAQ, bo tam opisałem to dokładniej.

Comments | #teaching #visual studio #c++ Share

# Nauka asemblera - Początek

22:43
Sun
10
Aug 2008

Postanowiłem nadrobić braki w wiedzy, która ominęła mnie w dzieciństwie z racji Pascalowo-Delphiarskiej przeszłości i w wolnych chwilach wziąłem się za naukę asemblera. Używam MASM i uczę się głównie z tutoriala Iczeliona. Właśnie napisałem swój pierwszy efekt graficzny. Możnaby go zatytułować "śnieżenie". Do pobrania tutaj: Asm_Test04.exe. Nie zmierzyłem jeszcze FPS, ale ciekaw jestem, czy napisany w C++ działałby równie szybko :)

Test04 - Asembler, śnieżenie

Comments | #assembler Share

# Odpalić program i poczekać

20:35
Thu
07
Aug 2008

Jak uruchomić z poziomu swojego programu inny program i zaczekać na jego zakończenie? Funkcji do uruchamiania programów jest wiele. Najprostsza, ale posiadająca małe możliwości jest funkcja system z biblioteki standardowej C, która pozwala uruchomić dowolne polecenie systemowe. Prosta jest też funkcja WinExec, ale ona jest przestarzała i niezalecana.

Pośród tych potężnych zostają dwie, z których każda ma swoje wady i zalety. ShellExecute i ShellExecuteEx pozwala "uruchomić" dowolny plik lub wykonać na nim inną akcję powłoki (np. "open", "edit", "print"). W przypadku plików EXE to będzie uruchomienie, a dla różnych dokumentów, ich otwarcie w domyślnej aplikacji skojarzonej z rozszerzeniem. Z kolei funkcja CreateProcess pozwala uruchomić plik wykonywalny podając przy tym m.in. własne zmienne środowiskowe czy też uchwyty przechwytujące konsolowe wejście-wyjście. Zwraca natomiast uchwyt do utworzonego procesu.

Ostatnio wyczytałem, że funkcja ShellExecuteEx też potrafi zwrócić uchwyt do utworzonego procesu. Wystarczy w strukturze SHELLEXECUTEINFO ustawić pole fMask na flagę SEE_MASK_NOCLOSEPROCESS. Wówczas pole hProcess zostanie wypełnione uchwytem. Potem wystarczy już tylko poczekać na zakończenie programu takim wywołaniem:

WaitForSingleObject(shell_execute_info.hProcess, INFINITE);

Comments | #winapi Share

# Odpalanie TortoiseSVN ze swojego programu

20:11
Tue
05
Aug 2008

Pisząc zaawansowane narzędzie wygodnie byłoby zintegrować je z systemem kontroli wersji SVN. Jak odpalić funkcję SVN z poziomu programu? Można uruchomić konsolowy SVN z odpowiednim parametrami, ale konsolowy program ma konsolowe wyjście i jest konsolowo niewygodny. Dużo fajniej byłoby uruchomić jakoś TortoiseSVN, tak jakby to użytkownik wybrał z menu kontekstowego danego pliku czy katalogu polecenie otwierające odpowiednie okienko, np. Update, Commit.

Okazuje się, że da się to zrobić bardzo prosto. Szczegóły można znaleźć w helpie TortoiseSVN, pod hasłem "Automating TortoiseSVN". Pisząc w skrócie, trzeba uruchomić program TortoiseProc.exe. Pełną ścieżkę do niego można znaleźć w rejestrze, w HKEY_LOCAL_MACHINE\SOFTWARE\TortoiseSVN\ProcPath. Jako parametry trzeba podać /notempfile, /command:commit (gdzie zamiast "commit" mogą być różne polecenia, np. "update" albo "repostatus") oraz /path:"..." ze ścieżką do danego katalogu. Można dodać /closeonend:2, aby okienko samo się zamknęło po zakończeniu operacji, jeśli nie było błędów.

Comments | #tools Share

STAT NO AD
[Stat] [STAT NO AD] [Download] [Dropbox] [pub] [Mirror]
Copyright © 2004-2017