Level Scripting in Max Payne

What follows is an outline of a level from start to finish. Most of the work (including the write-up) took a day, but I’m still fine tuning it.  While I’m using MaxED, the Max Payne level editor, the basic ideas and approach are quite general and will work in any action-adventure game focused around melee combat.

Level name: Defence Training

Overview: Simple encounter against an increasing number of enemies in a martial arts dojo, with a catch – 1 hit kills the player.

Design Purpose: This optional challenge map is designed to encourage players to practise fighting defensively against multiple melee attackers.  The individual enemies are easy to defeat, but unlike the main game, one hit kills the player.  Inspired by the principal of Darwinian Difficulty and Hotline Miami, as well as the challenge maps in the Batman Arkham games, my reasoning is that allowing players to practise in an extreme (but fair) scenario should help them refine their fighting ability to the point where regular encounters in the story mode are trivial.

In particular, this level is designed to raise the player’s awareness of actions/moves which have invincibility frames – both defensive sidesteps, twists, and rolls, and special attacks. Controlling the positioning and movement during a fight is also encouraged (i.e. don’t get backed into a corner).

While called ‘defence’ training, there is a strong emphasis on interception — those who wait for their attacker to hit them; dodge or guard the hit; and then counter; risk getting hit (especially when attacked from all sides by multiple attackers). Player should quickly realise that survival relies on a balance between defence and offence; as well as range, timing, movement, prioritisation; and positioning. In other words – hit attackers before they have the chance to attack you; move defensively to avoid being swarmed; position yourself so that you can attack without being hit; time your attacks, so that you are not left vulnerable; prioritise which adversaries to take down first.

Lastly, efficient use of Bullet Time is encouraged to slow down time to concentrate on defensive movement and attack.

An additional purpose is to expose any flaws or bugs in the combat system. Testing under the hardest difficulty possible should highlight problems with difficulty, fairness, balance and flow (unexpected, random deaths; hitbox tuning; damage per move).

Design approach: I’m reusing the Dojo level for speed and simplicity – it’s a small-medium sized arena, suitable for combat with a small number of enemies (guessing 13 – 21 before it gets crowded/laggy).

The fight is broken down into several encounters, focusing around an enemy type; and each encounter will be broken down into 5 waves. Each wave will throw an increasing number of enemies at the player, in accordance with the Fibonacci sequence (1,2,3,5,8,13…). First encounter will start off with very slow and easy enemies; then we will introduce faster and tougher enemies; enemies with weapons (possibly including firearms); and finally mixed sets of enemy types. Between encounters might be a bonus/challenge wave.

Example:

Encounter 1

  1. 1 White dragon enemy, hostile when approached, very slow and weak
  2. 2 enemies
  3. 3 enemies
  4. 5 enemies
  5. 8 enemies

Encounter 2 – Same as 1, but with Yellow Dragon, an enemy which sprints at the player.

Encounter 3 – Mixed white and yellow; introduce red dragon (tank) 1. 1 red 2. 1 yellow, 2 white 3. 2 yellow, 3 white 4. 3 yellow, 5 white 5. 1 red, 3 white, 2 yellow?

For the sake of keeping things simple, I’m just going to focus on the first encounter.

Implementation

Encounter1

Fig. 1

Encounter 1 looks like this. Blue spheres are the actual NPCs, green spheres are the custom FSM scripts I use to control them. Note the first guy is missing because he starts in the level itself.  To preserve name-spacing, I should have placed him here and teleported him into the playing area when the level starts, but I don’t think this level is big enough to warrant that level of discipline.

An annoying facet of Max Payne level design is that NPCs cannot be spawned into a level, like they can in Unreal, for example. This means you have to frontload all of the enemies you want to use, and usually hide them in a room off the level somewhere. In many ways, this is actually a good thing because it forces design and coding discipline — you can’t afford to spawn hundreds of guys in a room (which is problematic design anyway), because it results in a huge scripting overhead. In levels where I want a lot of guys on screen, it’s a good idea to constrain yourself to the Fibonacci sequence, and organise encounters into waves to keep things sane, and to control pacing.

