Hi all, part of the discussion we need to have is define more fully our mandate. Incidentally, a paper at a meta-level on the scope and mandate (or summarizing what is said in this thread) can indeed be one of the paper we write up for submission for discussion at the SG14 calls/meetings. Please see this thread on logistics:
https://groups.google.com/a/isocpp.org/forum/?fromgroups#!topic/sg14/SOcxeUNSzQwWe have broadly described to WG21 (henceforth ISO C++ Std committee) the pain points of Games developers, but we also included what I call Common Interests from areas relating to real-time (such as flight simulations), graphics, and low latency. I have somewhat deliberately exluded embedded as there is already a tentative group being formed for that, although there is some overlap. Another group we may overlap with is SG1, Parallelism and Concurrency and SG5 Transactional Memory. That is not surprising and certainly at times, we will need to consult these groups to see what opinions they may have in our proposal.
I like to kick it off by looking at various areas of scope and goal.
However, our mandate is clearly towards improve support for
Games
Low Latency
Real-time applications
Graphics
Financial Trading
Does Financial and Trading applications fall into this through their insane need for real-time and low latency? I think so. At the Lenexa meeting when I gave the talk, several financial trading firms took immediate interest and wanted to know if we can add them to the Common Interest. These are companies from Morgan Stanley, DRW Trading, especially people involved with Quantitative (or sometimes called Black Box, or High Frequency) trading.
How do people feel about that? If we want to add financial sector, then we will need someone from the financial groups to be added to SG14. I know Bjarne is asking about it as he works for Morgan Stanley now, and he will certainly add someone to help participate. Others have too such as Nevin at DRW.
Another group are the High Performance Computing computational scientists. Hal at Argonne National Lab commented that they are also interested in intrusive containers as much as Game developers are.
Next, what about GPU and Accelerated graphics support in C++? Should we consider direct support for Accelerators in C++? There is currently very little direct support for it other then a suggestion/mention in the Parallelism TS to enable GPU support through a library call for STL (although that is just an extension) and no meaning definition of it exists.
I have spoken to Sean and know Adobe wants this.
There is as yet no direct language support for accelerators (such as Nvidia Tesla, or Intel Xeon Phi). There is already significant examples of this support in other languages such as OpenMP, OpenACC, OpenCL, and Intel's Compute and MS's C++AMP/DirectX. The recently announced Vulcan language is supposed to be another step beyond OpenGL. I have personal experience sheparding the Accelerator offload target support in the latest OpenMP 4.0 specification. But a common problem with all these is that they do not work well with C++, templates or exception (except C++ AMP)
I wonder if people would agree that Accelerator C++ language could be one of the long poles (larger goals) of SG14 in addition to many of the additions mentioned elsewhere in this forum. If we do, then one of the thing we could do is consider initial comparison for people to get familiar with all the existing industry models. I can help with these as OpenMP has been heavily involved in pushing heterogeneous computing.
Other people's thoughts on what the goals and scope may be:
When I started discussing this with Sean, he commented and seem to agree that we make this more about the Common Interest rather then just Games-specific:
"Perhaps a coming-together sort of talk, trying to point out the common ground for both game developers and others (e.g., how much of the same performance stuff we've been doing for decades is starting to become common mantra at companies like Google and Facebook, because faster == less power usage and less latency) and why we should all just get along and work towards our common goals?
The gist is that we're introducing WG21, which really does have kind of two goals on the games side: (a) get game developers interested in interacting with a committee they've classically just ignored and (b) help guide the committee towards better support for one of the largest and most profitable industries using C++ heavily.
The real-time and embedded folks are much in a similar boat, so I don't think we should be too games specific (though it's hard for me to be otherwise, given that I makes games for a living and don't do embedded work, though I could get some input from friends who've worked in both camps)."
Finally, I think one of the reason Nicholas asked the question about current C++ Games Dev/programming books is a suggestion we had about using this group to potentially write the next C++ Games Programming book. Before we do that, we would like to know what is the current status. A possible collaboration in future with multiple authors writing one chapter of a collected work would certainly be possible.
Thanks.
Other thoughts?