http://asawicki.info/ Graphics programming, game programming, C++, games, Windows, Internet and more...
Entries for tag "demoscene", ordered from most recent. Entry count: 28.
Riverwash 2010 Starts Today
I was offline in recent days because I've been moving to another flat, but I'm already online now and I slowly catch up on news, like the new Steam Hardware & Software Survey: August 2010. There has been another international demoscene party recently - Evoke 2010 (August 27-29, 2010, Cologne, Germany). I suppose it is worth seeing productions from the competitions.
Today the biggest democene party in Poland starts - Riverwash. It will take place in Warsaw, so I don't have to travel far. That's why I'm going to go there desipte I'm a little sick. I just won't drink so much as I would :) I'm going to submit my production for a compo in Newschool Demo category. I didn't have enough time to polish it and I only hope there won't be any technical problems with GPU compatibility or something. Code and graphics of the demo is made by me and is inspired by psychodelic trance music. Music is made by Count.
Demo for RiverWash 2010
I code a demo for RiverWash 2010 demoscene party. I had a lot of doubt on this, but the more is done, the more I feel convinced I'm going to show it on the party, despite I know it's not of the highest quality, both because no super-advanced technology is involved and because I made all the graphics myself :) It will be my first demo made for such competition. All in all I'm more from Warsztat than demoscene community. Still I like the scenish atmosphere and after each big party, like Assembly or Breakpoint, I download and watch the productions. I've also been at the RiverWash last year and I had a lot of fun there.
I probably shouldn't show my demo before the party, so I'll do something inspired by what my former employers did on the website of their new game development studio - 11 bit studios - I'll show only small parts of some screenshots :)
Assembly 2010 Prods - My Impressions
I've already mentioned that Assembly 2010 demoparty took place recenly. Now let me share with you my impressions about the productions from this party.
Gamedev category, with 19 productions this year, is bigger than demo, intro 4k or intro 64k, which was suprising for me. I've always thought demoscene is about making demos and that they don't like making games so much. But I'm not impressed by these games. Most of them have neither interesting gameplay like indie game developers do nor advanced graphics technology like demosceners put into their demos. Still games from higher places are much better than the other and the game from the first place - Tricky Truck by Archee (which is a driving simulation with physics where you have to park a truck) paid my attention for quite a long time.
About executable music, my favourites are actually the tunes from the bottom of the results - Pure Life 2.0 by Silent (place 7/9) and My Happy Place by Prophecy (place 8/9). But this surely is the matter of taste. I can see that voters prefered more retro-oldschool-style productions.
When it comes to "real wild" category, aggregating demos for exotic platforms, several web-based were presented. My favourite ones are Ballmer Peak by Department of Offense (place 4/7) and Spiral out by evoflash (place 1/7). I didn't know such amazing and even 3D graphics could be done in Flash.
About intros, for the first time I've seen a 4k intro where EXE unpacks itself to a temporary directory as HTML + SWF and then opens the actual Flash demo in the web browser. Atleeti by Archee is definitely a phenomenon. An intro with not good graphics or music, which scored 2nd place probably just because they've appreciate that it's very original piece of technology. Its idea is similar to Darwinism, which scored 1st at Breakpoint 2010. The 4k intro from the 1st place - Neanderstaller by Pittsburgh Stallers - looks great. It's definitely worth watching more than any other.
As for 64k intros, I liked them all. About demos, I recommend watching first 6 places. The demo from 2nd place - Ceasefire (all fall down..) by CNCD vs Fairlight - is the continuation of the famous Agenda Circling Forth (1st place at Breakpoint 2010). For me they are great examples showing that there is not good graphics VERSUS "real" artistic value, but the advanced technology and high computational power may well serve art by making it possible to do something stylish like this, where all the graphics is made of dots (particles). Details of this technology can be found on direct to video blog. The demo that scored 1st place - Happiness is around the bend by ASD - is especially worth seeing. It's long, beautiful, original, well designed - definitely something new or at least something of the highest quality that can be found on the demoscene nowadays.
Another interesting event took is taking place on August 5-8th, 2010. I'm talking about Assembly demoparty in Helsinki, Finland. It's one of the biggest demoscene parties and so we can expect new, highest quality productions to be presented on competitions there, like PC demos, 4k intros and 64k intros.
The list of productions can already be found on Assembly 2010 party page at Pouet.net, where you can download separate files. To download all the content, you can log on to anonymous FTP at ftp.scene.org/pub/parties/2010/assembly10.
After party page on Assembly website is not complete yet, but I'm already downloading the entries. Competition results are here. Watching demoscene production is always very inspiring for me, although I know that making something of such quality requires much higher skill than I have and collaboration of many programmers and artists.
Recent Demoscene Parties
There have been several interesting demoscene parties recently. First one is RiverWash in Warsaw, Poland (I have been there by myself :) Next one is Function in Budapest, Hungary. And finally, today was the end of MAiN in Arles, France. After each party it's nice to download prods from compos (productions from competitions) from Pouet.net website (see prods from this year's RiverWash, Function and Main). Demos and intros are worth watching!
Different topic: the new Nvidia Fermi architecture looks very promising. Just have a look at White Paper PDF and watch Next Generation GPU Fluids on YouTube. This architecture is going to be released soon as GT300 graphics card. Intel Larrabee is no longer a revolutionary idea :)
By the way, the whole GPU Technology Conference (San Jose, USA, Sep 30 - Oct 2) looks like an interesting event. I wonder if there will be any papers available for download...
About the Guy Who Made Love
Today I want to talk a bit about what's the dream of almost every passionate game developer. It seems very hard or almost impossible to achieve, but younger amateurs still hope that they will manage to do it someday. Of course I'm talking about making a 3D MMO game.
As it turned out for me today (thanks for the link KriS!), it actually IS possible. I'm talking about the game called Love written entirely by one person - Eskil Steenberg. He have coded all the software from modeling tools through network protocol and renderer until game mechanics. To see it working I recommend watching these videos. The game is powered by his engine called Quel Solaar, which is actually available for download.
I must admit I haven't been impressed so much for a long time. I suppose the amount of time and passion that had to be put into this code is enormous. Graphical style and gameplay, as well as the user interface of his tools are very unusual and surprising. And all of this is made by one guy...
I recommend watching his lecture from this year's Assembly party titled Developing the technology behind "Love". You can see many technical details and if you don't want to watch the entire one hour video, at least watch the beginning (where he talks about his "smarter way of doing things") and the ending (where he expresses his thoughts about the value of good tools).
BTW it's also nice to watch new videos from GC 2009 of the CryEngine 3. "What you see is what you play" and instant asset update (including textures) - that's how good game editor should look like :)
Thoughts on Display Settings
I've decided to make a demo for this year's Riverwash demoscene party. For that purpose recently I've prepared my framework and coded loading of display settings from either command line parameters, configuration file or my brand new dialog box:
Coding it reminded me of my thoughts about display settings from user's versus programmer's perspective. User is usually able to change screen resolution and sometimes also change refresh rate, turn vertical synchronization on/off, toggle between fullsreen and windowed mode, choose antialiasting, texture filtering quality and some general quality/performance parameters. On the other hand, programmer passes bunch of parameters to Direct3D as D3DDPRESENT_PARAMETERS structure and other arguments to functions CreateDevice and Reset. The question is how to map between these parameters?
Here are my current beliefs on this subject:
[+] Adapter: I just pass D3DADAPTER_DEFAULT constant. Sure it would be better to give a choice of an adapter (one can enumerate adapters using IDirect3D9 methods), but it's useful only on multi-monitor systems and not many games expose such setting.
[+] DeviceType: I always pass D3DDEVTYPE_HAL. Using software reference rasterizer D3DDEVTYPE_REF makes no sense, as it gives SPF instead of FPS :)
[+] BehaviorFlags: Now I always pass D3DCREATE_HARDWARE_VERTEXPROCESSING. Using software or mixed verex processing made sense only on old hardware, especially on old Intel laptop graphics chips, which had Pixel Shader 2.0 but no Vertex Shader at all.
[+] BackBufferWidth, BackBufferHeight: I give a choice of display modes available on default adapter with format hardcoded as constant (D3DFMT_X8R8G8B8). One can enumerate available display modes using IDirect3D9 methods. In windowed mode it could also be reasonable to be able to set any given resolution (Width and Height as text fields), as well as manually resize application's window.
[+] BackBufferFormat: I just use D3DFMT_A8R8G8B8. Choice between X8R8G8B8 and A8R8G8B8 just the matter of having additional fourth channel available (alpha), which is obviously not visible, but can be written, used in alpha blending and thus utilized to do some special effects (like masking intensity of some effect in screen space).
[+] BackBufferCount: I just give 0 here, which resolves to default value of 1 back buffer. I'm aware that using value 2 can change the way rendering is performed a bit.
[+] SwapEffect: I always use constant D3DSWAPEFFECT_DISCARD, as it is the fastest one. It says that entire content of the back buffer can be discarded after frame was presented and program have to render new frame from scratch (which is what we always do in game development).
[+] AutoDepthStencilFormat: Direct3D defines many of them, but for real all the D3D9 generation hardware supports only three: D3DFMT_D16, D24X8 and D24S8. So the choice is only based on the decision whether we need higher, 24-bit precision or stencil buffer.
[+] Flags: For the best performance possible I always give D3DPRESENTFLAG_DISCARD_DEPTHSTENCIL and never give D3DPRESENTFLAG_LOCKABLE_BACKBUFFER.
[+] FullScreen_RefreshRateInHz: Nowadays, when many (most?) people have LCD displays, standard refresh rate is 60 Hz and maybe 75 Hz. In the CRT era setting good refresh rate was crucial for playing comfort and thus it was very annoying when a game didn't expose setting of refresh rate, but used default 60 Hz instead. I believe refresh rates should be enumerated and given as a choice next to the resolution.
[+] PresentationInterval: This is the value the "VSync" setting is converted to. It looks like D3DPRESENT_INTERVAL_DEFAULT behaves as VSync turned on (FPS <= RefreshRate) and D3DPRESENT_INTERVAL_IMMEDIATE means VSync off (FPS as high as possible), but once during my experiments I've observed that flag D3DPRESENT_INTERVAL_ONE behaves slightly different than D3DPRESENT_INTERVAL_DEFAULT (I can't remember the details now).
I know I would sound more "professional" if I considered all other constant values available and their possible uses, but I don't care :) My point here was to simplify the problem to be able to map these technical parameters to the display settings exposed to the user. Multisampling is separate subject so I don't cover it here.
Czcionki z komputera Atari
Współcześnie "Atari" kojarzy się z wydawcą gier, ale kiedyś pod tą marką produkowane były komputery - w czasach, zanim jeszcze pecet podbił świat. W sobotę byłem na imprezie demoscenowej poświęconej miłośnikom klasycznych platform (przede wszystkim, jak się okazało, 8-bitowych Atari). Na tym spotkaniu m.in. wykłady miał TDC. Dowiedziałem się z nich bardzo dużo o budowie i możliwościach sprzętu tamtej generacji (w tym układu graficznego), ówczesnym oprogramowaniu i rynku gier. Okazuje się, że Wolfenstein i Doom wcale nie były pierwsze i że bardzo dużo działo się już w czasach, kiedy mnie jeszcze nie było na tym świecie :)
Przy okazji trafiłem na polskie strony poświęcone Atari - atari.area i Atari Online, a na nich znalazłem kolekcję czcionek z tej platformy: , . W przypływie dziwnej ochoty (zapewne spowodowanej niewyspaniem) postanowiłem dopisać wsparcie dla nich do swojego domowego projektu (pisanego oczywiście na PC i w DirectX).
Specyfikacji formatu pliku FNT nigdzie nie znalazłem, ale udało mi się go rozgryźć samemu. To z resztą nie było trudne, jeśli wiadomo, że taki plik ma 1024 bajty, a zawarta w nim czcionka to 128 znaków bitmapowych po 8x8 pikseli monochromatycznych. W końcu 128*8*8 = 8192 b = 1024 B :) Toteż napisałem samemu specyfikację tego formatu: Atari Font FNT File Format.txt, a czcionki z wyżej wspomnianej strony (razem ze screenami) pozwoliłem sobie spakować i udostępnić jako jedno archiwum, żeby łatwiej było ściągać - Atari_Fonts.zip. Przykładowa czcionka (jedna z 335) o nazwie "Atari" wygląda tak:
A efekt mojego kodowania prezentuje się tak (niezły oldschool :D)