Starfall 3

Thứ Năm, 10 tháng 9, 2009

thumbnail

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



About

Lưu trữ Blog

Labels

0ad 2d 2x0ng 3d 3D modeling 4dmaze 8kingdoms a las barricadas A3P abe affcity agentkeeper alienarena allacrost angel-engine angstron2 annchienta annex-glest-mod antargis apricot arbarlithii arcade ardentryst ardorcraft arewealone armagetronadvanced art article arxendofsun arxliberatis as3sfxr asc assaultcube AtomicGameEngine atomictanks atomicworm aurora award axis revenge balazar3 ball-rolling bananabread basecommand battery battletanks beasts bethewumpus bge biniax2 bitfighter Blackvoxel blender blendswap blobandconquer blobwars blockattack blockling bloodfrontier bloodmasters bofh bombable bombcar boomwar boson boswars brainworkshop bullet burningdust burningwell bushidoblocks business bygfoot caspring cataclysm catchemrpg cgmadness cgtextures cheeseboys Chocolate Doom choria civil civitas clonk cocos2d code43 codecombat coldest combatsimulator commanderstalin commercial community competition conquest conquests contentcreation contest-gamedev corebreach countryoforigin craft creativecommons creepsmash crimsonspace critterding crowdfunding crowdsourcing crystalscrolls crystalspace cube Cube2 cuboid-clone cuby daggerwindscrolls dagon dangerdeep dangerman darkmod darkphear darkplaces data dealer dawn deadmorning devcorner dhewm3 Diablo diamondfighters digitalman dnt Doom Doom3 Dory game Wheely 3 doryenarena dotg dotmodeller dragonhistory duckmarines dungeonhack dungeonmapper eatthewhistle ecksdee edgar egoboo eisenstern emiliapinball endgamesingularity engines eot epiar epoch erebus ethanon event-conference evidyon evilcult extremetuxracer fac FGD fife flare flightgear flipout foi formido formularetro forumdown fps Freeablo freeartsearch freecol freedink freedroidrpg freegamedev freegamer freeorion freerails freetrain freetumble frogatto game engine gameboom GameDevelop gcw-zero gearhead2 gemrb genre-adventure genre-buildingsim genre-cards genre-defense genre-educational genre-engine genre-exploration genre-flighsim genre-fps genre-mmo genre-platformer genre-precision genre-puzzle genre-racing genre-roguelike genre-rpg genre-rts genre-sandbox genre-shooter genre-space genre-spacesim genre-spacetrade genre-tbs gigalomania glamour glc glest GLSL gluon goblinhack godot goollie Gorynlich grail grandwing gsoc gta-mud gunfudeadlands gusanos h-craft hackwars haiku hardware hedgewars hero of allacrost hex-a-hop hexenedgeofchaos hextd hive holoracer holyspirit howski html5 iamar iceball idtech2 idtech3 idtech4 impulse indiegogo intensityengine interview ioquake3 iqm iris ironbane irrlamb irrlicht islandcommander isoccer iteam ivan ivan3d ivanx jag jcrpg jediknight jme jmonkey3 jrpg jumpman jvgs kambi vrml kazama keeperrl Kelgar knights krank kwestkingdom l-echo lalalove Lamiae lasertactics lavirinto3d lbaprequel legesmotus lemmingballz levelhead libcrtxy liberated pixels cup libtcod licensing lincityng linux linuxgameawards linwarrior3d lipsofsuna lordsawar love löve löve2d low lowpolycoop lpairs ludumdare lugaru mac markiv mazzeroth mechanicaltower MegaGlest metalchaser metalglovesolid metallblech micropolis militiadefense minetest-c55 MIT modding mode-multiplayer mode-onedevicemultiplayer mode-singleplayer mofrag mokoi moleinvasion monkeyworld3d mono Moonshades mozilla myman mynet naev nethack3d neverball newfoundroom nexuiz nova pinball occulusrift octaforge ODE ogre3d olpc oolite open-source openanno openarena openart opencaesar3 opencity openclonk opendungeons openflashpoint openfootball opengameart openig openjk openlierox openmw openoctane openra openracer openttd openxcom orbit-hopper osare osgg osgs osx overdose Overkill ows pacdefence paintball2 palomino panda3d pandora parpg patreon penumbra physica physics pinball pink-pony pixel art plague-like platform-android platform-html5 platform-ios platform-java platform-linux platform-osx platform-webgl platform-windows platinum arts sandbox platinumarts pleethebear plexus plutocracy popcap portalized portrait-marathon PotM privateergeminigold programming projectalexandria projectcitadel projectfootball projectofthemonth pseudoform purity pygame pyromancer q2w q3rally qfusion qonk quadropolis Quake Quake2 quantum racer raceracer racing racr radakan raidem rainbowrooms raknet ransom raver realtimechaos redeclipse retribution engine retux review rigsofrods roguerepublic ROTC rpg rsoc rubyweekend runesword ryzom sampleswap sandbox sar sauebraten sauerbraten sawk scifi scorched3d scourge scourge2 sdl sfxr shotgundebugger shunnedsurvivor silvertree simontatham simutrans simwar skyriot skyscraper slickworm slothrpg smokinguns solarus soulfu sourceforge space station 13 spacenerdsinspace speed-dreams spicetrade spring spring1944 standalone Starfall Starfall kids Starfall math Starfall Wheely 3 Starfall Wheely 3 Game steam stonesoup strategy Strife stuntrally style-historical style-retro style-sci-fi subterranean summerofcards summoningwars superpowers supertux supertux3d supertuxkart survey syntensity systemshock Tales of Maj'Eyal taspring TBS td teewars teeworlds tennix Terasology terminal-overload Terra Centauri Tesseract The Castle Doctrine theskyofverdun theurquanmasters thewhitechamber thousandparsec thundernlightning tiled tol ToME torcs torque2d torque3d tournament towerdefense tpb3d Tremfusion tremulous trophy tutorial tuxkart tuxracer tv tvocfi ufoai unknownhorizons unkownhorizons unvanquished Urho3D uzebox vacuummagic valyriatear vaporware vdrift vdrift-ogre vegastrike veraball video vikings violetland vote voxel voxelstein warsow warzone warzone2100 waymark weaver webmegapong wesbowl wesnoth Wheely 3 Dory Games Wheely 3 for kids Wheely 3 kids Wheely 3 online widelands windows windstille wing wizznic wordwarvi work worldforge worldki worldwarvi wormux wtactics wyrmsun xdriller xenogeddon xna xonotic xreal ya3dag yodasoccer yofrankie ysflight ysoccer zaz zelda zero-k zeroballistics
Được tạo bởi Blogger.