Swedish Coding

Multi-core programming and cache coherency

November 10th, 2017 by swedishcoding_1ggc23 — Game CodingComments Off on Multi-core programming and cache coherency


I presented this to the team a long time ago when we switched from PlayStation 3 to PlayStation 4 development at Naughty Dog. Even though it is a couple of years old, the contents is still very relevant. It is an introduction into memory barriers and?CPU cache architectures. It talks about?how CPUs deal with sharing memory between multiple cores. It should be noted that there are other more sophisticated cache protocols than the MESI one (like MOESI) but the concepts are the same.

Here is the presentation as Power Point?and PDF. Enjoy!



GDC 2015 Presentation – Parallelizing the Naughty Dog Engine

March 8th, 2015 by swedishcoding_1ggc23 — Conferences & EventsGame CodingComments Off on GDC 2015 Presentation – Parallelizing the Naughty Dog Engine


Hello all,

First off. A big ‘Thank You’ to all of you that came to my talk at GDC this year.

Now, here is my GDC 2015 presentation as Power Point – 4.08 MiB?and PDF – 9.30 MiB. Enjoy!



Perforce Server Tips and Tricks

April 16th, 2011 by swedishcoding_1ggc23 — Game CodingNo Comments

I have spent quite a bit of time understanding how Perforce works under the hood and experimented with various configurations in an attempt to tame this wild beast. Here is a collection of things that I have learned throughout the years which might or might not be known to the average person configuring a Perforce server. All of this information have been gathered on a Windows setup of the Perforce server with clients on Windows and Linux(Mac). Most of this information is also applicable to Linux installations of Perforce.


Most operations involving the Perforce Server involves memory, CPU, network bandwidth/throughput and foremost disc I/O. Very few operations are bound by CPU in my experience. Instead it is the disc I/O and network I/O that have been the bottlenecks. Figuring out what data to send to the client and then the actual retrieval and sending of the data is the main areas of concern.

Read more…

Book Review: Game Engine Architecture

December 21st, 2009 by swedishcoding_1ggc23 — ReviewsNo Comments

Is this yet another ‘Game Programming’ book? No, not at all. Game engines nowadays are so large, complex and filled with so many subsystems that old-school engine design will fall apart on modern hardware. This book brings an up-to-date explanation of what goes into a modern game engine and why.? For people looking for a […]

Read More

Are we out of memory?

August 31st, 2008 by swedishcoding_1ggc23 — Game CodingNo Comments

If I had a dollar every time I heard the question “Do we not have any more memory?” When I ask the question “How much memory are you using for subsystem X?”, very few developers know the answer. It is usually a smaller or bigger ballpark but no definite answer. Memory for any application is […]

Read More

GDC Presentation – Creating a Character in Drake’s Fortune

February 29th, 2008 by swedishcoding_1ggc23 — Conferences & EventsNo Comments

For quite a few days now I have been asked if the presentation I made at this years Game Developers Conference will be available online. My answer is yes, and I am eagerly awaiting my presentation to show up on the GDC website myself. Well, I can’t wait anymore so here it is. Beware, it’s […]

Read More

The History of ‘TheSE’ – The Super Nes Emulator

November 26th, 2007 by swedishcoding_1ggc23 — EmulationNo Comments

Aaaaah, I finally got this blog to a somewhat working state and before I continue editing style-sheets and html code I felt like adding my first post. So here it is… enjoy. TheSE is a Super Nes emulator developed by myself and my very good friend Urban Nilsson. It all started a long long time […]

Read More