Another approach is to simply re-use NPC assets. You can see above that the maximum number of white dragon enemies the player will ever encounter in this level is 8. Hypothetically, it makes sense to simply load 8 of these guys, and simply respawn them on each wave (respawn meaning to resurrect to full health and then teleport to the desired location). I would do this, but honestly NPC necromancy can be problematic in Max Payne — especially with more complicated scripts. Usually it works, but sometimes it results in the enemies doing strange and unpredictable things when they respawn like standing in a dazed trance, playing an incorrect animation, or dying immediately on spawn. It also makes counting kills in waves much more complicated than it needs to be, because you have to work out a way for the level to know exactly which wave this enemy belongs to at any given time. Finally, re-using enemies results in bodies disappearing during combat. The absolute worst thing is for an NPC’s body to suddenly vanish moments after you just KO’d him.

I mentioned custom FSMs earlier – those are the green spheres. I had hoped that this level would be simple enough not to require individual FSMs per enemy, but the nature of the wave system requires me to count each time an enemy dies, so that the next wave is started when all enemies are dead. A quirk of our mod is that it’s possible to ‘kill’ NPCs multiple times, during what we call a ‘juggle’ combo. One frame before the player’s punch or kick lands, we spawn a ‘juggle’ area projectile which heals the NPC briefly (dealing -0.01 damage), which resurrects knocked out ‘dead’ enemies just in time for the kick to KO them again. This allows the player to ‘juggle’ defeated enemies, and perform stylish combos to finish them, which is both intrinsically satisfying and serves a gameplay purpose — you gain health back for juggling enemies.

An individual FSM is therefore required to count the first (and only the first) time the player ‘kills’ an enemy, otherwise juggle hits are counted, and the whole script breaks down. It’s for this specific reason that variants on the Kung Fu mod (including Katana) break the level scripts in vanilla Max Payne — especially the Jack Lupino fight in Ragnarock. The original Max Payne levels are not scripted to take into account juggle combos, and therefore scripted events can be triggered prematurely. This is why you have to be careful resurrecting NPCs.

Fortunately, this is fairly simple to implement in MaxED. NPCs have two primary states – Alive (default) and Dead. When the enemy is killed for the first time, they switch to the dead state, and a message is sent to the Wave script to increase the kill count by +1. If they’re killed again (by juggling), it doesn’t count because no further messages are sent to the wave script while the enemy is in the ‘dead’ state.

states

messages

In the story levels, regular melee enemies have between 3- 8 states (called ‘lives’ to distinguish them from HP), which allows them to get back up after being knocked down. This system originated from Max Payne: Katana, where I wanted to simulate combat by having enemies block a certain number of attacks before being defeated. Each enemy had a pre-set number of ‘lives’ and tougher enemies, such as bosses could withstand as many as 20+ hits before dying.

You make this system more interesting by having enemies regenerate lives over time, forcing the player to focus their attacks on a single enemy; or by layering this system with others (bosses in TRW have a regenerating ‘guard’ or shield which has to be ‘broken’ first before you can do permanent damage).  The exact implementation in TRW is much more complicated, because we wanted the enemies to do more interesting things, like get off the ground if they get knocked over, and allow the player to kick them into walls, or punt them across the floor like in the film; but I’ll save that for another post.

Even on modern systems, Max Payne can grind the framerate down if you’re sloppy, so it’s generally a good idea to remove NPC bodies at regular intervals — especially if you’re scripting an arena type level. For this map, enemies are removed every other wave to reduce the likelihood of the player noticing them disappearing.  In my experience, most people are too focused on fighting off adversaries to notice downed enemies being removed.  For best results, create a timer for every enemy and randomise the time between dying and removing the body, but that requires considerable overhead.

Zoning

Although the Dojo level is fairly small, it’s good design practise to divide your levels up into modules, or zones, and track where the player is. This allows you to control stress and tension by spawning enemies intelligently, relative to the player’s location.

