Coding

The games industry clearly remains the most exciting and varied sector for a programmer to go to work in. In the Coding Track our seriously knowledgeable and experienced technical speakers will show you exactly how to rise to the many challenges and opportunities facing game programmers today - including new and emerging platforms.

Coding sessions

Building Outside the Engine - How and Why to Use Your Engine Only for Display and User Input

Tuesday 26th October: 11.00 - 11.45 :

While some part of almost every game needs to be tightly bound to a graphics (and perhaps physics) engine, there are benefits to minimizing this coupling and writing as much as possible as "pure" code, such as ease of refactoring and testing, portability and reuse, and protection against 3rd-party changes. For some styles of game it's possible to reduce the core engine, whether Unity, Unreal, or something else, to a means of gathering user input and displaying results to the player. Here I'll take you through how I structured a Unity puzzle game, Hexahedra, in exactly this way and the benefits I was able to reap by doing so. Hexahedra's architecture resembles the OSI network model, where the puzzle simulation (pure C# provided as a DLL) and the Unity implementations of game elements, in a hierarchical structure (puzzle, factory, workstation, device), are able to communicate with each other with message passing through a single link. The puzzle simulation passes a series of events to Unity for display, and Unity collects user input and passes it back through to the simulation. This allows the puzzle simulation to be reused to power a backend stats server while also making it particularly easy to refactor and unit test. The event-driven system also makes additional gameplay features such as rewinding time much easier to implement. I'll also highlight considerations that make this approach unsuitable for some types of game.

Learning to Lead a Craft Team: Year One

Tuesday 26th October: 14.00 - 14.45 :

Leading a team can be hard and doesn't always come naturally to everyone. It is something that when done well can propel a team into success. When ignored however, can topple even the most talented set of people. 


This talk outlines some of the learnings that I've made after my first full year as a Lead Programmer and the run-up prior as a Producer. Although there may be some specific cases that other crafts won’t come across, I’ve tried to generalise as much as possible for fledgling leads in any craft. 


This talk aims to open up the conversation about responsible leadership within games. I’ll talk about team management, trusting your team, and some simple lessons that can be transferred into your day-to-day work life. There’s lots of material focused on leadership but few on what that is like in the unique context of game development. Hopefully, with these few pointers, you can reduce the stress of managing a team and focus on making fun and exciting games!
There is, of course, no one way to lead a team, but at least with this information, people don’t have to make the same mistakes that I have up to this point! 
 

Takeaway: 

In this session you should takeaway:
- A few mistakes that I've made as a lead and things that should be avoided. 
- Several tips and tricks that will help you manage a team in the long run, setting you up for success. 
- A few considerations about what it means to lead and how the role is different from others. 

Test Driven Development: A Mindset to Develop Games from the Start, Middle, or End

Tuesday 26th October: 15.00 - 15.45 :

Test Driven Development (TDD) can be a dry topic, and one of those concepts you learn about but possibly never see how to apply in a real world situation. Often focussed on discrete unit tests written at the beginning of a new project, its hard to reconcile that knowledge with your legacy, completely untested codebase, and even harder to reconcile with the many variables and interconnected systems that make up game development. This talk will give an overview of TDD from the point of view of someone who sees it as a mindset, rather than prescriptive. By addressing common misconceptions and using real world examples, this talk will explain the value that TDD brings specifically into the games development environment, showing how this mindset will impact and improve your implementations, stability, and communication between disciplines.

Takeaway: 

  • Understanding the value of TDD in the intersection of Game Design, Programming, and QC
  • Applying TDD as a mindset, even to a legacy codebase where it is difficult to retrofit tests
  • Suggestions based on real examples for applying TDD in your environment

The Principles of Empathetic Programming

Tuesday 26th October: 16.00 - 16.45 :

Whether you are working alone or in a team of hundreds, creating a program of real complexity will inevitably involve the work of many other people who work with you, or created the libraries, platforms and specifications that you depend on. Your work will then go on to interact with many programmers in the future, including yourself. Programming is as much about communicating with machines as it is about communicating with your colleagues, past, present and future.


In such an environment, empathy is an essential tool. Being able, and willing, to put yourself in someone else’s shoes is as hard as it is important. In this talk Pavle Mihajlovic, co-founder of Flavourworks, will go through how lack of empathy can cause major technical issues, why imagining not knowing something is so hard, and how to use empathy as a superpower.

Takeaway: 

•    Why it’s hard to imagine not knowing something, and what we can do to compensate for it
•    Why it’s so much harder to read code than to write it
•    How making a conscious effort to be empathetic can make you a better programmer

How to Get More Out of Your Code Reviews

Tuesday 26th October: 17.00 - 17.45 :

There is only one hard problem in software development. Communication. Code reviews can be an important part of that, but too often they degenerate into nit-picking or become a box-ticking exercise. Code reviews have evolved from their roots in the more formal practice of code inspections, into asynchronous change-reviews such as the GitHub Pull Request process. Along the way much has been gained, but some things have been lost. While code reviews have seen widespread adoption, there are still questions as to whether reviews are the right tool for those in the games industry. Given that the tooling and methodologies that are widely available were mainly developed for the benefit of large distributed teams there are valid questions as to how applicable these techniques are to the smaller, more tightly-knit teams commonly found working on games. In this talk, Joe will share his experience of why code reviews matter, what they are good for and where they are not so useful. He will also look at some of the pitfalls to avoid and will give advice on best practices to help game developers, whether 30 years in or just starting their journey, to decide what form of review will best support the needs of their teams.

