Passion is not enough! - by Jukka Hilvonen Blogs - 23 March 2016 - 4:01am
This article describes the importance of passion in our work and why it is too often overrated trait of game development people and businesses.
Categories: Game Theory & Design

ORGANIC VS REWARDED: OPTIMAL TRAFFIC BLEND FOR GAME LAUNCH - by Eugine Dychko Blogs - 23 March 2016 - 4:01am
How should developer choose the optimal blend of organic and paid traffic to make most out of an app launch?  In this article, we are going to talk about best marketing strategy for indie developers when launching a mobile game. 
Categories: Game Theory & Design

Stop Hitting Yourself - by David Bernstein Blogs - 23 March 2016 - 4:01am
If there was a button on your computer that said “DO NOT PUSH,” would you push it? If you push the button and a hand comes out of the monitor and slaps you on the face, would you push it again and again? Of course not! But then why do you continue t
Categories: Game Theory & Design

Marketing a VR & non-VR game. The Perks & Challenges - by Gregory Love Blogs - 23 March 2016 - 4:01am
VR is in its very early days and taking Dead Secret, a game designed for traditional platforms and VR, to market today presents serious marketing challenges as well as some nice unique benefits.
Categories: Game Theory & Design

Pixelite: Writing PHPunit tests for your custom modules in Drupal 8

Planet Drupal - 23 March 2016 - 4:00am

I have been doing a bit of Drupal 8 development as of recent, and am loving the new changes, and entities everywhere. I am passionate about automated testing, and when I saw that integrating PHPunit into your custom modules is now even easier, I set out to see how this all worked.

Why is PHPunit important

There are are number of reasons why PHPunit is a great idea

  • it forces you to write testable code in the first place, this means small classes, with methods that do a single thing
  • it runs in only a few seconds, there is also no need to have a working Drupal install
  • integrates with PHPStorm, allowing you run your tests from within the IDE
Step 1, set up your phpunit.xml.dist file

There is a file that comes included with Drupal 8 core, but by default it will not scan any sub-directories under /modules (e.g. like the very common /modules/custom). I stumbled across this question on stackoverflow. So you have a couple of options from here:

Option 1 - Create and use your own phpunit.xml.dist file

You can simply copy (and modify) Drupal 8 core’s phpunit.xml.dist file into git repo somewhere (perhaps outside the webroot), and use this file for all your custom module tests.

Option 2 - Patch Drupal 8 core

Another option (which is the option I took) was to apply a simple patch to Drupal core. There is an open issue on to look at scanning all sub-directories for test files. At the time of writing it was uncertain whether this patch would be accepted by the community.

Step 2, write your tests

There are some general conventions you should use when writing your PHPunit tests:

  • the suffix of the filename should be Test.php, e.g. MonthRangeTest.php
  • the files should all reside in either the directory /MY_MODULE/tests/src/Unit/ or a sub directory of that

More information on the requirements can be found on the documentation.


Data providers are pretty much the best thing to happen to automated testing. Instead of testing a single scenario, you can instead test a whole range of permutations in order to find those bugs. You start by declaring an annotation @dataProvider for your test method:

<?php /** * @covers ::getMonthRange * @dataProvider monthRangeDataProvider */ public function testGetMonthRange($expected_start, $expected_end, $month_offset, $now) { // ... more code }

You then declare a method monthRangeDataProvider that returns an array of test cases (which are also arrays). The items in the data provider method are passed one at a time to the testing method, in the same order they are declared (so you can map them to friendly names).

<?php /** * Data provider for testGetMonthRange(). * * @return array * Nested arrays of values to check: * - $expected_start * - $expected_end * - $month_offset * - $now */ public function monthRangeDataProvider() { return [ // Feb 29 @ noon. [1454284800, 1456790399, 0, 1456747200], // ... more tests follow ]; }

More information can be found in the phpunit documentation for data providers.

Testing for expected exceptions

Just as important as testing valid inputs, you should also test invalid inputs as well. This is easily achieved with @expectedException annotations above your test method:

<?php /** * Tests that an end date that is before the start date produces an exception. * * @expectedException Exception * @expectedExceptionMessage Start date must be before end date */ public function testGetWorkingDaysInRangeException() { // ... more code in here } Step 3, enhance your test class with PHPunit metadata

You can annotate both the test class and the methods to provide additional information and metadata about your tests:


This is mainly used for PHPunit’s automated code coverage report, but I find it also very helpful for developers to up front state what method that are testing.


This is used at a class level, and saves you having to write rather lengthy @covers statement for all your testing methods, if they all test the same class.


If a certain test makes no sense to run unless a previous test passed, then you can add in a ‘depends’ annotation above the test method in question. You can depend on multiple other tests too. Note, that this does not change the execution order of the tests, they are still executed top to bottom.

@group or @author

You can think of adding a ‘group’ to a PHPunit class the same as tagging in. It is free tagging in that sense, and you can tag a single class with many tags. This should allow you to categorise your tests. @author is an alias of group, the idea being you can run all tests written by a particular developer.

More information can be found in the PHPunit documentation on annotations.

Step 4, run your test suite

This section assumes you have opted to use Drupal core’s phpunit.xml.dist file (modify the paths as appropriate if you are using a file in another location).

List groups (or tags)

cd core/ ../vendor/bin/phpunit --list-groups

Run all tests that are tags with a particular group (or tag)

cd core/ ../vendor/bin/phpunit --group tamdash

Example CLI output

$ ../vendor/bin/phpunit --group tamdash PHPUnit 4.8.11 by Sebastian Bergmann and contributors. ........... Time: 5.01 seconds, Memory: 144.25Mb OK (11 tests, 18 assertions)

If you are using PHPStorm, spend a few minutes and set this up too.

Example output

So now there is no need to flip back to your terminal if you just want to quickly run a group of tests.


PHPunit is a great way to be able to run quick tests on isolated parts of your code. Tests often take less than 10 seconds to run, so developer feedback is near instant. It also forces your developers to write better more testible code from the get go. This can only be a good thing. Personally I am very excited to see PHPunit join Drupal 8, and cannot wait to see what people do with it.


There seems to be quite healthy debate on whether contrib or custom modules should ship with their own phpunit.xml.dist file or whether Drupal core’s file should cover both. I am keen to hear anyone’s thoughts on this. Also let me know if you have any contrib modules in the wild shipping their own phpunit.xml.dist files, and how you found that process.

Categories: Drupal

CKEditor Video Detector

New Drupal Modules - 23 March 2016 - 1:13am

This module enables the Video Detector plugin from in your WYSIWYG. This plugin allows you to insert videos from Youtube, Vimeo or Dailymotion only pasting a URL or embed code.


CKEditor Module (Core)

Categories: Drupal

Play Better Games, Damn It!!!

Gnome Stew - 23 March 2016 - 1:00am

Hello Gnomes and gnome adjacent affiliates, and gnome fans, and gnome readers. And the person or group I missed–hello to you too. My name is Chris Sniezak and I say Play Better Games, Damn It!!! It is a philosophy I live by as I am always trying to improve the experience of play that I’m getting out all gaming activities. You can always play a game, play it well, and have fun with it. That’s fine. For you. Not for me. It’s not enough to play a game and have fun with it. I need to take it one step further. I need to know why it was fun. What was fun about it for me. Why someone else had a good time with it. Where that magical “fun” came from. Then I need to see if I can replicate it, reproduce the experience, or bring it to a different gaming medium. That’s what Play Better Games, Damn It means. You’re never satisfied, you’re always getting better, you’re always playing better games.

Why bother?

First reason. When you know what kind of games you like to play, and you know why you like to play them, you can save yourself time and energy finding the game experiences you enjoy. That way you’re having more quality gaming experiences.

Second reason. When you understand what is making a game tick then you can better help other people find the kinds of games they like. There are so many kinds of games out there that this knowledge allows you to have a better chance of growing the hobby by providing newer gamers with positive experiences.

But what about trying new things?

You should try new things when you can and with the understanding that it’s new and you’re really there to see if this game fits into your definition of fun, fun is subjective by the way, or it doesn’t. We’re human beings. We change. Our tastes and preferences change. For me I was really into medium Euro games a few years ago. I still enjoy a medium Euro but I’d rather play an amerithrash/ameritrash Co-Op these days. If you’re not sure what those mean here’s some links to more information:



Cooperative board game

I also really dig RPGs. They’re my bread and butter game. To even be more specific I enjoy games that push pulp style play more than others. I also like magic and monsters in my play because it takes it one step away from reality and that’s fun for me. Throw in mechanics that support narrative play style and stick a modern setting on top of that and I’m pretty much in for that game.

So what kinds of games does that translate into? The Dresden Files RPG, Night’s Black Agents, and a bunch of superhero games–Worlds in Peril, With Great Power (The newest edition), Venture City Stories–are all games that jazz me and fit into my categories. That’s right I said jazz me. I also dig fantasy games too, like D&D–especially the most recent edition–and Dungeon World. Right after that it’s the horror stuff like Call of Cthulhu and Night’s Black Agents, which fits in horror too. Of course, these last two games also fit into that modern, or at least close to modern, fantasy feel. Plus, when I play Call of Cthulhu, or other games in the 1920’s to 40’s settings, I can play some jazz. I used to be a gigging jazz musician after all. Trumpet player if you’re curious. If you weren’t I’m sorry? I think? Moving on.

How to Identify What is Fun

There is a methodology to this.  One which I will now share with you. That’s right. Time to divulge some of the secret sauce formula. That’s why you’re here anyway, isn’t it?

First: Collect Data

The first thing I did was play a bunch of different games so I could have a bunch of data. Now if you’re the kind of person who only plays one game, like D&D or Pathfinder, then you’re still fine. This just means you need to think about all the different kinds of media you enjoy: books, TV Shows, movies, YouTube channels, Twitch Streams, video games, whatever.

Second: Prioritize Enjoyment

Once you’ve got your pool of data you can now think about which of those things you enjoyed the most. Start listing them till you have ten items on your list.

Third: Look for Commonalities

There will probably be some kinds of crossover on your list. It could be genre, playstyle, mechanics, elements of those stories or games, tone, character archetypes, whatever your brain tells you are the commonalities.

Fourth: Question Yourself

Now that you have some commonalities ask yourself why those things make a game enjoyable for you? What makes them tick for you? Is there something deeper than “I like those things”? Do you identify with them? Is there some element of escapism that lets you be what you want to be rather than what you are? Is there some element of realism that lets you explore parts of yourself you’re not willing to outside of a game? Are they just the best ways to let you blow off steam or give you a release from the everyday?

Fifth: Assess the Games

While there are bad games out there, most games are just not right for the people playing them and are perfectly well constructed games on their own. Now that you have some introspective information about yourself you can make an informed decision about whether the game is for you or not. If it’s not for you then you can move on and look for a game that is for you. If the game is for you then you can move on to figuring out how to make that game even better for you, and the people you’re playing with.

Time to get Started

That’s the beginning folks. The intro to how to Play Better Games, Damn It. I hope in the future my articles will show you more ways to do so and if you’re so inclined drop your ten-item lists in the comments below and get a little introspective on yourself in front of the Stew community. You’ll only be helping yourself and everyone else. Keyboard Drop. I’m out.

Categories: Game Theory & Design

Observations From A Gamer's Chair: Keeping Your Cool

RPGNet - 23 March 2016 - 12:00am
Don't let your players drive you crazy.
Categories: Game Theory & Design

Image formatter default variable

New Drupal Modules - 22 March 2016 - 11:55pm

The purpose of this module to provide default values for image fields when nothing was uploaded.

The generic problem of default behaviour is that default value stored as file id and that's why could not be successfully stored in features.

Categories: Drupal

CKEditor Font Size and Family

New Drupal Modules - 22 March 2016 - 11:40pm

This module enables the Font Size and Family plugin from in your WYSIWYG.This plugin adds Font Size and Font Family dropdowns that apply as inline element style. The default collection of fonts includes most popular serif fonts (Times New Roman, Georgia), sans-serif fonts (Arial, Verdana, Tahoma), and monospaced fonts (Courier New).

The list of font styles can be easily customized.

Categories: Drupal

EXPLORER.GMK: An Excerpt From the Spelunky Book - by Derek Yu Blogs - 22 March 2016 - 10:46pm
For the past year and a half, I've been writing a book about Spelunky for Boss Fight Books, and it's finally finished! Here is an excerpt from the book, a chapter called "EXPLORER.GMK".
Categories: Game Theory & Design

Modules Unraveled: 158 Using the Group module as an Alternative to Organic Groups in Drupal 7 and 8 with Kristiaan Van den Eynde - Modules Unraveled Podcast

Planet Drupal - 22 March 2016 - 10:00pm
Published: Wed, 03/23/16Download this episodeGroup Module
  • What is the Group module?
    • A really awesome tool to basically create subsites within one site, private content, manage groups of people or all that combined.
  • Why did you create it instead of just using OG?
    • OG DX experience...
  • There are versions for D7 and D8. Which are you more focused on?
    • D8
  • How is the Group module different from Organic Groups?
    • Good question! The key difference is how the modules decide to structure their data, how that affects the user flow and how the configuration model is built.
  • What is the underlying architecture? OG uses entityreferences heavily. How does Group work?
    • Dedicated Group Entity
  • What’s the status? Is it usable now? (D7 and D8)
    • Available for Drupal 7 and 8, with the 8 version being a large improvement over D7. There’s a few minor things I need to add to the D8 version, but it looks and works great already!
  • Is there much difference between the Drupal 7 and 8 version?
    • Yes and no: the key concept remains the same, but the UX and data model was improved even further. I would really recommend going forward with D8 from now on if you have the chance.
Use Cases
  • Why should I use Group instead of OG?
    • UX, UX, UX
    • data structure
    • DX
    • But most of all: dedicated functionality, it will all make sense!
  • Users that get something special that you can’t do with Roles
  • Groups of people
  • Groups of content
  • There are so many!!!
Questions from Twitter
  • Michelle Lauer @bymiche
    How many subgroups can you nest? How are permissions inherited?
  • Michelle Lauer @bymiche
    Can you easily categorize roles within a group?
  • Michelle Lauer @bymiche
    If you have many roles and want to expose them to "managers" - for UX purposes, roles in categories would be easier to look at
  • Erich Beyrent @ebeyrent
    Sounds like a great UX, what about DX - is there a well-defined API as well?
  • Damien McKenna @DamienMcKenna
    Any plans to port some OG modules, e.g. og_menu or og_menu_single?
  • Damien McKenna @DamienMcKenna
    Would it be possible to create og_forum's functionality out of the box or will it require custom work?
  • Damien McKenna @DamienMcKenna
    Are the join forms configurable/fieldable?
  • Ted Bowman @tedbow
    Interested in this. Can you add fields to a membership?
  • Erich Beyrent @ebeyrent
    What doesn't Groups do? Are there features that you feel need to be added before 1.0 release?
Episode Links: Kristiaan on drupal.orgKristiaan on TwitterThe Group ModuleDrupal 8 Entity Relationship DiagramsConfiguration inspector for Drupal 8Tags: GroupOrganic Groupsplanet-drupal
Categories: Drupal

Daniel Pocock: GSoC 2016 opportunities for Voice, Video and Chat Communication

Planet Drupal - 22 March 2016 - 8:55pm

I've advertised a GSoC project under Debian for improving voice, video and chat communication with free software.

Replacing Skype, Viber and WhatsApp is a big task, however, it is quite achievable by breaking it down into small chunks of work. I've been cataloguing many of the key improvements needed to make Free RTC products work together. Many of these chunks are within the scope of a GSoC project.

If you can refer any students, if you would like to help as a mentor or if you are a student, please come and introduce yourself on the FreeRTC mailing list. If additional mentors volunteer, there is a good chance we can have more than one student funded to work on this topic.

The deadline is Friday, 25 March 2016

The student application deadline is 25 March 2016 19:00 UTC. This is a hard deadline for students. Mentors can still join after the deadline, during the phase where student applications are evaluated.

The Google site can be very busy in the hours before the deadline so it is recommended to try and complete the application at least 8 hours before the final deadline.

Action items for students:

  • Register yourself on the Google Site and submit an application. You can submit applications to multiple organizations. For example, if you wish to focus on the DruCall module for Drupal, you can apply to both Debian and Drupal.
  • Join the FreeRTC mailing list and send a message introducing yourself. Tell us which topics you are interested in, which programming languages your are most confident with and which organizations you applied to through the Google site.
  • Create an application wiki page on the Debian wiki. You are permitted to edit the page after the 25 March deadline, so if you are applying at the last minute, just create a basic list of things you will work on and expand it over the following 2-3 days
Introducing yourself and making a strong application

When completing the application form for Google, the wiki page and writing the email to introduce yourself, consider including the following details:

  • Link to any public profile you have on sites like Github or bug trackers
  • Tell us about your programming language skills, list the top three programming languages you are comfortable with and tell us how many years you have used each
  • other skills you have or courses you have completed
  • any talks you have given at conferences
  • any papers you have had published
  • any conferences you have attended or would like to attend
  • where you are located and where you study, including timezone
  • any work experience you already have
  • any courses, exams or employment commitments you have between 22 May and 24 August
  • anybody from your local free software community or university who may be willing to help as an additional mentor
Further reading

Please also see my other project idea, for ham radio / SDR projects and my blog Want to be selected for Google Summer of Code 2016?.

If you are not selected in 2016

We try to make contact with all students who apply and give some feedback, in particular, we will try to let you know what to do to increase your chances of selection in the next year, 2017. Applying for GSoC and being interviewed by mentors is a great way to practice for applying for other internships and jobs.

Categories: Drupal

Acquia Developer Center Blog: Drupal 8 Module of the Week: Linkit

Planet Drupal - 22 March 2016 - 10:31am

Each day, more Drupal 7 modules are being migrated to Drupal 8 and new ones are being created for the Drupal community’s latest major release. In this series, the Acquia Developer Center is profiling some of the most prominent, useful modules, projects, and tools available for Drupal 8. This week, a handy-dandy usability module called Linkit.

Tags: acquia drupal planetusabilitydrupal 8D8Linkitautocomplete
Categories: Drupal

Mediacurrent: Easy Ways to Make Your Website More Accessible

Planet Drupal - 22 March 2016 - 9:56am

I recently had the opportunity to give a beginners talk about website accessibility at MidCamp 2016 where I covered some easy ways to promote accessibility in terms of structure, color and contrast, fonts, links, and media. It was a wonderful experience for me and I was grateful for the audience who had some nice feedback and interesting questions. Here are the highlights of the presentation, plus the audio recording and links to related resources.  

Categories: Drupal

Jeff Geerling's Blog: Use Drupal 8 Cache Tags with Varnish and Purge

Planet Drupal - 22 March 2016 - 9:52am

Over the past few months, I've been reading about BigPipe, Cache Tags, Dynamic Page Cache, and all the other amazing-sounding new features for performance in Drupal 8. I'm working on a blog post that more comprehensively compares and contrasts Drupal 8's performance with Drupal 7, but that's a topic for another day. In this post, I'll focus on cache tags in Drupal 8, and particularly their use with Varnish to make cached content expiration much easier than it ever was in Drupal 7.

Categories: Drupal

Disruptive Library Technology Jester: Modify Islandora objects on-the-fly using Devel “Execute PHP Code”

Planet Drupal - 22 March 2016 - 8:45am

Alan Stanley taught me this trick at an Islandora Camp a few years ago, and when trying to remember it this morning I messed up one critical piece. So I’ll post it here so I have something to refer back to when I need to do this again.

The Drupal Devel module includes a menu item for executing arbitrary PHP code on the server. (This is, of course, something you want to set permissions on very tightly because it can seriously wreck havoc on your day if someone uses it to do bad things.) Navigate to /devel/php on your Islandora website (with the Devel module enabled), and you’ll get a nice, big ≶textarea> and an “Execute” button:

Execute arbitrary PHP using Drupal Devel module.

In this case, I’m generating the TECHMD datastream using the FITS module and displaying the results of the function call on the HTML page using the Devel module’s dpm() function:

include drupal_get_path('module', 'islandora_fits') . '/includes/'; $object= islandora_object_load('demo:6'); $results = islandora_fits_create_techmd($object, False, array('source_dsid' => 'OBJ')); dpm($results);

Works like a charm!

Categories: Drupal

Acquia Developer Center Blog: Do You Need to Upgrade Your Drupal Site?

Planet Drupal - 22 March 2016 - 8:01am

We've been talking to our clients about Drupal upgrades a lot lately. This is not surprising, of course, given the recent release of Drupal 8, which signaled the end of life for Drupal 6.

The Drupal community is excited about all that Drupal 8 has to offer.  If you’re on Drupal 6, however, that excitement may be muted by the feeling that you're between platforms. You want to be thoughtful about your next steps. You want to anticipate all the possible consequences. The stakes are high.

Here at Advomatic we've been involved in many, many Drupal upgrade decisions in the last few months. We've gotten good at helping customers navigate the options.

So what are we now telling our current customers, and prospective customers? Read on.


Tags: acquia drupal planet
Categories: Drupal

Danny Englander: Drupal 8 Theming: How I got Inspired by Drupal All Over Again

Planet Drupal - 22 March 2016 - 7:53am

When Drupal 8 and its innovative architectural changes were first announced several years back, there were a variety of reactions within the community ranging from euphoria and elation, to FUD and potential abandonment of the platform altogether. I remember feeling caught in the middle of these two camps, not really being able to come to any conclusion for some time to come.

Admittedly, I had my reservations about Drupal 8 but I really wanted to give it a chance. I experimented with it while in the early alpha stages, but for a themer it was frustrating as there were constant code changes to core (as was to be expected), and the theming layer was constantly evolving.

In fact, these broad changes with Drupal 8 prompted the forking of Drupal 7 into a new platform called Backdrop CMS, which would carry the essence of Drupal 7 into the future while taking some of the refinements made to Drupal 8 and splitting the difference. I tested out Backdrop during that time as well, but honestly I was not happy with Backdrop's theming layer; it seemed disjointed to me.

Getting inspired all over again

Fast forward to 2016 and now that Drupal 8 has been out for almost six months, I decided to dig in again. It all started with attending SANDCamp here in San Diego at the end of February. Thanks to my company, Jackson River for making my attendance to the camp possible, I was inspired by Drupal all over again and moreover, by Drupal 8. I was especially taken by how awesome and logical theming is in Drupal 8; it's now super refined and powerful. At the camp, I took an all day Drupal 8 theming workshop led by the good folks at Chapter Three, and by the end of the day I saw the light and was a believer.

A lot of this has to do with two new base themes in Drupal 8 called "Classy" and "Stable," as well as the underlying Twig and YAML frameworks. Out the box, Classy and Stable each give you 100 + templates to override and modify into your own custom sub-theme.

Classy has class "Its purpose is to provide many classes throughout the markup that help annotate and describe markup elements that render on the page. In the past, the extra effort that Drupal applies to elements in annotating them this way has been viewed as helpful by some and a hindrance by others. In Drupal 8, you now have the option of either including or excluding this extra help." Go minimal, don't use classy "Not using Classy is a great idea when you don't want the classes defined by Drupal to conflict with CSS and JavaScript frameworks being used by your theme. Excluding Classy gives you full responsibility over the classes your theme has."

I'm now in the process of designing and developing a Drupal 8 theme and I'm still deciding whether to use Classy or Stable as my base-theme. I'm thinking I'll use Classy and then in any of my template sub-theme overrides, I can alter or remove markup as needed. Using either of these as a base-themes in combination with Twig debugging makes Drupal 8 a theming force to be reckoned with.

Less preprocessing, more Twig

Much of what used to be done altering things like field markup with theme_field in Drupal 7 is much more accessible and alterable directly in Twig templates now in Drupal 8. Thus, less of a need to use theme preprocess functions compared with Drupal 7. However, when you do need to write a preprocess function, you'll typically use minimal code. The other thing that I love with Drupal 8 theming is that theme hooks seem to be more accessible and easier to write via quick and easy alter hooks. Write a hook and magically see your new template suggestion(s) appear in your Twig debug area. In addition, the Drupal 7 module, View Modes in now part of Drupal 8 core so you get easy creation of view modes AKA Display Modes with a UI right out of the box. This is great news for themers, and I've become a huge fan theming using view modes over the past few years.

Devel Kint

As a themer, if you were used to exploring data arrays in Drupal 7 with Devel's venerable dpm functions, with Drupal 8 you can use Devel "Kint". Kint is somewhat mind boggling at first but it does do very similar things asdpm did with Drupal 7. The one big feature missing for me with Kint is a search function similar to the Search Krumo module in Drupal 7. I hope that becomes available in the future. Kint most definitely comes in handy for designing your theme hooks.


I am really excited about theming with Drupal 8, I feel like I did when I first discovered and started developing with Drupal 6 back in 2009. In the coming months here on my blog, I hope to share some of this new-found theming knowledge. One of the main takeaways is that Drupal 8 theming presents far less of a barrier to entry than I thought it would.

  • Drupal Planet
  • Drupal 8
  • Twig
  • Drupal
Categories: Drupal

From Total War to Assassin&#039;s Creed: Music from my GDC Talk - by Winifred Phillips Blogs - 22 March 2016 - 7:18am
This blog expands on content from the GDC talk, "From Total War to Assassin's Creed: Music for Mobile Games." The talk explored the role of music in portable games. This blog includes additional discussion & full length streaming tracks for illustration.
Categories: Game Theory & Design


Subscribe to As If Productions aggregator