As the Dojo is a square shaped arena, this is straightforward – I simply divide the level into thirds horizontally and vertically, giving me 9 zones. I could have divided into four quadrants, which is simpler, but offers limited tracking – especially if the player stays in the centre of the ring. With 9 zones, no matter where the player is, I can easily surround and envelop them by spawning enemies in the adjacent zones. 9 zones is also convenient because, if you remember, the maximum number of enemies I want to spawn (for now) is 8. So if I wanted to, I could spawn one enemy in each zone, leaving one space for the player. As you can see, working with the golden ratio naturally leads to more elegant designs.

Zones

For this to be manageable, the naming scheme for the zones has to be straightforward and meaningful; so I’ve gone with Centre, North, South, East, West, NE, NW, SE, SW.

This is fairly straightforward to implement in MaxED – you have a tracking FSM called Zoning with your 9 states (North, East, South,…). You then create 9 player collision triggers evenly spaced across the map to cover each zone, and on the activation of each trigger, you simply switch the state of zoning to whichever trigger was activated. So if the player activates the trigger ‘North’ the state of zoning switches to North. Although this is fairly simple, I recommend printing a direct message to the HUD to display which zone you’re in for initial testing — you don’t want to go to the effort of creating a complicated zoning system, if the actual tracking isn’t working correctly.

Another consideration is the fact that in MaxED triggers are spherical, which means that there will be some gaps between triggers. You can fix this by nudging the corner triggers (NE, NW, SE, SW) towards the centre a bit, or by simply increasing their radius slightly, along with the central trigger.

Zoning implementation

Fig. 5 An FSM tracks where the player is in the level, so we can spawn enemies in smart locations.

As for the actual waypoints used for spawning the enemies, originally I thought about using 3 per zone. However, this leads to a total of 27 waypoints, which is far too many. In the end, I settled for a total of 16.  That leaves me with 3 in the centre, 2 in each corner, and 1 for every point of the compass. This means I can spawn as many as 18 enemies at once, if I wanted to (which I don’t, as my budget is 8 npcs)

The final step is to write the code to actually spawn enemies. For every wave, there are nine possible zones where the player could be, so it’s a case of working out where the best location to spawn enemies is (i.e. the adjacent zones).  So that means there are 45 possibilities in total.

This might sound like a lot of unnecessary work for simply spawning enemies in, but in practise it doesn’t take that long to implement, and (aside from the challenge of building it) I think the results are definitely worth it. It’s also fairly scalable – assuming we don’t increase the number of enemies on-screen from 8, most of the work can be duplicated for additional encounters with minor modifications to the scripts.

Now we have a good foundation for this level.  It might not be apparent in the video, but the zoning system allows for a fairly natural ‘feel’ to the encounter – enemies spawn close to the action, not randomly; and the waypoints and timing can be tweaked to adjust stress, tension and flow.  Although basic enemies work well for this specific level (remember 1-hit kills, so anything complicated will overwhelm the player), were this an encounter in a ‘proper’ level, the next logical step would be to increase variety, by adding enemies of different class and role, as explained in this excellent and authoritative article on the topic. At any rate, this level is now the perfect template for testing all manner of encounters.

Making every play count

How to scrobble everything to your Last.fm profile with Scrobblr for Android and iOS

This month an experimental third-party app has come our way that’s really piqued my interest. It’s called Scrobblr, and it uses the microphone on your android / ios device along with the Gracenote API to identify music and scrobble it to your Last.fm profile.  

Scrobblr

Scrobblr potentially allows you to scrobble everything to your Last.fm profile — broadcast radio; MTV; your car stereo; music playing on your games console; CD, Vinyl, and Cassette; as well as music services that don’t scrobble natively such as Soundcloud, Youtube, Google Play, and Xbox Music.  Imagine if an app like Shazam or Soundhound could scrobble to your profile, that’s essentially what Scrobblr does — if you can hear it, you can scrobble it.  The developers even claim (though we’ve had mixed results ourselves at Last.hq) that you can scrobble music heard out and about at pubs and clubs.

