The $19 Bn Question

By now almost everyone in the tech industry and then some would have heard about Facebook’s acquisition of WhatsApp.

If not you can read about it here.

Living in Asia you get a chance to see how methods of communication differs from the West and East and witness the surge in instant messaging emerge medium of choice and establish itself as one of three main forms of communication and connection to others, Facebooks core business. Connecting people.

But that begs the question, does that justify a $19 Bn buyout for not one but two companies which have yet to show a profit. The answer in my mind is a resounding no, not when Facebook had an opportunity to prove the value of its own advertising system by using that to facilitate the growth of its own chat program through a mix of Facebook Ads and using  small fraction of that $19 Bn to develop and build a bigger network for its own chat programs through a variety of physical advertising and promotions.

Let’s presume for a moment that Facebook has got the kind of money lying around that Apple has and can afford to make such an investment. The next question that pops up is whether this augments Facebooks offerings to its audience.

Facebook and WhatsApp are fundamentally different and fill different needs. Facebook is connecting with your friends, family and colleges and sharing parts of your life with them. WhatsApp is different it’s primary function is communication with sprinkles of photo and video sharing thrown in. Using Facebook’s cloud WhatsApp can offer a much better service offering simple things like photo uploads and easy sharing. But the reverse isn’t true, WhatsApp is non intrusive and can’t be abused through advertising as of yet. Which is Facebook’s main income generator, apart from data sales.

Now we come to what I feel is the crux of the purchase, data. Data is valuable but is it worth $19 Bn? Without seeing the kind of data collected by WhatsApp it is tough to tell, based on my own usage probably not.

So, what can Facebook + WhatsApp offer? It can offer a better WhatsApp and build a network of services around it and possibly the opposite can come true over time. This purchase is not without merit, WhatsApp can evolve to its next state if left to grow untethered by Facebook and offer unparalleled services to its users thereby justifying the price spent on it, but that can be many years down the road.

Share
Posted in Technology | Tagged , , , , , , | Leave a comment

Game Over – Completion 40%

Game Over

I was reading an article over at Joystiq a few days ago where the director of Hitman: Absolution Tore Blystad said “The general player will probably never even finish the game, which is very sad. Or they might only play through it once, but the game is built for the people who want to go back through every single level and get all the stuff out of it. It’s built to last, rather than be a one-off experience.”

It brought up an interesting question regarding game design and tells us a little about how game design has changed over the last few years. About 5 or so years ago it was almost impossible to collect trophies in a game, it was unheard of or really well integrated into the game where you couldn’t tell you were collecting rewards. Such as the Poe hunt in The Legend of Zelda: Ocarina of Time.

Recently however, with the Zynga games becoming over night successes and casual gaming coming to the forefront I feel traditional developers are trying to emulate those type of mechanics into traditional games where they have no bearing. Take the Riddler quests in Batmant: Arkham Asylum I completely ignored that entire section of the game besides it being a little ridiculous it was completely distracting from the games premise and story line. I feel that developers wouldn’t have to worry as much about their games being a success if they stopped emulating things that don’t belong and focused on improving the core experience when playing the game. Because finally trophies aren’t a reason to buy the sequel the fun you had playing the original is.

Share
Posted in Games | Tagged , , , , , , , | Leave a comment

Avengers Dis-Assembled!

Art by Zeebow14 at deviantart.com

WARNING – This Post Contains Spoilers, if you haven’t seen the movie watch it first.

One of the most anticipated movies of 2012 has undoubtedly been the Avengers, justifiably so. It brought the first superhero team up ever to the big screen and after the success of the last few Marvel movies expectations for this were high, very high. Marvel has with the exception of the Hulk managed to cast the perfect actors to play their superheroes and villains, bag some great directors and writers and overall deliver a enjoyable if not fantastic movie finally, with great post credit scenes.

The Avengers is no exception to the formula, the casting was fantastic, even Bruce Banner (Hulk) who was played by Mark Ruffalo was a great choice, from Nick Fury to Hawkeye they seem to have a knack for getting actors who can realistically portray their characters strengths and flaws. The directors have been as well chosen as the actors, and none other than Joss Whedon was selected to direct, and anyone whose familiar with his work knows that this guy knows his work, so Avengers was in good hands.

A movie with just about everything going for it failed to make an impression with me. It wasn’t an Avengers movie, it was Ironman and his friends. Captain America, Thor and other major players were sidelined in favour of Ironman who took center stage and ran the show. I can accept that to an extent since he’s the most popular character in the line up, but my main peeve was that the movie was lacking substance and depth. If you’ve read any of the recent comics you’ll notice that Avengers comics in particular had a lot of depth, drama and character conflicts and communication. It was less about how far you can punch someone and more about resolving personal differences and working together. I felt that the movie cast this aside  in favour of punches and visuals.

