Minecraft Laptop Performance 2015

tl;dr received wisdom is that when buying a Windows laptop to run Minecraft a discrete GPU is hugely important. It is!

I always want to understand the basis of any advice, however there’s not much supporting evidence for this on the internet. Having just purchased a Toshiba Satellite L50 B 1P1 laptop for my son, which can run Minecraft either on its Intel integrated HD4400 or on the discrete AMD R7 M260, it’s easy to get performance stats, and possible to draw conclusions.

On the Internet it’s pretty much unanimous that you should be running a 64 bit version of Windows (8.1 in our case), 64 bit version of Java 8, and Minecraft should be setup to ask for 2GB of RAM from Java. Those are pretty logical recommendations, so that was the base setup.

Capture of 'Spot' Frames Per Second Sampling View

Discrete versus Integrated

These are all taken with the window maximised to 1366 x 705.

GPU Frames Per Second (FPS)
Spot Minimum Flying Around
Intel HD 4400 63 30
AMD R7 M260 109 45

Clearly the discrete AMD R7 wins by a considerable margin, and gives a much better overall experience. The performance of the HD4400 isn’t bad either though. Clearly you could play this level with either. The AMD R7 definitely gives you more scope to increase the number of chunks drawn, pushing out the distance drawn. Alternatively you could install more render-intensive mods or turn on the more extreme world features.

Full Screen versus Half Screen

These are all using the discrete AMD R7 M260

Resolution Frames Per Second
1356 x 705 109
667 x 689 150

In this case the frame rate shoots up as I (roughly) halve the size of the window I’m using for Minecraft. This suggests the speed of the game is directly affected by the number of pixels it has to draw and is again limited by the graphics card.

VBO versus no VBO

There’s just one last thing. In the graphics options there’s and option to use ‘VBO’s, which are Vertex Buffer Objects. In a nutshell when the game uses VBOs it creates chunks of work to give to the graphics card. When it doesn’t it’s letting the driver for the graphics card build up these chunks for it. As a games programmer I’d expect the game to run faster if it decided how to create the chunks of work. For Minecraft this isn’t always the case!

GPU Frames Per Second
VBO No VBO
Intel HD 4400 72 63
AMD R7 M260 103 45

VBOs are faster for the Intel graphics chip, unfortunately driver bugs cause the world to flicker in this case. For the AMD R7 Minecraft actually runs slower with VBO’s turned on. The best thing to do with these is to try settings them both on and off and see what is better for your machine.

Conclusion

The newest Intel GPUs aren’t bad if HD4400 or better. Get a discrete GPU though for significantly better performance.

Replicating these tests

It would be interesting if there were more performance measurements for Minecraft which are directly comparable. The following should be enough information to reproduce these tests. If you have Minecraft it will display all the information you need on-screen simply by pressing ‘F3’ in the game.

The performance of Minecraft itself seems to vary a lot from version to version; I was simply using the latest version: 1.8.1. For all the performance tests in the graphic options I turned vsync to off and allowed the frame rate to run as high as it could. Normally I’d clamp the frame rate to 60 fps as letting it run higher than doesn’t give any visible benefit, but uses more processor power.

The integrated graphics chip is a Intel HD4400, with the 4.2.0 10.18.10.3335 driver and the discrete chip is the AMD R7 M260 with the 4.3.12798 driver. Intel clearly wins the length of the driver version number competition.

Finally I was flying round a world generated from the seed “Jools Performance Test” on creative mode, and took a spot reading at (-223,75, 336) looking at (80.5, -4.5). That view in show in the image above.

It would be great to get other people results for their setups.

The Apple Watch

Most of the tech press has been lukewarm on the Apple Watch. I think they are missing the point. Drew Crawford gets the technology. He also provides a great dissection of the business, positioning and marketing aspects:

We’ll set an Apple Watch ad against a luxury clothing brand ad. Which one is which? The point is, you’d be hard-pressed to tell these apart.

Drew Crawford’s On the Apple Watch

Shader Syntax Coloring Plugin in MonoDevelop Addins Repository

