The Hullet Bells – Part 4 (Insert Title Here)

The title screen! At this point in game development, it’s probably a waste of time, especially if you’ve already decided to implement a handler system that will let you slot the title screen in at the end. But what’s done is done, so here it is!

The title screen!
They should have sent a poet.

Obviously a work of art. In this post, I’d like to talk a bit about the menu system and the Drawable class. The latter forms an important part of the game too, so it’s worth examining.

The menu system is fairly basic. The title screen handler has a collection of Buttons, with each Button containing a function that will be called when it is chosen. These buttons inherit from the TitleScreenElement class, which in turn inherits from the Drawable class.

class Drawable(object):
  def __init__(self, x, y):
    self.x = x
    self.y = y

  def setX(self, x):
    self.x = x

  def setY(self, y):
    self.y = y

...

class TitleScreenElement(drawable.Drawable):
  def __init__(self, x, y, text):
    super(TitleScreenHandler.TitleScreenElement, self).__init__(x, y)
    self.text = text
    font = pygame.font.Font(None, 24)
    self.renderText = font.render(text, 1, (255,255,255))
    self.textPos = self.renderText.get_rect(centerx=x, centery=y)

  def setFontSize(self, size):
    font = pygame.font.Font(None, size)
    self.renderText = font.render(self.text, 1, (255,255,255))
    self.textPos = self.renderText.get_rect(centerx=self.x, centery=self.y)

class Button(TitleScreenElement):
  def __init__(self, x, y, text, func):
    super(TitleScreenHandler.Button, self).__init__(x, y, text)
    self.text = text
    self.selected = False
    self.func = func

  def run(self):
    if self.func:
      self.func()
    else:
      print("No stuff!")

  def toggleSelect(self):
    self.selected = not self.selected
    if (self.selected):
      self.setFontSize(28)
    else:
      self.setFontSize(24)

The title itself is a TitleScreenElement, while the menu items are Buttons. As you may have noticed, each Button has a notion of being ‘selected’, which in turn affects how it appears on the screen. The title screen handler itself also contains a variable that tracks the index of the currently selected Button. It might be more accurate to call it the ‘hovered’ Button, as selection implies that it has been chosen. When a different menu item is chosen, the buttons toggle their selected status and change their font sizes.

Navigating the menu and activating a menu item is managed by an InputHandler (which we’ll discuss next time) and a number of functions. These functions adjust both the currently selected Button according to both the buttons and the title screen handler, as well as actually running the associated function. In the current version, one button will change the current handler to the Game handler, while the other terminates the game cleanly by ending the main loop.

