Wellcome and enjoy.

I would like to welcome you on my blog and thank for time you spend reading it I hope you will enjoy.It is personal creation of me, Lukas Tencer, and it will map my professional success as well as my personal interests.

Friday, September 24, 2010

Center for Computer Games Research

Hi people, recently I have found this page of Center for Computer games Research and it looks like, they are accepting PhDs! So I have write down few proposal, please give me feedback so I can form solid Statement of Purpose from it. It is 3 of them, 1 main and 2 spare. Fell free to be bad and have a lot of criticism.

Here it is:

Real-World data based game content - basic idea is to generate game content based on actual real-world data. There could be multiple uses for this and it is wide area. Examples:

1. Games content delivery - you can deliver game content based on geographical location of player, in different places you can play different levels of game. It can be used for example for propagation of cultural attractions, where if you visit museum or gallery you can play game on your phone, and levels of this game will be personalized to that museum or gallery. Goal of this would be to build a game, which delivers game content depending on geographical position and other easily obtained data (time) from client (player).
2. Solving real world problems - lets imagine a computer game, which reflects real traffic situation and quest of the player is to get from point A to point B. There could be multiple players and one who can get there in best way will be the winner and actually his solution can be delivered to someone, who will be using GPS and would like to get from point A to point B. Next example is to have game with climate situation and the quest of the player will be to manipulate with the weather. Based on player actions then we can observe the resulting situation and compare it to actual situation evolved after time. Those are simple examples, we can think about more complex models, which provides player with ability to solve real-world problems with computer games, based on real-world content. One bright example can be found here.
3. Gameplay in real-world environment - Here you can imagine computer games, mostly on mobile phones, which are using augmented reality to provide game content. Provided game content is also dependant on current surrounding of the player. This would be nice combination with point 1. Under this point one can also discuss game-content based on real world models. Just imagine you have a model of a car, you would move your mobile phone around that car, the car get 3D into the mobile phone and you can play the game with that car. Actually this, what I am describing in last sentence is based on video-based rendering and I have already some results in that area.

Those are 3 main possible areas, where to use real-world data based game content. If none of them would be suitable, I have few ideas here for other themes for thesis. For this other themes I have not deep background, but it is not problem for me to work hard to get it. So here are few other ideas:


Indirect control gameplay - The name is little bit mysterious, but have you ever play Black and White game? This is one of a kind game and it is using this indirect feedback model. You have a creature, which is acting in the game according his own will and you as player can punish or reward it. Also this creature is observing players behaviour and actually it reflect players style of play. I think it is pretty interesting area to observe. For example in strategy games, when one is playing for a race and he will build a new base. So he will have 2 bases. Then he can promote and general, which will take care for the old base and he can concentrate on the new base. The player can give some indirect orders to the general and also promote/demote him. This can result into forming generals character. This is example for strategy game, same can be done for racing game, where teams are racing against each other and in one race there is multiple racers, who need to cooperate. Here it can be also interesting to get the good balance between player feedback and agent autonomous behaviour.


Adaptive computer-player cooperation in gameplay - I have read your papers on adaptive content and how to maximize player fun. This was one of other factors, which can be taken in consideration. Besides player there could be another character in the game controlled by the computer and this character will help the player based on his current results. So if he is doing well, the character will interact less, otherwise he will help more. This could be really nice addition to generated game content, because it has no delay in response to player actions (if we are thinking about Mario game, then computer controlled character can help also on the same screen so player does not need to wait to move to another screen).

Thursday, September 23, 2010

Detecting HTML5 Features


Welcome back,

so I have finished another chapter, and here is a short summary, what you can learn in this chapter. Its title is "Detecting HTML5 Features" and it introduces 3 basic ways how to check for HTML5 support from browsers. Currently there is a pretty good support especially from mobile browsers, only pain in ass is IE, but starting from version 9+ there should be some support. Also if you would like to run your HTML5 pages in IE there is plenty of other options (Chrome frame, Gears, explorercanvas,...), but none of them is native. About these more in later articles.
So what are therse 3 ways how to detect HTML5 features? Its all about existence of some variables.

1. Property of global object. There are few global objects always available as Window or Document. So example how to detect application cache would be:

return !!window.applicationCache // !! is trick to get the result boolean value, output of operator ! is assigned to left side and it is true/false

2. Create an element and then check for a property on that element
3. Create an element and then check for a method on that element