Xamarin 5.0 provided the impetus to finally put the shader coloring plugin into the live Xamarin Studio Addin Repository. This will host and build versions of the plugin for both Xamarin Studio 4.x and Xamarin Studio 5.x. An added benefit is you can search, download and install the plugins within the Add-in Manager in MonoDevelop. The steps to do this in Xamarin Studio are simple:

  1. open the Add-in Manager from the menus
  2. on the Add-in Manager Update tab hit ‘Refresh’
  3. on the Add-in Manager Gallery tab search for ‘mime’
  4. install “Unity Mimetypes”

Build Something

I write this blog, in part, as a response to the impermanence of Twitter and Facebook. If I’m going to have the audacity to post publicly on the internet then I want it, good, bad or indifferent, to be permanent. I want to build something.

You’re fucking swimming in everyone else’s moments, likes, and tweets and during these moments of consumption you are coming to believe that their brief interestingness to others makes it somehow relevant to you and worth your time.

We’re just starting 2014 and Rands nails it again:

When you choose to create, you’re bucking the trend because you’re choosing to take the time to build.

And that’s a great way to start the year.

Go read The Builder’s High.

C# Memory Management for Unity 3D

If you’re developing games in any space or developing anything in the mobile space you’re going to have to be concerned about memory management. A lot. It doesn’t matter if you’re doing it manually, reference counting, using ARC or garbage collection. If you’re pushing the envelope in any way the details of how memory is managed matter greatly. In Unity 3D the C# garbage collection is one of those details, and there’s very few articles which deal with it specifically. Wendelin Reich just changed that:

I learned the hard way that in game development, you cannot rely on automatic memory management.

Wendelin Reich’s C# Memory Management for Unity Developers

Developing an art style for The Witness

Part of what 3D artists do in games is to create a world which looks great within the engine and the chosen style. Sometimes, often, the style is realism. The Witness is aiming for a different look:

So we began an exploration of different techniques we could use to achieve a sort of stylized realism. We needed to be able to capture the essence of our reference imagery while not being quite so literal. It also had to be free of gratuitous visual noise, plus appealing to look at and explore.

I guess great artists do this consciously or unconsciously. It’s interesting to see it written about. I can’t wait to see the final game.

Eric Anderson’s On the Rocks

Visual Studio 2012 Supports Debugging Optimized Code

Bruce Dawson reveals this great feature. A year ago this would have been incredibly exciting to me. Even now it’s great news for native developers using Visual Studio:

It turns out that Microsoft shipped this feature in Visual Studio 2012, but forgot to tell anyone. This could be the most important improvement to Visual Studio in years but it s been almost top-secret.

Microsoft really should be shouting about this. Debugging Optimized Code – New in Visual Studio 2012.

What’s really amazing is that this isn’t considered a make-or-break product feature. IIRC Watcom C++ did this around 1996. Visual Studio survived. Watcom didn’t.

How Do Good Ideas Spread?

We yearn for frictionless, technological solutions. But people talking to people is still the way that norms and standards change.

What makes a successful company? People and culture must be at or near the top of the list. Sometimes company cultures need fixing. If you’ve ever been involved in an effort to change culture you’ll know that it’s hard. Really hard. Atul Gawande has a great article on changing social norms in the world at large in the context of medicine. Culture is a social problem. Forming it and changing it is as low tech as you can get.

… people follow the lead of other people they know and trust when they decide whether to take it up. Every change requires effort, and the decision to make that effort is a social process.

Atul Gawande’s Slow Ideas

Playscript: Actionscript For .NET

Miguel de Icaza:

PlayScript is a superset of ActionScript and it was based on Mono’s C# 5.0 compiler. PlayScript is ActionScript augmented with C# 5.0 features.

Zynga’s PlayScript allows developers that have some ActionScript/Flash code to bring their code to any platform that supports the ECMA Intermediate Language (Microsoft .NET and Mono) and blend it with other .NET languages.

But the PlayScript has a fabulous feature, it allows mixing code in both C# and PlayScript in the same compilation unit.

Playscript

There have been a bunch of interesting new languages on the .NET platform which haven’t reached critical mass. Are there enough ActionScript developers and code out there to make PlayScript viable?