To give you an example, one of the more frequent criticisms / feature requests we’ve had regarding the Last.fm Xbox app is that it doesn’t scrobble music in the background whilst playing games — using this app you can do just that by simply placing your phone near to your speakers.  My favourite use of this is to scrobble the radio stations on Grand Theft Auto V. Even against the chaotic background of police sirens wailing, cars exploding, gunshots rattling, frightened pedestrians screaming, and Trevor Phillips yelling obscenities at the police; Scrobblr can carefully pick out Britney Spears – Gimmie More on Non-Stop Pop FM and log it on my Last.fm profile.  Much to my shame.

Another example, I often listen to Guy Garvey’s Finest Hour via the iplayer app on my phone.  As the show is pre-recorded, it doesn’t scrobble to BBC Radio 6 Music’s own Last.fm account.  In the past, if I’d wanted to scrobble the tracks from this show, I’d have to manually scrobble each track by hand using the Universal Scrobbler.  With Scrobblr, I can stream the show through iplayer and simultaneously scrobble it directly to my account.  It’s pretty awesome.

The app is still in its early stages of development and it’s not without issues — matching isn’t always perfect, and like I said, our “field tests” in local pubs and clubs have so far been a bit hit and miss.  Even so, I’m very excited in its potential and I’d be interested to know what you think, especially if you listen to music on platforms that are difficult to scrobble (like broadcast radio, vinyl, and cd). I’d also be curious to hear more obscure ways to scrobble music using the app. :)

You can download Scrobblr for free here:

Android: https://play.google.com/store/apps/details?id=net.scrobblr
iOS: https://itunes.apple.com/us/app/scrobblr/id698063218
Developer’s website: http://www.scrobblr.net/

Mercury Prize 2013 – Listening trends on Last.fm

With the nominees for the Mercury Music Prize 2013 announced yesterday, I decided to compile snapshots of the listening trends data displayed on Last.fm for all of the nominated albums. Last.fm (the company I work for) is a music discovery service which allows people to keep a record of every track they listen to on their computer, mobile device, or mp3 player, as well as supported music services like Spotify and This is My Jam. Last.fm then aggregates this data to compile weekly charts based on what people actually listen to around the world.

These snapshots show the number of registered Last.fm users listening to the nominated albums per week, for the last 6 months. Also displayed is the total number of plays (called scrobbles) and total number of unique listeners.  Although the Mercury Prize is decided by a panel of judges, I personally think it’s interesting to follow the relative popularity of each album, and speculate on whether that has any impact on the decision.

I leave the interpretation of the data to you.

Arctic Monkeys - AM

Arctic Monkeys – AM (6 September 2013)

Disclosure - Settle

Disclosure – Settle (31 May 2013)

Foals - Holy Fire

Foals – Holy Fire (11 February 2013)

Jake Bugg - Jake Bugg

Jake Bugg – Jake Bugg (15 October 2012)

Rudimental - Home

Rudimental – Home (29 April 2013) (also see the deluxe edition )

Villagers - Awayland

Villagers – {Awayland} (January 11, 2013)

The ‘Small and Agile’ approach – A retrospective

I’ve finally gotten around to posting my honours work /dissertation for my final year at the University of Abertay Dundee, for my degree in Game Production Management.  It comprises of a dissertation proposal, the dissertation itself, and supporting project work which serves as a worked example of some of the concepts proposed in the dissertation body.  It was published in May 2008.

  1. Part 1: Proposal (The problem for Independent Game Developers)
  2. Part 2: Dissertation (Survival of the fittest – Investigating the survival strategies of “Small and Agile” game studios)
  3. Part 3: Honours project (Game Development Plan and Reflective Log)

Some five years have passed since I wrote this work, and back then the prospects for indie game developers looked quite bleak.  Since then, the games industry has changed dramatically — Angry Birds demonstrated the huge potential for small developers in the mobile apps market; the rise and fall of Zynga highlighted the potential and risks of Facebook as a games platform; Humble bundle, Good Old Games, and even Xbox Live emerged as reliable digital distribution channels for independent developers; crowdfunded projects on Kickstarter took off in a big way, resulting in the world’s first crowdfunded indie games console the Ouya.  Oh, and Minecraft happened. :)

