Putting the 'role' back in role-playing games since 2002.
Donate to Codex
Good Old Games
  • Welcome to rpgcodex.net, a site dedicated to discussing computer based role-playing games in a free and open fashion. We're less strict than other forums, but please refer to the rules.

    "This message is awaiting moderator approval": All new users must pass through our moderation queue before they will be able to post normally. Until your account has "passed" your posts will only be visible to yourself (and moderators) until they are approved. Give us a week to get around to approving / deleting / ignoring your mundane opinion on crap before hassling us about it. Once you have passed the moderation period (think of it as a test), you will be able to post normally, just like all the other retards.

Developer Story Time with Old Man Davis

Broseph

Dangerous JB
Patron
Joined
Nov 24, 2012
Messages
4,449
Location
Globohomo Gayplex
I don't disagree the engine was shit but Gamebryo is the one engine that you can't hold superior to Aurora.
Aurora's load times and frame rate are far more erratic than Gamebryo. At least NWN2's version. The Witcher's build of the engine was much more optimized.
 

Anthony Davis

Blizzard Entertainment
Developer
Joined
Sep 7, 2007
Messages
2,100
Location
California
Three, if more game companies had designers like Jeff Husges, who is a rock solid designer, completely trustworthy to get his work done in a timely and efficient manner, and be a master at implementing content without breaking game engines, and be a nice, confident and soft spoken person who gets along well with others, more game companies would be better off.

Hell, the world would be better off with more people like Jeff in it.

I say all of this with 100% confidence that not a single person at Obsidian, or anyone outside of Obsidian who knows Jeff, would disagree with me. Most would say I am not giving ENOUGH credit to how awesome he is. Avellone and Sawyer both routinely praise Jeff's work.
With all these ah-mazing people at Obsidian you'd think they'd make fun games more often, yet they do not. :roll: Participation awards for all!

That is a loaded comment. Almost a fair one, but then you say something subjective like "fun". I find Obsidian games to be a ton of fun. A LOOOOT of people do. Something objective, which would make a better argument, would be to say, "You'd think their games would have better reviews." That is objective and has facts to back it up.

Let's pretend you actually know how to debate and argue and that is what you actually said.

I would then say, Let's try looking at this a different way:

Knowing that there are a lot of amazing and talented people at Obsidian, why do their games not always achieve the highest marks/reviews?

A large part of it can be accounted for by time and money, things which Obsidian does not have as much of as say... Bethesda, or Rockstar.

Some of it is straight up cognitive dissonance on the part of game reviewers and even some gamers. For example, there are gamers and reviewers out there that honestly believe there are more bugs in Fallout New Vegas than in Fallout 3. This is empirically not true yet many reviewers, including good ones like Jeff Gerstmann, believe this.

Another reason is that Obsidian, despite being talented, has in the past had difficulty maintaining scope. Believe it or not, that is one of the hardest skills for a game developer to learn, but Obsidian was able to learn it as a whole. See Dungeon Siege 3.

Some of if it is perhaps, marketing missteps. For example I believe in my heart that Dungeon Siege 3 would have done a LOT better if it had been called Dungeon Siege Legends, or something similar. Something close in name to show its roots, but different so that gamers and game reviewers would manage their expectations. Some people legitimately wanted the next iteration of interactive screen saver, and we did not give them anything close to that.

Some part of it is luck, or lack of luck.


They make games I want to play and they take every painful lesson to heart. Obsidian endures.
 

Lancehead

Liturgist
Joined
Dec 6, 2012
Messages
1,550
Another reason is that Obsidian, despite being talented, has in the past had difficulty maintaining scope. Believe it or not, that is one of the hardest skills for a game developer to learn, but Obsidian was able to learn it as a whole. See Dungeon Siege 3.
Unfortunately that was also (partly) why DSIII was the least enjoyable Obsidian game for me, if most polished.
 

Rake

Arcane
Joined
Oct 11, 2012
Messages
2,969
I think DSIII was the least enjoyable Obsidian game for most of their fanbase.
 

Mastermind

Cognito Elite Material
Patron
Bethestard
Joined
Apr 15, 2010
Messages
21,144
Steve gets a Kidney but I don't even get a tag.
Except for Sawyer! He's so dreamy!