... In the title screen handler ...
  self.buttons = [TitleScreenHandler.Button(self.game.xRes // 2, 300, "Start Game", self._startGame),
                  TitleScreenHandler.Button(self.game.xRes // 2, 400, "Quit", self._inputQuit)]
...
  def _inputQuit(self):
    self.running = False

  def _startGame(self):
    fadeToHandler(self.game.screen, 0.1, GameScreenHandler(self.game), self.game)

The logic for changing the selected button looks like this (without the corresponding _selectionDown function):

...
  self.inputHandler.addEventCallback(self._selectionUp, pygame.K_UP, pygame.KEYDOWN)
...
  def _selectionUp(self):
    self.buttons[self.selected].toggleSelect()
    self.selected -= 1
    self.selected = (len(self.buttons) - 1) if (self.selected < 0) else self.selected
    self.buttons[self.selected].toggleSelect()
    print(self.selected)
...

That covers the higher-level stuff for the title screen, so what about the Drawable base class we talked about earlier? Drawables are currently very simple: They contain an x and y coordinate, and nothing more. In the future, they will also contain Animations, the foundation for all displayed images. For Buttons, we currently create the text on the fly via the pygame.font library, but these will eventually be replaced by images if we’re going to be making a seriously gorgeous title screen.
Animations are only partially implemented, but will be heavily ‘inspired’ by the implementation in my platform game. An Animation is a set of one or more pygame surfaces, with the current image cycled every N frames. Animations may loop (not necessarily from the first frame). A Drawable will contain a collection of Animations, as well as an index to the current animation. It’s a very simple system, and if we need to layer something more fancy on top of it later (particle effects, lighting..) it won’t be too nightmarish.

Next time we’ll look at the input handling framework. The write-up is bit of a beast, but the actual logic is pretty simple! If you haven’t already, you can see the list of all Hullet Bells articles here. There’s even a link to the Github repo, if you can’t wait for the play-by-play on this blog.

The Hullet Bells – Part 3 (Handling It)

Handling transitions between various screens was one of the problems my friends and I encountered when developing our shmup game at university. For instance, it was a pain getting the game flow moving from the title screen to the game screen, from game screen to loading screen, and so on.

Because of the way we initially structured the main loop, it was pretty awkward to shoehorn in these transitions. We ended up with this system where the title screen would come up, and part of its main loop would have a call to the game screen’s main loop. Effectively, we were two loops deep whenever we were running the game. It’s not exactly inefficient, but it’s not pretty. The answer I discovered during my internship, long after the project died, was relatively simple. Rather than treat these screens as different loops to jump between, I implemented a system which only uses one loop. This loop repeatedly calls the update function of the current handler. Handlers are the abstractions of each screen, containing their loop logic, assets and so forth. They derive from a common base class and override its update function. It’s quite a simple approach to arrive at, but when you’re just starting out you tend to prioritise the wrong things. Learning about this pattern in a professional environment was a definite boon. It was also probably covered at university (under the much more general polymorphism), but seeing the practical use cemented it in my mind. Later, I would use this approach when designing the platform game. It was so good, it was carried over to my current project.

Here’s the base class for handlers:

class Handler(object):
  # Handlers are the wrappers for the more separated parts of the game,
  # like the title screen, the main game screen, the game over screen..
  def __init__(self, game):
    self.game = game
    self.running = True

  def update(self):
    print("Default handler")
    return True

And here’s a snippet from the title screen handler:

class TitleScreenHandler(Handler):
  ...
  def _draw(self):
    self.game.screen.blit(self.background, (0,0))
    self._drawText()

  def _logic(self):
    for button in self.buttons:
      button.update()

  def _handleInput(self):
    self.inputHandler.update()

  def update(self):
    self._draw()
    self._logic()
    self._handleInput()
    return self.running

And of course, the part of the main loop responsible for calling the handlers in the first place:

def main():
  ...
  while True:
    # Cap the frame rate.
    clock.tick(60)

    # Run the game handler.
    if not game.handler.update():
      break

    # Show our hard work!
    pygame.display.flip()

As you may have noticed, the current handler is stored as part of a Game variable. The game class is meant to carry over cross-handler information. Normally we’d expect it to store some sort of game state, but most of the information is stored inside the handler. This Game object is passed in to the handler on creation, allowing a handler to transition to another by simply altering the current handler itself. Thanks to some behind-the-scenes Python magic, these self-orphaned handlers are cleaned up and not left hanging around.

Here’s an example of how we might transition (very quickly!) from the title screen handler to the game screen:

class TitleScreenHandler(Handler):
  ...
  def _startGame(self):
    self.game.handler = GameScreenHandler(self.game)
  ...

It’s pretty simple, right? We make sure the game state is passed on so further transitions can be performed. This system also allows us to do some clever things, such as allowing us to run handlers within handlers. For instance, if we wanted to create a loading handler such that the current handler continued running until some number of assets were ready, we could write something like:

class LoadingScreenHandler(Handler):
  ...
  def update(self):
    if (self.loading):
      self.currentHandler.update()
    else:
      self.game.handler = self.nextHandler
  ...

Here the loading handler runs its own handler before transferring control to a target handler after asset loading has finished (probably via a thread). Of course, this is getting ahead of ourselves: we have no assets! Indeed, we won’t for a good while yet. Rather, we now have the framework for implementing the many screens of the game. Next time, we’ll look at the title screen and input system in more detail.

The Hullet Bells – Part 2 (Getting Organised)

Recently I embarked upon a quest: a quest to produce a platform game, the likes of which the world had never known. However, I got bored of that, but not before exercising my Python chops. Although I failed, I discovered the wonderful pygame library. Pygame is a Python wrapper for the ever-popular C++ SDL library, which I had used before when working on a small game project with a group of university friends. Much like the project preceding this one, the university project died an untimely death, this time due to heavy college workloads.

Still, both experiences provided a great number of learning opportunities, and during university a six month placement at a video game company let me take a peek under the hood of some pretty heavy AAA title stuff. I took what I learned then and tried to apply it to the platform game, but a general lack of interest on my part meant the project had no chance of survival.

Thinking back, there’s only been two genres I’ve really ever fallen in love with: Platforming and shmups. Sure, I’ve had my flirts with RPGs, particularly JRPGs. As I’ve grown however, I just don’t find them nearly as charming as I used to. Recently, I went back to Final Fantasy 7 to give it a proper playthrough, this time around older and wiser. I figured I might be able to appreciate the combat and magic systems a bit more, because now I’m a more patient, understanding guy. Sadly, I also have a lot less time than I used to, and it turns out those systems never had any depth after all: It was all just grinding in the end, like pretty much every other RPG I’ve ever played.

So I’ve come to appreciate the platformers and shmups. With less time to spend on leisure than ever before, it’s important to me that I maximise the enjoyment I get from the limited time I spend on games. Don’t misunderstand, I do branch out occasionally with new releases outside my comfort zone! But when I need to relax, being able to pick up a platformer and speed through it means a lot. The average shmup won’t take more than an hour per playthrough, so you already know in advance how long you’re likely to spend on it (Side note: There are some insane examples of shmups with multiple ‘loops’, meaning you start back and play through again on an increased difficulty level. These can take several hours to fully beat, and must generally be done in one sitting!).

Why did my platforming game die? I’m not sure myself. I think there was a deadly combination of boredom and laziness. While I’d love to get in to the Procrastination Formula, that might be a topic for another time. The short of it is; I didn’t block time to get my teeth in to it, and when I did have time I wouldn’t develop the right features to bring it towards a minimum viable game. Rather, I spent time developing fluff features like ladders or tweaking values that could wait until later.

This time around, there is a system. I intend to spend at least 25 minutes a day focused on this shmup engine, more if I’m on a roll. I have also mapped out some of the key requirements for what will constitute a complete shmup. In a somewhat mock-Agile approach, these requirements take the form of one-line user stories grouped by screen (title screen, game screen, options screen, etc.).

Having once taken a half-day Agile course, I’m something of an expert on the topic. I can do away with that separation of product owner, scrum master and development team garbage because I am in fact all three! Indeed, this is why I call this shaky approach ‘mock-Agile’, because I’m making a mockery of it. That said, taking parts of Scrum seems to work even for a one-man dev team. Here’s an example of the embarrassing list of requirements I came up with:

Title Screen

  • I want to be able to navigate a menu at the start of the game
  • I want to be able to start the game via the menu
  • I want to be able to quit the game via the menu

It might look silly and insignificant, but this sort of thing keeps me on task and aware of what needs to be done. At this point, you may be wondering if I’ve even done any development yet, what with all the mocking and pondering. Well, take a look at this!

The white box is the player, the green box is a baddie, and the blue one is a bullet! This is cutting edge stuff, guys.
The white box is the player, the green box is a baddie, and the blue one is a bullet! This is cutting edge stuff, guys.

Prior to finally buckling down and properly organising myself, I did a bit of development on and off, tearing bits out of the platform engine and transplanting them in to the shmup. In all, I estimate that about four to five hours of actual work went in to the shmup over the course of a month. It’s time to buckle down and make something. Next post I will give you a sneak peak behind the scenes of how I’ve structured the game.

Beginning Chess

Back in secondary school, I was part of an ill-fated three man chess club. We were terrible. Our supervisor, while well intentioned, was beatable by complete rank amateurs (read: us). It was not an environment under which we could grow as players, but we were having a blast, so who cared?

Fast forward over ten years. Now in my mid-twenties, with zero chess experience since then, I came across an article on Hacker News with the straightforward title ‘How to get Good at Chess, Fast‘. Having barely thought of the game in the intervening years, the link piqued my interest. I could feel my competitive side stirring. With a single click I was drawn back in to the domain of rooks and knights.

It turns out that there’s quite the system to becoming a good chess player. Like you’d expect, a key component is a willingness to play the game! What may be surprising is the amount of tactical study required to made any sort of headway (of course, there are prodigies who learn incredible amounts from their own games with little effort). Strictly speaking, you are not studying to memorise: one is aiming to train their pattern recognition abilities by observing and reasoning about thousands of positions. By doing so, they begin to gain an intuitive grasp and understanding of the game, allowing the skilled player to analyse a board and next few moves with a reasonable amount of insight. Being able to accurate determine the consequences of a particular move, and being able to use those consequences to gain material (win pieces) is known as being capable of tactical play. Tactics are short-term, sometimes two moves in length, often more. If you know that an opponent must react in a certain way in response to your play in order to maintain the material balance, get out of check, or avoid checmate, such tactics are said to employ forcing moves.

But perhaps this is learning to run before one can walk. Also put forward in the article is the idea of training the eye to automatically see certain tactical positions instantly, with such a skill granting a great boon when getting through the aforementioned thousands of exercises. Without such an ability to pinpoint the so-called forks and skewers, a player would spend far longer on the exercises than would be desirable for fast growth. By training the eye, certain opportunities arise automatically.

I’ve been applying the principles set forth in the article, and indeed I have noticed an increase in my tactical ability! The sheer number of exercises involved means memorisation is all but impossible, so subsequent attempts continue to directly test your tactical skill. The article recommends a full seven rounds of the exercises you choose to do. I’m working my way through Chess Tactics for Beginners. I’ll write up a review of it one of these days, but here’s a look at one of my favourite positions so far:

Chess is sometimes pretty cool!
I won’t spoil it, but the objective is to win the black rook, white to move.

Despite my tactical practice, I have yet to win a single game on the popular lichess website, making huge strategic blunders in the mid game. Indeed, my ability to form strategy is poor, and I constantly overlook moves that end up costing me powerful pieces and positions. To view a computer analysis of any of my games would reveal an ability to hold my own.. In the first four or five moves. This is often followed by a subtle decline in positional advantage, followed by complete and utter ruin.

With tactics eventually falling in to place, one must turn their mind to strategy: The long game of positioning your pieces for maximum tactical advantage. Initial strategic ability is not built through thorough analysis of openings and the mid game, but rather through analysis of your own mistakes. The opening is less about of doing well, and more about not making position-destroying mistakes.

So I will continue to play and learn, and once I am confident, I will try leaving the virtual world of lichess, just for a while, and seek out the local chess clubs. Making a physical debut will be quite exciting if I have the skills to back it all up! If you ever want to play with me (over the board, or online!), hit me up and we’ll give it a go! Only if you promise to analyse the game with me after, of course..

The Hullet Bells – Part 1 (A Primer on Shmups)

As a would-be hardcore gamer, for me shoot ’em ups, or ‘shmups’, are a fascinating intersection of complexity, fun and playability.

With humble roots in Space Invaders, shmups began with a simple premise: The player controls a ship (or perhaps a flying witch or android) and must defend themselves against wave after wave of enemy attacks. Typically, the player will shoot them, although some games reward dodging over destruction.

The genre split in to two distinct schools of design: fewer, often faster bullets, and denser, slower bullet clouds. The former emphasises reaction speed, the latter memorisation. For example, R-Type and Gradius fall in to the former category, while games such as ESP Ra. De and DoDonPachi epitomise the other.

ESP Ra. De, a bullet hell game
R-Type III, a more traditional game focused on environment

Towards the end of either type of game, the two styles begin to converge: Bullets can only get so fast or dense before they become impossible to dodge, so elements of the other style begin to creep in.

The mechanics of these games vary. Often in simple games, the only variations will be in the graphics and bullet patterns, while the mainstays of lives, power ups and bombs are changed only in token ways. Such games are not necessarily bad! I can revel in the simplicity of a game like Strikers or Raiden, so even with limited mechanics it is possible to construct entertaining games.

That isn’t to say that there isn’t innovation happening! Far from it. The arcade roots of shmups meant that you had to stand out in a sea of other shmups. Some games introduced alternate modes of fire, giving the player a choice between whether they mow down their enemies with scattered shots or concentrated blasts. Others capitalised on the nature of the competitive high score lists omnipresent in the arcade, implementing complicated scoring systems that would require months to master, but for huge score rewards.

More recently, games like Ikaruga have aimed to maintain the old school shmup elements while placing unique and innovative mechanics on top. In Ikaruga’s case, the inclusion of the polarity switch (each polarity allowed players to absorb one of two kinds of bullet) added an entirely new dimension of gameplay, requiring not only that players dodge bullets, but also take in to consideration whether they should be absorbed or not.
Ikargua is a challenging polarity-based shooting game
Generally speaking, once play begins the player will always be looking at the playfield, with the ship present on screen at all times. Plot is sacrificed for an uninterrupted game experience, due to the very nature of the arcade itself: players are here to play games and not take up time on the machine watching cutscenes! This was something of a missed opportunity. CAVE, the popular shmup creators, would be forced to explain the majority of the plot in a 15 second cutscene at the start of the game, with the remainder inferred from short boss dialogues and cryptic ending scenes (if any). With the advent of releasing shmups in both the arcade and then porting them to home console, games have begun to include a longer ‘story mode’ in addition to the ‘arcade mode’ they would normally experience.

This is a completely different story to the doujin and independent game scene. Doujin games are created with the intention of sold at Japanese conventions. Touhou is a popular doujin game shmup series. While the story is probably just as deep as any given fable, a huge fan community has sprung up to fill in the blanks for the world, creating a vibrant living setting with hundreds of different interpretations.

The independent game Sine Mora has a very strong plot with a moderately challenging game to go with it. Indeed, the plot is explained over the course of the game with haunting monologues between levels, and heated dialogue during the game itself. In a rare twist for the genre, control is occasionally taken from the player for plot purposes.

The world of shmups is hugely varied, despite the basic principles being the same between games. This thread that runs through them means skills learned are transferable, while the player can still experience something new and challenging. The best way to experience it is to get out there and try some of the linked games in this post! I can’t possibly describe the fun you’ll experience.

I have a deep enjoyment of these games. While I don’t have the artistic ability or level design experience, there is still one thing I can do to help this dying genre: I can write an easily extensible, open source engine for the creation of shooting games. Over the next few months, I hope to build a small demo game in this engine, graphics be damned! I will also have to write the engine, of course.

I will document this journey here, both to provide insight in to the development process and to keep myself motivated. Maybe one day you’ll even want to build a shmup yourself!

A Primer on Speed-running, and Some Generic Tips

What’s all this speed-running malarkey about?

As you may or may not know, back in the day (read: 9 months ago) I started to speed-run Super Meat Boy, a fast-paced platform game starring a walking cube of meat, on a mission to save his equally cubular, bandage-covered girlfriend from the evil (or maybe just misunderstood!) Dr Fetus. For those not in the know, speed-running is pretty much exactly what it sounds like: a person attempts to complete a video game in the shortest time possible. Different games have different criteria for what constitutes completion. In fact, the same game may be run in different manners, with each class of run making up a category with its own records and strategies. For instance, Super Meat Boy has two categories that are regularly run: any% and 106%.  Any% is so called because it is an attempt to reach the end credits of the game via any means necessary. It is a common category across games, and often heavily features glitches to skip major portions of the game’s normal sequence. Such skips are known as sequence breaks. Not every any% run features sequence breaking, but most games feature at least a small sequence break. Super Meat Boy features a few that shave off tens of seconds, while The Legend of Zelda: Ocarina of Time has a sequence break that skips nearly the entire game.

106% is Super Meat Boy’s equivalent to most games’ 100% category. Rather than just reach the end credits, the game must be fully completed: For instance, all items must be obtained or all levels beaten. Typically, the game itself will feature some form of statistics page that would confirm that the current save file is, in fact, a 100% completed file. These attempts often require completely fresh strategies from any%, as major sequence breaks become very rare. A full 100% run of a game can take more than twice the length of an any% run. For instance, a decent Super Meat Boy speed-runner will clock in about 22 minutes in any%, while the current world record for 106% rests at around 1 hour 25 minutes.

When it comes to speed-running, I’m very much a fan of watching the 100%ers, not so much doing it myself. You have to admire the amount of time they put in to mastering each individual skip and trick, before putting them all together in a multi-hour marathon of incredible skill and patience. The moment a run goes sour, many runners will ‘reset’ rather than finish the attempt in order to save time, starting the game fresh. This can turn a two hour session in to a four, six hour session. That said, 100% resets are definitely rarer precisely for this reason: You don’t want to throw away two hours of work. Your average Super Meat Boy 100% run will feature upwards of 50 deaths, and no resets after the half-way mark. However, my chosen category is any%, and it is a very different story…

Any%: 100% for people on the clock

I run any% because I don’t feel I have the time or patience to run 100%. 100% would be back on the table if we were talking a sub 1 hour average run length, but that is usually not the case for most games, and definitely not for Super Meat Boy. With any%, I can sit down for 20 to 25 minutes and blast through the whole of the game, with an audience of five or six watching the joy and despair as it unfolds (speedrunning is often performed while streaming on a broadcasting service such as twitch.tv). It’s a fairly relaxing experience, unless you start getting close to beating your personal best, then things can get a little stressful! My personal best is 22 minutes, while the world record is 18:40. You might say, ‘hey, that’s really good, you’re only three and a half minutes behind the world record!’ And I’d sheepishly smile and have to explain that 18:40 is a nearly perfect performance for a human player, and that being three and a half after it is comparable to being three seconds behind Usain Bolt in the 100m (which he famously ran in 9.77).

http://www.youtube.com/watch?v=Ede7qFbrbKI

If you’ve got twenty minutes to kill, I recommend watching it for an idea of just how good one person can get at a game. This record has held up for over a year, and in speed-running that’s an eternity. Once you reach the amateur levels of speed-running (In Super Meat Boy any%, we’re talking around my time), you begin to approach the old world records. Only then do you realise the staggering difference between the current world record run and the previous records, even if the new record only beats the old record by a handful of seconds. Why do you make this realisation? Because eventually, you become better than any casual player of your chosen game, but not as good as the guys who have been playing for months, years longer than you. In short, you hit…

The Wall

It’s 4am GMT. Even the Americans are starting to call it a night, wishing you good luck as they leave your stream one by one. It’s the eighth run of the night, and you haven’t even begun to approach the sort of time you managed to somehow pull off two weeks ago. That divine spark has left you, and now you realise that you’re just not cut out for this speed-running business. You’re gonna quit. Right after this last run.

Of course, it’s never the last run. But you just can’t beat your old time. It’s no world record, but it’s a giant stumbling block in your progress towards becoming the fastest player of all time. This is the wall. And actually, after this wall… It’s walls all the way down. This is the essence of speed-running, and I believe you don’t really get the concept of the run until you’ve experienced this level of perfectionism/fanaticism. Not until that day when it all comes together: That trick on level 9 suddenly makes sense, or you’ve finally figured out a safer way to get through those obstacles without dying so often. Not until the day you storm the game, deathless and perfect. Not until some jumped-up schoolboy brat beats your time by a full ten seconds. Not until your thumbs ache and your eyes want to fall out and you start to feel sorry for the poor player character, who you put through so much. That’s speed-running.

How Do I Get Better?

You play. You play, and you play, and you play. But that’s not enough. I’ve played Tetris for over 10 years, and I can stomp any of my friends any time. I’m decent at single-player Tetris, and that’s enough to beat casuals at multiplayer. Put me up against someone who actually practices and learns the Tetris meta-game, versus strategies, most effective set-ups… and I crumple. There is a huge difference between someone who plays games and someone who learns them. Many of the major breakthroughs in world records come from discovering a previously unknown glitch in the game. In Super Mario World, glitches that allowed players access to areas without various pre-requisites granted massive time saving opportunities. Even an amateur could take the world record with such tricks, but wouldn’t hold it for long as the better players start to incorporate it in to their runs.

Remember how I was talking about how sometimes you just play a blinder of a game, then just can’t repeat that success? Many world records are formed just like that. The player is of high skill, and just has one fantastic day where everything works. This is not to diminish their skill, but to simply motivate other players to reach a similarly high level of skill that is representative of the WR holder’s average performance. Then, the hunt begins. It’s time to start turning over all the rocks, poking about in every corner.. Find the killer strategy/glitch that no one has thought of before, and use it. This is your ticket to the WR. Even once the word gets out, you’ll still be the record holder for some time, thanks to your previously hard-earned skills. And then some jumped-up schoolboy brat will beat you, but you know what? You did it that way, and you did it that way first.

There is… Another way…

This one is nefarious! Pick a game no one will ever play. Pick something old, pick something that’s not on Steam, pick something that would bore most people to tears. Pick something where you get to be the first person who discovers everything about doing it fast. Once you’re the world record holder, that jumped-up brat will turn up one day.. But not for a long time. And you’ll go down in history as the first WR holder of “The Adventures of Sally Smith: Prince-Stealer Inc.”!

That’s about it.. We’ve covered what speed-running is, a couple of the common categories, then somehow segued in to motivation talk about how to be the very best, and ended on a lame joke game title. Not even a fulfilling conclusion or moral. This post went places, right? I’ve also spent 4 days on-and-off writing it, so that’s probably why it lacks any direction. Anyway. Byesies!

Book Review: The Charisma Myth

Going in to The Charisma Myth (Olivia Fox Cabane, Penguin Books), I was naturally wary of the hype surrounding it. Many of the Amazon reviews claim the book’s advice will enrich your life, that it will make you more charismatic, or it will help you land that dream job. This sort of guarantee is slapped on to virtually every self-help book out there, and it’s not hard to imagine why. I am not saying these books don’t help people, I just question people’s beliefs on how these books help them. There’s a rant incoming, you might want to skip to the review proper.

General thoughts on self-help

It’s not outside the realm of possibility that these reviewers tricked themselves into believing that the book had somehow ‘made’ them charismatic just by virtue of reading it and performing the exercises therein. In fact, the book itself discusses the placebo effect, and how (apparently) even knowing you are ‘taking’ a placebo does not significantly change how it affects you compared to other placebo takers who are ignorant of the true nature of the drug/advice. Of course, the theory that these reviewers are placebo’d up is conjecture. I can’t even begin to imagine how hard it is to measure charisma quantitatively, let alone evaluate how a set of exercises affects your own image. But if the book is actually one big, confidence-giving placebo, hasn’t it actually accomplished exactly what it set out to do? This is a phenomenon that I would identify in many other self-improvement books: The book tells you it will help you, and if you come out better at the end of it, then it must have been the advice in the book, right? I don’t mean to pick on The Charisma Myth in particular, it is a preliminary thought that I have to get out before I can talk about the genre.

The actual review

Despite all that stuff about ‘ahh, it’s all placebos and trickery’, I quite enjoyed this book. It lays out a theory regarding charisma that can be summarised thus: “If you are comfortable in the mind and body, you will exhibit charismatic behaviour.” The book itself is broken down in to chapters covering subjects like putting yourself in to the right mental state, descriptions of the different kinds of charisma, and even a chapter on how to live with the drawbacks of your new-found magnetism (attracting sycophants, jealousy, dealing with superhuman expectations). Each chapter is surprisingly practical, offering a number of exercises that claim to help dispel confidence issues and keep your mind clear of distraction, and to give you the tools you need to give off physical charisma as well. The author claims all of the exercises are important, and if you plan on following the book, I agree: There’s no better way to absorb the information.

The book stresses that you will encounter situations that challenge your charisma, and by applying the exercises you’ll be able to take everything in stride. Despite the length of the exercises (most being over 10 steps long), the author maintains that actually performing some of these exercises will only take a couple of seconds once practised sufficiently. I have little reason to disbelieve her: Once you have a go-to set of thoughts that help reset your mental state to something charismatic, I imagine it’s quite easy to run through them.

Those mental things you can do

The book’s idea of a charismatic mind and body requires three behaviours: Presence, power and warmth. Presence is defined as ‘having a moment-to-moment awareness of what is happening’. Basically,it’s the idea that a conversational partner will feel like you’re actually paying attention to them, and everyone likes feeling like that. I personally know that I have tell-tale signs when I’m not fully paying attention to someone, and I occasionally use these to get people to go away. This is not a good thing, and I don’t recommend it, there are better ways to exit conversations. Indeed, the book has a few methods, mostly involving telling people you’ll get back to them about something that will be beneficial to them, leaving the conversation on a high note for them. But I digress.

One of the exercises for ‘practising’ presence is to focus on the sensations in your toes, and nothing else, for a whole minute. This might be easy for some people, but it wasn’t immediately obvious to me just what you’re meant to actually feel when doing this exercise. After a couple of attempts, it became apparent that the idea was to notice those little tiny sensations that are constantly happening, but you subconsciously ignore. The rest of the exercise covers listening to the surrounding sounds, and focusing on your breathing and associated sensations. It is then stated that you should perform these exercises any time when you feel your presence waning during conversation. You put your focus in to something you’ve practised with, then transfer it to whoever you’re listening to. To be frank, I think if you’re capable of noticing your attention waning, you can snap back without the intermediate step. Nevertheless, you can’t knock these things until you try them. Visualisation is a common theme throughout the book for practising the charismatic behaviours. There’s a significant amount of overlap with your average neuro-linguistic programming book when it comes to this stuff, but the provided examples of what exactly you should visualise are relevant and useful for the purpose of building and maintaining charisma.

Warmth is meant to come from empathy with your dialogue partners, the idea that you actually care about what they are saying or going through, or otherwise have an interest in their well-being. I can also see how this would help with the whole ‘getting people to like you’ thing, given that, just like how it’s nice to have someone listen to you, it’s nice to have someone care about what you’re saying or doing. Some of the warmth exercises get a bit wacky or even uncomfortable: The author recommends that for people who you dislike dealing with, you imagine that it is their last day alive and work with the empathy you’d have for someone not long for this world. That’s an extreme action, as the book will tell you, but it gives you an idea about the sort of tricks you’ll be playing on your mind to get in to the right state.

Lastly, there is power. Power comes from appearing capable, wielding influence, or being otherwise able to affect the world around you. Most power comes from body language rather than your actual achievements, as people are generally willing to accept the front you put on, ahead of any actual evidence of your power. I can sort of believe this: There’s reasons why we have phrases like “dress to impress”, and meeting people who are confident and sure about themselves is something I enjoy and remember about a person. The big visualisation that the book recommends is remembering your most triumphant moment, and tapping in to the emotions you felt at that time to bring you to the same level of confidence and comfort as you did then.

Different Charismas for Different Folks

The book puts toward the idea that there are several different kinds of charisma, each differentiated by the amount you exhibit each behaviour. Focus charisma is when you exhibit, predictably, more presence than warmth or power. Kindness charisma is similar, with warmth being the primary behaviour. Visionary charisma combines two behaviours, requiring the energy of warmth with the sure-mindedness of power. This part of the book felt like bit of a page-filler: There was a lot of restating what was already said about the individual behaviours, and most of it followed as logical combinations of those. That said, there are excellent examples of people that embody each charisma type (such as Steve Jobs for visionary charisma, and Elon Musk for focus) and those concrete examples definitely helped me understand exactly what behaviours were used in each type of charisma, and how the behaviours are put in to practice.

Three simple tricks to boost your charisma that drive doctors mad!

Towards the beginning of the book, the author describes three physical things you can do that will ‘instantly boost’ your charisma, even without understanding the underlying reasons for their effectiveness. This sounds a lot like witchcraft, but these are mannerisms that I’ve noticed are quite common across charismatic people:

  • Waiting two seconds to respond after someone stops speaking
  • Reducing the amount you nod your head or interject random ‘yes’s and ‘uh-huh’s
  • Lowering intonation at the end of your sentences

To go in to why these actually help would cover 60% of the book’s guide to physical charisma, but as a very quick synopsis: Waiting two seconds before responding is the hallmark of a great listener (increased presence), reducing the amount you nod shows less need to please (increased power), and lowering your intonation has a similar effect by showing confidence in what you saying (also increases power). All these behaviours have to be practised. I’ve been trying to drop them in to my conversations when I remember, and have already had a friend ask me why I was acting so weird. There’s definitely a level of subtlety required to pull these off, and the book recommends you practice as often as you can, with everyone you can (when the stakes aren’t high; you don’t need your boss asking you why you’re taking huge pauses before answering questions during your performance review).

The physical charisma part of the book is, in general, a lot more practical in the sense that you are given a set of instructions to follow, and following them will increase your charisma (or so claimed). There’s stuff in here about getting the perfect handshake, leaving conversations gracefully, taking compliments (harder than it sounds!)… There’s a whole lot of stuff to take in, and actually putting it all to use will take time. The book even recommends you do every exercise, no matter how silly they seem. I imagine one reason is that it will force you to actually absorb and apply the advice, rather than get stuck in this trap of having so much information and not knowing how to use it.

There’s a lot of stuff in this book guys

I’ve barely scratched the surface of what The Charisma Myth has to say. It’s a fun read, and with an exercise every few pages, you will not be without new things to try when you’re not reading! I’d recommend the Charisma Myth to anyone who needs the confidence boost to get what they want, or otherwise wants an insight in to the current state of charisma self-help today. Will it actually make you more charismatic? I’m going to try and find out. If I turn out to be the next Don Draper, I’ll let you know.

Hello & Welcome!

This is the first post of my new blog! My name is Matthew, thank you for stopping by. You’re reading this because either you’re starting this journey with me, or you have joined recently and have taken the time to read back through the archives. You late joiners will have a very important advantage over both me and the first readers: You will actually know the theme of this blog!

I am still in there process of figuring out what I plan to do with this myself. Let’s not think too large at first. For now this will be a place for me to write down my thoughts and experiences. I get a lot of reading done these days, so I’m thinking we’ll have a book review here and there, really spruce up the place with some ramblings on other people’s words.

There’s not much more to add, other than to thank you for joining me on this new endeavour!