Tag Archives: news

Book now available via SpringerLink

Good news everyone!  Well, maybe not everyone, but at least people who love academic books about agent-based modelling might be happy about this news.

My book is now available, open access (free, in other words), via SpringerLink.  You can download the whole thing as a PDF or an ebook in EPUB format.  The website is mobile-friendly, too, so if you’re slightly mad and want to read this on your phone, you can certainly do so.

You can also download individual chapters, if you want, but I’d recommend *not* doing this; each chapter pretty much builds on the previous one, so you’ll get more out of it if you read the all the chapters in sequence.

Hardcover copies are not yet available, but I’m told they will be soon, and it seems like you can order print-on-demand softcovers via the Springer website now if you feel like it.

Tagged , , , ,

February update

Screen Shot 2018-02-02 at 09.47.08

I’ve just been sent a preview of the cover for my book, now due to be released in early March — so get your pre-orders in now!

Or don’t, it’s open-access and you can just download a PDF for free when it comes out.  I’ll post here again once it releases for real.

In other news:

  • Our team submitted a funding proposal for a cross-disciplinary network focused on the use of agent-based modelling for designing complex public health interventions
  • I contributed to another proposal, part of which will use ABM to study environmental and policy changes that might encourage more people to take up walking and cycling rather than driving
  • We’re working on a position paper for the public health crowd, to clear up some misconceptions and concerns about the use of ABM in health research
  • Another paper is in the works on a free simulation platform under development
  • Last but by no means least, John Bryden and I have a really exciting paper under review at the moment — watch this space!

I’m also excited about our ongoing work modelling social care provision in Scotland — we’ve just hit a major development milestone.  We’re planning to submit a paper on this first stage in March, and follow that up with further development of the model with help from social care experts here in Glasgow and in Stirling.  We’ll soon start producing  detailed documentation for the model — I’ll post some of those details here in the next month or two.

 

Tagged , , ,

MRC-funded PhD studentships in Agent-Based Modelling

Here at the MRC/CSO Social and Public Health Sciences Unit at the University of Glasgow we recently announced a whole host of PhD topics for students looking to join us on our interdisciplinary quest to improve public health and reduce health inequalities.  The studentships are funded by either the Medical Research Council (MRC) or the University of Glasgow, and cover the full cost of tuition fees and provide a stipend.

Students who have a Masters-level degree already can jump right into the three-year funded PhD, or if you’re fresh out of undergraduate education you can join a four-year programme and get your Masters in the first year.

In the Complexity and Health Improvement Programme we are offering up a few potential topics on the application of agent-based models to public health challenges, supervised by myself, Rich Mitchell, Mark McCann, and Umberto Gostoli.  If you’re keen to get involved in this relatively new area of work in public health, do read through the topics and get in touch with the Programme Leader (and Unit Director) Laurence Moore as soon as you can, in order to discuss your proposal.

Tagged , , ,

My book will be released soon — and it will be open-access

Good news, open science fans — my upcoming book from Springer is now in editing/typesetting, and on track for a spring release under a Creative Commons with Attribution licence.  This means you can download, share, adapt and modify the work however you see fit, so long as you cite the original and link to a copy of the licence.

I have to take a moment here to thank the MRC/CSO Social and Public Health Sciences Unit, my new home, for supporting open science and widening the audience of this book.

Springer is keen to get this moving along so they’ve put up a website for the book here!   You can even pre-order it, if you want.

Tagged , , ,

Joined the University of Glasgow

I haven’t posted here in awhile, but it’s not for lack of activity — as of 2 October 2017, I’m now a member of the MRC/CSO Social and Public Health Sciences Unit at the University of Glasgow.  The Unit, as it’s known around here, will soon celebrate its 20th year of core funding from the Medical Research Council, and produces research covering a broad range of public health themes.

I’m a part of the Complexity in Health Improvement programme, and will be helping the Unit develop a variety of research projects applying agent-based modelling techniques to complex problems in public health, including obesity, alcohol use, social care provision, and more besides.  I’ll be working closely with the Unit Director, Professor Laurence Moore, and other members of the Complexity programme to develop these projects.

