Andrea Serreli

Game Programmer | andreaserreli1984 [at] gmail.com

Dead Island 2

Role: game programmer

Dead Island 2 marked my very first experience as a professional game programmer in AAA. It holds a very special place in my heart and I had a real blast working on it for 4 years.
Being such a long-awaited sequel to so many loyal fans, there was a sense of responsiblity to give the series justice. Judging by the reception, I think it's fair to say we delivered!

During my happy time at Dambuster Studios, I've worked on a variety of gameplay systems. To name a few in no particular order:

  • Options
  • Achievements
  • Spatial partitioning and breadcrumbs
  • Mission System
  • Inventories
  • Amazon's Alexa Game Control
  • New Game+

My daily job on DI2 can be summed up in two words: C++ and Unreal Engine.
Well, OK, that's three words. But whatever.
More seriously speaking, I rarely had to deal with Blueprints during my time there: if anything, I had to make sure to expose the correct UFUNCTIONs and UPROPERTYs to the outside world, but I was laser-focused on C++ programming more than anything else.

One of the most important lessons I've learned while doing DI2 is that the best we can do as software engineers is creating systems that are versatile and conceived to be heavily iterated upon and changed.
Before joining the games industry, I thought the perfect code was mostly planned in advance with such precision that, once you begin implementing it, you already know what to do and the specs ain't gonna change at all, or in a minimal way.
But the beauty and complexity of game development lies on the fact that the project is constantly changing, things can get cut, modified, transformed, all for the sake of ending up with a great and fun game at the end of the process.

Another precious lesson I've learned is not to get too attached to your implemented features, as they can be cut or changed in due time.
Stephen King would cleverly call this principle "Kill your darlings", and I couldn't agree more.
Finally, DI2 taught me that there are times for ultra-complicated solutions, and times where overengineering not only won't help you but could be detrimental. It's all about finding that balance between not catching flies with a shotgun and not fixing an airliner with duct tape.