NV was the only great game Obsidian produced, so Sawyer is pretty dreamy.
MotB

Couldn't get into it. Aurora had long overstayed its welcome by the time I got around to MOTB. No game in that shit engine can call itself great.
I don't disagree the engine was shit but Gamebryo is the one engine that you can't hold superior to Aurora.

It doesn't matter though, mostly because you have to try really hard to make fps gameplay completely shit whereas it's a lot harder to get an overhead 3d game right (or 2d one for that matter, playing the first Divinity now and it's incredible how someone can fuck up Diablo type gameplay and yet both sacred and divinity manage to screw it up just fine). NV won't win any gameplay awards but it's not pure torture.
 

Anthony Davis

Blizzard Entertainment
Developer
Joined
Sep 7, 2007
Messages
2,100
Location
California
Have you mentioned Scott Everts yet? If not, please tell us a Scott Everts story.

Ok, I got one about Scottie!

I got to a point in my life where I hated my job at Netscape/AOL, I was getting divorced, and all I wanted to do was be happy. I remember making games on my Commodore 64 and before "life" happened it was always my dream to make video games for a living.

I decided to make my own video game with my friend Mike Judge. We spent a year and half making a game called Aldon's Crossing for the Palm Pilot, which for you youngins was what people used before iPhones and Blackberrys were invented. The game won a lot of awards and reviewed very well. Mike and I made some money on it, not retire and follow your dreams money, but it was money and that was kind of neat.

But most importantly... it was experience.

I applied to Black Isle and provided links to our game and all of that stuff. Chris Avellone replied back to me in an email and told me two things:

1. This was not a good time to apply to Black Isle. This seemed mysterious at first, but it became clear later when their doors closed.
2. The second thing Chris emailed me about was to ask if I could email and send a key to my game to Scottie. Apparently Scottie was the only dude at Black Isle who owned a Palm Pilot I guess. At Netscape EVERYONE had one. I said sure and I emailed Scottie and sent him a key. He was super polite and gracious, thanking me for the key and telling me how he appreciated the old school style of the game.


So, fast forward some 6 months later, and when I am working at Obsidian on KOTOR2. I have completely forgotten about the whole exchange with Scottie, by the way.

I'm sitting with Scottie at his desk, we are making some changes to the fast travel map on KOTOR2. We had just discovered that if you pull up the map while in the tutorial the map failed to make sense because you were in deep space and not a legitimate fast travel marker. Our solution was to put the Ebon Hawk on the map, but I digress.

While we are sitting there working, I sort of gaze around Scottie's desk and I see his Palm Pilot sitting there... then it all clicks and comes back to me. This was the guy I gave a copy of my game to! We talked about that for quite a bit and it was really cool. I think the Palm Pilot still worked and he may have had the game on there still, but I can't honestly remember for sure, but he did remember me and the game and that was enough for me.
 

pakoito

Arcane
Patron
Joined
Jun 7, 2012
Messages
3,160
Anthony Davis

Can you give a small insight into the engines you make? I had another (fucking) C++ code interview for a game company today and I'm ready to take a technical explanation to the face without complaining. You said Aurora was mainly data-driven, how is that from the architecture side? I'm currently looking at the work on Entity frameworks and how well they fit small games, and embedding scripting languages like Lua to do most of the gameplay-oriented stuff. New games like Grimrock Don't Starve and DFA (Broken Age) seems to have taken fondness of it. My guess those engines are nothing like the ones used in the big leagues, and just some days ago talking about this there was a comment by a Magic:TG Online programmer that said that despite being under NDA he could hint me that they were doing nothing like this.
 

Anthony Davis

Blizzard Entertainment
Developer
Joined
Sep 7, 2007
Messages
2,100
Location
California
Another reason is that Obsidian, despite being talented, has in the past had difficulty maintaining scope. Believe it or not, that is one of the hardest skills for a game developer to learn, but Obsidian was able to learn it as a whole. See Dungeon Siege 3.
Unfortunately that was also (partly) why DSIII was the least enjoyable Obsidian game for me, if most polished.

Agreed, but I think even something as simple as a title can adjust and manage people's expectations. For me, and I am not blowing smoke here, I still enjoy it a lot.

I still occasionally play it to this day.

Maybe because I'm older now, but there is something relaxing about playing a simpler game on your enormous TV while sitting on your VERY comfortable couch.

I'm an old man, I know...
 

Anthony Davis

Blizzard Entertainment
Developer
Joined
Sep 7, 2007
Messages
2,100
Location
California
Anthony Davis

Can you give a small insight into the engines you make? I had another (fucking) C++ code interview for a game company today and I'm ready to take a technical explanation to the face without complaining. You said Aurora was mainly data-driven, how is that from the architecture side? I'm currently looking at the work on Entity frameworks and how well they fit small games, and embedding scripting languages like Lua to do most of the gameplay-oriented stuff. New games like Grimrock Don't Starve and DFA (Broken Age) seems to have taken fondness of it. My guess those engines are nothing like the ones used in the big leagues, and just some days ago talking about this there was a comment by a Magic:TG Online programmer that said that despite being under NDA he could hint me that they were doing nothing like this.

It's almost 9:30 where I am right now and I gotta get up and make the donuts (tm) early in the morning. I can post more about that kind of stuff later too.

Quick question, you said Entity, did you mean Unity?

EDIT:

I can give you a baby-baby example of data driven versus non-data driven.

data driven:
class Creature : public Physical

the actual "guts" of the creature definition are stored in data.




non-data driven:
class Goblin : public Physical

all that good stuff about what a goblin is is just written into the code



Which do you think would be easier to modify, and which do you think would be easier to add and remove creatures from?

Here is my Creature Class from my old game:

Code:
        class Creature : public Physical
        {
        public:
 
            Creature(const CreatureContext *aContext);
            virtual ~Creature();
 
            virtual uint8 GetBaseStat(CreatureStats::STAT_TYPE aStat);   
            virtual uint8 GetCurrentStat(CreatureStats::STAT_TYPE aStat);   
            virtual void  SetCurrentStat(CreatureStats::STAT_TYPE aStat, uint8 pNewValue);   
           
            virtual void SetPosition(const Point &aPos);
 
            int GetWidth();
            int GetHeight();
               
            virtual    void Clock(float32 elapsedSeconds, Locator *aLoc,World *aWorld);
            virtual void Draw();
 
            Sprite& GetSprite(CreatureContext::CREATURE_ANIMATION_STATES aState) {return mSprites[aState];}
            CreatureContext::CREATURE_ANIMATION_STATES GetCurrentAnimationState()    { return mCurrentSpriteAnimationIndex; }
            void SetCurrentAnimationState(CreatureContext::CREATURE_ANIMATION_STATES aState)    { mCurrentSpriteAnimationIndex = aState; }
 
            void SetCombatSpriteFacing(Boolean aFaceRight);
            Boolean GetCombatSpriteFacing()    {return mData.mFaceRight;}
 
            CreatureContext::CREATURE_ACTION_STATES GetCurrentActionState()    { return mData.mCurrentActionState; }
            void SetCurrentActionState(CreatureContext::CREATURE_ACTION_STATES aState)    { mData.mCurrentActionState = aState; }
 
            uint32 GetTreasureTypeIndex();
            uint16 GetCreatureSettings();
            uint8  GetCreatureWeakness();
            uint8 GetSightRange();
            Intelligence *GetIntel(){return mData.mIntel;}
            void SetIntel(Intelligence *aIntel){mData.mIntel=aIntel;}
            virtual Boolean IsCreature();
            virtual XPID GetPrimaryMeleeWeapon();
            virtual XPID GetPrimaryMissleWeapon();
            virtual Boolean Move(const Point &aPos);
            Boolean CombatMove(CreatureContext::CREATURE_ACTION_STATES aState);
           
            Boolean IsSummoned(){return mData.mbSummoned;}
            void SetSummoned(Boolean p_bSummoned){mData.mbSummoned = p_bSummoned;}
 
            virtual const Point&    GetNextPosition() const;
            virtual void            InitPosition();
 
            virtual const Loc GetNextTileLocation() const;
            virtual const Loc GetNextPathNodeLocation() const;
 
            void    SetNextOffset(const Point &aOffset);
            virtual uint8 GetDrawDepth();
 
            float32    GetCurrentMoveDuration(){return mData.mCurrentMoveDuration;}
            void    SetCurrentMoveDuration(float32 aMDR){mData.mCurrentMoveDuration = aMDR;}
 
            void            SetCombatTargetPosition(const Point &aPos) {mData.mCombatTargetPosition = aPos;}
            const Point&    GetCombatTargetPosition(){return mData.mCombatTargetPosition;}
            void            SetCombatHomePosition(const Point &aPos) {mData.mCombatHomePosition = aPos;}
            const Point&    GetCombatHomePosition(){return mData.mCombatHomePosition;}
            Boolean        IsCombatIdle();
 
            virtual Boolean AddAbility(Ability *aAbility);
            virtual Boolean RemoveAbility(Ability *aAbility);
            virtual GrowArray<Ability*> &GetAbilities();//least to greatest in importance
            virtual Ability *GetAbility(uint8 aType, uint8 aDetail);
            virtual void FillAbilityDescriptions(GrowArray<AbilityDescription*> &aArray, Locator *aLocator);
 
            void    SetMaxHealth(CreatureData::STAT_INDEX_TYPES aIndex, sint16 aHealth);
            sint16    GetMaxHealth(CreatureData::STAT_INDEX_TYPES aIndex);
 
            void    SetCombatHealth(sint16 aHealth);
            sint16    GetCombatHealth();
 
            uint32            GetXP()                        {return mData.mXP;}
            void            SetXP(uint32 aXP)            {mData.mXP = aXP;}
            virtual uint8    GetLevel()                    {return mData.mLevel;}
            void            SetLevel(uint32 aLevel);
            void            GainLevel();
 
            CreatureContext::CLASS_TYPE GetClassType();
 
            virtual uint32 TakeXP(Physical *aEnemy);//take xp for the kill
            virtual sint16  TakeGold(Physical *aEnemy);//take gold for the kill
 
            void SetMessageID(uint32 messageID) { mMessageID = messageID; };
            uint32 GetMessageID() const { return mMessageID; };
 
            void SetResponseID(uint32 responseID) { mResponseID = responseID; };
            uint32 GetResponseID() const { return mResponseID; };
 
 
            Boolean IsFrozen(){return mData.mIsFrozen;}
            void    SetFrozen(Boolean aFrozen){mData.mIsFrozen = aFrozen;}
 
            static void        ClearAbilities(GrowArray<Ability*> &aGrowArray);
 
            sint32    GetPortraitIndex()                {return mData.mCreaturePortraitIndex;}
            void    SetPortraitIndex(sint32 aIndex)    {mData.mCreaturePortraitIndex = aIndex;}
           
            void SetDirection(CreatureContext::CREATURE_ANIMATION_STATES aDir){mData.mDirection = aDir;}
            CreatureContext::CREATURE_ANIMATION_STATES GetDirection(){return mData.mDirection;}
 
            Deck*    GetDeck(){return mDeckPointer;}
            void    SetDeck(Deck* aDeck){mDeckPointer = aDeck;}
 
            //serialize methods
            Boolean LoadData(const CreatureSaveStruct* aStruct);
            Boolean SaveData(CreatureSaveStruct* aStruct);
 
            uint16  CalculateMaxHealth(uint8 aBaseHealth, uint8 aLevel);
           
            void    AddCombatBuff(Buff *pBuff);
            void    ClearCombatBuffs();
                                                           
        private:
            GrowArray<Buff*> mBuffs;
            uint32 SearchPassiveAbilities(uint8 aType, uint32 aDetail);
            GrowArray<Ability*> mPassiveAbilities; //abilities that will be clocked from the creature
            Point mNextOffset;
            CreatureData mData;
 
            CreatureContext::CREATURE_ANIMATION_STATES    mCurrentSpriteAnimationIndex;
            Sprite    mSprites[CreatureContext::NUM_CREATURE_ANIMATION_STATES];
 
            MAP_TYPE mCurrentMapType;
 
            Boolean    mEmerged;
            Point    mDelta;
            uint32    mMessageID;
            uint32    mResponseID;
            Deck*    mDeckPointer;
        };
 

pakoito

Arcane
Patron
Joined
Jun 7, 2012
Messages
3,160
Anthony Davis

Can you give a small insight into the engines you make? I had another (fucking) C++ code interview for a game company today and I'm ready to take a technical explanation to the face without complaining. You said Aurora was mainly data-driven, how is that from the architecture side? I'm currently looking at the work on Entity frameworks and how well they fit small games, and embedding scripting languages like Lua to do most of the gameplay-oriented stuff. New games like Grimrock Don't Starve and DFA (Broken Age) seems to have taken fondness of it. My guess those engines are nothing like the ones used in the big leagues, and just some days ago talking about this there was a comment by a Magic:TG Online programmer that said that despite being under NDA he could hint me that they were doing nothing like this.

It's almost 9:30 where I am right now and I gotta get up and make the donuts (tm) early in the morning. I can post more about that kind of stuff later too.

Quick question, you said Entity, did you mean Unity?
Entity System, in my case Artemis http://gamadu.com/artemis/

The architecture is a "world" divided between components and systems. A component is a game element that can be processed by one or many systems. You can create a component playerChar of type Sprite that has a Movement, Rotation, SpriteRender and PlayerInput systems, for example. Those systems are called in the main loop and they apply game logic to all components with them, adjusted to time delta or whatever the word simulation for that specific system needs.

You get the itempool, factory and update loop, all-in-one. I'm still in early phases of seeing how good it really is and how well it interacts with scripting.

EDIT: If I understood correctly, I'm a noob here throwing words around.
 

Mastermind

Cognito Elite Material
Patron
Bethestard
Joined
Apr 15, 2010
Messages
21,144
Steve gets a Kidney but I don't even get a tag.
For example, there are gamers and reviewers out there that honestly believe there are more bugs in Fallout New Vegas than in Fallout 3.

This may or may not be true but I've run into game breaking bugs in two Obsidian games whereas Bethesda never did that to me (except Daggerfall, but Daggerfall is shit so I don't really care). And by game breaking I mean literally game breaking. NV had a cloud issue with steam where it would keep overriding new saves (and I lost a ton of progress because I didn't notice until hours later). NWN2 fucked up chapter transition much earlier than when I actually got to the end, and I had no way of noticing until I reached the end of the first one, at which point even going back to an older save and replaying the last bits didn't help. It's the reason why I never finished it, I just couldn't stand trudging through that swill from the beginning again, and I've tried at least a couple dozen times. Maybe Obsidian should consider implementing more invisible or harmless bugs that end up becoming beloved community memes (like permanent spells in morrowind, or the bucket over the head in skyrim). The rotating Doc Mitchell head is a good try, for example.

Some of if it is perhaps, marketing missteps. For example I believe in my heart that Dungeon Siege 3 would have done a LOT better if it had been called Dungeon Siege Legends, or something similar. Something close in name to show its roots, but different so that gamers and game reviewers would manage their expectations. Some people legitimately wanted the next iteration of interactive screen saver, and we did not give them anything close to that.

I'd have settled for a DSIII where I'm not getting sniped off screen because whoever programmed the camera cannot into incline (literally, I could see 3-4 meters in front of my character just because the camera wouldn't adjust to my going up a ramp).
 
Self-Ejected

Davaris

Self-Ejected
Developer
Joined
Mar 7, 2005
Messages
6,547
Location
Idiocracy
Anthony Davis
Thanks for that. Sounds like Scottie gave you a good review. :)

I spoke to him at Board Game Geek a couple of years ago and he came across as very up beat and enthusiastic. Every sentence ended with an exclamation mark or two, so I always imagined him having a loud voice. lol

Anyway, he was very nice to me and I appreciated that.
 

Anthony Davis

Blizzard Entertainment
Developer
Joined
Sep 7, 2007
Messages
2,100
Location
California
Anthony Davis

Can you give a small insight into the engines you make? I had another (fucking) C++ code interview for a game company today and I'm ready to take a technical explanation to the face without complaining. You said Aurora was mainly data-driven, how is that from the architecture side? I'm currently looking at the work on Entity frameworks and how well they fit small games, and embedding scripting languages like Lua to do most of the gameplay-oriented stuff. New games like Grimrock Don't Starve and DFA (Broken Age) seems to have taken fondness of it. My guess those engines are nothing like the ones used in the big leagues, and just some days ago talking about this there was a comment by a Magic:TG Online programmer that said that despite being under NDA he could hint me that they were doing nothing like this.

It's almost 9:30 where I am right now and I gotta get up and make the donuts (tm) early in the morning. I can post more about that kind of stuff later too.

Quick question, you said Entity, did you mean Unity?
Entity System, in my case Artemis http://gamadu.com/artemis/

The architecture is divided between components and systems. A component is a game element that can be processed by one or many systems. You can create a component playerChar of type Sprite that has a Movement, Rotation, SpriteRender and PlayerInput systems for example. Those systems are called in the main loop and the apply game logic adjusted to time delta or whatever the word simulation for that specific system needs.


Yeah, ok, I follow now. I think I can say something without getting in trouble... maybe not. Let's just say that at my previous-previous job, i got a lot of experience using a component system. You can also make a data driven component system, which again, is what we did at at my previous-previous job.

Lua is just a tool in a toolbox. Many big timers DO use it, such as Blizzard. It really depends on what you need out of your scripting language I guess.

I'm sorry, really tired here and having a hard time focusing.
 

pakoito

Arcane
Patron
Joined
Jun 7, 2012
Messages
3,160
Entity System, in my case Artemis http://gamadu.com/artemis/

The architecture is divided between components and systems. A component is a game element that can be processed by one or many systems. You can create a component playerChar of type Sprite that has a Movement, Rotation, SpriteRender and PlayerInput systems for example. Those systems are called in the main loop and the apply game logic adjusted to time delta or whatever the word simulation for that specific system needs.


Yeah, ok, I follow now. I think I can say something without getting in trouble... maybe not. Let's just say that at my previous-previous job, i got a lot of experience using a component system. You can also make a data driven component system, which again, is what we did at at my previous-previous job.

Lua is just a tool in a toolbox. Many big timers DO use it, such as Blizzard. It really depends on what you need out of your scripting language I guess.

I'm sorry, really tired here and having a hard time focusing.
No problem, it's good just to have an answer :D Good night!
 

Anthony Davis

Blizzard Entertainment
Developer
Joined
Sep 7, 2007
Messages
2,100
Location
California
Anthony Davis
Thanks for that. Sounds like Scottie gave you a good review. :)

