News Meet the Team #1: Mark Allen (Programmer)

Status
Thread Closed: Not open for further replies.
Yup.

In coding, you add ++ to the end (or beginning, there's a difference, but let's save that for another time) of a variable (thing that holds a value) to add one to it. C++ is C, "plus one".

Meanwhile, C# is the next note up. They represent two different evolutions from the base language C.

Pfft. They are all derived from machine code anyway :p
Besides I use butterflies... http://xkcd.com/378/
 
As someone who started as a 6502 assembler programmer, and now develops C :(

Oh Thanks! now just spent all night browsing C (sharp) on my mobile.
Spent years on 6502 loved RISC then refused to buy any games for the PC unless compiled with Watcom (4wd) and flat memory maps. The joys of having global variables, just remembering where you put them. Even my lecturers couldn't sort out PC paged memory.............2013 having 64bit addresses.
Now I cannot remember my age.
 
Possibly...I did consider this initially but figured not everyone would be interested in slapping their faces up on the internet. Especially with the community's current obsession with Photoshopping members of the dev team. ;)

If you can't take the heat, stay out of the kitchen. ;)

Very interesting that you're using C++ and SVN rather than C# and VS/TFS - any reason for that other than licensing costs? We view C++ as a 'legacy' language.

Cheers,

Drew.
 
Re: The Dev team worrying about having the mickey taken ...
I think it's a case that, if we tease, it means we like you.
I personally, wouldn't want to tease anyone I didn't like, or I thought would be upset by it.
 
Feedback: That was a cool interview. And props to our manager (well, he is a "community manager" and we're the "community", right?) for this idea. I also think that the decision to *not* have pictures of them was the right choice.

Question for Josh: I think I posted this before, but just in case...
When designing / prototyping concepts for game assets, do you (not just for this game, but any game) tend to look towards fictional art or realistic/real-world art for inspiration?
 
Very interesting that you're using C++ and SVN rather than C# and VS/TFS - any reason for that other than licensing costs? We view C++ as a 'legacy' language.
C# and the Visual Studio system are reputed to be more "bloating" than the more streamlined C++. For game programming the "serious" developers are loyal to C++ because it has a smaller footprint when its compiled and its memory management and garbage handling are not part of link libraries, so the developers can develop their own ones. I've never heard any game developers say "Ooh, use the Microsoft platform! It's SOOO good!" (apart from XBox developers).

I think C++ gives more scope for multiplatform development as well.

Personally, my workplace prefers VS, C# and SVN - TFS is OK, but there are just too many complexities with it. SVN is simple, quick and easy to use. Some guys in the northern office use TFS but their opinion is that it's certainly full of features, but the added levels of complexity mean that if something goes wrong it's a nightmare to sort it out.

:)
 
Question for Josh Atack

Question for Josh Atack
Have you thought about how logos can look three main factions of the game? (Federation, Empire and Alliance)
What thoughts come to you during the development of these small images? After all, they need to fully visualize the characters of the three factions.

Review about the interview with Mark Allen.
Thank you very much for answering questions! And a special thank you for your answers after the interview, it is important to know (for me) that the developers are the same people as we are, and are participating in the discussions on the forum.
As a self-taught designer, I often meet with a situation where I create a product, but due to some bugs have to rewrite it, sometimes several times. Since you are new to the network application architecture, whether you have been such cases, that the core of the network architecture had to be rewritten to support more functionality?
 
Last edited:

nats

Banned
Cor I can remember asking for this kind of thing waaay back in the Kickstarter along with a tour video of the Frontier offices. Pics would be great if we are to put a face to these features which I think is essnetial myself, even though getting your picture taken for these kinds of things is extremely uncomfortable.
 
C# and the Visual Studio system are reputed to be more "bloating" than the more streamlined C++.

C# doesn't compile down to "native" code - i.e. when you write a program in C# and compile it, it needs an additional step to make it run on your computer. That step is the .NET Framework. This is called "managed code", and Java works in the same way (C# was developed by MS as a direct response to the emergence of Java). In other words, it's not great for speed critical applications like games.

C++ is different, because although you can use it in a managed framework, it will also compile down to raw machine code if you tell it to.

As for TFS - we use it here, and the main advantage compared to SVN is the integration of workflow & source control. Issues are raised, tasks are created, and that is directly linked to any source checkins. You can get much of this in Visual Studio using SVN, but it requires a 3rd party addin.
 
Thank you for an interesting interview, Mark and Ashley. I'm looking forward to the dogfighting - I hope it's seat-of-the-pantsy :)