In typical style the move to Glasgow was hectic to say the least, and despite starting our apartment search many weeks in advance my partner and I only managed to secure a flat five days (!) before my start date.  We were lucky enough however to find a very nice flat in Mount Florida, to the south of Glasgow city centre.  The city itself is great so far, with plenty of great places to eat and drink and lots of friendly people around, though the weather is pretty bad (and for the UK, that’s really saying something).

All in all, I’m really excited to be a member of the SPHSU now, and even after just a week there are plenty of interesting projects taking shape.  Watch this space from here on out, I’ll be making an effort to post more now that I’ve finally made the move!

Tagged , ,

Game Dev Update: Twisty little passages, all alike

A quick update this time — I’ve been working here and there on implementing some maze generation code for the game, so that I could have a few different types of dungeon levels to generate.  At last I’ve got it working, and can now generate some intimidating mazes using the ‘growing tree’ algorithm:

maze16

By altering the likelihood of new branches in the path, I can change the feel of the maze significantly.  The maze above has a high likelihood of producing new branches; the one below produces much longer hallways:

maze19

 

Tonight I’ve just added a variation of this algorithm which mimics another well-known maze generation method, the ‘recursive backtracker’.  This one needs some fine-tuning, though, as currently it produces very long, meandering corridors that can be a little annoying to navigate:

maze20

The next step is to make the maze generator a bit more flexible.  Ultimately what I’d like to do is allow the normal dungeon generator to create maze rooms which can be integrated into the rest of the dungeon.  This will add some more variety in the dungeon without forcing the player to navigate an entire level-spanning maze every time the dungeon generator decides to mix things up.

I do think I want to have one dungeon level that’s entirely a maze, though, and encourage exploration by sticking a powerful artifact somewhere within and dropping some hints that the player might find it if they have a look around.  I’ll also scatter some Scrolls of Clairvoyance about, which will reveal the location of the level exit and make navigating the maze less directionless.

As you might’ve guessed, in these screenshots I’ve switched off the ‘fog of war’ for the player so that I could observe and test the results of the maze generator.  In actual play things look more like this:

maze17

By way of comparison, here’s how a maze level looks in the famous(ly difficult) roguelike Nethack:

Image result for nethack gehennom

More to come next time, when hopefully I’ll have maze rooms working.

 

Tagged , , ,

Game Dev Update: Upping the Challenge

So it’s been a little bit since the last update on my hobbyist game development efforts, but a lot’s been going on whenever I can snatch some time in between the constant, endless presentations I’ve had to prepare for recently on the academic side of my life.

My focus in the last few weeks has been on some core gameplay systems.  Originally I was going to work on the dungeon environment, but I figured that fancy dungeons wouldn’t be that useful if the player couldn’t do interesting stuff in them, so I went for under-the-hood gameplay systems instead:

Hunger system

Hunger systems are a classic feature of roguelikes — since the original Rogue, in fact!  The idea is that the player needs to seek out food within the dungeon and eat it regularly, otherwise they gradually begin to starve to death.  Since food is limited and can only be found within the dungeon and not created by the player, it serves as a time pressure mechanism; the player has to keep moving further down the dungeon to find food in order to stay alive.  Currently my system is very basic: the player starts with three rations, and can find two different types of food items within the dungeon that refills their hunger meter.  If at any point your Satiety stat dips below 50, you start getting warnings, and at 0 begin taking damage every turn.  At -50 you’ll die of starvation.  I’ve added an indicator to the interface that shows this stat directly, unlike Rogue and some other games that keep it hidden and only warn you shortly before death:

satiety7

Turn Scheduling:

In order to make monster fighting more interesting, I wanted to add a system for variable attack and movement speeds between different creatures.  This is kind of a weird thing to implement in a turn-based game, and I wasn’t sure of the best way to go about it at first.  Eventually I settled on a central turn scheduling system in which all monsters (and the player) schedule their next turn each time they take an action.  The number of turns they have to wait until they can move or attack again depends on their Speed stat.

