On Tuesday, 12 July 2016 at 11:27:18 UTC, Ethan Watson wrote:
http://schedule.gdceurope.com/session/d-using-an-emerging-language-in-quantum-break
My proposal for a talk has been accepted, and I'll be in
Cologne next month presenting to industry peers.
One of the things I was asking during the approval process was
whether attendees tended to be more on the game programming
side or the tech/engine programming side. They don't have that
data. Looking at the rest of the talks on the schedule, there
does appear to be a bit of a lack of technical talks. So that
pretty much settles it for me, I'm going to go a bit in-depth
on D. I've been seeing this talk as basically a sales pitch to
the rest of the industry to check D out, and going in-depth
means its time to shine.
The general gist of the talk will broadly cover what both my
talk at DConf this year and Manu's talk at DConf in 2013
covered. But to break up the flow a bit, I intend on inserting
examples of ways D saves time. Take the lighting talk I did
about a simple interpolation function - illustrate the problem
in C++, and the solution in D. But because there's options out
there for languages these days, I also want equivalent
solutions in Rust (as that is the most likely other option). I
might also add a column for Swift so I can write "LOLNO" for
each problem. Perhaps also relevant is C# equivalents as that
has quite a lot of support in game programming these days
thanks to Unity.
The examples are also meant to highlight specific language
features. The interpolation example highlights template
constraints and type inspection. And they're going to be based
on code I've either written for Quantum Break, or had to spend
an unholy amount of time getting to work in C++ recently.
Mainly here, I would like the assistance of someone that has
used Rust and can provide Rust-based examples that perform the
same task. Stefan Koch was also illustrating some of the modern
syntactic shortcuts on IRC last night, I've been programming in
a DMD that was released in 2013 for a while so getting up to
speed on modern D programming with my examples will help make
this even tighter than I can otherwise make it by myself.
The examples I'm looking at using (aiming for a spacing of
about one every 10-15 minutes in the talk, so 4 in total):
* Generic interpolation function
- Already illustrated at DConf for both C++ and D
- C++ - Unmaintainable, buggy mess
- Rust - No idea
- D - Write once, handle any type thanks to type inspection
- D feature demonstration: template constraints, type
inspection
* Check a type for an equality operator
- C++ - SFINAE whackiness, and as near as I can tell requires
separate tests to determine if an object has a member operator
and/or a global operator for comparison tests
- Rust - No idea
- D - Simple is() check wrapped in an enum
- D feature demonstration: is, static if for further use
* Expansion of code for a script wrapper to a native function
(retrieve parameters and pass to native)
- C++ - Pre-C++11 is a mess but doable. Will focus on C++11,
which requires template parameter inference, compile time
number range generation, and calling a function with two dummy
instances of objects to allow the inference to happen.
- Rust - No idea
- D - Haven't written the code, but intend on using mixin
with strings
- D feature demonstration - mixin, mixin template
* Fourth example TBD, might try to make it tie in to the
binding system which means I'll cover CTFE.
Speaking of the binding system, the plan is to open source it
for the talk. I'm in the process of cleaning it up right now
for such purposes.
Just saw this on Gamasutra:
http://www.gamasutra.com/view/news/278892/Catch_these_great_talks_at_GDC_Europe__Online_registration_closes_Wednesday.php
"Plus, there'll be an excellent talk from Remedy Entertainment's
Ethan Watson about how the studio built its hit 2016 action game
Quantum Break using the D programming language.
"D: Using An Emerging Language in Quantum Break" is a notable
talk about a language that's rarely discussed in game
development, and Watson aims to answer important questions like:
what benefits does D have over C++? Is it ready for mass use?
Does treating code as data with a traditional C++ engine work?
His talk will cover Remedy's usage of the D programming language
in Quantum Break and also provide some details on where the
studio wants to take usage of it in the future. Make sure to
check it out if you're interested in gaining knowledge of a
realistic alternative to C++, an understanding of D's real world
usage and insight into what the possibilities could be for your
own usage."
Good luck with the talk, Ethan. Looks like this will provide a
lot of visibility for D.