| Profilo di AndreFurtaSpace - www.afurtad...FotoBlogElenchi | Guida |
|
15 dicembre Marry Christmas, Happy 2008 and Happy Gaming with XNA 2.0
This is probably my last post in 2007. Therefore, I'd like to wish you Merry Christmas and an excellent new year. 2008 will be a year of many, many challenges, but we can talk about this in a future post. Meanwhile, have a nice gaming with the recently announced release of XNA 2.0! With such a release, a new stage in the "Web 2.0 game development" officially begins, since there is now support for creating multiplayer games, both through a system link or Live network. There is even a new starter kit in the XNA Creators Club website, Net Rumble, that illustrates how to create such connected games. I ask myself which would be the next top priorities for the XNA Team when they get back from Christmas, towards XNA 3.0. For me (and SharpLudus), providing a better experience to (dynamically?) add sound effects and background music to games would be cool. Take care. []s 14 dicembre [UX Pitfalls] Compactless/unsorted information display and liar links
[This post is part of a series. To understand the context, click here.] Today's User Experience (UX) Pitfall goes to Yahoo Groups. In the past, I was able to see all my groups in a single page, in a very compact manner. Then they have introduced a new interface. Let's see what has happened. The My Groups box doesn't display all of my groups anymore. Only a subset of them: Are they organized by any specific criteria? Most used? Highest message volume? Alphabetical order? Owner/moderator/ordinary status? No. They seem to be randomly selected and displayed in the box. Not useful at all. I believe the box should be renamed from "My Groups" to "Compactless Unsorted Subset of My Groups". Now here comes a tricky thing. There is a "View All" button in the bottom of the box. Nice, so will I finally be able to see my groups in a compact way and, if lucky, sort and filter them? No way. "View all" is a liar link. It lies. You can't view all your groups when clicking it. Through the link you reach a paginated list, where you'll have to keep searching for your groups through Next/Previous buttons. Frustrating. Back to the box, I clicked in "Organize". I'm then taken into a page where I should set the order, by myself, of my groups. Yet another manual action in our so dynamic and everchanging world... But wait! There is a "More Info" link where I can finally know more about the "default sorting order"! Sorry, it's another liar. It takes you to an extensive FAQ page with dozens of questions. Then I give YG a last chance: I use my web browser to search for the word "order". And then "default". And then "sort". No results. If I don't have time to keep ordering my groups, how am I supposed to read dozens of questions to find about what a default sort order is? And what if the link to the answer is a liar link as well? Ah, I give up. []s Far away from "informaticity"
In a previous post, when this blog was still written in portuguese, I've started (actually, tried to start) a series of posts presenting real-world examples of how end-users' life in our IT world... sucks. The point in which I believe is: counter-intuitive user experiences and incoherent IT business processes are some of the major constraints that avoids our society to reach ample "informaticity". "Informaticity" is a term coined by a former teacher I had during my undergraduation studies. Roughly speaking, it means something as "information/informatics as simple as electricity". For instance, you don't need to set up electricity to use it. You don't even need to ask, in a given place (such as in an airport or hotel), if electricity is available for you to use. It's just there, for you and your grandparents to easily consume it, plug and play fashion. So, back to my point: I believe we are still really far away from reaching informaticity. I've been studying and dealing with computer science for almost 10 years, but still get stuck with many user experience and IT business processes issues that would make part of the core reasons for grandparents to solely think that technology simply doesn't work. The example I gave in that previous post was the website of a mobile operator in which you can by credits to actually use your mobile phone. The interface was like this: In red, it is said "select the amount of money to buy new credits to your mobile phone". But if you chose the first option ($5), the credits can be used only to send SMS messages, not to make phone calls! Frustrating experience! Such a constraint is only presented to the user in pages far away from the page above, out of the ordinary credits buying flow. That's really a shame. After calling the Brazilian National Telecommunications Agency (and the mobile operator countless times), I was able to get the interface changed. The new interface follows below: Now the SMS restriction is displayed at the right time, in the right place (in bold, at the right-hand side: "SMS only"). How could essential information like this be neglected in the past? I don't know. This post ends here. My goal was to introduce informaticity for those who still didn't know it, give a couter-example and set the field for future "interface pitfalls" posts. []s 12 dicembre Game development: learning from practice
Which is the most important part of a (digital) game? While you think about this, let me share some insights from an interview [pt-BR] that a brazilian test manager from the XNA Live Server group did to a brazilian magazine:
Meanwhile...
[]s Screen Transition Language on its way
"ScreenTransitionLanguage" is one of the domain-specific languages (DSLs) I'm developing to automate XNA game development. I'm planning to design other languages as well, such as to define entity state (ex.: jumping, attacking, etc.) or to declare which game entities should collide with others (and which action is taken). By using ScreenTransitionLanguage, the game programmer/designer can easily define, in a couple of minutes, the game screen flow. All from within Visual Studio. Sweet! I've added icon decorators to the transitions, so you can easily read the diagram to understand what's going on between each pair of screens. In the Properties Window of a transition, it is possible to change its type through a custom property editor: One of four transition event types can be chosen: a Xbox 360 controller button is pressed, a given amount of time passes, a menu option is selected in the screen and, finally, a custom method provided by the programmer checks if the transition condition is met. The only one I've not supported yet is the menu option transition... still need to think how it should be properly done. Finally, by pressing a single button in the solution explorer, a lot of code is automatically generated! I'll end this post by listing the code generated by the diagram in first picture, above (please notice I'm using the FlatRedBall game engine; need to talk about it in future posts). Lots of code automatically generated from very few effort. I like that! using System; /* Code automaically generated by Sharpludus Arcade2D game factory */ public partial class IntroScreen : Arcade2DScreen { public IntroScreen(string scnFileName, string contentManageName) public InstructionsScreen(string scnFileName, string contentManageName) public CreditsScreen(string scnFileName, string contentManageName) public MainScreen(string scnFileName, string contentManageName) public TheEndScreen(string scnFileName, string contentManageName) []s 11 dicembre TV + Xbox + Media Center + Messenger
Xbox 360 is a Windows Media Center Extender, which makes it possible to access Media Center through the console. The last Xbox 360 update now also makes it possible to use MSN messenger from within the console. Putting everything together, it is now possible to chat with friends while watching TV, everyhting from your Xbox 360! Check this [click here if you can't see the video]: Cool, isn't it? []s 08 dicembre First day at Microsoft: experiences from other people
My friend Renato Guimarães pointed me to some nice posts (here, here and I found other here) that discuss about how it feels to start working for Microsoft. Valuable insights from text and comments:
Funny insights from text and comments:
[]s 07 dicembre Microsoft Tech Ed Brazil - feedback (so far) and DSL Tools resources
Today was the second day of Microsoft Tech Ed Brazil, in São Paulo. Tech Ed Brazil is the most important Microsoft event in Brazil and the fourth biggest Tech Ed, in size, of the world. Yesterday, in the opening day, we had some keynotes and demos. Three things got my attention:
Today I’ve done a presentation about domain-specific development with the Microsoft DSL Tools to part of the event audience. You can download my slides [pt-BR] and also check a step-by-step tutorial of the demo I’ve presented [pt-BR]. Other presentations I’ve attended today were:
This is it. Tomorrow is the last Tech Ed Brazil day and then, back to Recife and "XNA + DSL". []s 04 dicembre A tribute from Microsoft Brazil and Pernambuco State to Team Trivent Dreams
Tonight was a very special night for us (Team Trivent Dreams, winner of the Imagine Cup Korea 2007 Embedded Development Invitational). Microsoft Brazil has chosen our hometown, Recife, to settle its headquarters for the North/Northeast regions of Brazil. The office was inaugurated in an event today, where Microsoft Brazil, represented by its president, Michel Levi, together with the Pernambuco State, made us a tribute for our performance in Imagine Cup Korea 2007. I'd like to thank Microsoft Brazil and the Pernambuco State for recognizing our effort in better representing our country and state around the world! Hope many other students can receive the right investiments and support to also be able to do the same. []s What makes a killer game in a game development competition?
Q: Andre, in your opinion which game genre has the greatest chances in winning a game development competition? A: Certainly games targeted at competitions have a different focus than games targeted at the real market. I believe that, in competitions, what really matters is not quite the genre, but the easiness of understanding the <innovative/creative/technically superb/insert other quality here> gameplay you are proposing. Each of the qualities presented in "<>" are certainly important, but the simple and direct way the game delivers the message to the audience (judges) in the competition is even more! In other words, the judges will not have as much time to understand and play your game as real players would. The timeframe of a competition is much shorter than the one of the real market. Therefore, if you can't make the judges to see the value of your game in the first minutes, goodbye first prize. For example, the Civilization series are fantastic games, with many rules, wonders, unit types and so on. However, it takes some playing hours (days, actually) to get addicted to the game, to really understand its value and recognize how wonderful it is. Therefore, Civ would be easily beat by a much simpler game in a competition. Other example is the Space War Mission Commando, the winner of the first Brazilian XNA Challenge. In a couple of minutes, you can explain (and demonstrate) what the game is about: "use speech recognition to give orders to you stellar squad", and that's all. However, I have to admit that the replay value of this game is not that good. But here comes a second tip: I'd focus on other priorities rather than on the replay value of my competition-targeted game! If you can address replay value, that's great, and you should enforce this in your presentation/documents. But if you can't, do not worry that much: the game will only be played a few times by the judges (or even only once when you demo it). There is always room to enhance replay value later, by providing a better leval design, for example, if you intend to release the game to the market. So, are casual games a cool approach towards competitions? Considering that prizes in some competitions, such as the Imagine Cup, include the possibility to publish the game into networks such as Xbox Live Arcade (which welcomes casual games), certainly the approach is worth. However, I don't believe "casual" is a genre. You can have puzzle casual games, action casual games and even strategy casual games (ex.: Sokoban), plus many others. Choose yours and have a nice gaming! []s 03 dicembre Brazilian XNA tech-demo: Float Kart Racers
In an initiative of our local game development ecosystem in Pernambuco, Brazil, professionals and students created a game prototype (tech-demo), called Float Kart Racers, to test and acquire knowledge in the XNA technology. You can check the result in the video below [click here if you can't see it]: Better than that, the team made available the source code of the game (here). Finally, they provided also a post-mortem document [pt-BR] with the lessons they have learnt throughout the process. After reading the report, some key points I'd like to highlight are:
[]s 02 dicembre Back to functional languages... at least for a while?
Mauro Sant'anna's last post motivated me to finally watch a video that lasted long in my personal MWL (multimedia waiting list): "Software Composability and the Future of Languages", with Anders Hejlsberg, Herb Sutter, Erik Meijer and Brian Beckman. Some insights:
The last points sound like an alert: should we, as programmers, pay better attention to functional languages? For example, taking a closer look into Haskell, famous for implementing quicksort in two lines? qsort [] = [] That sounded funny to me for a special reason: my first contact with Microsoft tools, as a developer, was when trying to help the porting of the Haskell functional language into Visual Studio .NET. Then the next step was to integrate Haskell and Visual Studio with the Assignment Manager tool, providing automation for teachers and students to do their Haskell exercises. Old times! Who knows if functional languages cross our path once more? Rise Summer School 2007 - quick feedback
Would you spend a weekend inside a room, studying software engineering, while a beautiful beach lays outside in a 30 degrees Celsius environment? Especially if you have only a few days left before moving to the windy Redmond (minus something degrees)? The answer is yes, but not surprisingly. The reason was the first RiSE Summer School (RiSS 2007), a first-class international event where topics such as domain engineering, software factories and product lines were discussed, by both academics and practitioners. I got many insights to my SharpLudus project, and hope to gradually share them with you. RiSE’s blog (World of Reuse) is providing a coverage on the event, which ended today, therefore I’m not going to replicate information here. Hope you can attend next year! []s |
|
|