Takeaway: 

  • Learn how code reviews can be an important tool in aiding communication between developers
  • See why the tools you use for code review can have a big effect on the effectiveness of those code reviews
  • Understand what makes a good review and how to spot and stop negative reviewing behaviours

Improving Data Structures for Rapid & Intelligent Gameplay Design

Wednesday 27th October: 11.00 - 11.45 :

This presentation will focus on changes Ubisoft are making to their vehicle editing tool that greatly reduce the learning curve for a designer new to this field. Speakers Ben Ponsford and Michael Robson will demonstrate how moving to a modular system for data enables designers to rapidly prototype vehicle behaviour, and instantly make adjustments to multiple vehicles. 
This can be applied to other complex systems and Ben and Michael will look at relevant analysis and statistics, and demonstrate how tuning can be made more intuitive and understandable. 
 

Takeaway: 

•    Complex systems with large numbers of tuning parameters can be broken down to be more easily managed 
•    Storing system parameters in a normalised database gives rise to rapid iteration, project sharing & simultaneous tuning possibilities 
•    Real-time analysis of complex systems allows interdependent behaviour to be observed and understood before user testing 
 

A Modern Development Culture for a Modern Development Process

Wednesday 27th October: 15.00 - 15.45 :

At Darewise, we aim to modernize the game development process for our game-as-a-service: Life Beyond. To support a rapid iteration and release schedule while the game is still under heavy development, we have had to adapt our studio culture and our development processes to match.  In this talk, we will focus on the programming aspect, on how to create, foster, and preserve a high-quality-code culture that results in a healthy, robust, and modular codebase that is resilient to design changes and could easily be reused for other games. We will cover the specific programming practices (best practices, code reviews, DevOps, management of technical debt...) as well as the equally important human aspects of management, hiring, knowledge sharing, and project planning methodologies we use. 

  • Best practices on how to increase rapid iteration in heavy development while maintaining/creating a high-quality culture (considering the hot button topic of crunch)

Mind Your NPCs and Qs: What’s Next for Game AI?

Wednesday 27th October: 15.00 - 15.45 :

Game developers now have fantastic tools for building huge, complex, beautiful worlds but very often life remains absent, especially that of characters engaging with a player. Game AI has progressed slowly in the last decade, but we are now seeing signs of it picking up pace. This talk takes a look at the current state of the art in game AI, where we as an industry are still struggling, what is on the horizon and what possible solutions might look like for the as-yet-unsolved problems. Join Sandy MacPherson (an ex-Crytekker who worked on developing Crysis 1-3 and is now a Senior AI Systems Programmer at Kythera AI) and Rod Stafford, (a technology evangelist who once designed and delivered the UK’s largest real-time government crisis simulation) as they describe the challenges facing game developers who are looking to bring forward a new generation of AI for games as well as celebrating some of the great successes to date.

Takeaway:
 
This talk will provide an educated view into the current climate of video game AI, providing attendees with a realistic understanding of what the unsolved problems are.

It aims to leave attendees brimming with ideas for things to take home and try, and inspired to be a part of the community and to help us achieve the future.

Cultivating Better Code: Get Better At Everything Around Programming

Thursday 28th October: 11.15 - 12.00 :

Description: As programmers, we tend to find ourselves settling into habits, both good and bad. This roundtable will focus on what we could all be doing to get into better habits, the tips and tricks we've picked up along the way, and what we can all be doing in the future to keep improving our code and to build better games.

 

 

Takeaway: 

  • Learn which habits are worth breaking and which are worth keeping
  • Discover new ways to improve your programming
  • Build better infrastructure for your games to make long term support easier

A Practical Perspective on Training Reinforcement Learning Bots

Thursday 28th October: 14.00 - 14.45 :

Reinforcement learning has recently shown impressive results on video games. This session presents a pragmatic view on training reinforcement learning based bots for modern video games and the different technical challenges that arise when developing and scaling such a system. Indeed, a lot of academic research allowed the field of reinforcement learning to reach a state where it is applicable to actual problems but very little has been studied when it comes to application at scale and the practical issues that need to be taken into consideration when developing and using a reinforcement learning system.

Takeaway: 

  • Challenges of applying reinforcement learning to actual video games.
  • How to design a system suitable for real-world application?
  • Key takeaways from developing our own framework.

Console Development in Unity

Thursday 28th October: 15.00 - 15.45 :

Delegates will watch a presentation and participate in a Q&A with James Stone, the Senior Technical Product Manager in Consoles R&D at Unity Technologies. He will share tips and best practices for bringing your Unity games to consoles, offering insights into places where studios typically struggle and help you overcome any potential hurdles that may impact your project. You will also be able to provide direct feedback during this session, to directly influence the future of Unity, helping you achieve greater success in your future games.

Takeaway:

  • Greater knowledge of console development practices
  • Knowledge of how to avoid common development pitfalls
  • Your chance to provide direct feedback on your experience developing for consoles, and input into the future of Unity

Don’t miss out!

Develop:Brighton offers you an inspiring mix of top-notch speakers, practical how-to sessions, insights into the latest trends and technologies, plus fantastic networking opportunities. Find out about the different conference pass options and prices here or...

Register Now

Get involved today!

There are many ways you can be part of Develop:Brighton - including taking a booth in the Expo or choosing one of the many sponsorship opporunities during the event or at the Star Awards.

Contact us now!

Keep up to date with Develop:Brighton

Newsletter Sign Up