Jump to content

Welcome!

Sign In or Register to gain full access to our forums.

Photo
- - - - -

Blog Entry - Duende - 1/28/16


  • Please log in to reply
3 replies to this topic

#1 Duende

Duende

    Advanced Member

  • Administrators
  • 1606 posts

Posted 28 January 2016 - 04:07 AM

Production is hard.  One of the benefits of being a text game, which I've
always espoused, is that unlike other games, I can bash out a feature in
several hours and have it be done a few orders of magnitude faster than any
other type of game; no animators, no illustrators, no managers, no client
work, no quibbling in meetings about what color to paint the bike shed.
Here's a new feature, I thought of it over dinner and it was done by the end
of the night.  And that's a nice thought, but not quite accurate.  

Production comes in three flavors.  Preproduction is where the 'thing' is
conceptualized, defined, planned out, decided whether it's a desirable and
interesting features.  We've always been sort of light on that, because it's
almost always an internal dialogue, and the people implementing these things
at the high level (Vassago and I the vast majority of the time) have
internalized the mechanics and world to the point that there's not
necessarily (in our opinions!)  A need to discuss it.  You think of a neat
idea, and that's it: go do it.

Production is where you implement the idea.  Sit down and code it.  This
could be new scripting capabilities (I add these very frequently, just on
the way to adding new content, and it never goes in the changelog, because
it's opaque to players anyway), variations on a theme (new tool type:
jewelers-workbench, used for 'pick apart' syntax), new functionality for
existing mechanics (Iyara requested the ability to free up relic slots from
eq, and after 2 minutes of conversation, we settled on "pick apart <relic>
<obj>" instead of the more-awkward "bash out <relic> <obj>"), or just new
mechanics (the ability to resist a skill on a per-skill basis).  The
production step is almost always just coding (then rebooting, then testing,
then fixing it, and cycling on and on and on...)

Post-production defines how the work produced is consumed, for the most
part.  This is the most important, but not really something we've always
excelled at.  Very often, we've made totally awesome things (either
conceptually or really) that just didn't work out.  There are tons of points
of failure here, both potentially and actually in our history.  Factions
should've been much cooler, but they were too complicated to administer on
the building side, and some of the math wasn't right, so I never really used
them.  The places where they are used frequently break, and are a hassle to
fix, so I just haven't, for way too long.  Sometimes there's functionality
present that people simply don't know about, either because it's
intentionally hidden and there aren't great hints (wand golem!  Valkyrie
tiara!)  Or it's simply opaque to players (there are a thousand lines of
logic regarding how combat works based on formation position, but it's so
subtle it literally doesn't matter and nobody's ever bothered working it
out, even if they could) or it's too inconsistent to bother with unless you
know exactly how it's going to work, why, when, and with enough payoff to
actually do so (extended descriptions).  

One of those old Bartle's Mud Laws focuses on the necessity of consistency-
if something works one way somewhere, it must work that way everywhere, lest
players get pissed off over the unevenness of product.  In a game our size,
that's nigh-unavoidable.  Even when I hyperfocus on some sort of
functionality that i know very well, that nobody but me has ever touched,
and that i have memorized...  It takes a solid night of my time to add new
features to all bosses, even when that logic is already centralized.
Attempting to modify something significant across the board when it's not
already centralized, which is pretty much everything, is simply not
possible.  There are too many idiosyncrasies, in a world that's too large
and too dense.  There will always be unintended consequences, and the
severity and complexity of those problems are frequently worse than the
original feature is beneficial.  So we toss it on the backburner, in the
hopes of an epiphany or a future improvement that will make it possible.  