I spoke to him at Board Game Geek a couple of years ago and he came across as very up beat and enthusiastic. Every sentence ended with an exclamation mark or two, so I always imagined him having a loud voice. lol

Anyway, he was very nice to me and I appreciated that.

Scottie is a great guy and a great gamer. He makes board games in addition to video games, how cool is that?!
 

Anthony Davis

Blizzard Entertainment
Developer
Joined
Sep 7, 2007
Messages
2,100
Location
California
For example, there are gamers and reviewers out there that honestly believe there are more bugs in Fallout New Vegas than in Fallout 3.

This may or may not be true but I've run into game breaking bugs in two Obsidian games whereas Bethesda never did that to me (except Daggerfall, but Daggerfall is shit so I don't really care). And by game breaking I mean literally game breaking. NV had a cloud issue with steam where it would keep overriding new saves (and I lost a ton of progress because I didn't notice until hours later). NWN2 fucked up chapter transition much earlier than when I actually got to the end, and I had no way of noticing until I reached the end of the first one, at which point even going back to an older save and replaying the last bits didn't help. It's the reason why I never finished it, I just couldn't stand trudging through that swill from the beginning again, and I've tried at least a couple dozen times. Maybe Obsidian should consider implementing more invisible or harmless bugs that end up becoming beloved community memes (like permanent spells in morrowind, or the bucket over the head in skyrim). The rotating Doc Mitchell head is a good try, for example.

Some of if it is perhaps, marketing missteps. For example I believe in my heart that Dungeon Siege 3 would have done a LOT better if it had been called Dungeon Siege Legends, or something similar. Something close in name to show its roots, but different so that gamers and game reviewers would manage their expectations. Some people legitimately wanted the next iteration of interactive screen saver, and we did not give them anything close to that.

I'd have settled for a DSIII where I'm not getting sniped off screen because whoever programmed the camera cannot into incline (literally, I could see 3-4 meters in front of my character just because the camera wouldn't adjust to my going up a ramp).

Ok, that Steam/Cloud bug, that was a horrible bug, but that was also something NOT supported in FO3 and it was something still kind of new to the gaming scene at the time. I know that's an excuse I know, but just because it is, doesnt make it less true.

I'm really sorry that happened to you, and others too, I'm sure.


I am not familiar at all with this NWN2 chapter transition bug you are talking about, so I can't really talk about it.
 

Lancehead

Liturgist
Joined
Dec 6, 2012
Messages
1,550
I too had the chapter transition bug in NWN2, and it was in the Platinum edition. At the end of Chapter 1 Sand comes to the inn to join you for the trial, and the game just jumped to the start of Chapter 2, skipping the whole trial. Reloading fixed it for me, though.
 

pakoito

Arcane
Patron
Joined
Jun 7, 2012
Messages
3,160
Anthony Davis

I just saw your edit in the first message. I get more or less how/what you're doing, you load the creature from a serialized file then proceed to set most of the parameters in CreatureData. Getter/setter/calculate galore for whoever needs them. Some methods like CombatTargetPosition and Facing I guess they're used for animating. Most of the muscle is used in Clock (logic) and Draw (painting), probably called by something to process all active Physicals at once.

Glad to see that Hungarian is something useful I learned, because it was not enforced by my last company at all. We were doing Java, tho.


Thanks a lot, really, very insightful :incline:
 

Brother None

inXile Entertainment
Developer
Joined
Jul 11, 2004
Messages
5,673
I remember both Scottie and Huggies from the Van Buren days. They always seemed like great guys.

Fun to read this stuff, and fascinating. Really great thread Anthony. I look forward to seeing the studio and meeting some of these guys when I'm in California in June. Having met Chris I can attest to his woo-ness.

Some of it is straight up cognitive dissonance on the part of game reviewers and even some gamers. For example, there are gamers and reviewers out there that honestly believe there are more bugs in Fallout New Vegas than in Fallout 3. This is empirically not true yet many reviewers, including good ones like Jeff Gerstmann, believe this.
Haha, I thought it was just us fans seeing that. This process has always fascinated me. Some studios seem to get a pass on a lot of things from the press, which I guess is partially due to familiarity or whatever. Kinda sucks.

The guy's asleep, and as I've seen this answered in developer interviews numerous times, I'll offer my two cents: You typically get the job obliquely. Perhaps you start as a programmer (I don't think artists are as likely to segue into general design), but it could be anything from customer support, to tech support, to Q&A, to "community manager", to web designer/webmaster (which is how Josh segued into his position, IIRC).

In other words, just get your foot in the door and hope for the best. It's not a situation I'd choose for myself if my ultimate goal was to become a designer, because I wouldn't enjoy handing the reins of my destiny over to other people's personal whims and office politics.
Heh, yeah. QA seems to be a common path into any part of the industry. inXile's director of design Chris Keenan started as QA at Interplay at like the ripe age of 15. I think Brian Mitsoda is another guy who started with QA.

But yeah, any "in" works, even web designer guy like Josh, and then you just prove yourself, and if you're good you won't get stuck at QA for a decade+ like some have. Heck, QA is even part of my job description at my entry-level position, it makes sense to learn from since iteration is so important in this industry, and I'm already slowly moving into writing and design. But I doubt the process is that easy with many studios though, particularly larger ones, for inXile it just never made sense to "just" have me do community interaction/PR type stuff, that'd be a waste of resources for such a small studio, but for larger studios that'd make more sense and you'd probably just stick with it.

He wrote Veronica so...no.
He also wrote Boone... sooooo

:bro:
And Vault 11, I believe. Great stuff. Josh once answered a few of those specific via Formspring.
 

zwanzig_zwoelf

Guest
Anthony Davis, I have a small question on my mind, though I guess someone asked it already.
What was your first impression when you walked inside the Obsidian office?
 

Anthony Davis

Blizzard Entertainment
Developer
Joined
Sep 7, 2007
Messages
2,100
Location
California
Anthony Davis

I just saw your edit in the first message. I get more or less how/what you're doing, you load the creature from a serialized file then proceed to set most of the parameters in CreatureData. Getter/setter/calculate galore for whoever needs them. Some methods like CombatTargetPosition and Facing I guess they're used for animating. Most of the muscle is used in Clock (logic) and Draw (painting), probably called by something to process all active Physicals at once.

Glad to see that Hungarian is something useful I learned, because it was not enforced by my last company at all. We were doing Java, tho.


Thanks a lot, really, very insightful :incline:

When I get home tonight from donut land, I will post the complete creature header file and I will share my thoughts on component (has a) versus inheritance (is a) object models. Both have pros and cons.

That's really sort of a bastardized light weight version of Hungarian notation. I use just enough for what I need when I write my code. Look for some examples from Microsoft for a much ore accurate and explicit Hungarian notation use.
 

Tigranes

Arcane
Joined
Jan 8, 2009
Messages
10,350
Anthony, from the information available on the fan side I always assumed Obsidian/founders had a conscious direction to do some slam dunks and build up to what became Alpha Protocol, and its failure to establish itself as a critically acclaimed franchise - as well as other issues - made Obsidian 'take one step back to take two steps forward', resulting in the FNV/DS3/SP cycle. Is that narrative at all congruent with how it was in the studio, if you can say at all?

Anyway, on bugs/reviews: To me this is why Obsidian's next slew of titles are important. Dungeon Siege 3 is definitely proof that Obsidian can create a scope-managed bug-free experience, and I enjoyed it a lot, but it definitely was a simpler title, and I think Obs devs themselves hinted part of the pain was trying to marry Obsidian story-telling with the DS3 world and ARPG gameplay while making it co-op friendly - which is a kind of scope problem, though different.

Of course, the thing is, P:E is a different kind of thing, and South Park is again likely to be more like DS3 than a 'traditional' AAA Obsidian title, right? So we're waiting for the next-gen Obsidian title, ostensibly in the works, I assume using Onyx, to really see if they can now make games like K2 or NWN2 with greater polish.

Thanks so much for all the answers. It's really good to get these kinds of stories and insights down the road.
 

Roguey

Codex Staff
Staff Member
Sawyerite
Joined
May 29, 2010
Messages
36,707
That is a loaded comment. Almost a fair one, but then you say something subjective like "fun". I find Obsidian games to be a ton of fun. A LOOOOT of people do.
Do they? I see a lot of praise for Obsidian writing but not their gameplay.

You know who else considers most Obsidian games lacking in the gameplay department? [Redacted]

Something objective, which would make a better argument, would be to say, "You'd think their games would have better reviews." That is objective and has facts to back it up.

Let's pretend you actually know how to debate and argue and that is what you actually said.
I wouldn't because I don't care about the opinions of most reviewers. :)
I would then say, Let's try looking at this a different way:

Knowing that there are a lot of amazing and talented people at Obsidian, why do their games not always achieve the highest marks/reviews?

A large part of it can be accounted for by time and money, things which Obsidian does not have as much of as say... Bethesda, or Rockstar.
Other people get by with much less. The developers of the 80s and 90s didn't have your budgets. I'm sure you'll counter with "But games are more complex and take longer to make now" but that applies to graphics and other cosmetic crap. When it comes to gameplay you have an uphill battle convincing me the games of today are significantly more complex than those from years ago. :P

Some of it is straight up cognitive dissonance on the part of game reviewers and even some gamers. For example, there are gamers and reviewers out there that honestly believe there are more bugs in Fallout New Vegas than in Fallout 3. This is empirically not true yet many reviewers, including good ones like Jeff Gerstmann, believe this.
My hypothesis is that people are more likely to forgive bugs if they're having fun. The less fun they're having, the more it bothers them.

Another reason is that Obsidian, despite being talented, has in the past had difficulty maintaining scope. Believe it or not, that is one of the hardest skills for a game developer to learn, but Obsidian was able to learn it as a whole. See Dungeon Siege 3.
Finally, some personal responsibility.

Some of if it is perhaps, marketing missteps. For example I believe in my heart that Dungeon Siege 3 would have done a LOT better if it had been called Dungeon Siege Legends, or something similar. Something close in name to show its roots, but different so that gamers and game reviewers would manage their expectations. Some people legitimately wanted the next iteration of interactive screen saver, and we did not give them anything close to that.
That applies to PC gamers, but I doubt console players/reviewers gave a damn. I agree with Chapman about what got you there, i.e. the camera, multiplayer model, and cheap-looking dialogue animations.
 

As an Amazon Associate, rpgcodex.net earns from qualifying purchases.
Back
Top Bottom