Previously on Abylight Team Spotlight:
Our Junior Developer Albert Vegara shared how to set the goals and get the dream job. And here’s another programming career story of our Developer David Corominas, whose work you experience every time you play Mindkeeper - The Lurking Fear.
Read the episodes you've missed!
“Turning coffee into code, beer into art. That is something I read at Ubisoft where I was once for a playtest. Beer is for inspiration, and coffee is for getting work done”, David recalls. At Abylight, programming is his main area of expertise… but if logic tells you his background must be solely technical - you’re wrong! David has an art degree!
However, it is true that he’s been into coding since childhood. “I started since I was very small, I don’t know - 8 maybe, or 6. I was very curious because my father was always programming in BASIC at home on Amstrad - just because he liked it. He wasn’t a programmer. I was behind his back looking at the screen, asking questions... and then I got to the keyboard. So, after many years, I eventually studied it”, David shares.
After getting his higher education in Graphic Arts and then in Computer Applications Development, David entered college. But at that time he already had a job and, due to some personal reasons, dropped out in some time.
“In my first job, I was more of an artist than a programmer. It was at T-systems VR department, but not games. I was working on experiences: like visualization and simulations for learning or, for instance, a fair”.
The School of Art and Focus
“When I worked at a school - because later I was working at a 3D arts school - many people were asking whether it’s better to be a programmer or artist. Very few felt like doing both. I think it’s ok to do both, or first learn both and then choose”.
David equally enjoys art and programming, but his main and obvious choice has been programming. And being able to create small things in Photoshop comes handy even now.
"During the first year of this job, I also worked in parallel at EVENT-Lab, a research lab that uses VR together with psychology. One of my achievements there was to help develop an experiment (both in programming and art) that led to a technical paper. That paper got published in SIGGRAPH".
The developer confesses he didn’t really enjoy teaching, but… stayed there for almost a decade! At this workplace he learnt to focus on programming while ignoring the most obnoxious of the distractions.
“My trick was to be in a school for 9 years”, David says when asked about tips on staying focused. “I didn’t have an office, I was in a shared room with all the teachers. And every now and then someone came and said hi, or people were talking - and I needed to focus. I think I learnt how to just stay away from the noise mentally and not pay attention to whatever is happening around".
So, after the “school years”, David decided to move on and find a job to work on products that people would use and enjoy. "I just saw a job posting and applied. Then I talked with Eva, later with Miguel - just a little interview, I passed the test - and I’m here”, he says. This August David celebrates his second anniversary with Abylight.
Cool stuff takes time… like Mindkeeper!
Mindkeeper at the time of release, and the Mindkeeper you can play now on Apple Watch, iOS and Apple TV aren’t the same: the current version is way more polished. David’s level of polished! He confessed the initial version was made in a rush (please tell us you didn’t notice! :)), and what there’s now is much better and totally worth the time and effort.
“Fake!”, “what is that game?” and “is it real?” were among the most common player reactions to Mindkeeper on the Apple Watch, followed by surprise and delight.
And this is David’s fave part of working at Abylight: seeing his creations enjoyed by users. “That’s why I try to do it well. I do my best and create a polished game, one of quality. When I work on something, it can take a while. But in the end the result is what I like, that I think is 100%”.
The “doing his best and doing it well” attitude applies to programming as a standalone thing too. When David explains what coding is like to someone who doesn’t program at all, he says “it’s like solving a sudoku: you start putting numbers - and suddenly realize it’s complete. Everything fits. And that moment, that feeling - it’s magical!”
How to become a good programmer: as told by David
In order to become a good programmer, you must like it, the developer says. “The best motivation is that you have to like programming, it’s not for everyone. So, if you do like it - go ahead and learn a lot, listen to people who have experience - they can guide you. Because if you go totally alone, you’re going to bang your head against a wall for a long time. Until you realize it was simpler than that”.
David adds that the internet helps a lot, and people there can be helpful by sharing their expertise. As for him personally, he’s more of a reader than a participant in those discussions. From the teachers, David got guidance, structure to his existing knowledge and, of course, new information that directed him further in studies. And then he kept learning mostly on his own, picking knowledge here and there.
However, David believes the right community is super important too, being extra motivation: he agrees learning alone is ok, you can do programming because you like it, but it’s easier to keep going if you have company. “If you go to college or school, you have friends there, and you can share with them - I think that's also good motivation to keep learning, show them what you’ve made, and have them show their works to you. I think the synergy created in this environment is very important”.
When it comes to languages, David’s all-time favorite is C#. Recently, he started to learn Go: “It has a very readable and modern syntax. I’m starting to like the whole thing”, he explains.
In total, David knows a lot of languages. “In the end all are pretty much the same. Just the syntax is different, you need to learn how to type things out and do the small things in a particular language”.
Comment your code! David is a strong supporter of this approach, but not a fan of having fun in those comments. He keeps it as formal and relevant as possible - “almost like a robot, so that it would be useful for someone who reads it. But I do it more for myself than for others. I know that especially in big projects, or projects that are going to take a long time, you’ll go back to your earlier code, and wouldn’t remember all”.
Ghost experiences at GGJ
Gamejams are another creative outlet for our developer. One of the games he’s made earlier for GGJ is quite unconventional: it’s about a boy learning about his own experience, where this experience is pictured as himself in the form of a ghost, with the things that he did in the previous play session. “You play, and it’s impossible to accomplish what you have to do alone: time’s up! You have to start over! And then you see the ghost doing what you just did. You learn how to use that ghost to later help you reach goals. I wanted to make it a complete game, but in the end only 3 levels were made for that gamejam”, David comments.
When players enjoy the result
David’s proudest moment so far was the Mindkeeper release. It’s his first published project at Abylight!
“It’s a game I personally would like to play, just as a gamer. I’m proud because I worked on this project from the beginning”.
And even before it was an actual project! It was our Creative Director Miguel who brought Swift to Abylight - before that, we didn’t have much experience with it or SceneKit. “I started researching and doing many code snippets of how to do things that we would use later” - David recalls.
“It was done out of necessity, because Unity isn’t yet compatible with Apple Watch. If you go to the root, you know this is going to be optimal. Swift and SceneKit are more efficient than other solutions”.
“When I showed new things to Miguel, and he said he liked it - this was awesome in this project”, the developer says. David had a leading role in Mindkeeper update development - so he’s truly the keeper of the Mindkeeper code. He adds it was cool to be able to work with any code piece on the project - while in other circumstances, when everyone might be working on the same module, there’s always that fear of touching the wrong code snippet, which often makes things more difficult.
What’s David’s 2nd published project with Abylight? Come on, you know that! 😉
RC Club it is - and here’s where the developer’s artistic side came in action. While backend stuff is cool and it just needs to work, for RC Club David has been doing more visual and front-end things: the animations of the menu, the sounds… “And because I’m also from an art background - I like that! And people who see it can say it looks nice”, the developer shares.
What about gaming?
Puzzles in programming, puzzles in gaming: David is very consistent with his fave types of fun, both as a creator and a player. He admits he has the common issue of game devs - doesn’t play much due to lack of time. “I prefer exploration, solving something - even in games. One of my favorites is Braid. You’re moving as a small character who is wearing a black suit. The idea of the game is that you never die, and when you fail - the time stops and you can go backwards to try again”.
You bought the game - you keep it forever. Physical releases are David’s preference. “What I don’t like now is that everything is digital. For Nintendo Switch I try to get everything physical. Someday I’ll find my Nintendo from 30 years ago, and it still works. I insert a game, a cartridge - and it works, just plug in the TV and play! I don’t like the feeling that if I buy a game digitally, maybe in 10 years the store is down and you can’t get the game anymore. Or maybe the game depends on an internet service that wouldn’t be working anymore, and you can’t relive the game”.