Overall though it was a good movie I enjoyed it and I’d probably watch it again for what it is a good action comedy superhero team up.

Share
Posted in movies | Tagged , , , , , , , , , , , , , , | Leave a comment

Minimum requirements for game programming

“I’m interested in learning programming but I’m not sure how or where to start.”

This is an interesting statement, often come across by most programmers on forums, blogs, social media and pseudo-forum sites and most of the time the answer is the same. What I want to do is answer the question from a game programing perspective, firstly to disclose I’m not a professional or a graduate as yet however from my various searches and intrusions and questions asked and read on the above mentioned site I have gathered a fairly complete idea of what is requested. So lets begin leveling up.

Armour – Get the right Hardware

Samus and her trusty Powersuit

Chances are since your reading this that you already have the necessary hardware requirements covered. But if you’re looking for facts and figures this is what I would recommend.  These requirements are future proof so as your skills improve and you start shifting towards more graphically and mathematically complex games you don’t find yourself needing to upgrade your machine to use a more powerful development environment.

  • Computer that has a 1.6GHz or faster processor
  • 1 GB (32 Bit) or 2 GB (64 Bit) RAM (Add 512 MB if running in a virtual machine)
  • 3 GB of available hard disk space
  • 5400 RPM hard disk drive
  • DirectX 9 capable video card running at 1024 x 768 or higher-resolution display
  • DVD-ROM Drive
Most netbooks support these specifications and are a cheap low-cost investment. I would also recommend getting a netbook which can be connected to a monitor (most netbooks already offer this, I think?), preferably one which supports a resolution of 1280 x 1024 pixels.

Weapons – Basic Sword to the ultimate Blade

There are a few ways to tackle programming, the easiest and most direct route would be to learn Python. Python is a simple, dependable and compact language where most complex code is already done for you, it has a few popular graphics libraries (Pygame, Pyglet), which have been tried, tested, taken apart and put back together.  I strongly discourage you to start of in Python, I dislike the language you can read about it here, other than the reasons mentioned in that blog post I feel that Python, particularly in game programming gives a false sense of accomplishment which will cause disappointment as you start to expand your horizons and find that other lower level languages add a new level of complexity.

My recommendation is to start by learning “the C language“, it has a much steeper learning curve but allows you much more flexibility and a wider variety of libraries, game engines and scope if you decide to go professional. It also allows you to branch out to most other popular programming languages like Java, Objective – C, D, C#. It also allows for natural progression to learning and using C++, the professional grade language used by your favourite game programmers or development houses.

Level 01 – Learning C

The easiest way to learn C is to learn by example. Start by taking a book read chapter, do the examples and then the questions and repeat. This is going to be tedious, difficult, and tiring but by the end you should have covered:

  • Variable
  • Loops
  • Functions
  • Pointers (Very Important)
  • Reading / Writing to Files
  • Arrays
  • Structures and Unions

Level 2 – Learning C++

Using the same method as before. You should cover the following:

  • Classes
  • Strings
  • Templates
  • Operator Overloading
  • Function Overloading
  • Exception Handling

Level 3 – Data Structures & Algorithms

Once you get comfortable with Level 1 and 2 your ready to progress to level 3, the most important level in game programming. This is absolutely brutal and probably the hardest part of programming but the most essential, efficiency, searching and retrieval of data, decision trees and many others. Learning a few of these topics wont hurt.

  • Linked Lists
  • Searching & Sorting Algorithms
  • Hash Tables
  • Recursion
  • Trees
  • C++ Standard Library
  • Boost’s C++ Library

Level 4 – Graphics Library

At this point you have a couple of options, you can continue going slow and steady or jumping right in. If you want to continue going slow and steady you can try learning SDL, it’s a basic graphics library that allows you to create 2d games and even simple 3D ones, it is a tried, tested library which is being prepped to work with the iPhone.

The other alternative is moving straight to the meat of game programming and start learning DirectX or Open GL.

The third option that you have is to use a game engine, there are plenty of options depending on your requirements 2D, 3D, Isometric. Engines that have a large user base and well written tutorials are the Unity Engine, Unreal Engine, Panda3D amongst many others.

Summary

By this point if you have covered and are familiar with many of the intricacies of a programming language and graphics library and or and game engine your well on your way to becoming a game programmer, the road is hard and difficult but make google your best friend and you’ll be able to bring you ideas to life in no time.

