Aeonix Bug Fixes & Minor Features
- Details
- Category: Code
Just a quick update, I managed to track down the pathfinding issue mentioned in the previous article, it was down to a missing check for invalid navlinks during neighbour exploration. It wouldn't have been particularly noticeable as there are plenty of valid navlinks that would be preferred during exploration, but in the case where the path was completely blocked and the pathfinder was forced to keep exploring until it found this issue which only happened at higher (non-leaf) node layers and would be able to jump over obstacles.
The value of creating debug tools! It doesn't just look cool having a visual demonstration of masses of exploration in the nav volume, it turns up issues like this.
I've got a few little optimisations I want to make to the pathfinder still, then I'll be turning my attention to making a proper flying path follower that smooths and optimises the agent movement even more than the already optimised paths do. Ultimately this will lead to work on swarming and avoidance features which are leading towards a tech demo I've had in mind for some time.
Keep an eye on Github for updates :)
Aeonix 3D Navigation New tools & Bug Hunting
- Details
- Category: About
Highlighting some more new tools and improvements in AeonixNavigation:
- Fixed various performance issues with debug line rendering in the editor
- Adjusted pathfinding heuristic calculations to allow balancing between Euclidean & Velocity methods
- Added batch testing actor for visualizing large batches of pathfinds
- Fixed octree visualisation rendering so you can view the voxel structure in the editor again
The batch testing actor has been useful, it's already found a bug where for some reason the pathfinder is able to find a way through a seemingly solid wall of voxels. I will need to dive into adding some more visualisation of the octree link structure and inspect the pathfinding exploration code to find out what's happening.
A short video covering these below :
Aeonix Navigation Feature Update
- Details
- Category: About
I've been putting some feature enhancements into my 3D navigation system for Unreal. Aside from usual maintenance (compatibility with 5.6) there are some nice new debugging and path optimisation features included, such as:
- Debug actors which provide realtime visualiation of a path between them
- Various minor tweaks to debugging UI
- Addition of the 'Velocity' A* heuristic which tends to avoid sharp turns, and makes generally more pleasing paths
I've recorded a short video covering some of the main improvements to path optimisation:
More updates to come!
Graduate/Junior Programmers - How To Prep For An Interview
- Details
- Category: Blog
Following up on my previous article about how to get an interview for graduate or junior programming positions, this article will provide some insight on what you can expect at an interview.
This has to have a large caveat, that interview experiences can vary massively depending on the studio, and the interviewers, but I can give some general information based on my experiences having done this at several companies, but bear in mind, this is much more a personal take on my part. Your experience can and will vary.
By this stage, it's likely you will have completed a technical programming test, and I will have reviewed your submission before the interview and taken notes. I'll also have looked through your portfolio and jotted down a few things to quiz you on.
First up, try and relax (easy to say, I know). If you do get nervous and a bit flustered, it's totally fine to ask for a moment to compose yourself and reset. Have a bottle of water to take a pause with. As a hiring manager, I am very aware that the interview environment is NOT the same as a work environment. I have personally hired someone that had quite a meltdown in interview, but I could see it was nerves and they were otherwise a strong candidate. I will take the pressure into account.
You're not going to have much work experience, so we won't spend much time on your CV. I'm not hugely interested in any of your non-games experience or part time jobs, but anything that shows me you can work in a team environment is a positive.
I will start asking questions of your coding test/portfolio code. I'll treat it like any other code review and if I see things I don't agree with, I'll ask why you've done things the way you have to try and get an understanding of your thinking. I'll also pick out things in your code that I think are really good, and make sure that you know why it's good. I will figure out quite quickly if you've cheated and used AI to generate your submissions 😉
It's hard to put a comprehensive list together, but some fundamentals I'll want to establish you understand in C++
- Scope and lifetime of objects and members
- Constructors and destructors
- Stack vs heap allocation
- Common containers (vector, map, list etc.)
- Strings and issues related to use of them
- Alignment and padding
There are some relevant topics that you can get bonus points for demonstrating an understanding of, such as:
- For Unreal roles, understanding the problems of using lots of blueprints and/or object ticks, and strategies to mitigate them
- An understanding of object-oriented vs data-oriented programming
- Tools and methods for finding and fixing a framerate hitch
For graduates, I'll ask about your group projects. I'm not going to focus on your individual contributions, but will ask some questions about your experience of working in a team environment. This is where you can quite easily get yourself in the 'No' pile. Game development is a difficult profession, and needs lots of people to work together in a highly pressured and dynamic environment, so the ability to play nice with other people is absolutely non-negotiable. Launching into a rant about how other people weren't pulling their weight or otherwise having a moan is not going to score you points. I will probe you on challenges you faced working in a group environment, but what I'm really interested in is how you responded and how you resolved the situation.
Depending on timings, I'll put a few general tech question to you, about game engines, recent games, cool tech etc. A warning here, arrogance is an extremely undesirable character trait in anyone, but especially in programmers, and even more so in very inexperienced programmers. Giving me your confident assertion that feature X in engine Y or game Z is garbage because you did something better in a uni module or tech demo, is not going to go down well.
Lastly, I'll always finish with giving you an opportunity to ask questions. Make sure you have a few, it looks very poor to not even have a couple written down, as though you've not bothered to prep.
Page 1 of 25