At present, I feel confident that independent games development is thriving in a very positive, if unexpected way.  Yet, many of the problems and challenges surrounding Next Gen / AAA development reported in my original proposal are still present.  With the latest round of next gen consoles – the PS4, Xbox One, and Wii U – the costs of games development for the home consumer is unlikely to go down any time soon.  The business model, as far as I’m aware, is still broken, with regards the developer royalties. In particular, the use of Metacritic scores as another way to control and limit how much a studio earns is particularly troubling.

There are still development horror stories — L.A Noire was a critical and commercial success, but plagued by a protracted development schedule (7 years) and controversy surrounding poor working conditions.  In spite of the game’s success, the developer, Team Bondi, was shut down after failing to secure another game project.  What’s more revealing is the recent downfall of middle tier publishers such as THQ, and the closure of several notable development studios (e.g. Psygnosis), throwing doubt into the previous convictions that being acquired by a major publisher would offer financial security and was a viable end-game for any independent developer.  The Radar Group, which I had high hopes for, seemingly disappeared after 3D Realms ran into financial difficulties, and at the time of writing, no one else seems to have taken the concept of a production studio on board.  To be fair, why would they?  Having another middleman to share royalties with is unappealing to both publishers and developers, even if it does reduce overall project risk.

If asked on my views of the games industry today, I’d refer to Dickens and say it was the best of times, it was the worst of times.  Better games are being made, and there’s good reason to be hopeful.  Yet, there’s still much to criticise and past mistakes aren’t being learnt from (for instance, sexism in games / production is still a prevalent issue).

In closing, Scott Miller, who I used to admire quite greatly and referenced heavily in the above work, once posted the question “Who’s left who can design their own game?”  Back then, the answer was very few.  Today, it seems like there are plenty of opportunities for anyone with a clear vision, and the skill and talent to see it through.  Time will tell if the kickstarter bubble bursts, but for now at least, it seems like an exciting time to be developing games, and I’m looking forward to seeing how these projects develop.

Story telling in games

This is something that’s been on my mind for a while now.  Story telling, recounting experiences – both real and made up – is something quite fundamental to human culture.  We tell stories to entertain people, to teach them, to inspire and challenge people.  Much day-to-day conversation falls into the pattern of listening to what people have to say, and retelling stories from your own life.  Even when we are asleep, a good portion of our brain is devoted to making up stories in the form of dreams – wild and fantastical.  Most organised religions are founded on stories from the past.

Like any art form, I see games as a medium for creating and telling stories.  For example, when you look at traditional pen-and-paper RPGs, they largely boil down to a group of friends making up stories. The game just gives them a framework for telling the story.

Gameplay, as a craft and discipline often gets overshadowed by the story and presentation; and yet I think gameplay design is at its most effective when it can facilitate story creation. Sure the vocabulary of the theatre and film transfers directly to games in terms of cast, set, props, and so on; but the best games create worlds, for which multiple stories and adventures can take place in (I’m thinking along the lines of Elder Scrolls, Minecraft, Journey, and probably MMOs like Warcraft as well).

Look at the new X-Com game that came out last year — there’s a game that has a very basic premise (aliens are abducting people, you must stop them!); but basically gives you a blank canvas to craft your own stories. As a game it plays like a modern version of chess (or more directly, warhammer 40k), with both you and the computer taking turns to move pieces, and the winner is the one that captures all the other pieces, or meets their objective. The genius of X-Com, as a video game, is that it lets you name your pieces, and customise their appearance and voice — it lets you turn them into characters. In doing so, players can reframe the events of the game, as a story. Every mission is just one episode in a bigger, personalised narrative, starring a cast entirely of your own creation. It’s compelling because you don’t have full control over the plot and you don’t know what’s going to happen next — characters can die, and the plot can twist in unexpected ways.  In RPG terms, there’s a games master (or story teller) in place to ensure dramatic conflict and uncertainty, whilst still allowing the player to own the story.

