How have you been dealing with getting back into game programming after a break that lasted a decade? Have there been a lot of hurdles going from the DirectX 8 era where games had rudimentary physics at best, straight into development of a high end multiplayer game from the DirectX 11/12 era?asked by Oberscht
TL;DRChris Roberts says returning to programming felt like riding a bike thanks to his C++ background and modern tools, and he enjoyed it, wishing he could code more.
Well, it's actually been fun. I think some of you out there know that in the early days when we showed the prototype, and this was back in October of 2012, I was pretty much the programmer. So, I'd coded most of the stuff that we'd shown. I'd done a bunch of changes to CryEngine itself to enable us to do some of that stuff. I'd had some help from a few people like Paul Reindell who now works with us, who was at the time at Crytek and part of the support department they had there in terms of software engineers that supported the SDK, worked on that SDK and then worked with outside people like myself. But, I did most of the coding. Luckily, no one has really migrated in high end game coding to a new language so C++ was something – actually back in the early days, I think I was probably one of the early adopters of C++. I wrote Wing Commander in C and then for Strike Commander – the engine we wrote for Strike Commander was the foundation of the 3D engine that ran most of the Origin games after that, so all of the stuff we did for the later Wing Commanders, a lot of Warren [Spector] stuff – things like Wings of Glory, Pacific Strike – and some of the stuff that Andy Hollis did was originally all based on the engine that we first built for Strike Commander. So that was the first project I did in C++. We built a pretty... you know, for the time if you look back on what we did, we had a whole bunch of firsts in the graphics world. I know that a lot of credit goes to id [Software] for having 'invented 3D' but really there was quite a lot of 3D before id [Software] ever got around to doing proper 3D. So, you know, Paul Neurath who recently has just had the Underworld Kickstarter, that was successfully funded, that he is working on – he had done some pretty awesome 3D stuff. Sid Meier had done some with F19. Of course with Strike Commander, we were first one to do proper real-time 3D Gouraud shading and real-time texture mapping and if you go back and look at Strike Commander you can actually see that we had virtual cockpits all the way back in 1991/1992 which is pretty cool. But, that was the first project I used C++ – for whatever reason I always liked the brand new, shiny stuff... try out the new tech. So, back then we worked with Borland, C – and C++ came out and me and Jason Templeman who was the lead programmer working with me, we dove in and learned C++ as we went along and I quite like it. It works well for the way I think and organize things and people still use C++ all these years later.So, when I first got back into doing Star Citizen it wasn't really that different. There's newer functions – some of the later stuff like the STL stuff and the Boost stuff is all newer parts of the lexicon of C++ and various stuff you do. There's a little bit of that but the fundamentals are the same and so it was kind of like riding a bike and it was actually kind of fun because it's one of the few areas that you can sort of control what you're working on and you can make things happen. So, it's actually quite empowering and fulfilling when you say, "I've got an idea of something I want to see happen," and you go and program it and you actually see it happen that way and simulate that way on the computer you're working on... it's great.So, I had a lot of fun. Obviously I have a physics background from a long time ago so that obviously helps. And, to honest with you, tools you have now with modern engines are fantastic.. I mean, compared to what we had in the old days when we had to everything with a scratch writer or an editor – just starting out of the box with something as powerful as CryEngine was great.It's a lot of the same concepts, you can just do a lot more of it, a lot more powerful, and it's fun. So, I don't really feel like the old guy who doesn't know how to do this stuff, you know, but I definitely think my background helped me. There's definitely some stuff we're doing in Star Citizen that is really pushing things and it's cool so I'm having a lot of fun actually... I wish I could be doing more programming rather than some of the other stuff that I have to do but that's not always the case on a big project, having to direct and communicate with so many people.