Mobile Computing

Many have predicted the fall of the PC in favor of large-scale mobile computing with smartphones and tablets. Most people don’t need the power of a high-end laptop or desktop computer to check email and play Facebook games. Indeed, most services are now provided over the Internet, with low client computational requirements. However, we may see an abrupt reversal in this trend.

There are two factors at play that could radically change the direction of the computing market. First, some experts are now predicting doom and gloom for the “free Internet”. The post-Snowden Internet is very likely going to fragment along national lines, with each country creating its own insulated network over security concerns. Not only does this mean the US will lose its disproportionate share of Internet business (and US tech companies will see significant declines in overseas sales), but it also means the era of cloud services may be coming to a premature close. As users see the extent of NSA data mining, they may become less willing to keep all of their data with a potentially unsecured third-party. If users wish to start doing more computing offline – or at least locally – in the name of security, then desktop computers and high-power tablets may see a boost in sales.

Second, the gulf between “PCs” and “tablets” is rapidly closing; the agony over PC-mobile market shifts will soon be moot. Seeing a dip in traditional PC sales, many manufacturers have branched out, and are now creating a range of hybrid devices. These are often large tabletop-scale tablets to replace desktops, or tablets like the Surface Pro to replace laptops. I suspect the PC market will fragment, with a majority of sales going towards these PC-mobile hybrids, and a smaller percentage going towards specialty desktops for high-power gaming and industry work (think CAD and coding).

I doubt desktop computers will disappear. In 10 years, the average household might have a large tablet set in a holder on a desk and connected to a mouse and keyboard, or laid flat on a coffee table. It would be used for playing intensive computer games, or the entire family could gather round and watch videos. In addition to this big tablet-computer, each person would have one or two “mobile” devices: a smallish smartphone, and a medium tablet with a keyboard attachment that could turn it into laptop-mode. Some people may opt for a large-screen phone and forgo the tablet.

It’s hard to tell whether or not the revelations about national spying will significantly impact the civilian net (the same goes for the fall of net neutrality). On the one hand, people are concerned about the security of their data. However, being able to access data from any device without physically carrying it around has proved to be a massive game-changer for business and society in general. We may be past the point-of-no-return when it comes to adopting a cloud computing framework. On the whole, transitioning from a dichotomy between “mobile devices” and “computers” to a spectrum of portability seems to be a very good thing.

Digital Copyright

We’ve got a big problem in America. Well, we’ve got a number of big problems. But one of the biggest, baddest problems is that monstrous leviathan known as copyright law.

Glossing over the issues with traditional copyright law, I want to focus on digital copyright. It has been apparent for some time that there is something dreadfully wrong with the way the US handles copyright management on the Internet. An explosion of annoying DRM, horrific lawsuits, and illegal prosecution has illuminated the fact that our current system for managing content rights is broken.

Currently the DMCA governs much of US digital copyright law. It is based on two tenets: one, content providers are not accountable for user-uploaded content as long as, two, there is a means for quickly taking down content at the request of the owner of any copyrighted material in that offending content.

However, many large content producers have taken to spamming such takedown requests, to the point of absurdity; for example, HBO at one point requested that Youtube take down a video with HBO content – that HBO itself had posted. We also hear the stories about kids being sued for hundreds of thousands of dollars because they pirated a few dozen songs. And in at least one case, monolithic content producers like the MPAA and RIAA have gotten the US government to grossly violate a swath of other laws in order to enforce the DMCA. I speak of the Kim Dotcom raid. Invalid permits, illegal seizure of evidence, failing to unfreeze funds for legal defense, harassment while in custody, illegal withholding of evidence from the defense – the list goes on. It shows that the crusade against copyright infringement has become a farce, and the DMCA is no longer effective.

Ironically, it’s not even clear that taking this hard-line approach is the right way to go about deterring copyright infringement in the first place. Over the last few years, Netflix has grown to comprise around 35% of all Internet traffic during peak hours; it has become the de facto way to easily watch movies and TV online. And while Netflix has grown, file-sharing sites have dropped from 30% to 8% of all traffic. This means that legitimate content consumption has effectively replaced online piracy for movies and TV shows.

Why did this happen? Simple: it became easy to watch movies and TV online without pirating. Pirating doesn’t occur because people don’t want to pay for content. It occurs because they physically can’t pay for content. If they could shell out cash for their favorite movies on demand over the Internet, they would; but until streaming sites like Netflix, there was simply no mechanism for doing so. In trying to protect their content, the MPAA actually encouraged online piracy.

We see the same thing occur with music and video games. In many cases, reduced DRM leads to increased sales. There are two explanations. One, if content is easy to pirate, then people do so quickly after release. Because more people are, say, playing the latest video game, word of mouth spreads faster, so more people end up buying the game legitimately. Second, it could be that when a content creator releases something without heavy DRM, the public collectively takes it as a show of good faith, and would rather purchase the content to show support rather than pirate it and take advantage of the creator.

