This allowed the artist (me) to paint the map to make land masses. As a side note, we did the artwork between missions in a clever way too. The images like the dragon rider [at the start of this interview] were done in 16 color EGA first then painted over to expand each of the 16 colors in a range of 16 values for CGA. Essentially if you take the top 4 bits of the byte it was the 16 color EGA. This target system was a 6 Hhz PC/AT 80286 with CGA graphics (320x200, 256 color mode 13h.) which still required a small window for a decent frame rate. The player could select detail levels to be wire frame, looking a bit like battle zone, all the way up to many fractal levels of detail. You could also choose to represent dragons as polygons or bitmaps.
Dungeons & Dragons games have a natural home on computers. Not only can they perform all the dice-rolly number-crunching and keep track of character sheets and the like much faster than in traditional pen & paper gaming, there’s also always been a strong crossover in the D&D and computer aficionado demographic. I spoke to Louis Castle, co-founder of Westwood Studios and 30-year games industry veteran (which I interviewed him about right here on Steemit) about his early experiences developing D&D videogames. Read on as he shares his memories, including both design and technical details on his own favourite D&D title: DragonStrike.
What was the first D&D computer/video game you remember playing? Can you describe the experience?
Louis: The first officially licensed D&D game I played was the Advanced Dungeons and Dragons Pool of Radiance Gold Box game. However, my involvement goes back a bit further than that. In 1987 when SSI was pitching to get the D&D license they were up against EA and other powerhouse publishers that were sure to have fancy demos. Westwood was contracted to create a 3D point of view dungeon. I created a 3D dungeon crawler tool set that used Karnaugh maps to deal with occlusion and prevent over draw for the 3D POV character based system used on the Commodore 64.
SSI was able to demo a fully working 3D dungeon, with tools, which we were told helped them to win the contract for D&D. The same logical system was used for years on most of the Gold Box games and even a few other titles.
What is your favourite D&D computer/video game of all time, and why?
Louis: If I can pick my own favorite D&D game, it would have to be DragonStrike. I really wanted to work on a flight simulator so Weswtood pitched the idea to SSI to make a Dragon flight sim. It was great fun to create the all assembly true 3D fractal tech. I also did the design, story and some of the art.
One of the most exciting parts of working on DragonStrike was that Westwood's story became part of the Dragonlance Canon. Many of us were huge fans of the Margaret Weis and Tracy Hickman books so it was a great honor to thread our game into their world.
I don’t see you or Brett Sperry credited on many of the Dungeons and Dragons games made by Westwood. Which D&D titles were you hands-on with for the development (be it programming, writing, design, whatever)?
Louis: That's a big list. Brett and I did not officially credit ourselves on all participation of every game done by Westwood but each of us had a hand in just about all of them.
Thanks for all the great games, Westwood.
I did the core 3D engine tech used by most of the Gold Box games. I worked on a few design items for Hillsfar like the lock picking. I was the lead designer on Hollowworld [Warriors of the Eternal Sun] and did most of the story direction, some programming and art direction. On DragonStrike I wrote the core tech, did the main design and some of the art. On Eye Of The Beholder I was in a technical support role and worked on game balance and art direction.
DragonStrike was released to great acclaim from both press and critics, selling amost 35,000 copies.
So you mentioned DragonStrike as your favourite – let’s talk about that! Where did the idea for the game come from? Were you guys (and SSI) just doing whatever could be imagined that fitted into the D&D license?
Louis: DragonStrike started on the PC as a full 3D flight sim and was ported to the Amiga. Pony Canyon licensed the catalog of D&D games from SSI and hired Westwood to make an NES version. The NES game was a top down scroller that was an arcade game
DragonStrike on the NES was a
very different experience.
I pitched the original PC game to SSI and TSR because I wanted to write a 3D flight simulator based on fractal world generation. The pitch was to give players the feeling of soaring over Krynn on the back of a dragon. There were many of us at Westwood, including myself, that loved the Dragonlance world so it seemed like a great idea. State of the art of in flight simulators at the time was a flat ground plane with lines on the ground to represent airports or roads. I wanted full 3D worlds to make the game far more entertaining.
I started with a “full screen” height map of the world. Space was very limited on these older systems both in memory and on media. The height map was used both in the game as a graphic and as the actual data for the world map with each color representing a height.
Krynn during the War of the Lance – this image was used both as a world map and as height data.
Can you remember some of the challenges with creating a dragon flight sim and not just a normal aircraft flight sim?
Louis: To make the world sufficiently large there was not enough memory to store a mesh for anything of a reasonable detail level so I generated a fractal world one quad at a time, from the back to the front of the view frustum, in real time. This allowed for me to offer many levels of detail, nearly endless, based on the power of the PC the game was running on, by rendering many hundreds or even thousands of polygons without using much memory. You can see the quads as a wireframe over the solid shaded polygons in image. The entire math libraries were done in fixed point math since floating point was not available on enough PC models in 1889.
Unfortunately the low end system we were required to support was a 4.77 Mhz 8088 PCXT which could barely clear the screen more that 4 time a second. I decided to render the world into a window to get the frame rate up rather than overlay GUI on the screen.
DragonStrike’s box art – Commodore 64 cover shown here. Image from Wikipedia.
So, do you mean you found a way for one image to render in VGA, EGA and CGA according to the first x bits of each byte?
Louis: Yes. VGA 320x200, 256 color Display is a bit more detailed to explain. The image was stored in a compressed file using a modified LZW lossless compression combined with run length encoding and a very simple predictive algorithm. The same core code was used later for the data streams of VQ (Vector Quantized) codec used on C&C. The compressed file allowed for much faster loading and the assembly decoder would decide the full byte for VGA and strip the low 4 bits when decoding to EGA resulting fast loading and display from a single data file.
The compressed VGA files were always smaller than the EGA source would be (although in theory they might have been bugger, just never happened) and the decoder could use the same buffer for loading and decoding, essentially decoding the compressed data loaded into the end of the buffer back into the beginning of the buffer. For the compression geeks out there the code book was partially loaded in a scratch buffer to guarantee no data overrun and also to ensure proper word aligned data for faster data fetching of the most and last used codes. This same scheme was used for virtually all graphic assets.
“You can see the quads as a wireframe over the solid shaded polygons in image”
3D models were stored as vertex lists with the different key frames maintaining the same vertex order to allow for faster a faster Lerp when animating. The game loop ran in an interrupt while the graphics rendering was done "as fast as possible" which resulted in a highly variable frame rate depending on screen complexity. This allows for very fluid visuals on the target system when flying about the world and a much more choppy experience when in combat with lots of dragons. I think the biggest fight was a 9 on 9 battle with a flying citadel in the area and a fully rendered 3D fractal world below. Maelstrom was the name of the mission if I recall. That one pushed everything right to the edge!
“DragonStrike started on the PC as a full 3D flight sim”
There were lots of tricks needed back then since the processors did not include floating point. For instance, functions like sin, cos & tan were derived for a single sin array for 90 degrees. For and cross products were stored in arrays with lookups to get the recalculated sums. Inaccuracy would compound badly so it was a constant struggle to balance accuracy against memory use. The world coordinate system was in millimeters with a scale assigned to each object such that a single object would only have 8 bits of accuracy but would shift those bits into the world coordinates. That way you could have a dragon next to a massive citadel above an even more massive world all done in essentially 8-bit fixed math. We also did not have z-buffers so everything had to be culled and drawn in reverse order.
Wow… intense stuff. And how was it developing DragonStrike for the NES? Were you able to use any code from Vindicators (I only ask as it's also top-down) or was this a from-scratch project? And how did you feel about the finished product and its reception?
Louis: I don't recall using any Vindicators code. The project was directed by our Publisher, Pony Canyon, who really wanted a very difficult arcade experience. I thought it was fun, if a bit too hard. I definitely preferred the PC version on a high-end machine.
Pony Canyon directed and published Westwood’s NES top-down shooter.
So where did the original game design idea for DragonStrike come from?
Louis: Originally the flying was based on a WW1 flight model I found in some 3D graphics books. It was more like soaring or floating but that did not feel very dragon-like. So, I added variable lift along a sign wave that simulated the flapping of the wings and synchronized it with the animation of the dragon bits you could see from the back of the dragon.
I kept some of the original vector-based flight model to allow for loss of altitude when banking, slipping, and acceleration when diving. I was happy with the final model as it felt to me like you were really on the back of a beast. The model varied by dragon type allowing for different top speeds, acceleration and climbing or lift. The story was weaved into the Dragonlance world by detailing battles mentioned in the War of the Lance. It was really great to embellish the world we were all reading about in the novels. The detailed characters and events we embellished became part of the Dragonlance canon.
Tanis, Goldmoon and Sturm, from the cover of the original Dragons of Autumn Twilight – where the DragonLance saga began. Image sourced from Infinispace.
In terms of having your story was woven into the Dragonlance canon - what was the approval process with TSR like? Did you get to meet with Weis and Hickman and discuss the characters and story?
Louis: I would have loved to meet Weis and Hickman but never did. I also loved the books and the entire world of Krynn. It was a great pleasure to detail the key battles in the War of The Lance. Some battles had been mentioned in the books but most were designed to support our game narrative of escalating use of dragons in warfare.
TSR had very high standards and made sure the mission briefings met the style and tone of the books. We also managed to get a few characters and stories into the Forgotten Realms canon when we made Eye of the Beholder I & II but nothing quite like the scope of DragonStrike. Ultimately it was just a thrill to contribute to the D&D universes. I was an active DM for sixteen years so working on D&D games was a personal highlight.
Taking a step back, and from a higher level, what was it like developing D&D/Dragonlance games for computers back then? SSI won the license and succeeded because of your tech, and some of the most legendary computer RPGs of the late 80s and early 90s exist because of you and your dev team at Westwood.
Louis: We really enjoyed working in the D&D worlds. SSI developed the gold box series so we didn't have much to do with them. We did the Hillsfar collection of games, DragonStrike and of course Eye of the Beholder I & II, the real time RPGs. EOB was a really great experience since we were free to develop those original RPGs in the D&D world.
Trying to stay true to the D&D ruleset in a real-time game was very difficult but I feel it really paid off. Those games put Westwood in a different class of developer and really set the stage for our growth as a Studio. I loved the story telling that Rick Parks was able to do in those intros. It was just fantastic for the time.
The intro-sequence from Eye of the Beholder – a dungeon-crawling classic and one of Westwood’s D&D masterpieces.
What's the chances of seeing an updated, modern DragonStrike for today's systems? You know... a huge War of the Lance brought to life by modern graphics hardware and a back-end powered by AWS for huge MMO-style battles!
Louis: That would be awesome! There have been some great Dragon flying games but nothing like what was imagined in the War of the Lance. I don't think it's in the cards for me to build one but it sure would be great to play one.
Thanks a lot Louis. I absolutely had a blast playing DragonStrike back when it came out - I'd read so many Dragonlance novels and short stories by this time and it was unreal for 12-year-old me to be flying dragonback in that world!
Louis: I'm so glad you liked it! Thanks for the opportunity to share some memories. :)
A huge thanks once more to Louis for answering my many questions. Looking forward to more in the future!
Previous:
Interesting People #19: Alex Sterk on GeoCoin, the Ubiq team, security, governance, and more
Next:
Interesting People #21: Dragos Roua on his journey to becoming a Steemit witness