Advanced Games Development – Introduction

This post is the first post from my online blog for the Advanced Games Development module as part of my 4th (final) year at Teesside University studying BSc (Hons.) Computer Games Programming. I’ve added some additional content to clarify some points for this blog and my actual AGD blog can be found here!

The aim of the module is to gain experience of working as a member of a games development team that is as close to industrial practise as possible. It simulates the working criteria and inherent mix of development skills and experience required to produce a game from start to finish.

At the start of the module, students looking for teams to join posted in the main Facebook group (~200 students) with links to their portfolio, experience, skill sets and what their preference were in terms of game genres to work on and tool sets.

I found early on that there were quite a few groups that had already partly formed groups with highly skilled members. I closely looked into many of these groups and as they were being led by artists or designers, they were very persistent about using Unreal Engine 4 as their game engine of choice. While the artists, animators and designers had only used Unreal Engine 4 for their other work, most programmers and myself participating in the module had no experience working with it in any capacity. I didn’t think it would be productive for just the purposes of this module to learn how to use an entirely new game engine as well as the API, so I decided to only focus on finding a team utilising the Unity game engine. I also found that some of the teams already had programmers or had left out links to team members’ portfolios.

It got to the point where I was starting to think that I should start my own, small team for the module and I ended up finding someone that was also wanting to start their own team working on a game with the Unity game engine. After considerable time reviewing portfolios, skill sets, experience, preferences and personalities, we managed to assembled together a team we’re happy working with.

In the team, I’m working as a programmer as part of a 12 person team called ‘Team 8′ (yes, a very creative name!) composed of environment artists, character artists, animators, game designers and other programmers. I have also been selected as the team leader for the duration of the project and will be managing team communications and team members’ work for ICA submissions. Compared to other teams in our module, many members of my team have good experience in their skill-sets through combinations of industry experience, completed games from other modules or even game jam entries.

As far as the programmers go, we all have good experience working with the Unity game engine and some experience with shader programming as well so our own expectations for our work are high. The animators, artists and designers are all confident they can work with the engine and setup art and animation pipelines in a reasonable amount of time.

In the following posts, I will detail the work I have done for the game as well as the team management techniques, tools and workflows we are utilising to collaborate on development efficiently.

Placement Q&A for 2nd Year Teesside Uni. School of Computing Students

After completing my 14 month placement at Schlumberger (AbTC) working as a Software Engineer Trainee and coming back to University for the final year of my degree in BSc (Hons.) Computer Games Programming, the placement officer in my school asked me to do a talk about my time at Schlumberger to the current 2nd year students that are looking to go on placement (~200 students!). It was about an hour long and I did it with two other placement students who had been in other companies with their own unique experiences compared to mine.

Due to my exceptional grades from the placement assessment by my University, I have also been made a ‘Placement Champion’ for my course as well!

With this role, the first task the placement officer asked us to complete was a series of follow-up questions for the 2nd year students to give them further insight about the whole process we went through as well as our placement experience. She has given me permission to share this and the full transcript is below:

Q&A

  1. Tell us your name, degree course and where you went on placement (company, location) and a quick overview of the roles

My name is Jordan Davidson, I’m in my 4th year of BSc (Hons) Computer Games Programming and I spent 14 months on placement as a Software Engineer with Schlumberger (AbTC) in Abingdon, Oxfordshire. I worked with two senior software engineers on software called RapidPlan that is used internally and externally by people such as reservoir engineers and geologists to help determine optimal field development plans.

Just before I started my placement, I also completed a 6 week paid summer placement through the University working at a small archaeology firm as a database and web developer.

  1. How did you get your placement / what was the PROCESS / what were the skills that the company were looking for when employing / did you find the job yourself?

Schlumberger advertised the placement exclusively through the School of Computing at Teesside and I applied for it through there. Once I had applied, I received an e-mail ~2 weeks afterwards inviting me to an ‘interview day’ on-site in Abingdon. They gave only about 1 weeks’ notice which meant train tickets and overnight hotel costs were higher than normal but they were fully reimbursed by Schlumberger. The day started with a tour of their site by an HR representative and then I got to meet senior software engineers in the group I was applying for who were very friendly and genuinely interested to meet me and the other candidates.

There were two interviews on the day. The first was a fairly standard interview where they asked typical HR questions such as how I found out about Schlumberger, what attracted me to applying etc. There were also some fairly typical questions that get asked in interviews around determining my problem solving abilities. The second interview was focused on determining my technical abilities which was primarily what my knowledge of C# was and software engineering in general. They also asked a lot of challenging questions on multi-threading and C++ but my course had already prepared me very well.

