The final Developer Spotlight of our four part series is here!
Before we get started, we want to say a huge thank you to everyone in the community for being so lovely to the developers we've featured in this series; they've really enjoyed speaking to you all!
We'll have a behind the scenes photo coming on Wednesday as well as a livestream with this week's featured developer on Thursday. So please put your claws together for:
Joseph Saliba, Core Programmer
Hi all,
Really happy to be here! I'm Joe, a Core Programmer here at Frontier Developments. I've been here for just over a year now, and I've been loving it; it's a great feeling to be able to say that I wake up everyday genuinely excited to come into work.
Core programmers are somewhere half-way between the engine team and the gameplay team. On Jurassic World Evolution I’ve also flexed between doing core work and gameplay work; it’s a pretty soft distinction so my general work day can vary quite a lot depending on how large the task I’m working on is, and whether it’s a bug or a feature. The things I’m working on can take anywhere between several days to a few weeks to finish depending on the complexity of the feature, so the different phases of these pieces of work will spread out over that time.
The main categories that my working time fall into are: understanding the existing codebase, which requires a lot of reading with some experimentation along with talking to the person who wrote the code where appropriate; writing new features which is what I'd call pure head-down-headphones-on coding; and communicating and deciding on the goals for new features such as: how should the feature work? This takes a lot of communication between all the different teams, and can evolve quite a bit as they are developed based on the experience of them being in game and reviewed by design.
Bug-fixing for me tends to happen as a natural part of refining early versions of a feature into its final form. When I get reports back from our QA team that I need to act upon, most of my work is involved with adding more detailed reporting into the system so that I can better understand what is actually causing the problem. If the problem is clear, or the bug is easily reproducible, then the fix is usually very quick compared to feature work. This is mostly a product of working at quite a high level in terms of the code structure. As my work builds on top of base level game code made by more experienced developers, typically the most challenging problems have been solved by them already, and I get to use the fruits of that hard labour as the building blocks for my work, saving me a lot of time!
I think of one the biggest challenges I face is the fact that dinosaurs are enormous! To elaborate a little; we need to make sure that they move in believable ways inside gameplay areas, particularly the different size enclosures players will build for them. Turning circles and inertia make programming challenges such as navigation much harder than they would be for human characters, who stand upright and are of course, much smaller! Trying to find ways to provide the behaviours that we want in the game, in the environments the dinosaurs have, whilst trying to make the dinosaurs perform in a realistic way, is a big challenge that affects far more systems than one might initially expect it to; especially when you consider that every single dinosaur is different in size and movement speed, from the Troodon to the Brachiosaurus.
As this is my first job, apart from my internship during my degree, a lot of what I’ve learned is probably applicable to any game. I've learned a lot about how to schedule and estimate how long my work will take, which is hugely important when we're working on getting updates out. I've also gained much more of a concrete understanding of how to communicate my work effectively to others, especially to the other disciplines around me; creating games that people love requires a lot of hard work and communication from everyone in the team, so it's extremely important you're able to communicate to everyone around you with ease.
For anyone who's thinking of becoming a programmer, I'd recommend you focus on the programming stuff first (and the maths before that), rather than being too focused on the games industry specifically. Coding experience transfers pretty well from non-gaming contexts into gaming. It is useful to understand game programming idioms though, so where possible, try your best to do some game projects, either in your free time or as part of a degree. I personally feel the latter can be more useful, as doing group work where one can dedicate full working days to it produces much more impressive pieces for your CV than can generally be achieved solo. We use C++ here, one of the more common languages in the games industry, so I'd recommend at least having a basic knowledge of this along with any other languages you might be studying.
When you feel you're ready to jump into the industry, I’d also practice some game programming interview questions specifically, as they’re similar to one-another, but quite different from those asked for programming jobs in other industries. You should be able to find some of these online, so be sure to do your research before the big day.
Lastly, I wanted to share one of my favourite memories of working on JWE with you: it was just after we released update 1.6, I came into the studio and sat down to take a look at the forum and Reddit to see how well the update had been received, and it was such a great feeling to see so many people enjoying the social group behaviours for the dinosaurs. I worked on that, and the feeling I got after seeing your reactions to it is something I think will stick with me for a long time.
Thank you all for having me, and keep up the memes on Reddit; I'm always surprised by how high-quality some of them have been. The whole team appreciates the effort that goes into the cream of the crop!
Joe
Before we get started, we want to say a huge thank you to everyone in the community for being so lovely to the developers we've featured in this series; they've really enjoyed speaking to you all!
We'll have a behind the scenes photo coming on Wednesday as well as a livestream with this week's featured developer on Thursday. So please put your claws together for:
Joseph Saliba, Core Programmer
Hi all,
Really happy to be here! I'm Joe, a Core Programmer here at Frontier Developments. I've been here for just over a year now, and I've been loving it; it's a great feeling to be able to say that I wake up everyday genuinely excited to come into work.
Core programmers are somewhere half-way between the engine team and the gameplay team. On Jurassic World Evolution I’ve also flexed between doing core work and gameplay work; it’s a pretty soft distinction so my general work day can vary quite a lot depending on how large the task I’m working on is, and whether it’s a bug or a feature. The things I’m working on can take anywhere between several days to a few weeks to finish depending on the complexity of the feature, so the different phases of these pieces of work will spread out over that time.
The main categories that my working time fall into are: understanding the existing codebase, which requires a lot of reading with some experimentation along with talking to the person who wrote the code where appropriate; writing new features which is what I'd call pure head-down-headphones-on coding; and communicating and deciding on the goals for new features such as: how should the feature work? This takes a lot of communication between all the different teams, and can evolve quite a bit as they are developed based on the experience of them being in game and reviewed by design.
Bug-fixing for me tends to happen as a natural part of refining early versions of a feature into its final form. When I get reports back from our QA team that I need to act upon, most of my work is involved with adding more detailed reporting into the system so that I can better understand what is actually causing the problem. If the problem is clear, or the bug is easily reproducible, then the fix is usually very quick compared to feature work. This is mostly a product of working at quite a high level in terms of the code structure. As my work builds on top of base level game code made by more experienced developers, typically the most challenging problems have been solved by them already, and I get to use the fruits of that hard labour as the building blocks for my work, saving me a lot of time!
I think of one the biggest challenges I face is the fact that dinosaurs are enormous! To elaborate a little; we need to make sure that they move in believable ways inside gameplay areas, particularly the different size enclosures players will build for them. Turning circles and inertia make programming challenges such as navigation much harder than they would be for human characters, who stand upright and are of course, much smaller! Trying to find ways to provide the behaviours that we want in the game, in the environments the dinosaurs have, whilst trying to make the dinosaurs perform in a realistic way, is a big challenge that affects far more systems than one might initially expect it to; especially when you consider that every single dinosaur is different in size and movement speed, from the Troodon to the Brachiosaurus.
As this is my first job, apart from my internship during my degree, a lot of what I’ve learned is probably applicable to any game. I've learned a lot about how to schedule and estimate how long my work will take, which is hugely important when we're working on getting updates out. I've also gained much more of a concrete understanding of how to communicate my work effectively to others, especially to the other disciplines around me; creating games that people love requires a lot of hard work and communication from everyone in the team, so it's extremely important you're able to communicate to everyone around you with ease.
For anyone who's thinking of becoming a programmer, I'd recommend you focus on the programming stuff first (and the maths before that), rather than being too focused on the games industry specifically. Coding experience transfers pretty well from non-gaming contexts into gaming. It is useful to understand game programming idioms though, so where possible, try your best to do some game projects, either in your free time or as part of a degree. I personally feel the latter can be more useful, as doing group work where one can dedicate full working days to it produces much more impressive pieces for your CV than can generally be achieved solo. We use C++ here, one of the more common languages in the games industry, so I'd recommend at least having a basic knowledge of this along with any other languages you might be studying.
When you feel you're ready to jump into the industry, I’d also practice some game programming interview questions specifically, as they’re similar to one-another, but quite different from those asked for programming jobs in other industries. You should be able to find some of these online, so be sure to do your research before the big day.
Lastly, I wanted to share one of my favourite memories of working on JWE with you: it was just after we released update 1.6, I came into the studio and sat down to take a look at the forum and Reddit to see how well the update had been received, and it was such a great feeling to see so many people enjoying the social group behaviours for the dinosaurs. I worked on that, and the feeling I got after seeing your reactions to it is something I think will stick with me for a long time.
Thank you all for having me, and keep up the memes on Reddit; I'm always surprised by how high-quality some of them have been. The whole team appreciates the effort that goes into the cream of the crop!
Joe
Last edited by a moderator: