11 ms·
A talk with Walter Bright about Empire
- syngrog66 5y agoI loved Empire Deluxe so much (by Baldwin & Bright) -- my favorite in the series -- that I once wrote my own private clone. in C and OpenGL. even drew all the bitmap icons and tile graphics myself. went nuts adding extra unit types. now gathering dust on a "disk" somewhere. Tell myself some rainy day I'll resurrect it...
- effingwewt 5y agoHad no idea WB also wrote Empire! Small world indeed. As so many others have said, thanks for all the good times! This was a great read, made my day remembering the 'good ol days' when I was so young and games were so fun.
- mad_ned 5y agoYou may not have played the game Empire, but if you've played any computer wargame, you've played something influenced by it. I'm very honored to have had the chance to discuss the development of Empire with Walter! As mentioned in the article, he is a sometimes-reader of Hacker News, so if people have any follow-up questions, we may just get lucky and have him drop by to answer a few.
- deleted 5y ago[deleted]
- WalterBright 5y agoWalter here! AMA!
- pixelgeek 5y agoWere you involved with the DOS version of the game? A friend in university had a copy of it on the DOS machine we used to type papers and I got rapidly sucked in after discovering it.
- WalterBright 5y agoThe character mode DOS game I wrote. The graphics one was converted from text to graphics by Mark Baldwin.
- pixelgeek 5y agoDid it still use your AI?
- WalterBright 5y agoYes.
- alisonkisk 5y agoYour track record is incredible and D seems like a great succesor to C++, sort like the Go or Rust of its day. Why didn't it ever get very popular? Is it stuck in the uncanny valley of being too similar to C, so its improvements weren't worth the cost in network effects? Is it marketing -- like Go (a better C) but without the trillion dollar corporation, and Rust without the billion dollar foundation?
- gorogue 5y agoEmpire was one of my favorite games and really got me into strategy games. I even made a clone many years ago just to practice programming. And now D is my favorite language - it just feels natural to use. So, I just want to say thanks for creating two big influences in my life. I hope you keep working on D, and for what it's worth, I do try to promote it as much as I can. I do have one question: I contribute to the D Language Foundation through my Amazon purchases and would like know if those types of contributions are helping. And are you getting the support necessary to keep working on the compiler for a long time to come?
- WalterBright 5y agoYes, every bit helps. While I took a 100% pay cut to work on D, there are other bills, like hosting service bills. We also have a few paid staff that donations and such pay for.
- holler 5y agoHey Walter, thanks for doing the interview and AMA, how cool! I was a young teen when my Dad got Empire and began to play it regularly with one of his friends. I would frequently watch them play while trying to learn the game mechanics and strategy, and then later would play the game myself for hours on end. That time watching and playing Empire was really an introduction to computing and gaming for me and would later lead to a passion for building, RTS/fog-of-war games (e.g. starcraft), and a career building software. Just wanted to say thanks! Now I need to figure out how to download the game and play it with pops.
- simonh 5y agoThanks for such a great game. I remember playing Empire on my Amiga back in the late 80s, it didn't have any of the fancy 3D graphics of my other games but I still played Empire the most. I still play a clone of it frequently on my iPad.
- WalterBright 5y agoGraphics are great for initial attraction to a game, but it's the gameplay that keeps one's interest. It's similar to movies. Special effects are momentarily interesting, but it's the plot that overwhelmingly matters.
- JKCalhoun 5y agoAnd characters.
- OJFord 5y agoThat pretty much sums up American vs. British comedy (televisual anyway) for me. US: 'momentarily interesting' (resp. funny at the time) - series of one-liners and the like; UK: character development, hard to explain why it's funny, might take 'getting into'. Green Wing for example - I thought it was absolutely absurd when I first saw it, and it is. But for some reason I went back to it (or was made to) and stuck with it for a few episodes while I learnt to love it. And now I do, it's one of my all-time favourites. And of course I've been back (several times) to watch the first episode(s) again, and they're hilarious too. Or perhaps a clearer example is the original UK The Office (Ricky Gervais) vs. the US version (Steve Carell). Same rough outline obviously, some of the same (especially early in the remake) storyline and jokes, but somehow even then the humour is very different. (I'm not hating on the remake, I enjoyed it enough to watch it all once I accepted it's different, and stopped expecting 'The Office' as I knew it. Especially once it found its own path and diverged from the same jokes - IMO - worse delivered.)
- kbenson 5y agoI think it's less that the US doesn't have those, it's just that they have both types, and they also mix them. Seinfeld wouldn't have been half as good as it was without you knowing the character and how they would react to specific situations. I think part of what you're identifying about first episodes is maybe a difference in style between the US and UK. A lot of UK comedy definitely seems like the characters are pre-baked into the writing and the actor is already mature in the role in the beginning, while in the US it feels like they've left the role a little hollow at first and allow the actors (and future writing) to evolve the role into what it will be. This can make the first episodes feel "off" when you go back to watch them, but I'm not sure it's necessarily a bad way to go if the goal is to find a really good character. It's also possible that the UK network(s) are amenable to planned out entire seasons while the US networks are more accepting of buying a pilot of a few episodes and seeing where something goes, which would favor some of these approaches in each case.
- gavinray 5y agoWalter -- you've been in the game a long, long time. One of the first (the first?) commercial C++ compilers. 1. As a 20-something whose first (real) experience coding was Visual Basic in Visual Studio 2008, I'd be interested to hear your thoughts/take on "lessons we've forgotten" or things programmers nowadays think is something new, but is just an old thing being re-discovered/re-branded. 2. Also interested to hear your take on software bloat. I grew up on Windows XP, maybe it's the nostalgia, but I feel like both the responsiveness and usability of apps has declined, despite a x1000 fold increase in computer resources. I can't help but get this sense of both awe and disgust that when I was a little kid, programs were written with so much more efficiency. The peak of absurdism for me was when I sent both an SNES emulator and an SNES game ROM as a Discord chat message attachment to my wife the other night. The ENTIRE PROGRAM took up less space than a picture of a houseplant from my cellphone! (Just 4MB, out of the 8MB limit for message attachments). What're your thoughts here? Are we doomed? -------- By the way, I <3 D. It might not have a very big ecosystem, or huge backers, but as a LANGUAGE I can think of almost nothing I enjoy writing more. (Though if there were an official LSP/tooling in-tree so that IDE intellisense worked when using UFCS syntax that would be life-changing. Currently, I restrict myself from using post-fix functions at all because they break Code-D's intellisense, so it's a waste of one of the best features =/ ) Maybe Stefan Koch's new "reflect" thing that spits out the JSON-looking AST can be useful for this? I'm not super knowledgeable though.
- WalterBright 5y agoThanks for your thoughts. I'm not sure about lessons forgotten, but there are definitely lessons never learned. One is the use of macros in programming languages. Macros are one of those great ideas that seem almost miraculous. They provide immense power to the programmer. Unfortunately, the dahk side of macros inevitably consumes the user. The macros inevitably become so confusing, pervasive and complex that the author winds up inventing his own undocumented mess of a language, unusable for anyone else. For example (one of my favorite anecdotes!) back in the 90s a friend of mine worked at Microsoft. A manager showed him a program written in assembler that needed a bug fixed. Several programmers had been assigned to it one after the other, and they all failed. It seems the original implementer, who had since left the company, had invented his own macro language using MASM, Microsoft's macro assembler. Nobody could figure it out. My friend said "I can fix that" and fixed the bug and checked it in in two hours. The manager, astonished, asked him how he figured it out. He said "I didn't figure it out. I disassembled the object code using Walter's disassembler that turns it into assembler source code, found the bug, fixed it, and checked in the new asm source code!"
- juanuys 5y agoHi Walter, thanks for your time! Do you play many games nowadays? Which ones? What do you think is going to be the next big gaming breakthrough? Or the next big genre/theme? (E.g. for economics, it was F2P/IAP, never of which I'm a fan of. Also, city building + survival is really big right now.)
- WalterBright 5y agoThe itch to write a better language & compiler than anyone else is more compelling! But I am attracted to full motion simulators that would, say, enable me to drive an F1 car without risk or much investment.
- fb03 5y agoIf you're into that, I highly recommend you looking up Force Dynamics (a friend of mine) for high quality affordable driving simulators that are really close to actually driving the Real Thing (TM) https://www.force-dynamics.com/ https://www.force-dynamics.com/
- spaetzleesser 5y agoIt's sad that we still don't have an idea how to produce high g-forces in a simulator. The feeling of going with a car through a turn at 2g is incomparable to the simulators we have. Never mind F1 cars that can corner and brake at up to 5g.
- Shorel 5y agoI wonder if there's a way to magnetically or electrically stimulate the organ inside our ears that feels accelerations. Then we would solve this, and also provide more immersion for flight simulators.
- WalterBright 5y agoIt can be done, you'd just need a big playground for the machine - about the size of an F1 track!
- devwastaken 5y agoHave you dived much into full body VR and VR social experiences?
- WalterBright 5y agoThat sounds like fun, but I've never tried it.
- codyguy 5y agoHey Walter, What were your "salesman" lessons from Empire? What would you do differently today?
- WalterBright 5y agoI'd do everything different today. Being a nerd, I had absolutely terrible social skills and did everything wrong. I couldn't sell a $20 bill for $10. I've been trying for decades to do better with that. But the best lesson is to associate with someone who can sell.
- justin66 5y agoHey Walter. I played a lot with the DOS version of the game that Mark Baldwin worked on (perhaps also a later windows version, although I probably just played the DOS version on Windows). Two things that struck me as "off" at the time were the way calculating the distance when moving units wasn't as consistent or intuitive as it could be when moving diagonally because the board consisted of squares, and that multiple units couldn't be parked in the same place unless they were in a city. Are these things you'd handle differently today? Are there any games that you think handled this better? A hexagonal board layout seems like it might be a better approach to calculating distance between points, but what about the limit of one unit per one square on the grid? I love the idea of allowing players to supply a bot to compete against other bots.
- WalterBright 5y agoA hex grid certainly addresses that problem, but since I was limited to text, squares it was! The one unit per square comes about because it is very difficult to see a "stack" of units in one location. It also made combat trivial, just move into the opposing force's square. No special commands needed. This wound up working fine, and I was always reluctant to mess with game rules that worked.
- a1369209993 5y ago> A hex grid certainly addresses that problem, but since I was limited to text, squares it was! FWIW, you can do hex pretty well as: # # # # # # # ()()()()()()() # # # # # # or ()()()()()() # # # # # # # ()()()()()()() although unless you're using CJK-width characters, the visual design can be a bit nontrivial.
- WalterBright 5y agoI was also dealing with a 24*80 display. While your idea works, it would cut the size of map that could be displayed in half.
- 5y ago
- Torwald 5y agoWhy can one city just build one unit at a time? Is there a game design rationale behind this?
- WalterBright 5y agoToo many units too fast just seemed to create a logjam where then you'd have your units attack each other just to get them out of the way.
- Torwald 5y agoThank you. This is something the Civ5 designers should have known.
- JaDogg 5y agoWhat kind of projects I need to do and books I need to read to be a good programmer in your point of view?
- WalterBright 5y agoWriting games are a really fun way to learn to program. The best way to learn how is to find an open source game that you like, figure out how to build it, then start modifying the game to your personal taste. Learning the basics of writing compilers will be surprisingly helpful for all kinds of programming tasks. The Dragon Book is the best: https://www.amazon.com/Compilers-Principles-Techniques-Tools-2nd/dp/0321486811 https://www.amazon.com/Compilers-Principles-Techniques-Tools... Too bad the prices are so high for it. The original version is much cheaper: https://www.amazon.com/Principles-Compiler-Addison-Wesley-information-processing/dp/0201000229 https://www.amazon.com/Principles-Compiler-Addison-Wesley-in... Learning calculus is a great way to train your mind to think better.
- JaDogg 5y agoThank you for the reply. This is valuable and actionable advice.
- cybernautique 5y agoHello Walter! I'm interested in programming languages and the design of compilers. I'm relatively novice to programming, but languages have long captured my imagination. Three questions for you: Do you have a blog where I can read about your compiler escapades? have you any advice for the aspiring novice? which is your favorite language, and why?
- morphle 5y agocybernautique, we can't contact you on your email listed on your profile {username} (at) bitsoflore (dot) net Please contact us on morphle (at) ziggo (dot) nl
- cybernautique 5y agoI've replied from a different email address. Please check your spam/junk folder!
- WalterBright 5y ago> where I can read about your compiler escapades? I don't really have a blog, but when I do write an article I'll link to it on twitter: https://twitter.com/WalterBright https://twitter.com/WalterBright A collection of articles I wrote a while ago: https://www.digitalmars.com/articles/index.html https://www.digitalmars.com/articles/index.html Presentations: http://www.walterbright.com/ http://www.walterbright.com/ And, of course, the Emperor who will get mad and put another continent under iron control if he's not mentioned: https://twitter.com/classicempire https://twitter.com/classicempire
- deleted 5y ago[deleted]
- WalterBright 5y agoAdvice for the novice. Hmm. Best advice I can give is ignore your critics and everyone who tells you it can't be done, you're not good enough, you'll inevitably fail. Market research has always led me astray. Making things that simply please myself have been far, far more successful. Which is my favorite language? D, of course! As for why, it's the language I always wanted to program in, though I didn't realize it and it was a process to discover it.
- tombert 5y agoHi Walter. I was curious about your opinions on some of the mathey functional languages out there, like Haskell or OCaml or F# or even something more elaborate like Idris or Agda. Do you feel like they should have a place in industry, or just high-level self-indulgence?
- WalterBright 5y agoI took Erik Maijer's course on Haskell, and enjoyed it quite a bit, though I haven't written a line of Haskell. D makes available a number of functional language things, like transitive immutability, purity, and lambdas. Haskell went a bit too far with minimizing the syntax, as redundancy in syntax makes for better error diagnostics. Otherwise it's a nice language. I attempted to write some code in OCaml, but failed miserably. My (short) programs would fail with incomprehensible (to me) error messages. Trying different syntaxes just produced other messages. Other than the OCaml book, which I had, I couldn't find any helpful information online. I gave up on OCaml. OCaml may actually be a great language if it had a better compiler and far better documentation. I know nothing about F#, Idris or Agda.
- nailxx 5y agoHello! Came here just to say thank you for my happy professional childhood. I used to closely follow D development since DMD was 0.48. It introduced me to some basic concepts: module system, cow, unit tests, invariant checks, which were somewhat foreign to C++ devs at the time. I remember how all the mailing list waited for 1.0 finally after 0.99 and… oooow… “announcing DMD 0.100” :) I was 17 at my first job ever, it was in gamedev, and I promised everyone that D would be the next thing after that clunky C++ in two (maybe three) years. That’s how we should make games \m/ Sadly, it didn’t come to that extent (marketing?). But I am glad to visit dlang.org from time to time and see it evolve, and Walter Bright still rocks, 20 years after.
- deleted 5y ago[deleted]
- int_19h 5y agoD is one of the few mainstream languages today that support Design by Contract (https://dlang.org/spec/contracts.html https://dlang.org/spec/contracts.html), and I remember it being a prominent language feature all the way to pre-1.0. The only other major language I can think of that's still actively used is Ada in its more recent incarnations. Eiffel didn't get much traction, and .NET dropped System.Diagnostics.Contracts recently due to lack of usage. C++ had some proposals that didn't go anywhere, if I remember correctly. Java has some AOP-based third party solutions for it, but nothing is in the core language, nor any plans for it. Why do you think that is? I don't see what's wrong with DbC conceptually, and having (effectively) formalized specs helps both document the code better, and catch bugs.
- mhh__ 5y agoPeople don't bother using them. Walter gave a hits & misses talk a while back and I believe he classified contracts as a miss. I do really like them. In certain situations they are actually useful to the optimizer too, saves some branches on array length alignment for example.
- int_19h 5y agoYes, but why people don't bother using them? It can't just be an aversion to verbosity, since people do write unit tests - many of which could have been contracts instead. And it seems like there's increased interest in preventing bugs through more rigorous static code analysis these days (Rust etc), so why doesn't it come up in that context?
- WalterBright 5y agoPeople find it easier to just put asserts into the main body. The distinguishing feature of Contract Programming is how it handles inheritance. But OOP isn't as pervasive as it used to be.
- int_19h 5y agoIMO the key insight of contract programming is that contracts belong to the interface; that's exactly why asserts in the main body don't cut it. It needs to be where it's versioned as part of the interface, where the tools treat it as such etc. OTOH contract inheritance in OOP is really something specific to OOP; but contracts are quite useful even without objects in the picture (e.g. in Ada this is probably more common than not).
- acdha 5y ago> WB: Empire has caused many students to flunk out, and even a few divorces. I've received some angry emails over these. This part resonated: my father had various issues over the years (we suspect undiagnosed depression but he refused care) and Empire was one of the games he'd spend days on. Growing up, it took me a while to realize that the problem wasn't the game but the personality trait which lead to that behaviour cropping up anywhere possible. I found the mention of a Wang word processor interesting as that was one of my dad's employers. They apparently had quite a few management issues but he had some stories about one of their better salespeople — this one guy apparently had legendary expense claims but was also frequently the top performer in revenue. When word processing was a department in a business, it was often run by an older woman who'd come up through the ranks and while they had a high-sounding title they often weren't given a lot of respect by the other department heads and a lot of the other vendors more or less followed that with a take-it-or-leave-it approach. This sales guy would do things like rent a helicopter to take someone from LA to lunch on Santa Catalina to discuss a deal or see how things were working out at an existing company — simultaneously far more than the internal rules allowed but also a tiny fraction of the profits they made from a major company buying Wang hardware globally.
- avgcorrection 5y agoI thought this was gonna be about Bright’s geopolitics.
- WalterBright 5y agoNobody cares about my political opinions :-)
- pwdisswordfish0 5y agoThe Computer History Museum really needs to do an interview with Walter to add to their oral histories series. pls halp.
- dang 5y agoHere's Walter's comment which the OP refers to at the beginning: https://news.ycombinator.com/item?id=28658090 https://news.ycombinator.com/item?id=28658090
- mindcrime 5y agoGreat interview! I've always thought it was really neat that Walter posts here semi-frequently, and it's really fascinating to get even more of a peek into the mind of such a creative individual. Now I really need to get serious about starting a project in D so I can learn it properly...
- WalterBright 5y agoI still have plenty of critics :-)
- B1FF_PSUVM 5y agoPerhaps from people with a grudge about those sleepless "one more turn" nights ;-) I take it as vaccination against World of Warcraft, etc. Thanks, Walter
- WalterBright 5y agoYou're most welcome!
- wolverine876 5y ago> My interest in Empire is not so much playing it anymore, it's devising a better computer strategy. I'm a lot more experienced in how to do such things today, and the temptation is strong to go do it. But I need to focus on my compiler stuff. Please, karma grant me this wish: ...