It sounds simple, but it turned out to be a big pain to get right!  I had a lot of weird bugs where certain monster turns didn’t register, or the game would suddenly stop running in turn-based mode and let monsters run rampant while the player was unable to move, and all sorts of other problems.  Eventually I got all that ironed out, and finally had fast-moving wolves and bats, slow-moving zombies, etc… only to find that in certain circumstances the player would encounter invisible and invincible enemies after moving to a new dungeon level.

After a few days of annoyance I worked out the problem — monsters were dying in combat, but a reference to them was remaining in the turn schedule, meaning that memory was still being allocated for their monster data by the program.  In certain situations that meant the scheduler would find that reference, say to itself ‘hey this here says there should be an orc doing something’ and the player would end up fighting a ghostly remnant of a previously defeated enemy!

I was able to fix that relatively easily once I figured it out — this is why we keep backups, kids.  Also it was a useful reminder to be more careful about my coding practices in some parts of the game, so I did quite a few bits of refactoring of the code to prevent anything like that happening again.

Combat System Changes:

Again in service of making combat more interesting I made some significant changes to the combat system to better differentiate enemies.  My favourite series of Japanese RPG games is the Shin Megami Tensei series, which are known for being set in a dark demon-infested version of Tokyo and for being really difficult.  What I love most about these games is that the combat system encourages tactical thinking by having weapons and spells deal a number of different types of damage, which demons can be weak to, immune to, or resistant to depending on their nature.

I implemented something similar to this, where each monster has weaknesses to certain types of physical damage (in this game they’re called Phys for general slashing attacks, Blunt for hammers/clubs, Pierce for arrows and spears, alongside numerous magical damage types like Fire, Ice, Thunder, etc.).  Hitting a monster’s weakness will do double damage to it, while hitting if it’s resistant you’ll deal only half damage.  Some monsters are immune to certain types of damage entirely — Skeleton Warriors, for example, aren’t bothered at all about being poked by arrows given their total lack of fleshy bits.

The idea is that this will push the player to experiment with different weapons, spells and items in order to dispatch enemies more quickly — particularly when they reach later dungeon levels, where monsters start appearing in large swarms and have powerful attacks.  I want damage types to be a major focus for the player, and for good attack choices to have significant rewards (and for bad choices to have a big impact!).

To make things a little easier for the player, I’ve added a Look command so that you can see some details about monsters in visual range:

look-command

Other than these big changes, mostly I’ve been squashing bugs and adding bits and pieces of content.  At this point, the player can face about 300 different monsters, collect 50 different weapons and items, and visit 15 different dungeon levels.  As time goes on I’ll keep adding new monster types, then randomly-generated weapons and items, and finally some super-tough boss monsters including a final boss.  At that point I think I’ll be ready for a playable alpha release to get some gameplay feedback.

This week has marked the official start of the academic year, so there’s been a ton of things to do at the university — which means there hasn’t been much time for game development!  I’ve been keeping careful track of all my additions and to-do lists and such, so when I have time to get back to things I’ll remember what I’d planned to do next.

All in all it’s a hell of a lot of fun so far, even when I’m getting frustrated by weird bugs.  I’m definitely gaining some major Python proficiency thanks to all this, and it’s forced me to tighten up my coding practices and embrace proper version control.

After some more work on damage types and attack variety I’ll be modifying the game UI and sprucing up the general look of things, so hopefully I’ll have some more interesting screenshots next time 🙂

I’ll leave you now with some game recommendations:

SDL Rogue: a well-done Windows port of the original Rogue, with some nice additional options (including a graphical tile option).  Type ‘?’ to see all the commands (there’s a lot of them!).  The same site also has similar ports of other classic roguelikes, including Hack (the predecessor to Nethack), Larn, and Moria (predecessor to Angband).  Check ’em out.

DoomRL:  This is a fantastic free game that combines two of my favourite things — the original Doom (in my opinion the greatest computer game of all time, and one I still play regularly), and roguelikes.  It masterfully combines frantic Doom-style demon-blasting with turn-based roguelike gameplay and character progression, and to top it off has the original Doom music and sound effects, and some fantastic 2D graphical tiles.  Download it!

