<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-1250320024048098733</id><updated>2024-09-20T13:51:23.806+01:00</updated><category term="Software"/><category term="API"/><category term="Kinect"/><category term="Microsoft"/><category term="Motion"/><category term="Motion Control"/><category term="NITE"/><category term="OpenNI"/><category term="Programming"/><category term="Sensor"/><category term="SensorKinect"/><category term="Software Development"/><category term="XBox"/><category term="XBox 360"/><category term="Codebits"/><category term="Dependencies"/><category term="Development IDE"/><category term="Game Reviews"/><category term="Games"/><category term="Keynote"/><category term="Live"/><category term="Meta"/><category term="Reviews"/><category term="SAPO Codebits"/><category term="Visual C++"/><category term="Visual Studio"/><category term="Welcome"/><title type='text'>Ramblings in Tech</title><subtitle type='html'>Yet another blog covering tech topics, mostly related to software. Find news, reviews and more!</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://ramblingsintech.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1250320024048098733/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://ramblingsintech.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>João Silva</name><uri>http://www.blogger.com/profile/04729112330023252775</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>6</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1250320024048098733.post-8877879403187302835</id><published>2011-04-26T23:25:00.006+01:00</published><updated>2011-06-01T23:12:58.104+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="API"/><category scheme="http://www.blogger.com/atom/ns#" term="Kinect"/><category scheme="http://www.blogger.com/atom/ns#" term="Microsoft"/><category scheme="http://www.blogger.com/atom/ns#" term="Motion"/><category scheme="http://www.blogger.com/atom/ns#" term="Motion Control"/><category scheme="http://www.blogger.com/atom/ns#" term="NITE"/><category scheme="http://www.blogger.com/atom/ns#" term="OpenNI"/><category scheme="http://www.blogger.com/atom/ns#" term="Programming"/><category scheme="http://www.blogger.com/atom/ns#" term="Sensor"/><category scheme="http://www.blogger.com/atom/ns#" term="SensorKinect"/><category scheme="http://www.blogger.com/atom/ns#" term="Software"/><category scheme="http://www.blogger.com/atom/ns#" term="Software Development"/><category scheme="http://www.blogger.com/atom/ns#" term="XBox"/><category scheme="http://www.blogger.com/atom/ns#" term="XBox 360"/><title type='text'>Loose details about coding for the Kinect with OpenNI</title><content type='html'>&lt;span style=&quot;font-size: large;&quot;&gt;&lt;b&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;Documentation &lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;&lt;b&gt; &lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;The first thing to be said here is that if you&#39;re looking for an API reference, I haven&#39;t been able to find it online. However, it&#39;s all on a help file in OpenNI&#39;s start menu group.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;When  it comes to OpenNI documentation, there&#39;s plenty of it, even though it&#39;s not very good, in  general. The most extreme example of this I&#39;ve found is&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;blockquote&gt;typedef XnUInt16 &lt;b&gt;XnLabel &lt;/b&gt;&lt;br /&gt;
Defines the label type &lt;/blockquote&gt;&lt;span style=&quot;font-size: large;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Okay, PrimeSense... your users can read C. They can see that it defines a label type. What they want to  know is: what does it label? Why is the label an unsigned 16-bit integer  and not, say... a string? You need to go look at the code samples in  order to figure that one out. In this case, it turns out that it is a  label for which user is present in each image pixel. A pixel containing a  0 has no user present, a pixel containing a 1 belongs to user 1, and so on.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;From reading the documentation, it&#39;s also not very clear when, exactly, the callbacks are called. For instance, the LostUser callback isn&#39;t called until roughly ten seconds after the user has left the frame, although it will be called immediately if the sensor is completely obscured.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: large;&quot;&gt;The &quot;Psi&quot; pose&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;http://upload.wikimedia.org/wikipedia/commons/1/15/Psi_uc_lc.svg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;213&quot; src=&quot;http://upload.wikimedia.org/wikipedia/commons/1/15/Psi_uc_lc.svg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;span style=&quot;font-size: large;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: large;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;The Kinect provides an OpenNI UserGenerator, capable of pose detection. The only pose it can detect is named &quot;Psi&quot;. This appears in the samples as a magic constant, without a single comment, which makes you wonder where it came from or which pose it is. It turns out that there actually &lt;i&gt;is&lt;/i&gt; document&lt;/span&gt;&lt;/span&gt;ation describing this, but not in the API reference or the &lt;a href=&quot;http://www.openni.org/images/stories/pdf/OpenNI_UserGuide.pdf&quot;&gt;user guide&lt;/a&gt;, where you might look. It&#39;s actually in a PDF document called &quot;NITE Algorithms&quot;, in NITE&#39;s program group, but I&#39;ll save you the time. You need to be standing up, with your arms making a 90º angle with your torso, and your forearms and hands pointing up, making you look like the greek letter, &lt;i&gt;psi&lt;/i&gt;. Starting from this pose, and after a ~3 second calibration, you&#39;ll be able to track the user&#39;s skeleton.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
And that&#39;s it, for today. I hope you found this useful.&lt;br /&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt; &lt;/span&gt;&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://ramblingsintech.blogspot.com/feeds/8877879403187302835/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ramblingsintech.blogspot.com/2011/04/loose-details-about-coding-for-kinect.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1250320024048098733/posts/default/8877879403187302835'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1250320024048098733/posts/default/8877879403187302835'/><link rel='alternate' type='text/html' href='http://ramblingsintech.blogspot.com/2011/04/loose-details-about-coding-for-kinect.html' title='Loose details about coding for the Kinect with OpenNI'/><author><name>João Silva</name><uri>http://www.blogger.com/profile/04729112330023252775</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1250320024048098733.post-6628113046731096955</id><published>2011-04-26T22:33:00.007+01:00</published><updated>2011-04-26T22:56:19.304+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="API"/><category scheme="http://www.blogger.com/atom/ns#" term="Kinect"/><category scheme="http://www.blogger.com/atom/ns#" term="Microsoft"/><category scheme="http://www.blogger.com/atom/ns#" term="Motion"/><category scheme="http://www.blogger.com/atom/ns#" term="Motion Control"/><category scheme="http://www.blogger.com/atom/ns#" term="NITE"/><category scheme="http://www.blogger.com/atom/ns#" term="OpenNI"/><category scheme="http://www.blogger.com/atom/ns#" term="Programming"/><category scheme="http://www.blogger.com/atom/ns#" term="Sensor"/><category scheme="http://www.blogger.com/atom/ns#" term="SensorKinect"/><category scheme="http://www.blogger.com/atom/ns#" term="Software"/><category scheme="http://www.blogger.com/atom/ns#" term="Software Development"/><category scheme="http://www.blogger.com/atom/ns#" term="XBox"/><category scheme="http://www.blogger.com/atom/ns#" term="XBox 360"/><title type='text'>Getting started with coding for the Kinect on Windows</title><content type='html'>Microsoft&#39;s Kinect has generated a lot of interest in the scientific and mod community and the good news is, it&#39;s not very hard (for a C or C++ programmer) to get started with coding for it, even if you don&#39;t want to wait until the &lt;a href=&quot;http://research.microsoft.com/en-us/um/redmond/projects/kinectsdk/&quot;&gt;official API&lt;/a&gt; is released, later this spring.&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
A good tutorial to get things up and running can be found &lt;a href=&quot;http://www.i-programmer.info/programming/hardware/1905-getting-started-pc-kinect.html&quot;&gt;here&lt;/a&gt;. It is, however, a bit dated, and some of the details merit further discussion, namely:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;What &lt;a href=&quot;http://www.openni.org/&quot;&gt;OpenNI&lt;/a&gt; version should you install?&lt;/b&gt; The Windows installer for the &lt;a href=&quot;https://github.com/avin2/SensorKinect&quot;&gt;SensorKinect drivers&lt;/a&gt; will only let you install the drivers if it detects OpenNI. However, at the time of this writing, it only works with the latest OpenNI unstable version, and does not detect 64-bit OpenNI installations. To make a long story short, if you&#39;re on Windows, install the latest 32-bit unstable version.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Reboot after installing the drivers:&lt;/b&gt; At least in my case, the &quot;First test&quot; mentioned in that tutorial did not work. I&#39;ve had to reboot before the Kinect was detected and the samples ran normally.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;About &lt;a href=&quot;http://www.primesense.com/?p=515&quot;&gt;NITE&lt;/a&gt;:&lt;/b&gt; As far as I can tell, NITE just uses OpenNI in order to do its thing, so it is entirely optional. It seems like that wasn&#39;t the case when that tutorial was written. Nevertheless, it provides a decent number of code samples, covering parts of the API that OpenNI&#39;s own samples do not. Skeleton tracking is an example of one of those parts.&lt;/li&gt;
&lt;/ul&gt;If you find yourself looking at a NITE sample program, and you can&#39;t figure out what it&#39;s supposed to do, you can look &lt;a href=&quot;http://www.keyboardmods.com/2010/12/howto-kinect-openninite-skeleton.html&quot;&gt;here&lt;/a&gt; for a description of what each one does.&lt;br /&gt;
&lt;ul&gt;&lt;/ul&gt;When it comes to getting things up and running, that&#39;s about it.&lt;span style=&quot;font-size: large;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt; Stay tuned for some more details about coding with OpenNI.&lt;/span&gt;&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://ramblingsintech.blogspot.com/feeds/6628113046731096955/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ramblingsintech.blogspot.com/2011/04/getting-started-with-coding-for-kinect.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1250320024048098733/posts/default/6628113046731096955'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1250320024048098733/posts/default/6628113046731096955'/><link rel='alternate' type='text/html' href='http://ramblingsintech.blogspot.com/2011/04/getting-started-with-coding-for-kinect.html' title='Getting started with coding for the Kinect on Windows'/><author><name>João Silva</name><uri>http://www.blogger.com/profile/04729112330023252775</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1250320024048098733.post-1702845503439009127</id><published>2011-03-01T21:05:00.003+00:00</published><updated>2011-04-26T21:31:56.522+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Dependencies"/><category scheme="http://www.blogger.com/atom/ns#" term="Development IDE"/><category scheme="http://www.blogger.com/atom/ns#" term="Software"/><category scheme="http://www.blogger.com/atom/ns#" term="Visual C++"/><category scheme="http://www.blogger.com/atom/ns#" term="Visual Studio"/><title type='text'>A quick heads-up for people migrating to Visual C++ 2010</title><content type='html'>If you&#39;ve been using an older version of Visual C++, you&#39;ve probably had a solution with one or more library projects you&#39;ve written, and a project for the main program. To link these together, you probably right-clicked the main program&#39;s project, selected &quot;Project Dependencies...&quot; from the menu, chose whatever libraries you wanted the main project to link with, and you were done.&lt;br /&gt;
&lt;br /&gt;
I&#39;ve tried doing this in VC++ 2010, only to be baffled by a pretty large list of unresolved external symbols, even for libraries I was sure I&#39;d set as dependencies. Fortunately, a Google search turned up these &lt;a href=&quot;http://social.msdn.microsoft.com/Forums/en-US/vcgeneral/thread/95478f4c-bf63-461b-87de-cd65d7c0fc34/&quot;&gt;forum&lt;/a&gt; &lt;a href=&quot;http://social.msdn.microsoft.com/Forums/en-US/vcgeneral/thread/d69aeb0d-e5fb-41e1-98ad-9b6c7b43a3ca&quot;&gt;threads&lt;/a&gt;, where I&#39;ve learned that you should now add the dependencies at &quot;Project Properties -&amp;gt; Common Properties -&amp;gt; Framework and References&quot;, instead of using &quot;Project Dependencies&quot;. So... why was this changed around? Was there something so wrong with the previous approach?</content><link rel='replies' type='application/atom+xml' href='http://ramblingsintech.blogspot.com/feeds/1702845503439009127/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ramblingsintech.blogspot.com/2011/03/quick-heads-up-for-people-migrating-to.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1250320024048098733/posts/default/1702845503439009127'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1250320024048098733/posts/default/1702845503439009127'/><link rel='alternate' type='text/html' href='http://ramblingsintech.blogspot.com/2011/03/quick-heads-up-for-people-migrating-to.html' title='A quick heads-up for people migrating to Visual C++ 2010'/><author><name>João Silva</name><uri>http://www.blogger.com/profile/04729112330023252775</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1250320024048098733.post-8310678309900498355</id><published>2011-02-05T19:54:00.001+00:00</published><updated>2011-04-04T19:37:24.346+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Game Reviews"/><category scheme="http://www.blogger.com/atom/ns#" term="Games"/><category scheme="http://www.blogger.com/atom/ns#" term="Reviews"/><title type='text'>Super Meat Boy, or how losing can be fun</title><content type='html'>You&#39;re in for something different today: a game review.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihaYTsu5CzuoIZ6Z7K5ZnsJfRSGCFGeNcPxfOufqdiawSnL6vVyTzByRELAgKC8eeDPdfN1Lf1uEnspAw-7DoGlZFi4iLCo1Bz2lzrvwx2NPWFSWjrhtADrmk7Yg2EJsI-EnzJQED8pSO8/s1600/cornerlogo.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihaYTsu5CzuoIZ6Z7K5ZnsJfRSGCFGeNcPxfOufqdiawSnL6vVyTzByRELAgKC8eeDPdfN1Lf1uEnspAw-7DoGlZFi4iLCo1Bz2lzrvwx2NPWFSWjrhtADrmk7Yg2EJsI-EnzJQED8pSO8/s1600/cornerlogo.jpg&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
If you are not aware of it, Super Meat Boy is an award-winning independent game which is sure to strike a chord with you, if you like old school platformers, and probably even if you don&#39;t. It is, in a word, brilliant. And &lt;u&gt;really&lt;/u&gt; hard. In fact, I&#39;m pretty sure it is the hardest game I&#39;ve ever played in my 10+ years of gaming. So what is it about, and what makes it so compelling?&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;font-size: large;&quot;&gt;What is it about?&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
I&#39;ll let the developers speak for themselves:&lt;br /&gt;
&lt;blockquote&gt;Super Meat Boy is a tough as nails platformer where you play as an animated cube of meat who&#39;s trying to save his girlfriend (who happens to be made of bandages) from an evil fetus in a jar wearing a tux.&lt;/blockquote&gt;&lt;br /&gt;
I really can&#39;t help smiling at that. :)&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;font-size: large;&quot;&gt;What makes it so compelling?&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;Is it the story? &lt;/b&gt;Let me know if this sounds familiar: boy likes girl, girl gets kidnapped by bad guy, boy needs to rescue ever-elusive girl. If it &lt;b&gt;did&lt;/b&gt; sound familiar, it is only because it is a plot we&#39;ve seen &lt;b&gt;hundreds&lt;/b&gt; of times. So clearly, the story isn&#39;t it.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Is it innovation?&lt;/b&gt; Well, this is a platformer. You jump around, looking to &quot;rescue the princess&quot;, while trying to avoid falling into pits and hitting pointy things or monsters. So it isn&#39;t. Not really.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Is it nostalgia?&lt;/b&gt; I don&#39;t think so. While the similarities to older platformers are obvious, and the game actually has 8-bit renditions of the characters and music in some levels, it is great in its own right. In fact, even the older games are great in their own right. As an experiment, get an 8-year-old to play Super Mario Bros. It&#39;s pretty much guaranteed they&#39;ll like it, despite having been exposed to more technically advanced games, with much larger budgets. That game has aged remarkably well.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Is it the graphics? &lt;/b&gt;The graphics are solid, and they manage to  get the characters to be both funny and adorable, without ever saying a  word! In particular, the animation for the story sequences is great. But  let&#39;s face it: it&#39;s a 2D platformer. That&#39;s hardly glamorous, these  days. &lt;/li&gt;
&lt;li&gt;&lt;b&gt;Is it the sound? &lt;/b&gt;The sound is just great! There are satisfying  squishing sounds whenever Meat Boy hits walls or the ground, and different  satisfying squishing sounds whenever you are unfortunate enough to hit a  buzzsaw... which will happen all the time. The soundtrack is also great, in that it gets you psyched, though it might get repetitive, at times. I&#39;m a sucker for guitars blaring power chords, along with retro instrument voices, and the soundtrack has plenty of them. Even so, I still think it isn&#39;t not the sound that makes this game great. &lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;What is it, then?&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
It is just how incredibly well done the whole thing is, and about the tricks it does to keep you psyched, despite how much you fail. And you &lt;b&gt;will&lt;/b&gt; fail. A lot! But when you &lt;b&gt;do&lt;/b&gt; succeed, you get to see a simultaneous replay of every single one of your tries, and actually watch how much your playing improved. Another great thing is that the levels are designed to be &lt;b&gt;easier &lt;/b&gt;if you play them fast. Once you realize this, you&#39;ll be even more motivated, because of how fast you went through them. Beating the goal time for the level also gives you access to a special, more difficult version of it, so, in effect, the better you are, the more content you get. &lt;br /&gt;
&lt;br /&gt;
And now, to address the elephant in the room: Super Meat Boy&#39;s gameplay. It&#39;s just great! It strays from most typical platformers in that you can also jump from walls, and the enemies, when present, make you need to constantly rethink your strategy. The level design is also great, with the developers creating deliciously difficult ideas, while avoiding being underhanded about it. 99% of the time, you can see every danger before it&#39;s actually a danger to you, which is just common sense in game design, but not something you would expect in a game this difficult, especially if it is getting inspiration from the NES classics. Speaking of difficulty, the game makes a good job of ramping it up, while always being challenging.&lt;br /&gt;
&lt;br /&gt;
So, to finally answer the question, what makes Super Meat Boy great is good, old-fashioned game design. That means that two-person teams like this can actually make something more interesting than people with budgets that are orders of magnitude larger. And that&#39;s just awesome.&lt;br /&gt;
&lt;br /&gt;
Graphics: 4/5 (I actually like 2D graphics)&lt;br /&gt;
Sound: 5/5&lt;br /&gt;
Music: 4.5/5&lt;br /&gt;
Gameplay: 5/5&lt;br /&gt;
&lt;b&gt;Overall: &lt;/b&gt;&lt;b&gt;5/5&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;iframe allowfullscreen=&#39;allowfullscreen&#39; webkitallowfullscreen=&#39;webkitallowfullscreen&#39; mozallowfullscreen=&#39;mozallowfullscreen&#39; width=&#39;320&#39; height=&#39;266&#39; src=&#39;https://www.youtube.com/embed/snaionoxjos?feature=player_embedded&#39; frameborder=&#39;0&#39;&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;b&gt;&lt;i&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;Trailer posted by&amp;nbsp;&lt;a href=&quot;http://www.youtube.com/user/IGNentertainment&quot;&gt;IGNentertainment&lt;/a&gt;. &lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Oh, and don&#39;t believe the screens saying you absolutely &lt;b&gt;need&lt;/b&gt; a gamepad to play this. You really don&#39;t.&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Super Meat Boy is available for both PC and XBox Live Arcade. &lt;/i&gt;</content><link rel='replies' type='application/atom+xml' href='http://ramblingsintech.blogspot.com/feeds/8310678309900498355/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ramblingsintech.blogspot.com/2011/02/super-meat-boy-or-how-losing-can-be-fun.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1250320024048098733/posts/default/8310678309900498355'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1250320024048098733/posts/default/8310678309900498355'/><link rel='alternate' type='text/html' href='http://ramblingsintech.blogspot.com/2011/02/super-meat-boy-or-how-losing-can-be-fun.html' title='Super Meat Boy, or how losing can be fun'/><author><name>João Silva</name><uri>http://www.blogger.com/profile/04729112330023252775</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihaYTsu5CzuoIZ6Z7K5ZnsJfRSGCFGeNcPxfOufqdiawSnL6vVyTzByRELAgKC8eeDPdfN1Lf1uEnspAw-7DoGlZFi4iLCo1Bz2lzrvwx2NPWFSWjrhtADrmk7Yg2EJsI-EnzJQED8pSO8/s72-c/cornerlogo.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1250320024048098733.post-4613438899328320418</id><published>2010-11-11T12:00:00.003+00:00</published><updated>2010-11-11T12:48:53.709+00:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Codebits"/><category scheme="http://www.blogger.com/atom/ns#" term="Keynote"/><category scheme="http://www.blogger.com/atom/ns#" term="Live"/><title type='text'>Live from the Codebits keynote</title><content type='html'>SAPO announced &quot;meo Jogos&quot;, a gaming service that runs on your TV! This service, provided in association with Playcast, will allow gamers to play games through their TV. It works by sending the user input to the Cloud and then streaming the game&#39;s video and audio straight to your TV.  Pretty cool!&lt;br /&gt;
&lt;br /&gt;
I think there will probably be some problems with latency, but that&#39;s not really important for every game genre, so there&#39;s lots of potential.here.  So what do you think? Leave your opinion in the comments.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;background-color: white;&quot;&gt;Update&lt;/span&gt;:&lt;/b&gt; Apparently, it will be a thin client on Windows XP. It won&#39;t be launched on the meo box, at the moment. You can try it at the Laptops in the lounge, or check out &lt;a href=&quot;http://jogos.meo.pt/&quot;&gt;http://jogos.meo.pt&lt;/a&gt;.</content><link rel='replies' type='application/atom+xml' href='http://ramblingsintech.blogspot.com/feeds/4613438899328320418/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ramblingsintech.blogspot.com/2010/11/live-from-codebits-keynote.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1250320024048098733/posts/default/4613438899328320418'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1250320024048098733/posts/default/4613438899328320418'/><link rel='alternate' type='text/html' href='http://ramblingsintech.blogspot.com/2010/11/live-from-codebits-keynote.html' title='Live from the Codebits keynote'/><author><name>João Silva</name><uri>http://www.blogger.com/profile/04729112330023252775</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1250320024048098733.post-2458055361067181697</id><published>2010-11-11T00:53:00.002+00:00</published><updated>2010-11-11T01:04:51.624+00:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Meta"/><category scheme="http://www.blogger.com/atom/ns#" term="SAPO Codebits"/><category scheme="http://www.blogger.com/atom/ns#" term="Welcome"/><title type='text'>Welcome</title><content type='html'>Hello, dear reader, and welcome to Ramblings in Tech.&lt;br /&gt;
&lt;br /&gt;
In here, personal time permitting, you can expect to read comments on current tech news and issues. For starters, I will be attending and, therefore, covering a nerdgasm-inducing tech event: SAPO Codebits 2010! I hope you find the content interesting enough to stay tuned for more. If you like what you read, you can also follow &lt;a href=&quot;http://twitter.com/jmfs87&quot;&gt;@jmfs87&lt;/a&gt; on Twitter. A significant portion of the posts are in Portuguese, though.&lt;br /&gt;
&lt;br /&gt;
See? I&#39;m rambling already! This is gonna be great! ;)</content><link rel='replies' type='application/atom+xml' href='http://ramblingsintech.blogspot.com/feeds/2458055361067181697/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ramblingsintech.blogspot.com/2010/11/welcome.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1250320024048098733/posts/default/2458055361067181697'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1250320024048098733/posts/default/2458055361067181697'/><link rel='alternate' type='text/html' href='http://ramblingsintech.blogspot.com/2010/11/welcome.html' title='Welcome'/><author><name>João Silva</name><uri>http://www.blogger.com/profile/04729112330023252775</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>