In any case, we can expect to see a change in digital copyright in the near future. For everyone’s sake (that is, both content creators and consumers), I hope we take the path of less DRM and easier legitimate access to content, rather than the path of heavy-handed piracy suppression and draconian DRM.

Using Games to Educate

In the last few years we’ve seen the Internet playing a larger and larger role in education. Everyone seems to expect a revolution in education within 20 years. It’s possible, although I don’t think it will come from the direction that everyone thinks it will (see my post on online education). I want to give my two cents about an ancillary approach: videogames. Games don’t have to teach the students anything. In fact, I think they are much more useful as vehicles for the education. Games provide a background, a context, for new knowledge. For example, playing Deus Ex: Human Revolution (play chapters of a game as homework instead of reading chapters of a book?) could help spark discussion about the current situation of computers, implants, artificial intelligence, politics, etc. The experiences within the game outside of the lesson help students stay interested and apply the knowledge, even if subconsciously, beyond the classroom.

I’m going to focus on two games: Kerbal Space Program and Minecraft. Prmrytchr has a whole blog on using Minecraft (as well as other games) in the classroom, so I’m going to focus on the technical aspects.

the KSP splash

Kerbal Space Program (KSP) is an indie game currently under development with an open alpha available for purchase. In the game, you run the space agency of a particularly derpy alien race in their Sol-like system. In sandbox mode, you can throw together rockets, probes, rovers, space stations, planes, and planetary bases from a wide assortment of parts. Then you launch your constructions and control them to the best of your abilities.

KSP Screenshot KSP Screenshot 2

While hard to grasp at first, the game is incredibly fun. You do need a rudimentary understanding of kinematics to play well. This is the first step in its ability to act as an educational tool. While you can strap an engine onto a fuel tank and try to fly it, you quickly realize that doing anything impressive — such as putting an object in orbit — requires a bit of education. While you could watch tutorials, you could also get a lesson about basic kinematics and orbital mechanics from a present teacher. There’s an opportunity for lessons on engineering, as well.

As students become more proficient, more complex opportunities open up to them. Orbital rendezvous and gravitational slingshots get more involved physically. Spacecraft design, between mass conservation, fuel-mass ratio, reaction thruster placement, and properties of engines, is a great opportunity for springboarding into other physics. Other elements of spacecraft design that aren’t simulated in KSP, such as heat management, enter the realm of thermodynamics. Ancillary topics that arise when discussing space exploration can involve relativity and electromagnetic waves.

Minecraft, on the other hand, is about as physically unrealistic as you can get. However, it provides an awesome way to teach logic and economics. Even vanilla Minecraft has a growing arsenal of parts which allow rudimentary (or not so rudimentary) automation. Redstone is a powerful tool for doing any sort of logical manipulation — or teaching it. Watching your toolbox of gates and mechanisms grow out of a few basic ground rules is amazing. Creative minds are pushed to imagining new ways of using redstone, pistons, minecarts, and all the other machines being added in. While I’m not a fan, mods like Technic or Tekkit expand the array of basic parts at your disposal.

Multiplayer in Minecraft is an interesting case study of economic theory. Because the system varies so much from the real world, it provides an outside perspective on traditional economic theory. As you teach the basics of microeconomics, you can analyze why Minecraft’s multiplayer economy and identify how to restrict it. The ultimate goal of the class could be to establish a working economic system on a Minecraft server (perhaps through plugins/mods?).

Redstone Schematic Redstone Screenshot

Whether or not any of these are good ideas, it illuminates how games don’t have to be the primary vehicle of learning to be a useful educational tool. Games can merely be a springboard, a point of reference from which lessons emerge. The game keeps the students interested and grounded in the topic, while providing a useful outlet and vector of fortification for the knowledge they are getting in class.

Zombies, Pixels, and Cubes (Oh my!)

It’s no secret that many games these days have incurred that oh-so virulent infection. Like the T-virus, it has spread to every sector of the market, turning developers in shambling shells of their former selves. I speak, of course, of zombies. Just last year we saw WarZ, ZombiU, BlOps 2, and Amy. The year before that saw Yakuza: Dead Souls, Rise of Nightmares, Dead Island, and the rather well-named Zombies. That list excludes low-profile games and those which aren’t, in my opinion, terrible. Is this trend developer laziness, or perhaps a corporate influence? I wouldn’t be surprised if teams were pushed towards zombie games because, statistically, they make more money.

While it is reasonable when large-budget games are zombie-based, the same rationality falls short of protecting indie games. Zombie games are a prop-up, a cop-out for a developer who can’t come up with a better framework. Sure, it saves you the effort of establishing a complete universe (which is extremely tricky). That effort can go back into making other parts of the game better. But is the tradeoff worth it? To me, zombies don’t allow for a lot of avenues in terms of creative gameplay and storytelling. Are zombies a fall-back for those who need an extra kick in their games? Just search “zombie” in the Steam Store and sort by release date. Decide for yourself.