Some enterprising fan has developed a server for DoomRL, too, so you can see how you stack up against other players and even play in your browser (or via a Telnet client).  ASCII text mode only though!

Crypt of the NecroDancer:  This game kicks my butt all over town, but it’s incredibly creative and fun.  It’s a turn-based roguelike with a twist: the entire game world is tied to the rhythm of the music for the level, and making your moves along with the beat gives you various bonuses (and moving out of time leaves you open to attack!).  All the items and monsters play on this theme.  The graphics are incredibly charming, the music is by Danny Baranowsky (of Binding of Isaac and Super Meat Boy fame) and is absolutely fantastic, and it’s packed to the brim with cool features and secrets to unlock.

It’s also 50% off on Steam right now, so now’s a great time to take the plunge!

Tagged , ,

Funded PhD opportunity at Teesside

Fully-funded PhD opportunity available! I’m looking for someone interested in working on agent-based modelling for healthcare applications. No fees and £20K stipend. These are four-year positions and you will be asked to contribute up to six hours per week of teaching (tutorials/demonstration only, no lectures), which is more work but also good for the CV. Click here and filter under ‘Computer Science’ to see my project.  For more about me, check out the various pages on this blog or my staff profile at Teesside.

Project description: This research will focus on the application of Agent-Based Modelling techniques to human social systems, with particular emphasis on digital health applications. In the context of public health, agent-based models can help us understand the complexities of health policy implementation and service delivery by modelling the multiple interacting processes underlying the health system. These models will investigate challenges in health and social care service delivery across a variety of spatial and temporal scales – from short-term studies of demands on accident and emergency services, to longer-term explorations of the pressures facing social care over the next several decades. Our multi-disciplinary team will work with members of the School of Health and Social Care here at Teesside, along with external collaborators and stakeholders. The project would be suitable for a graduate with a background in Computer Science, Artificial Intelligence, Statistics or Complexity Science with an interest in Public Health/Healthcare applications.

ACADEMIC FRIENDS: Please tweet/share this as widely as you can!

Tagged , , , ,

Paper accepted to Alife XV

I’m pleased to say that the paper I’ve been going on about now for some time, titled Job Insecurity in Academic Research Employment: An Agent-Based Model, has been accepted to Alife XV in Cancun this summer.  I’m currently working on some revisions to the paper to account for some helpful suggestions from the reviewers — as soon as the final camera-ready preprint is available I’ll post it here and the usual places (ResearchGate, Academia.edu, etc.).

Hope to see some of you in sunny Mexico come July 🙂

Tagged , , , ,

Paper Submitted To Alife XV

I’m happy to report that I’ve recently submitted a first paper on the postdoc simulation I’ve been plugging on these pages for some time.  I’ve been working in collaboration with Nic Geard of the University of Melbourne and Ian Wood, my officemate at Teesside.

The submitted paper is titled Job Insecurity in Academic Research Employment: An Agent-Based Model.  Here’s the abstract:

This paper presents an agent-based model of fixed-term academic employment in a competitive research funding environment.  The goal of the model is to investigate the effects of job insecurity on research productivity.  Agents may be either established academics who may apply for grants, or postdoctoral researchers who are unable to apply for grants and experience hardship when reaching the end of their fixed-term contracts.  Results show that in general adding fixed-term postdocs to the system produces less total research output than adding half as many permanent academics.  An in-depth sensitivity analysis is performed across postdoc scenarios, and indicates that promoting more postdocs into permanent positions produces significant increases in research output.

The paper outlines our methodology for the model and analyses a number of different sets of scenarios.  Alongside the comparison to permanent academic hires mentioned above, we also look closely at unique aspects of the postdoc life cycle, such as the difficult transition into permanent employment and the stress induced by an impending redundancy.  For the sensitivity analysis we used a Gaussian process emulator, which allows us to gain some insight into the effects of some key model parameters.

The paper will be under review for the Alife XV conference very shortly, so I don’t want to pre-empt the conference by posting the full text here.  If — fingers crossed — it gets accepted, I’ll post a PDF as soon as it’s appropriate.  If you want a preview or are interested in collaborating on future versions of the model, please get in touch!

Tagged , , , , , ,