Thursday, September 10, 2009

OpenMW interview with Nicolay Korslund


Early OpenMW GUI implementation

OpenMW is a re-implementation of the (non-free) TES3 Morrowind game engine, written in the D programming language. The engine makes use of OGRE and other open source libraries, features an own scripting language called "Monster" and the latest release has the version number 0.6.



Out of curiosity, I asked Nicolay Korslund (the lead developer) one year ago what his motivation for writing OpenMW was. Later I decided to ask some more and now you can finally read the interview, in which Nicolay tells us about Git, OpenMW's development and whether or not to expect original games as a result of the OpenMW project.



The interview




Q1: What is your motivation for writing OpenMW?


Initially the project was started a few years ago (somewhere around 2004-2005, don't remember exactly), out from desire to improve a game I loved and from frustration with bugs and issues that made it less fun than it could be. Having been a programmer for about a decade, I felt that most of the bugs were unnecessary and could easily have been fixed if Bethesda has devoted the resources to it. I started getting that curious 'I could do this better myself' feeling, that you sometimes get when you've been doing a craft for years and aren't satisfied with someone elses work. (Not that I think Bethesdas coding is shoddy in any way, they're a company with limited resources like any company, and sometimes you just don't have the money to improve thing ad infinitum even though you would like to.)



To keep up (or even start) a big project such as OpenMW, though, you'll usually need more than just one big motivation to drive you and keep you going. For example, I knew from the outset that this project was something that others would get excited about, and that's a big motivating factor. The amount of positive feedback I've gotten on OpenMW since release has been pretty stunning, and it really helps to know that what you're making will affect others in a positive way. I had always wanted to contribute to open source software, but so far hadn't found any project I burned for, and none of my own projects ever made it to the point of release.



Another motivation you'll need of course is the joy of working on it - it's a hobby after all. I love programming, I love improving things, and I love reverse engineering file formats. Thee big pluses when you're doing a reimplementation. It also forces you to learn new skills - I've always wanted to learn more game development, such as using a 'modern' 3D engine, but I never had any real motivation to do it before I started OpenMW. On top of all that I had just fell in love with the D programming language, which blew me away to the point of abandoning C++ literally over night. D had (and still has, to some degree) a desperate need for more attention getting projects, and I wanted to help with that. I knew there would be challenges with using such a new language, but I was determined to show that none of them were show stoppers.



Q2: Are other people involved in OpenMW or Monster?


Yes, quite a few really. I started a mailing list for OpenMW about a year ago, after initially getting very positive feedback on the project. The list now counts over 130 members, and even more pay attention to the project through various forums. Only a very small fraction of those have contributed code of course, but many contribute other things like testing, knowledge about the file formats/mods, or simply through feedback and ideas. For Monster I've intentionally run a somewhat lower profile, but there are a few of early-adopter-type developers who are using it in their own engines. If things go as planned though, the two projects will become much more intertwined in the future, and I hope that Monster can contribute a lot to OpenMW (and make my job as lead developer a lot easier.)



Q3: How did you find those people? Or was it them who found you?


I've done very little 'advertising' for my projects - I think I posted about OpenMW on exactly one forum (the OGRE forum), the rest took care of itself. I had to create the mailing list simply because I couldn't keep track of all the individual conversations any longer.



Q4: Are you going to make OpenMW usable with non-Morrowind content, so that new games can base on it? If yes, will you make such a game?


It's very possible that the project will spawn an engine that's usable for other games, but we don't have any specific plans for that right now. Although we are on friendly terms with another project that uses much of the same technology, called DungeonHack. It's very likely that our two engines will share some code in the future.



Even though we're not working on making a generic game engine, it will likely be possible to make much more extensive Total Conversion mods for OpenMW than for the original Morrowind engine. And the scripting features we're planning will let you bend the rules to the point where you would probably not consider it to be the same game anymore. Personally however I have very little talent for game creation (except for the coding part), so I don't think I'll be behind any of those mods myself.



Q5: You've picked OGRE as OpenMW's 3D engine. What about the alternatives (Irrlicht, jMonkeyEngine, Crystal Space, writing an own 3D engine...)?


I think probably all those (and many others) would have been good choices, except the last one. Writing a new engine and getting it to a point where it could compete with OGRE et al. would have taken years, and IMO it's usually a complete waste of time unless you're doing something really unique with it. There are so many good and free off-the-shelf alternatives out there (too many already...), and if you need some feature that they don't provide you can usually add it in yourself in 1/100th of the time it takes you to write a new engine from scratch.



Q6: You recently switched to Git from SVN. What motivated the switch?


Popular demand :) But after trying out Git (and taking the time to understand how it works), I fell completely in love with it myself. SVN is now ancient technology as far as I'm concerned. And with git-svn, Git is even a better Subversion client that Subversion is. However since it's so easy to integrate the two, we are keeping the SVN repositories on-line for the foreseeable future, and existing SVN users don't really need to change anything. I know it takes a real geek to obsess this much over a version control system, but that's how it is :)




More development information



You can find some technical details about OpenMW's codebase on its ohloh page.



Latest OpenMW video



Blog Archive