On a seemingly unrelated note, I want to talk about retro graphics. Let’s take a stroll down the Steam Greenlight aisle, shall we? In the first few pages we see:

  • MANOS: The Hands of Fate
  • Dead Colony
  • Deprivation
  • Hammerwatch
  • Potatoman Seeks the Troof
  • Dungeonmans
  • Topia Online
  • 16 Bit Arena
  • Spuds Quest
  • Legend of Dungeon

Keep in mind, these are those that are easily distinguishable by their image tile – many more lurk out there behind well-illustrated thumbnails.

What is the cause of this tsunami in indie game market that is retro graphics? Pixel graphics have the added bonus of nostalgic appeal for a certain generation. Art assets may be cheaper to produce. But, at least to me, pixel graphics convey a sense of harsh, delineated gameplay, where fun is equated with difficulty. My mind drifts to games like Megaman, where the reward for beating one level is to play the same level over again, with a different color tileset. I think the benefits of pixel graphics fall by the wayside when the decision is made. Pixel graphics, like zombies, are a knee-jerk reflex for the mediocre game developer. Often these developers are different, but I guarantee that there is more than one pixellated zombie game out there produced in the last five years.

Which brings me to cubes. Thanks, Minecraft. I both enjoy and loathe your trend-setting magnificence. It’s time for another stroll through Greenlight. Bonus points for games that have the word “Cube” in them.

  • Block Story
  • Slip
  • Logicubiks
  • Cell Emergence
  • Brain Cube Reloaded
  • King Voxel
  • Cubes and Zombies
  • Ace of Spades
  • Cube Park
  • Cube World

Ugh. *shiver*. I should do another post on how to not make your game look totally unappealing on Steam Greenlight. You would think choosing a good name and thumbnail would be at the top of everybody’s list. Apparently not.

OpenGL and Geometry Generation

Today I was thinking about 3D rendering (in part because of the recent work I’ve been doing with ray tracing). I worked out all the math for drawing a polygon based on a list of vertices and a camera. I was considering coding it up, but then I realized that I was very unfamiliar in working with Windows (because I sure as hell wasn’t going to do this in Java). So I spent the greater portion of the afternoon reading a tutorial on Windows programming and using OpenGL, at which point I abandoned my original. I was just going to finally figure out how to use OpenGL.

I had worked with GLUT before when working on a Parallel Computing lab. However, I only used pixel control in that case; I was rendering subsections of a Mandelbrot set. However, that was easier because all the requisite libraries were already installed in the major lab at school (which has workstations with Gentoo installed). Working at home, I have been confounded. I just can’t get the linker to use all the requisite libraries.

The whole thing that got me thinking about 3D engines was my working on a HL2 level. Often I will import brushwork (pieces of the level) from the game’s campaign levels; it saves time and adds a nice level of detail to the environment. However, I was thinking about common elements such as stairs, doors, windows, and grates. It’s a multi-step process to cut a hole in a brush, unless you use carve (but nobody uses carve because it doesn’t give you control over how the geometry cuts). Doors are tedious to cut out and then line up with the texture. Non-solid stairs are the most painful to make, however. You have to arrange the steps and make sure the sidings match up, and for each new type of turn you have to rework the geometry. The whole idea of hand-making all the geometry in a level is ridiculous. I haven’t seen a single FPS level editor than lets you define procedures for geometry generation.

A screenshot of the Hammer UI

A screenshot of the Hammer UI


I feel like it would be relatively simple to define a generation process for buildings, for example. Each building is spaced a certain distance in from the sidewalk. There are maybe two or three justifications for things like planters and doors. Then windows are spaced evenly apart, with buffer spaces on either side of the building. You could attach balconies or planters on to every windows, awnings above doors, and even outdoor area layouts for cafes. After meticulously defining a couple of building styles, you could almost instantly generate entire blocks. Then come the nested procedures. A street, for example, would have periodic drains and manholes, distributions of building types based on the neighborhood type, and junctions to more streets. Signs, traffic lights, road markings, and crosswalks would all be placed correctly at street corners. Coul-de-sacs could fill up empty space. Interiors could be set as well for buildings. Floor plans could be modular. Rooms with distributions of room types and different layout permutations would combine into floors. A building type could have a sequence of floor types defined, such as bottom level stores and top level apartments. Central structures like stairwells would only need to be made once.

Although the procedural parameter definitions might take a while longer than making regular geometry, it would be a huge time saver. Not only could full geometries be generated, but intricate, custom-designed battle areas could be laid out faster. Common terrain pieces like walls, fortifications, stairs, railings, gates, and hedges could be created with the use of a single spline. Suddenly a task like designing the maps for my strategy game becomes less daunting. The pipeline for map production is shortened. General map layouts can be quickly sketched out and then directly generated. Beta testing would be infinitely easier, as map adjustments could be made in hours, rather than days.