I also got to have a (free!) lunch in their restaurant with the senior software engineers and current Teesside placement students. The current placement students explained to us what projects they were working on and how their placement was going with the other members of the group answering our questions and giving very useful advice on applying for accommodation if we got an offer. The whole interview ‘day’ started at 9am and finished at 1.30pm with Schlumberger paying my taxi fare from their Abingdon centre to Oxford Rail Station for taking a train straight back to Middlesbrough.

  1. Was there a training period to the job and how was that supported?

All of the placements students such as myself (1 year internship) and the summer interns (~3 months internship) had to complete full H&S training and numerous online courses on IT security and different rules and regulations within Schlumberger. This in total took about a full working week and later on during my placement, there were a few other online training courses that were started and required completion but they only took a few hours of my time.

By the start of my second week, I was going straight into working on RapidPlan with no handover process from the previous Teesside placement student. While initially challenging, my team were accommodating towards the fact that I was just getting to grips with development even with the construction phase of my project just starting.

  1. What kind of support did you get from the company / University? / Can you identify other additional support that could have been helpful?

Through the Monthly Supervisor Checklists that were completed by my supervisors, I got a lot of regular, constructive feedback about the work I was doing, how I could improve my skillset and be more productive from day-to-day. The current and previous placement students also provided some advice on the interview day and after I accepted the placement position.

  1. What skills do you feel you have acquired from the placement that you couldn’t have got from a course? What about transferable skills?

I got a significant amount of experience working with automated testing for software development. We don’t cover any of that on the Computer Games Programming course and it’s an instrumental practice in professional software development. A course usually can’t offer a student the opportunity to work extensively with a full automated software testing stack (involving unit, integration and acceptance tests) on a live project, write new tests closely related to the underlying domain of the project, identify areas for improvement in both the extensive automated testing base and practices and really just understand how beneficial it is.

The skills and knowledge required for enterprise software development in a team on a live project with C#/Win. Forms/WPF can’t really be covered by a course in depth. While C# and WPF were taught in some capacity during my 2nd year with the Multi-Modal Interfaces module, they weren’t taught in depth as the module wasn’t focused on developing those skills.

  1. How do you think going on a placement will help you for when you go looking for a job?

I have a far better understanding of the interview/assessment process for candidates such as myself in large companies. I also gained first-hand knowledge about what the expectations and skills other industries have of people applying and working in roles such as software development outside of the games industry.

  1. What aspects of the placement did you enjoy the most?

I really enjoyed learning new skills on the job whilst at the same time getting to work on valuable tasks on a project with a large codebase. While challenging, the pace at which I learned new skills and techniques was much faster than it usually was compared to coursework.

I also enjoyed throughout my placement working with my team and the stakeholders. They had a range of backgrounds and experiences who always strived to do their best and were real professionals in their roles. All of the people I met at Schlumberger were fantastic at their job and very helpful. The company culture was fantastic and I felt that as a whole, they were genuinely striving to be the best they could be. Unlike previous roles I had in other organisations, the hardware and software that Schlumberger provided during my placement was the latest, best available and significantly helped my productivity.

I took the opportunity to do my own ‘Lunch and Learn’ presentation on acceptance testing and how we applied it to the project I worked on. It was about an hour long and presented to the software developers in my group and some commercialisation personnel (~25 people). The presentation was very successful and I followed that up by taking another opportunity to write an article on acceptance testing for an internal newsletter that was distributed to ~1000 software developers within Schlumberger.

  1. What are your TOP 3 RECOMMENDATIONS to students looking/wanting a placement?

Don’t be afraid to apply for positions in industries you’re unfamiliar with, thinking that your course/route choices will hold you back! Just before I accepted my placement offer for Schlumberger, I still had interviews pending for GE Oil & Gas and Siemens Protection Devices.

Remember to prepare for each interview for both the general interview questions side of it and the technical assessment portion. Even though I am studying Computer Games Programming, interviews were typically focused on my problem solving skills in software development and general computer science knowledge.

Don’t be afraid to apply for positions that you think are going to be challenging and highly competitive! There were two really interesting placement opportunities that I applied for where despite the fact that I wasn’t made an offer at the end of both, I felt that the time I had spent going through the assessment and interview processes for each was really beneficial. They improved my understanding of what is required from candidates to be successful in those types of positions and what parts of my skillset that I could improve to maximise my potential.