If you have any questions or think that something is wrong do let me know.

Share
Posted in Games, Programming, Uncategorized | Tagged , , , , , , , , , , | Leave a comment

Write readable code!!!

WARNING.

This issue is personal.

Evil programmers we know all know them and have worked with them at one point or another, the write code using a mixture of unicorn tears, penguin fur and carbon dioxide, making sure that they contribute towards making the world a more hostile and less sustainable place to live in.

They by virtue of being quite intelligent usually spend time observing, studying and writing brilliant pieces of code that no one can read. Learning every single nuance and obscure syntax that 90% of other coders will not be able to read and will take hours or days to decipher. They merge variables, arrays, functions, structures and classes into one big mess.

A good approach to writing readable code would be to use the KISS (Keep it Simple Stupid) approach, write it like the guy who will read it after you is the Batman. Take a extra line, use a few white spaces, try some whitespaces for a change. Just make the damn thing legible.

Commenting is another good approach to take.

Please, Please, Please write something everyone can read.

Share
Posted in Programming, Uncategorized | Tagged , , , , , , , , | Leave a comment

Photography: A Month Onwards

Wow,  I suck!!! I’m really, really bad :O

Thats the conclusion that I came to within a week of taking my pictures for my 365 day project. A decision came to my mind that I would start studying techniques, reading tips and actually figuring out how to use my camera, which is a point and click from a few years ago. My problems were lighting, focus, and positioning of the object, my shots were drab and boring, and whoever I made to suffer through viewing them were probably thinking of gouging their eyes out.

Flickering Lights

Poor lighting on purpose

Lighting, as I found over the last month plays more of a role that simply making a shot bright or dark. In its simplest it plays a pivotal role making the picture appear too dark or too bright. But on a deeper level it creates the shot, throwing shadows and creating colour.

Some basic tips that I picked up on in my reading were:

  1. As much as possible keep the light source behind you. Make sure the subjects being shot are not standing in front of your light source or they will appear as dark blobs.
  2. Avoid the flash as much as possible, it will do one of two things, give hard shadows to your subjects or darken the background and very often do both.
  3. Shoot using a manual ISO setting, I use 80 with the Sunlight setting and Exposure at neutral or -0.5 on really bright days.

Focus

Focusing

My camera has very few focusing modes, terrible zoom and very few shooting options. Taking all this into consideration I came to the conclusion that I should take the shot my camera can take rather than those that are not within it capabilities. Sticking to semi-macro because I consider true macro to be something only a DSLR to be capable of and full size short-range pictures, by this I mean no landscapes, nighttime photography or pictures that require a quick shutter speed.

Framing the Subject

Persian Girl Portrait

I think more than anything else I learnt the importance of framing a subject, the type of  framing you choose is significant as it becomes the focus of you picture. A few things that I learnt were:

  • When shooting people, move the subject away from the middle and more towards the left or right depending on the way they are facing.
  • There is no harm in tilting a subject.
  • Capturing emotions are hard.
  • Get in close to your subject.
  • Get down to the subjects level, if your shooting a bug get down to its level and shoot.
  • The crazy shots are the most fun to look at.

These are just some of the things that I learnt but the single most important thing was that there are no hard and fast rules in photography, just keep shooting and keep enjoying.

One or two interesting side effects were that I found I spent more time outdoors and that I would no longer look at something, I would notice and frame it mentally, looking at how the light falls on it, and see the colour variations on it.

Learning Links

  1. Reddit’s photoclass, a lesson based guide going from one topic to another explaining some key points to consider.
  2. A very detailed guide with examples, my go to for information and guidance.

 

Share
Posted in Photography, Uncategorized | Tagged , , , , , , , , , | Leave a comment

Project 365, Day 037

Light.

Let their be light

This is not an original picture, this type of picture has been taken before, however it seems apt to place a dirty, dusty bulb lighting up as a beacon of hope for the world.

The middle east is going through a period of change, we are facing and have faced numerous natural disasters, flooding in Australia, Brazil and extremely under mentioned by the news organisations my country, Sri Lanka. Basic staples to survive are rising in cost due to food shortages, we are barely recovering from a crippling economic collapse.

But I believe in a fools hope, the way we see one another is changing we are communicating with our peers locally and on a global scale, no longer do we act with ignorance or prejudice we have been given tools of expression, education and communication that is uniting the globe.

This year, 2011 is the year of global communication, thanks to facebook and twitter the world has just become a very small place.

Share
Posted in Project 365 | Tagged , , , , , , , , , | Leave a comment