One of the biggest reasons that this reboot has taken so long is that, for
the first time in the game's 20+ years, we're focusing on the
postproduction.  Neat things that we're adding won't be hidden or niche
because we stopped paying attention to them 3 hours after the initial coding
was completed- we're thinking them out, we're reasoning about them, we're
making them as accessible as they should (or shouldn't) be.  QA as a process
and a filter has matured to the point that Iyara spend 10+ hours a week
working out how to break things, how to reproduce bugs, what edge cases
might exist, what we need to take into consideration, what our next steps
are.  We've frontloading a lot of the necessary work that needs to be done
in order to ensure this game is strong into the future, and while it's
taking us a while to get there, I can assure you it'll be worth the wait.
And fortunately...  

---

Tonight, I wrangled an Umlaut to help me identify the final remaining piece
blocking me from being able to reboot.  Umlaut is a witch, and there was
good witchcraft.  The final piece has been fixed, to the point that the new
architecture should successfully port to live.  We also have a functionally-
identical server to live that we're using to practice the migration process,
and identifying any problems that might crop up before it happens.  It's
expensive to run and time-consuming to do, but we're looking forward to this
being the least-hassle reboot relative to its complexity and scope, ever.
The amount of work required and potential for error is literally second only
to the 4.0 transition, almost exactly 15 years ago.  This is what our
version looks like on dev:
 
I-MOTION Engine v4.422 (build 5897)
Latest commit: bf1effcc7afca5c29f804d7f9533e7d2df0bf099 @ Mon Jan 25 18:54:10 2016
Last compiled: 1453969241 - Thursday Jan 28 02:20:41 2016
 
We're in the home stretch, now. It's coming Real Soon Now™.
 
                                                             -Duende



#2 Runt

Runt

    Newbie

  • Members
  • Pip
  • 7 posts

Posted 29 January 2016 - 03:58 PM

Good deal sir! Thanks for the hard work!



#3 Sinon

Sinon

    Newbie

  • Members
  • Pip
  • 2 posts

Posted 04 February 2016 - 05:31 AM

After 15 years out from MM, I'm impressed that the game is still being developed, hats off to you sir.

 

 

 

Production is hard.  One of the benefits of being a text game, which I've
always espoused, is that unlike other games, I can bash out a feature in
several hours and have it be done a few orders of magnitude faster than any
other type of game; no animators, no illustrators, no managers, no client
work, no quibbling in meetings about what color to paint the bike shed.
Here's a new feature, I thought of it over dinner and it was done by the end
of the night.  And that's a nice thought, but not quite accurate.  

Production comes in three flavors.  Preproduction is where the 'thing' is
conceptualized, defined, planned out, decided whether it's a desirable and
interesting features.  We've always been sort of light on that, because it's
almost always an internal dialogue, and the people implementing these things
at the high level (Vassago and I the vast majority of the time) have
internalized the mechanics and world to the point that there's not
necessarily (in our opinions!)  A need to discuss it.  You think of a neat
idea, and that's it: go do it.

Production is where you implement the idea.  Sit down and code it.  This
could be new scripting capabilities (I add these very frequently, just on
the way to adding new content, and it never goes in the changelog, because
it's opaque to players anyway), variations on a theme (new tool type:
jewelers-workbench, used for 'pick apart' syntax), new functionality for
existing mechanics (Iyara requested the ability to free up relic slots from
eq, and after 2 minutes of conversation, we settled on "pick apart <relic>
<obj>" instead of the more-awkward "bash out <relic> <obj>"), or just new
mechanics (the ability to resist a skill on a per-skill basis).  The
production step is almost always just coding (then rebooting, then testing,
then fixing it, and cycling on and on and on...)

Post-production defines how the work produced is consumed, for the most
part.  This is the most important, but not really something we've always
excelled at.  Very often, we've made totally awesome things (either
conceptually or really) that just didn't work out.  There are tons of points
of failure here, both potentially and actually in our history.  Factions
should've been much cooler, but they were too complicated to administer on
the building side, and some of the math wasn't right, so I never really used
them.  The places where they are used frequently break, and are a hassle to
fix, so I just haven't, for way too long.  Sometimes there's functionality
present that people simply don't know about, either because it's
intentionally hidden and there aren't great hints (wand golem!  Valkyrie
tiara!)  Or it's simply opaque to players (there are a thousand lines of
logic regarding how combat works based on formation position, but it's so
subtle it literally doesn't matter and nobody's ever bothered working it
out, even if they could) or it's too inconsistent to bother with unless you
know exactly how it's going to work, why, when, and with enough payoff to
actually do so (extended descriptions).  

One of those old Bartle's Mud Laws focuses on the necessity of consistency-
if something works one way somewhere, it must work that way everywhere, lest
players get pissed off over the unevenness of product.  In a game our size,
that's nigh-unavoidable.  Even when I hyperfocus on some sort of
functionality that i know very well, that nobody but me has ever touched,
and that i have memorized...  It takes a solid night of my time to add new
features to all bosses, even when that logic is already centralized.
Attempting to modify something significant across the board when it's not
already centralized, which is pretty much everything, is simply not
possible.  There are too many idiosyncrasies, in a world that's too large
and too dense.  There will always be unintended consequences, and the
severity and complexity of those problems are frequently worse than the
original feature is beneficial.  So we toss it on the backburner, in the
hopes of an epiphany or a future improvement that will make it possible.  

One of the biggest reasons that this reboot has taken so long is that, for
the first time in the game's 20+ years, we're focusing on the
postproduction.  Neat things that we're adding won't be hidden or niche
because we stopped paying attention to them 3 hours after the initial coding
was completed- we're thinking them out, we're reasoning about them, we're
making them as accessible as they should (or shouldn't) be.  QA as a process
and a filter has matured to the point that Iyara spend 10+ hours a week
working out how to break things, how to reproduce bugs, what edge cases
might exist, what we need to take into consideration, what our next steps
are.  We've frontloading a lot of the necessary work that needs to be done
in order to ensure this game is strong into the future, and while it's
taking us a while to get there, I can assure you it'll be worth the wait.
And fortunately...  

---

Tonight, I wrangled an Umlaut to help me identify the final remaining piece
blocking me from being able to reboot.  Umlaut is a witch, and there was
good witchcraft.  The final piece has been fixed, to the point that the new
architecture should successfully port to live.  We also have a functionally-
identical server to live that we're using to practice the migration process,
and identifying any problems that might crop up before it happens.  It's
expensive to run and time-consuming to do, but we're looking forward to this
being the least-hassle reboot relative to its complexity and scope, ever.
The amount of work required and potential for error is literally second only
to the 4.0 transition, almost exactly 15 years ago.  This is what our
version looks like on dev:
 
I-MOTION Engine v4.422 (build 5897)
Latest commit: bf1effcc7afca5c29f804d7f9533e7d2df0bf099 @ Mon Jan 25 18:54:10 2016
Last compiled: 1453969241 - Thursday Jan 28 02:20:41 2016
 
We're in the home stretch, now. It's coming Real Soon Now™.
 
                                                             -Duende



#4 Hastur

Hastur

    Advanced Member

  • Members
  • PipPipPip
  • 99 posts

Posted 18 February 2016 - 07:36 PM

So the wand golem will work now???