For Josh Atack: how are you developing a style for the Alliance faction in ED? Are you going for something distinct from the Fed and Empire looks, but coherent? Or are you aiming for an eclectic mix?
 

Mark Allen

Programmer- Elite: Dangerous
Very interesting that you're using C++ and SVN rather than C# and VS/TFS - any reason for that other than licensing costs? We view C++ as a 'legacy' language.
.

There's a variety of reasons we prefer C++ over C#, One simple one is familiarity and pre-existing code, there's the ever-prevalent argument over memory usage/overall performance/etc which is too big to address here. I'm going to pick out two of the reasons, just to keep this post sensibly sized! (incidentally, do you mind if I ask what field of development you're in?)

Cross platform compatibility:
C# via Mono can run on most things, but in many cases won't be supported via the platform owner as much as talking natively to their C/C++ interfaces, whereas writing in C++ we can tailor the code to run on anything from an iPhone to a PC to consoles from different vendors spanning several generations, and expect it to be supported.

Low level access (especially cache and SIMD):
Certainly in the majority of cases you don't need to do detailed optimisation, in games you still do in various places. in tight loops we will occasionally make platform specific optimisations based on knowing how large cache lines are and how far in advance they can be prefetched. Or in the case of SIMD code, as far as I'm aware it simply doesn't exist in C# - according to a brief google (and I'm no expert on the language I'll admit) SIMD is starting to see use automatically by the VM on some platforms for combining simple operations, but for the vast amount of spatial code we write I've made extensive use of the hardware implemented (or at least microcoded) cross/dot products, shifts/permutes, vector length, etc - which end up giving order of magnitude speedups to intensive maths code.

In time as the VM improves these issues may be swept away :). I'm a big fan of the runtime-guided optimisations both the Java and C# VMs do, and in the majority of cases they do make it easier to write code that is fast with far less effort. But if you want to make the effort to get past fast into Blistering (or up into Ludicrous Speed!) - you need something else.


Review about the interview with Mark Allen.
Thank you very much for answering questions! And a special thank you for your answers after the interview, it is important to know (for me) that the developers are the same people as we are, and are participating in the discussions on the forum.
As a self-taught designer, I often meet with a situation where I create a product, but due to some bugs have to rewrite it, sometimes several times. Since you are new to the network application architecture, whether you have been such cases, that the core of the network architecture had to be rewritten to support more functionality?


You're very welcome :) - It's a pleasant change for me as well, the projects I've worked on previously have all been under much tighter NDAs, it's nice to actually be able to interact with our players!

I end up rewriting code a great deal on the gameplay side where things change a lot based on iteration and feedback. You build things to be extensible but knowing a lot of it will have to be refactored/replaced at some point. Sadly without making the first version there's no way to tell which bits will need to be replaced!

The underlying network code I've not been significantly involved in, that was developed while I was on other projects and is structurally solid by now, with a few bugfixes as they come up. I can't really comment on earlier development of it.
 
Last edited:
Thank for this interview series that starts with Mark Allen. Very good idea to Ashley, that allows an additional immersion in Elite environment. Series concerning the team, to collect, for the history of ED (with all the other good things: wallpapers, videos, newletters ect ...).
 
Many thanks to Ashley for the great concept and to Mark for not only answering the questions but also contributing on the thread subsequently. Really interesting insight especially for me working for a software house albeit in a very different market space.
 
Late question to Mark:

Assuming that you work with your COBRA tool. Can you explain how scalable it is? How connected to recent (PC) technologies it is (e.g. what version(s) of DirectX it is compatible with, how easy do you switch from a 32 bit to a 64 bit executable?)

Thanks!
 
Status
Thread Closed: Not open for further replies.
Back
Top Bottom