For me, that’s where I think story telling and games should go. Anyone can write a story, and then craft a game around it (yo). That’s fine, but I don’t think it’s using the video games medium to its fullest. Granted, you can personalise the story by adding branching plotlines, as with Mass Effect, but you’re still constrained by things like character arcs, audience expectations (Mass Effect 3 ending anyone?), consistency, and practical logistics.  Writing a good story is hard enough — writing a branching story makes things exponentially complex.

There’s always going to be a place for big, cinematic story games (nothing beats a well written, well told story); but I believe that games that allow players to make up their own stories are the way forward as an artistic medium.  I think that’s why games like Journey left such an impression — without a predefined story and no way to verbally communicate with other players, it forces the player to come up with their own personal interpretation of the journey they experience.  They can then recount that experience to others.   I think that’s also why Minecraft has become so popular — it’s simple to play, but has almost infinite potential for making up stories and games.

However, my growing concern is that we’re going to see a regression — instead of games, I think we’re going to see more “interactive experiences”.  Big budget, summer blockbuster entertainment titles, that you don’t play or explore, so much as participate in.  Modern incarnations of Dragon’s Lair (which is beautifully animated, but not really fun).   Again, on the scale of art and entertainment, there’s place for these titles to sit, but I think it would be a great shame if those are the games that get the most funding in the future.

Human’s are natural story tellers.  Our entire civilization is founded on our natural ability to recount events and characters from the past, and imagine and foresee events and consequences that might happen in the future.  As a game designer, I think we can make more meaningful, more impactful games by tapping into this natural instinct of interpreting and reinterpreting events as stories.  Instead of spoon-feeding people hollywood-esque drivel that would make even Dan Brown cringe; we can give people the tools and settings they need to create their own worlds and realise their own stories.  That’s something only games can do.

Community management

What makes for a good community? Layout? Competitions? Moderation? Social sharing features?

Having done this line of work for over ten years (a career I find myself in entirely by accident), I’d say there is only one relevant answer: People. Or more specifically, interesting people – ‘Characters’, if you will. It’s easy enough to say, but I think it holds true: – the strength of a community is only as strong as the personalities that populate it.

Twitter is a prime example of a social community where interesting characters dominate, and are rewarded by followers. You could argue that one of the key hooks of Twitter over Facebook (at least several years ago) was the idea of being able to ‘follow’ and to a lesser extent ‘interact’ with public personalities.  Whether they have anything relevant to say, is another matter; but from my experience, interesting people are attractive and draw followers wherever they go.

For example, several years ago, when I was administrating the Alan Wake forums, I remember a particularly charismatic individual who arrived complete with her own set of followers.  I got the impression that she moved around the internet like a celestial body, collecting them as she travelled from forum to forum.  At the time I joked that these people orbited around her like moons, caught in the sheer gravitational force of her personality.  Where she went, they followed, and when she departed, so did they.  Thinking about it though, I believe the solar system analogy is a good one, as it stresses the fact that when someone leaves, moves position, or when someone else enters the community, it affects the people around them.

Most importantly, interesting characters encourage other people to participate in your community and become active members themselves.  Obtuse, obnoxious characters are the opposite — they repel and drive people away (and this includes staff/management — there’s nothing more toxic to a social community than an obnoxious person with supreme power).  So, when managing a community, my approach has always been to identify the dominant characters that inhabit it, to understand why they chose to spend their time there, and to facilitate their needs wherever reasonable.

With this in mind, you have to be sensitive to when they’re unhappy and considering leaving, because their influence will affect the entire system.   Some people are very vocal when they’re unhappy — anger and frustration are very clear symptoms that their expectations are not being met in some way.  Anger, in particular, can be seen as direct emotional response to not getting what you want; and therefore it’s good to get into the practise of finding out exactly what people want.  You can learn a great deal by starting with yourself — whenever I get pissed off and caught in the heat of an argument (and working for Last.fm, this happens more frequently than I’d prefer) I confront myself with the following:  You are angry because you’re not getting what you want.  So, what do you want? 

However, not everyone speaks up — prolonged absence is a good warning sign that they’re moving on, but you may be powerless to prevent this.  Certainly, in a large, multi-tiered community, it can be difficult to track the comings and goings of individual users, and you may not realise they’ve gone until, many weeks after, someone asks “Hey, whatever happened to…?”

