http://asawicki.info/ Graphics programming, game programming, C++, games, Windows, Internet and more...
Entries for tag "competitions", ordered from most recent. Entry count: 33.
DirectX 11.1 Game Programming - Contest Winners
Congratulations to lightning, WhiteLightning and Francis.C for winning digital copies of "DirectX 11.1 Game Programming", the book I had recently reviewed.
After WeCan 2013
Last weekend I've been in £ód¼ at WeCan - multiplatform demoparty. It was great! - well organized, full of interesting stuff to watch and participate, as well as many nice people and of course a lot of beer :) Here is my small photo gallery from the event. On the first, as well as second day in the evening there were some concerts with various music (metal, drum'n'bass). ARM - one of the sponsors, delivered a talk about their mobile processors and GPU-s. They talked about tools they provide for game developers on their platform, like the one for performance profiling or offline shader compiler. On Saturday there were competitions in different categories: music (chip, tracker, streaming), game, wild/anim, gfx (oldschool, newschool), game, intro (256B, 1k/4k/64k any platform) and of course demo (any platform - there were demos for PC, Android, but the winning one was for Amiga!) I think the full compo results and prods will soon be published on WeCan 2013 :: pouet.net.
But in my opinion, most interesting from the whole party was the real-time coding competition. There were 3 stages. In each stage, pairs of programmers had to write a GLSL fragment shader in a special environment similar to Shadertoy. They could use some predefined input - several textures and constants, including data calculated real-time from music played by a DJ during the contest (array with FFT). Time was limited to 10-30 minutes for each stage. The goal was to generate some good looking graphics and animation. Who had louder applause at the end was the winner and advanced to next stage, where he could continue to improve his code. I didn't pass to the second stage, but anyway it was fun to participate in this compo.
Just as one could expect by looking at what is now state-of-the-art in 4k intros, winning strategy was to implement sphere tracing or something like that. Even if someone had just one sphere displayed on the screen after the first stage, from there he could easily make some amazing effects with interesting shapes, lighting, reflections etc. So it's not suprising many participants took this strategy. The winner was w23 from Russia.
I think that this real-time coding compo was an amazing idea. I've never seen anything like this before. Now I think that such competition is much better - more exciting and less time-consuming than any 8-hour long game development compo, which is traditional on Polish gamedev conferences. Of course that's just different thing. Not every game developer is a shader programmer. But on this year's WeCan, even those who don't code at all told me that the compo about real-time shader programming was very fun to watch.
Book Review: DirectX 11.1 Game Programming
"DirectX 11.1 Game Programming" is a new book published by Packt Publishing, written by Pooya Eimandar. It introduces new features of DirectX 11.1 and some other technologies available for game developers when writing Metro-style apps for Windows 8. The book uses C++/CX - a new language based on C++, with the syntax somewhat similar to C++/CLI (the language is extended by managed pointer operator ^). But while C++/CLI is a .NET language (like C#), C++/CX is compiled to native code and the ^ pointer is just a convenient syntax for reference-counting smart pointer to a COM object. Math is done with DirectXMath library (the successor of XNA Math).
Each of the chapters describes several loosely coupled topics. Their flattened list looks like this:
I have mixed feelings about this book. Contrary to what title suggests and what the author claims inside ("By the end of this chapter, we are going to have a multithreaded game engine"), you obviously cannot learn game programming by reading just 146 pages. Especially as the book covers so many different topics. It looks like the author wanted to include everything what's fresh and sexy in Microsoft Windows 8 API-s. As a result, each example is kind of "Hello World" - the simplest possible application of the described technology.
But at the same time, the book is also not teaching 3D games programming from the start. It explains some selected basic concepts in more details (e.g. describes what vertex shader does, shows how rotation matrices look like, how to use constant, vertex and index buffer or shows a diagram of the graphics pipeline - 3 times actually :) but generally you should already know C++ and preferably DirectX 10/11 to make use of the knowledge from this book. It is more like an overview of "What's New" in Windows 8, DirectX 11-11.1 and new Visual Studio.
I think the biggest value of this book is the attached source code. Each chapter is accompanied by a complete C++/CX project that shows an application of the described technology and the text in the book is an overview of this code. So if you already know some game programming in C++ and DirectX 10/11, this book can be a good tutorial which will help you to start using latest Microsoft technologies and develop Windows 8 Metro-style games. Preface says "This book will help you easily create your own framework and build your first game for Metro Style all by yourself in order to publish it on the Windows Store." and that is true.
But whether this is worth doing, that's another question. Surely you can use DX 11 on 9- or 10-compatible hardware, using Feature Level, but you cannot use most of what this book describes below Windows 8, and many of these things also without buying Visual Studio Professional or higher. According to Steam Hardware & Software Survey: Auguest 2013, while 64.78% of gamers already have DirectX 11 capable system and GPU, only 15.41% of them have Windows 8 installed (and it's already a year since its release).
Now it's time for a contest. Packt has proposed to offer 3 digital copies of the book. All you need to do is head on over to the book page, look through the product description of the book and then drop a line via the comments below this post to let us know what interests you the most about this book. 3 best comments win!!! Deadline: The contest will close in 1 weeks time. Winners will be contacted by email, so be sure to use your real email address when you comment.
After WGK Conference
Last weekend (6-8 September 2013) in Gdańsk University of Technology there was 3rd edition of WGK - Polish Conference on Computer Games Development. Just like in previous years, it was good and it's getting better and better. Many presentations were shown in up to 3 parallel sessions, so obviously everyone could see only a portion of them and my short review will be very subjective. You can also take a look at my photos from the conference.
There were two general kinds of presentations - scientific and industry. From the presentations made by game industry professionals, some were business oriented. That includes the discussion panel with Berlin delegation, as well as Saturday's "Lecture of the Day" with the outlook of European game market. Dates, percents, numbers, amounts, company names... - for me, that was quite boring, too much business and too little technology.
On the other hand, the presentation "Like a Boss" by Tomasz Gop and Micha³ Kuk from CI Games was great. They showed actual gameplay (played in real-time on a powerful PC) from their upcoming new titles - Alien Rage and Lords of the Fallen. The presentation was about designing bosses that players would like, so they presented boss fights and even showed some design docs of these bosses.
From the scientific lectures - the ones that also have a paper printed in the conference materials - I mostly remembered these two: Krzysztof Kluczek researched a way of animating skeleton of a 3D model using a set of control points connected with constraints on distance (something like springs) and also connected to an invisible triangle/tetrahedron to preserve general shape, all updated using Verlet method. He developed a tool where he can easily apply different kinds of presets and make a character of any skeleton topology run, attack or even dance with quite complex choreography (which looked very funny :)
Second interesting scientific lecture I've seen was the one presented by developers of Gizarma - a browser strategy game. They researched an algorithm for map generation. Based on sketched outline of island borders and rivers plus some density maps (like temperature, precipitation) and using some geography-based models, an iterative algorithm generated tesselation into irregular regions with desired properties and some parameters for each region (like the type of terrain). The execution of this algorithm can tak hours and we concluded that something similar could probably be achieved quickly (or even real-time) by starting with poisson disc, calculating Voronoi diagram and then applying some noise to its edges, but anyway their method is interesting and gives good-looking result.
Some papers were presented on the conference as posters. One of them caught my attention. Authors of an article "A role playing game name generator learning its creativity from Arkadia MUD players" developed an algorithm for generating new, yet reasonable names for fantasy RPG characters based on the concept of Markov Chains.
A very unusual presentation was showed by Maciej Mi±sik. As a veteran of Polish game industry with 20+ years of experience, he talked about the value and the ways of preserving our old game projects and the history of their development, so we can go back to it when necessary - even many years later, when hardware platforms and storage devices change. He gave many arguments why it's worth doing, as well as gave some specific advices, e.g. to backup all the email history. I don't share his beliefs on the big value of the history, but anyway that was a very interesting lecture.
There was also a discussion panel about crunch time, involving several Polish game developers, moderated by Piotr Gnyp. They quite agreed that the crunch is bad, but general conclusion from their discussion could be that the crunch is always present, in every project. So they talked about how to predict, manage and compensate it, but not how to avoid it. Maciej Mi±sik shared an interesting point of view - he said he studies this problem a lot and he currently believes that the crunch in gamedev is the result of making same mistakes that other businesses of software development made many years before. I asked a question about why do game developers - even those who strongly dislike crunch - usually stay until the end of the project and then leave, instead of leaving the job in the moment the manager announces start of the crunch. They said that developers generally "like to finish something", but I somehow feel that this answer is not fully exhaustive and satisfactory :)
There were also some workshops on the conference (e.g. about concept art or Unity), but I didn't attend any of them. Another part of the conference were integration parties. In both Friday and Saturday evenings, we were invited into quite elegant venues to have some beer and socialize. As always on such events, I met many friends from gamedev industry and Warsztat community, who came from all over the country. From our conversations, a general trend that remains in my mind is that many of them started their own business instead of having a stable, full-time job in some corporation. They are quite successful in terms of money, but they don't always claim to work less hours per week than they would in a traditional job. They also don't make their money from games (although they want to), but from different kinds of software projects. An outstanding exception is Daniel Sadowski with his company Nitreal Games. They started with doing games for government contracts, like Misja Bielany promoting Bielany - a Warsaw district, but now they made their own game (a time management casual PC game) - Gardens Inc. which is very successful.
Another part of the event was Developers Showcase - a place where amateur, as well as professional game developers could show their projects. I was amazed by the stands prepared for the exhibitors - they looked like on some kind of a small expo. The game that won voting on the best project was SuperHot - an FPS based on a novel idea that time passes (bullets fly, enemies walk) only when the players moves or rotates. The one project that was not a game used 4 Kinects to build a 3D model of objects so everyone who entered their space could see himself from any side as a colourful point cloud.
Finally, on Sunday there was the traditional game development competition (named Games Bonanza), where teams of up to 4 people had to develop a game in 8 hours. Unity and similar technologies were prohibited, so teams made their games in programming languages like C++ or Python with PyGame. The theme this year was "Spaghetti". I expected most games to be about the Flying Spaghetti Monster (especially after the lecture about designing boss fights), but the games turned out to be more diverse. One was about a cook avoiding spaghetti thrown at him by angry restaurant clients, another was about a piece spaghetti running away from the cook... At the end there were 5 entries in the competition. We took the 1st place :D Our team was: Krzysztof Kluczek "Krzysiek K." (programming, team leader), Tomasz D±browski "Dab" (programming, level design), Micha³ Rudnicki "Mildanach" (graphics) and me (programming, audio). We made our game in Visual C++ 2010 Express based on a framework prepared by Krzysiek K., which uses DirectX 9. We created a 2D platform game where a plumber jumps, collects points and finally fights a boss. Here are some screenshots:
tl;dr: WGK is a nice conference for game developers with many different events taking place and it's definitely worth attending. By the way, in 2 weeks (20-22 September) there is different kind of party - WeCan demoparty in £ód¼.
HLSL Development Cookbook - Contest Winners
Congratulations to Tommy, czoper and Mark for winning digital copies of HLSL Development Cookbook, the book I had just reviewed.
Book Review: HLSL Development Cookbook
I've been given a chance to read a book HLSL Development Cookbook published recently by Packt Publishing. Below you can find my review. Packt has proposed to offer 3 digital copies of the book. Keep reading to find out how you can win a copy.
The book has 224 pages. Its author - Doron Feinstein - works as Senior Graphics Programmer in Rockstar Games. The book is about implementing various rendering techniques in HLSL using DirectX 11. It uses new features of this API, e.g. geometry shaders, compute shaders, UAV, tesselation etc. It presents very professional approach and does not over-simply anything for educational purposes (for example, the author uses linear space for color computations, explains HDR rendering and passes reciprocal value as constant where appropriate as multiplication is faster than division).
The book assumes that reader already knows DirectX API and is able to code a framework that loads meshes, textures, constant buffers and all the stuff and pass it to GPU rendering. He should also already know the concept of shaders and the HLSL syntax, not to mention math/geometry basics of 3D graphics (like properties of dot product or transformation matrix). So this is definitely not a book for complete beginners who want to learn game programming from scratch. It does not even give complete shaders to just copy-paste into your engine, but fragments (functions) that are interesting in some technique. Which I think is good, because where per-pixel parameters of your material come from (like albedo color, normal vector, specular intensity and exponent) - whether from texture, a constant or some computations - is up to you and the book focuses on what to do with it without boring, multipage code listings.
Subsequent chapters cover following topics:
That's not a "gems"-style book with every chapter being a separate article written by different author. But each chapter is a complete "recipe" for a rendering technique, whether an implementation of particular type of light or some other visual effect. Each one of them is divided into sections:
As you can see, described topics are not some sophisticated and specialized effects like rendering foam on an ocean coast or crowd on a stadium, but fundamental techniques needed by every engine. Just as the book says: "Lighting and postprocessing are two of the most important fields in 3D rendering."
Summary: This book is not intended for complete beginners, but if only it fits the knowledge you already have and the knowledge you currently seek, I think this it can be a great step on you path of learning game/graphics programming.
Now here is how you can have a chance to win eBook copy of this book: All you need to do is head on over to the book page, look through the product description of the book and then drop a line via the comments below this post to let us know what interests you the most about this book. 3 best comments win!!! Deadline: The contest will close in 1 weeks time. Winners will be contacted by email (before the end of this month), so be sure to use your real email address when you comment.
IGK 2013 Quiz
During IGK 2013 gamedev conference, just like in previous years, we organized a contest with 75 questions in 15 categories, from gaming to programming. We had 8 participants this year and the winner was Artur Poznański "artpoz" - congratulations! See full results.
You can now download new version of the application with source code in C# and this year's questions to test your gamedev knowledge by yourself or with your friends:
IGK_Quiz_2013.zip (2.76 MB)
Here be Dragons - Our Game from IGK 2013 Compo
During IGK 2013 gamedev conference there was traditional game development compo, where teams of up to 4 people have to make a game in about 8 hours. Of course we participated in it. This time we called our team "Mass Deffect" (just some random name). There were four of us, all programmers: Kamil Szatkowski "Netrix", Karol Kuczmarski "Xion", Krzysztof Kluczek "Krzysiek K.", and me.
The theme this year, with all the requested features of the game, was: "Artiller game - multiple ways of destroying map, hp & mp - at least 2 kinds of energies - achievements - multiplayer" That fitted into my plan to use two mice on one computer, which I researched recently and described in: Handling Multiple Mice with Raw Input. We designed our game in the Saturday evening, after considering multiple ideas. Finally we chose Krzysiek's idea inspired by Rampart - an old Atari game (see this video).
Our game has title "Here be Dragons". In works on PC, Windows. It is written in Visual C++ 2010 Express, based on a Direct3D 9 framework developed by Krzysiek K. We decided to use 3D graphics (which becomes more and more rare on this kind of game development compos). But game logic is 2D and map entirely fits the screen. Two players build castles on the opposite sides of the map (with left mouse button). On the large enough castle, towers with maidens appear which are resource needed by dragons :) When player has dragons, he can shoot fireballs at the enemy (with right mouse button).
We took 4th place out of 12. Our game lacks many planned features. It doesn't even have sound or music. Anyway, it was fun as always :) Here you can download the game with full source code:
HereBeDragons.7z (3.17 MB)