AI Game Programmer Brings His Experience to Bloomberg

Technologists bring unique perspectives to their jobs based on previous experiences, especially here at Bloomberg. David Saltares, a software developer based in London, has experience in high performance real-time systems, but he also enjoys working on games-related projects in his spare time. We sat down with David to learn what an early career in artificial intelligence programming for video games has brought to his role at Bloomberg.

1) What’s your current role at Bloomberg?

I joined Bloomberg’s Real-Time Monitors team just over a year ago as a Software Developer, based in London. Our team is responsible for a highly customizable market monitoring tool that supports formulas, advanced formatting and real-time sharing among many other features. Specifically, I work closely with the Mobile team to enhance the user experience of our application on mobile devices.

 

David-Saltares-592x273

2) How did you get into gaming?

Gaming was an important hobby for me as a kid and still is today. That long-held interest, combined with my passion for building complex interactive systems, made a career in the games industry an obvious choice. Before joining Bloomberg, I spent two years as an Artificial Intelligence (AI) programmer at Crytek working on an open world first person shooter game and six months at Sony developing a multimedia application for PlayStation 4.

3) What drew you to Bloomberg?

Unfortunately, the games industry is quite unstable. It is not uncommon for companies go bust and many projects are repeatedly delayed or get cancelled after years of development. What ultimately drew me to Bloomberg was that I wanted to work on big projects applying cool technologies that actually got released and were actively used by as many people as possible. I also wanted to be part of a diverse environment where individuals can make a strong impact.

4) What is the biggest difference between the developer approach for gaming and what you do here at Bloomberg?

Games are all about the experience, which sometimes can be hard to describe. Whole gameplay systems are implemented only to have them thrown away after playtest sessions evaluate them as not fun enough. Very much like in films, smoke, hidden tricks and deception are preferred to more realistic simulations. A lot of my experience as an AI programmer involved finding cheap ways of delivering convincing characters.

There is no smoke or deception in Bloomberg software. Here, is all about data throughput, accuracy and availability. Although we also build software iteratively here at Bloomberg, a lot fewer features are entirely discarded. It is significantly clearer when a piece of functionality would improve quality, eg. by improving the client’s workflow, and it is mostly a matter of finding the best UI for it whilst staying performant. Bloomberg covers a very diverse domain set: data delivery and analysis, online news, TV, philanthropy etc. With the exception of the three big console companies (Sony, Microsoft and Nintendo), there is a lot less going on at the typical games studio. I certainly enjoy the opportunities to take part in other activities such as supporting recruitment, contributing to open source, working with charities, education partners and so on.

5) What is most similar? 

‘Triple A’ games – an industry term for those games with the highest development budgets- are huge endeavours that involve sizable cross-discipline teams comprising programmers, designers, animators, artists, project managers, and the list goes on. They all speak different languages, which makes being able to communicate with your peers somewhat tricky but absolutely essential. The same applies at Bloomberg, where any software project involves collaboration with a diverse cross-section of international teams, from heads of business and product to user experience specialists, sales teams and, of course, other developers.

Large game projects typically use C++ for performance critical systems such as rendering, physics or core AI whereas game specific logic often use higher level languages such as C# or even scripting languages like Python or JavaScript. Similarly, C++ is leveraged at Bloomberg to remain performant. We even have a say in the future of the language thanks to our presence on its standards committee. Scripting languages are used at Bloomberg for client applications, quick prototyping and testing. Both worlds are definitely very challenging in their own way.

6) Can you briefly describe the open source mobile game development platform you work on (part of core development team) and how it is being used? 

Libgdx is a very popular open source, cross-platform games development framework. It allows developers to write a 2D or 3D game in Java once and effortlessly release it on Windows, Linux, OSX, Android, iOS and browsers. The project is incredibly active on GitHub, it has been used in thousands of games and there are zero strings when it comes to using it: free, full source access and no royalties involved.

As for my involvement with the project, I worked on its 2D maps API, often review code from our multiple collaborators, published a book and occasionally talk at conferences.