2. and 3. ways are almost identical, because what are we checking in 3. case is actually a pointer on a function, what is also a propperty, so it would look like this:

return !!document.createElement('video').canPlayType

So this are 3 basic ways, about which is autor talking, but in fact, he is using little bit more of them. I have summarize them in small .js library mastermind.js which you can download also with examples how to use it. On this exapmle you can check, what functionality your browser supports.



under the line: HTML5 specification has divided into multiple groups, so there is one for DEVICE, other one for GEOLOCATION or FILES, so if you follow one of them, keep an eye on others, because they also bring some cool new stuff.

Wednesday, September 15, 2010

Shipping code wins. How 'img' tag arise


First chapter of book HTML5: Up and Running is called "How Did We Get Here" and shortly tells story how HTML makes it to its current position. It was very exciting reading especially along with 17-years old mail conversation, which shows, how 'img' tag was created. The true is, there was 4 proposals, how images should be inlined to HTML, and some of them was perhaps even better than today used 'img', so what makes it to current form? It was just implementation of code in one of the that day's browsers. So in this case was true, that shipping code wins. Off course its not the golden rule, but it can help. Author in chapter 1 also introduces examples, when shipping the code just did not help. This was true for some of dead branches of HTML evolution tree.

Besides this examples author also gets over past evolution of HTML in W3C and WHAT working groups. As you can know, there was initiative from W3C to bury HTML and replace it with "better" and more strict XHTML. but unfortunately this initiative was not successful and even without support of W3C development of HTML continues. And then in 2007 W3C cancel its own initiative on really strict XHTML 2.0 and instead continues in development of HTML.

So where was the problem of XHTML? it was at most in lack of backwards compatibility and restrictions for developers. In version 1.0 XHTML has something called Apendix C, which said sth. like, obey these rules, but there is a way, how to make an exception. This Apendix C was removed in version 1.1 and did not make it to version 2.0, because work on this version was stopped. Without Appendix C all current sites would be needed to be rewritten to XHTML 1.1 and developers and users did not like it. Also there was an strict rule, which did not tolerate any errors in markups or parameters. So for example if you did not put " around parameter, the page just did not display, instead of tolerant browsers behaviour, which just can handle it somehow.

This "all or nothing" rule makes to to think little bit about broken and non-valid code on pages. Yes its true, that if we wont be strict on nice code, there will be more and more pages, but how to make some compromise? Because from developers point of view one has to optimize its site for different browsers in many cases, only because of browser dependant non-valid handling. So what about standardization of wrong code handling? Yes I know its very close to rendering engine and it will require big support from browsers site, but its kind of solution. Any other suggestions about this question is more than welcome.

HTML5: Up and Running


HTML5: Up and Running is a book about recent news in web development from Mark Pilgrim released by Google press. It is on of the resources which supports Google's initiative to push forward development and support for HTML5. I really appreciate this initiative, because it also allows me, to push some bony applications in IBM little bit further. So far I have some experience with HTML5 because I have implemented some of the features, which have google introduced in Gmail in some IBM product and I believe this book will help me to master my HTML5 skills and let me implement more features in this product.
Now little bit about the book. It`s price is pretty low (amazon $19), so I have decided to get it. I have obtain electronic version and in comparison to paper version is pretty more rich, you can use hyperlinks directly from text, what helps a lot especially, when you are not aware about some topics.
So far I have get to page 30, total number of pages is 222, so I hope I will make it through the book in most 2 weeks. I will bring you periodically updates about what I have learn and I hope I will help the community. For the moment I have learn how HTML5 arise and how to detect its features in different browsers. Updates about this 2 topics I will bring soon in my other posts.

HTML5 Learning Resources

Hi there,

I would like to share few resources, which I have gathered about HTML5 and also ask you, if you have any, to share it with rest of community. I hope this will help you.

First one close to IBM by Niklas Heidloff:

Usage of HTML5 Offline Functionality in XPages 8.5.2 :

Few talks from Google guys:

Introduction to HTML5:

HTML5: Features you want desperately but still can't use:

Learn About HTML5 and the Future of the Web:

Google I/O 2010 - Developing with HTML5:

Google I/O 2009 - HTML5 Database/Gears & Offline Web Apps

Book resources:

HTML5: Up and Running:

Introducing HTML5 (Voice That Matter):

Beginning with HTML5 and CSS3: Next Generation Web Standards