Report a bug
Noun, plural D's or Ds, d's or ds. The fourth letter of the English alphabet, a consonant. Any spoken sound represented by the letter D or d, as in dog, ladder, ladle, or pulled. Something having the shape of a D. A written or printed representation of the letter D or d. Find real-time D - Dominion Energy Inc stock quotes, company profile, news and forecasts from CNN Business.
D is a general-purpose programming language with static typing, systems-level access, and C-like syntax. With the D Programming Language, write fast, read fast, and run fast.
Fast code, fast.
Got a brief example illustrating D?
Submit your code to the digitalmars.D forum specifying '[your code here]' in the subject.
Upon approval it will be showcased here on a random schedule.
Support the D language
D is made possible through the hard work and dedication of many volunteers, with the coordination and outreach of the D Language Foundation, a 501(c)(3) non-profit organization. You can help further the development of the D language and help grow our community by supporting the Foundation.
DonateLearn More About The Foundation
Lots of to our sponsors and contributors.
News
Stay updated with the latest posts in the Official D Blog from February 17, 2020: News Update: Swag, Platforms, Documentation Help and More by Michael Parker.
From February 6, 2020: DConf 2020: Submission Deadline, Early-Bird Registration, and Invited Keynote by Michael Parker.
Learn
Take the Tour, explore major features in D, browse the quick overview, start with C or C++ background, and ask questions in the Learn forum.
For a deeper dive into D check out books or videos such as Ali Çehreli's free book Programming in D.
Community
Discuss D on the forums, join the IRC channel, read our official Blog, or follow us on Twitter. Browse the wiki, where among other things you can find the high-level vision of the D Language Foundation.
Documentation
Refer to the language specification and the documentation of Phobos, D's standard library. The DMD manual tells you how to use the compiler. Read various articles to deepen your understanding.
Contribute
Report any bugs you find to our bug tracker. If you can fix an issue, make a pull request on GitHub. There are many other ways to help, too!
Packages
DUB is the package manager for D. Get started with DUB, and check out the available packages.
Run
Configure linting, formatting or completion for your favorite IDE, editor or use run.dlang.io to play and experiment with D code.
Explore
Learn about pragmatic D, the DStyle, common D idioms and templates, See what's coming upcoming with next version, explore D Improvement Proposals, and don't fear D's garbage collection.
Fast code, fast.
Write Fast
D allows writing large code fragments without redundantly specifying types, like dynamic languages do. On the other hand, static inference deduces types and other code properties, giving the best of both the static and the dynamic worlds.
Automatic memory management makes for safe, simple, and robust code. D also supports scoped resource management (aka the RAII idiom) and scope statements for deterministic transactional code that is easy to write and read.
Built-in linear and associative arrays, slices, and ranges make daily programming simple and pleasant for tasks, both small and large.
The D programming language Modern convenience. Modeling power. Native efficiency.
Read Fast
The best paradigm is to not impose something at the expense of others. D offers classic polymorphism, value semantics, functional style, generics, generative programming, contract programming, and more—all harmoniously integrated.
D offers an innovative approach to concurrency, featuring true immutable data, message passing, no sharing by default, and controlled mutable sharing across threads. Read more.
From simple scripts to large projects, D has the breadth to scale with any application's needs: unit testing, information hiding, refined modularity, fast compilation, precise interfaces. Read more.
Run Fast
D compiles naturally to efficient native code.
D is designed such that most 'obvious' code is fast and safe. On occasion a function might need to escape the confines of type safety for ultimate speed and control. For such rare cases D offers native pointers, type casts, access to any C function without any intervening translation, manual memory management, custom allocators and even inline assembly code.
The @safe, @trusted, and @system function attributes allow the programmer to best decide the safety-efficiency tradeoffs of an application, and have the compiler check for consistency. Read more.
D&d 5e Dmg 38 1
OK, first of all: as was the case with the Monster Manual, Rory and my names are in the Dungeon Masters Guide! We’re credited as “Additional feedback provied by”. It’s notable that I didn’t review the acknowledgements section, or that particular spelling error would have never gotten through. In fact, since I saw early drafts of DMG sections, a third or more of the book is completely new to me.
Of the core books, the DMG benefits the most from close readings: things that were explained fully in previous DMGs are often presented in complete but compressed form. I’ll probably find things to unpack in this DMG for a few weeks.
Today I’ll be talking about page 14 of the DMG. In the 3e DMG we got, like, a chapter on worldbuilding, demographics, and settlement generation. In 5e we get page 14. This contains the outdoor campaign mapping rules, into which is encoded a lot of world demographics information. From this page, what can we learn about the D&D world? Is it more like a medieval dark age, or the early Renaissance, or is it totally ahistorical?
Page 14 recommends getting hex paper with five hexes to the inch (so about 2000 hexes per sheet, more or less.) Following in the footsteps of BECMI, the DMG recommends maps at three different scales. This time it’s Province (1 mile hex), Kingdom (6 mile hex) and Continent scale (60 mile hex).
First of all, there’s a major error in the section about combining scales: it says that at continent scale, “1 hex represents the same area as 10 kingdom scale hexes.” Wrong. 1 continent hex is 100x times the area. Similarly, a kingdom hex is the area of 30 province hexes, not 6 as claimed. It looks like this was simply an error of saying “area” when they meant “length”, and, with that substitution, the rest of the math on the page works out fine. Still, that will confuse some poor saps when they get around to making new campaign maps.
OK, on to those sweet demographics!
On a province-scale 8 1/2 x 11 map, which takes about two days of travel to traverse, the DMG says that you’d expect to find one town (population generally around 4000, based on settlement size ranges) and 10 villages (population around 500 each), which works out to about 5 people per square mile in settled lands, about the same population density as the Western Sahara. Wow! Fantasy medieval Europe is empty!
The kingdom scale of 6 miles per hex is just about standard for D&D outdoor hex scales (5 to 8 miles per hex, depending on edition). A kingdom map of a settled area will have 10 notable cities or towns; villages are not shown at this scale. Considering that a kingdom map contains 30 province maps, each of which is likely to contain a town, it’s probable that small towns aren’t shown on the map either.
Continent scale is huge. At 60 miles to the hex, you could fit Europe on one sheet of hex paper, plus about a third of Russia. If your continent fills the map, it has the same area as 3000 province maps, and it takes three months to traverse at 25 miles per day. That’d give you a population of 30 million people if the entire continent were settled, but probably it’s half wild. Apparently this matches the demographics of Europe in 650, right after the Plague of Justinian wiped out 50% of the world population.
OK, so D&D demographics match a) 650 AD, one of the worst post-apocalyptic times in world history and b) Western Sahara, a current nearly-uninhabited strip of desert.
We don’t have to do anything with this information. We can run a jolly D&D campaign with dragons, kings, and quest givers without wondering about the number of peasants in a square mile. But we can also find inspiration in the game’s parallels with Earth demographics. Here’s what the numbers suggest to me.
a) There was a recent event, probably within the last 100 years (because population recovers over a few hundred years), that killed a lot of people. Everybody still remembers it and it terrified of its return. What was it?
b) There are a lot of deserted villages. Furthermore, in every village, town, and city, there are a lot of empty houses. Land is cheap.
d) The king is happy to give you a parcel of land and a border fort when you hit name level. Why not? That border fort is sitting empty right now.
e) A lot of abandoned dungeon locations were probably thriving civilized structures within the last 100 or 200 years. For instance, that border fort the king just gave you.
These speculations are borne out by other parts of the DMG.
-Standard city size caps at about 25,000: larger metropolises, like Waterdeep and Greyhawk (or Toulouse!) are rare. These city populations are fairly low for medieval city population, but make sense in the wake of a plague that wiped out half the population.
D-mannose
-In the Wilderness section, a wilderness province contains “ruined villages and towns that are either abandoned or serve as lairs for marauding bandits and monsters.” Wilderness doesn’t have to mean old-growth forest or untamed mountains: it might also mean farms and villages given over to chaos.