There has been lot written on the topic of motivation, and the idea that people leave their job because they are either attracted to something new, or they have become dissatisfied (repelled) by the existing one interests me.  However, the exact workings of this depend very much on circumstance and personality, which are difficult to understand and predict.  In a general sense, I think you have to just accept that people come and go for a variety of reasons, and you have no real direct control over whether any individual stays or goes.

In my experience, most people don’t leave online communities in a grand departure, they just fade away.  In this respect, I would say that the best you can hope for is to keep the spirit of the community alive, by creating a warm, inviting, vibrant community, with enough strong characters to attract newcomers and keep things lively.  So, nurture your prima donnas — allow them to express themselves, celebrate community tropes and in-jokes, and give them what they need to be creative and do what they do best. Don’t go out of your way to stifle their fun when they’re having a good time. Learn to make exceptions for the greater good — because it’s their community as well.

I want to close this by stressing that when I talk about communities, I’m not just referring to online interactions, but any circumstance where people regularly meet as a collective group – work, school, clubs, and so on.  Companies are made up of people, and by definition each one has its own community — a culture formed from norms, values, roles, and ‘characters’.  I have used the word ‘characters’ to describe influential members of a community or organisation; some might describe these people as ‘leaders’, although I don’t think they necessarily are in the traditional sense.  Certainly these people can be charismatic and inspirational; but ‘characters’ I feel, captures the more intangible, quirky, and endearing aspects of their personality.  It’s also worth repeating that some dominant personalities in a group can be obnoxious and utterly repulsive; so perhaps a more academic definition would describe influential people in terms of ‘attractors‘ and ‘repulsors‘ — or some nonsense.

Regardless of how you describe them, it has been stated many times in managerial literature that the strength of any organisation is defined by the people that work there.  I would extend this by arguing that the strength of an organisation hinges on the strength of its community.  If people are what defines an organisation, then community is the glue that bonds that organisation together.   When these people leave, the company loses more than just their knowledge and work output (physical body) — it loses its community spirit (gravitational effect).  Their absence will affect all those that remain.

___

Personal note:

Working for a tech company for several years, I’ve had the privilege to work with people who are as eccentric as they are intelligent — brilliant minds with quirky humour and fascinating interests (one used to run a nightclass on lockpicking, for example).    Like any community, brilliant minds need a social space to flourish — one that not only accepts their culture but encourages it.   Some of my fondest memories at Last.fm include being shot at by a motion triggered Nerf gun; model helicopters flying past my desk; and toy sonic screwdrivers re-engineered to function as working presentation remotes.  These are kind things that make a company fun to work for, in spite of everything else they might throw at you.

Ultimately though, it always comes back to the people you work with – the people you spend time with.  Sadly, quite a lot of my friends have left over the last 6 months, and my fear is that as each person moves on, we lose a bit of our community spirit.  At the same time, I think those that remain have been brought closer together, which can only be a good thing.

Music

I don’t believe in ‘good’ or ‘bad’ music, as such;  assuming an artist or performer is competent at what they do.  I’m not a musician, so I don’t feel qualified to judge.  There is simply music I like, and music I don’t like.  And it’s not a fixed constant – what I like today, I might not like tomorrow.

When it comes to artistry, I think there’s a place in the world for both art and entertainment.  I see popular music as as a doorway to discovering even more music — a foothold, if you like, to higher ground.  I don’t begrudge the entertainers of the world, because the best ones are damn good at what they do — they encourage us to dance, sing, and feel grateful for being alive.  However, I’m wary of those who try to pass superficial entertainment off as something deeper than it actually is.  Nevertheless, I think the best artists somehow manage to find a happy middle ground between art and entertainment (or accessibility), without compromising their integrity.

When it comes to personal tastes, I prefer to characterise music taste in terms of breadth and depth.  There’s music you know well, and music you’ve yet to discover.  Patterns you understand, patterns that are currently beyond your comprehension.

We  are really lucky to live in an age where technology can let people discover and explore music.   Let’s not throw that away.