SotA & Agile Game Development FAQ ?

Discussion in 'General Discussion' started by Bowen Bloodgood, Oct 17, 2017.

Thread Status:
Not open for further replies.
  1. Bowen Bloodgood

    Bowen Bloodgood Avatar

    Messages:
    13,289
    Likes Received:
    23,380
    Trophy Points:
    165
    Gender:
    Male
    Location:
    Caer Dracwych
    So I'm thinking that a lot players simply don't really understand how and why SotA is developed the way that it is and that not understanding certain aspects of SotA's development leads to all kinds of misunderstandings and perceptions.

    Portalarium can and should take steps to alleviate this by helping to educate the community. Then I thought.. why not help to get this started?

    So I'm asking to community to post game development related questions here to be compiled and hopefully answered by devs when they have time. ANY questions related to SotA development or agile game development in general. It may be a question for Starr, Chris or anyone really currently working at Portarlium and the processes they go through.

    Questions I'd like to avoid.. are anything already on the current FAQ or similar types of questions about specific game features or suggestions about features.

    The intent I'm going for here is to be educational regarding the development process.

    Allow me to kick things off.

    Q: What is agile game development?

    Q: How is developing SotA different than developing other games?

    Q: What is a Jira? and how they prioritized and used?

    Q: @DarkStarr - Can you tell us a bit about what your job is? What are you mainly responsible for and what processes do you go through?

    Q: @Berek - What are some of the challenges you face when dealing with the community? :)

    Q: @Berek - Can you tell us a few things about your job we might not know?

    Q: How are new game features developed at Portalarium? Crafting for example, how did Crafting in SotA begin and how did it get to where it is today?

    Q: What are some of the biggest challenges in developing SotA?

    Q: What are some of the biggest challenges Portalarium has had with open development?

    Q: Why aren't some questions given a clear answer when they're asked? ;)

    Q: What is a mesh?

    Q: How do texture maps work?

    Q: What is Foley?

    Q: What is the challenge in making a story for both single and multiplayer?

    Q: What is the process for getting sound into the game?

    Q: What is involved in providing support for the game?

    Q: Who is behind support@portalarium.com?

    Q: Why are some features frequently postponed? How does that work?

    Q: Some features (ie the economy) seem very foundational/important. Why aren't they done sooner than feature X which gets a lot more attention?

    You get the idea, :)

    Please use a similar format for your questions. Feel free to direct your questions to anyone at Portalarium.

    It would be awesome if questions could be answered directly by whichever dev/staff that is most involved with the work related to the question. :) (As time and energy permits of course)
     
    Last edited: Oct 17, 2017
    Winfield, FrostII, amarious and 13 others like this.
  2. Bowen Bloodgood

    Bowen Bloodgood Avatar

    Messages:
    13,289
    Likes Received:
    23,380
    Trophy Points:
    165
    Gender:
    Male
    Location:
    Caer Dracwych
    <reserved for compiling questions>

    Note: This section is a work in progress and will be subject to formatting changes and may occasionally be littered with misc. notes to help me keep track of things. All answers will eventually be placed here but as some are lengthy I'll probably contain them in /Spoiler tags.

    FQ is a follow-up question.

    Q: What is SCRUM?

    Q: What is agile game development?
    There is a LOT to say here but I will try to keep it simple. The fundamental principle of Agile is “Always be Shipping.” What this means really is always try to have the product in a state that it is useable. To do that pick short duration cycles (aka heartbeats or sprints) that you can bring everything to a working state and then “ship” before repeating the process. It also means being willing to change plans as you encounter data, hence the use of the word “agile” which is why short duration cycles are important. You don’t want to go too long without either getting to a working state or reviewing your trajectory against your data set to see if you are still going in the right direction. Lastly transparency is another key component so each day we have standups where everyone on the team gets together for a short meeting (10 minutes or less) and says what they worked on yesterday, what they will work on today, and if they are blocked. If they are blocked then we have a follow up discussion after the meeting to unblock them. Like I said at the beginning there is much more to discuss but that is a quick primer.


    Q: How is developing SotA different than developing other games?

    Q: What is a Jira? and how they prioritized and used?
    ]This is a JIRA - otherwise known as a bug tracking ticket - as it happened I had one screenshotted as part of our SOTACON talk.

    [​IMG]

    Has a link to the discussion on the bug forum where I can go find it, and how to reproduce it so I can fix it. It's classified "High", which is lower than "Critical" (this breaks everything omg) and higher than "Medium" (people don't like this being broken) or "Low" (you have a typo in Godbert's dissertation about cheese)

    Any time someone touches it (to comment on it, reassign it, or resolve it) it is tracked. I can flag it as "in progress", which is handy to let Starr know what's actively being worked on. And because it's in a database it can always be called up whenever looking for related bugs.

    You can see that I have 87 JIRAs active for Release 47 as of that screenshot. Right now I'm down to 68. Progress!

    Q: @DarkStarr - Can you tell us a bit about what your job is? What are you mainly responsible for and what processes do you go through?
    I’m the Executive Producer on the project. That is a fancy way of saying I run the studio and the team/project.

    My main job is to create and manage the schedule. This involves first working with the leads to decide what our current Top 10 priorities are. From there I lay out a roadmap for the project month to month that lists out every feature and every piece of content with more detail in the current quarter and less detail as you go farther out. Once I have the roadmap laid out we then start creating tasks (aka stories) in JIRA which is our task and bug tracking/management tool. The giant list of all tasks and bugs is called our backlog. As each release (aka sprint) starts I pull a set of tasks from the backlog (or create new ones as needed) and assign them to each developer based on how many tasks I believe that dev can accomplish in the sprint. I prioritize the tasks so that anything marked high, critical, or blocker is expected to be completed in the sprint but anything marked medium or low can slip to a later sprint. The total number of tasks assigned is balanced against any bugs the dev needs to fix too. Then the dev and I have a brief discussion about the task load I’ve assigned and negotiate it against my estimates vs. theirs and adjust as necessary (usually pushing a few tasks into the next sprint as I am always a little aggressive). Additionally some tasks need further design/discussion so I will schedule a kickoff meeting before development can begin (this usually pertains to big systems and maps). Each week I triage the task load for the entire team to see who we are doing and push tasks out or pull tasks in as needed (sometimes creating new ones as needed as well).

    Secondarily I am also in charge of our press, marketing, sales, and funding strategies so I spend time planning how we are going to add content to the store, do telethons, attend trade shows, etc. I also work with the press to make sure we are getting coverage when needed.

    Finally I make sure we are considering user feedback in everything we do so I spend time every day in the forums reading what you the players are saying.


    Q: @Berek - What are some of the challenges you face when dealing with the community? :)
    A: Surprisingly few actually, as our community is really that awesome all-around. I'll bullet-point the Top 3:
    1. Getting development updates to the community in a clear and easy-to-read / hard-to-miss manner.
    2. Showing the community that the developers are super passionate and are working their hardest.
    3. Trying to keep the peace with so many differing viewpoints and gameplay styles. Many times when we moderate, people take it very personally, and it's never personal or in a favoritism way. I wish I could do better at getting this point across.

    Q: @Berek - Can you tell us a few things about your job we might not know?
    A: A great question! Let's see...
    1. Many ideas on who we should have on a livestream, what spotlights to promote, etc., come from the community more than me trying to find someone ourselves (keep it up, thanks community!).
    2. I also manage website content, update the store front (let me know if you ever see something out of date here and on the website as a whole), send out the weekly updates w/emails, and some marketing/brand needs like creating article header images (now especially with Travian Games).
    3. I sit right next to @Lum the Mad, @Sea-Wolf, and @Scottie, so you can bug me if you need to bug them :).
    Bonus answer: I always have an ice cream cone (at some random Austin shop) Sunday evenings to prepare myself for the week ahead :).

    Q: How are new game features developed at Portalarium? Crafting for example, how did Crafting in SotA begin and how did it get to where it is today?

    Q: What are some of the biggest challenges in developing SotA?

    Q: What are some of the biggest challenges Portalarium has had with open development?

    Q: Why aren't some questions given a clear answer when they're asked? ;)

    Q: What is a mesh?
    A mesh is a collection of lists: Vertices (points in space), Tris (which vertices make up a triangle) and additional (optional) data such as normals, UVs (or UVWs) and vertex colour.

    A square (or a "quad", as we call them) is essentially built as follows:

    Vertices is a list of vectors:
    vert0 : Vector3(0,0,0)
    vert1 : Vector3(1,0,0)
    vert2 : Vector3(1,0,1)
    vert3 : Vector3(0,0,1)

    Tris is a list of vertices. Three consecutive vertices is a tri (a triangle). The order dictates the frontface (what the engine identifies as the surface to draw when backface-culling is applied):
    vert0
    vert1
    vert3 _ one tri
    vert3
    vert1
    vert2 _ 2nd tri

    [​IMG]
    (the image above use the term "face" instead of "tris")

    Normals (optional) is a list of vectors that tell the light which direction the surface is facing. Normal maps is a texture file that contains (x,y,z) modifications to the normals and the data is stored in (r,g,b); used to influence how the surface is perceived by light on a per-pixel basis to add incredible levels of detail.

    In layman terms, a mesh is the geometry of a 3D model. The reason why we call it a "mesh" it's because a wireframe looks like a mesh. We love to use multiple words for the same thing.

    Code:
    struct Mesh {
         internal vector3[] vertex;
         internal int[] tri; //the number corresponds to the index of vertex.
    
         internal color[] vertexColor;
         internal vector3[] normals;
         internal vector2[] uv;
    }
    

    Texture maps works with the mesh :)

    Basically you add another optional list that we call UVs (or UVWs). It essentially goes like this:
    for vert0 : Vector2(u, v)
    for vert1 : Vector2(u, v)
    for vert2 : Vector2(u, v)
    for vert3 : Vector2(u, v)

    U corresponds to the X axis in 2D space, V to the Y axis in 2D space and W to the Z axis in 2D space (we use different letters to differenciate 3D space to 2D space).

    So Vector2(u,v) are coordinates that corresponds to the pixels in your texture file. (0,0) typically is assigned to the top-left corner of your image. (1,1) is the bottom-right corner of your image. A UVW is typically used for procedurally generated textures where you'd want a depth variant; like for tri-planar shading.

    So, for example, you map vert0 to (u,v) in your image and you map it in 3D space to (x,y,z).

    [​IMG]


    I hope this helps.

    Read more on game graphics at: https://www.shroudoftheavatar.com/forum/index.php?threads/on-video-game-graphics.54435/
    I believe it goes in greater detail on various game-related graphics terminology.

    Q: How do texture maps work?

    Q: What is Foley?

    Q: What is the challenge in making a story for both single and multiplayer?
    A: Do you have a few months? :)

    It's one of the more hotly discussed topics on the forum, and with good reason. Story development has lagged behind other parts of the game for a while now, and has been @Lord British's personal cause for a while now. (Refer back to those 68 JIRAs - the number was about 30 higher last week, thanks to about that many suggestions from a feedback thread on the story finale that LB mined for action items) Specifically, making a compelling single player story that survives contact with multiplayer (and vice versa) isn't easy. There's some technical challenges involving instancing/phasing that we've yet to overcome, which ties our hands in a lot of ways in regards to making your actions have a visible impact.

    There's issues beyond that, though. Instancing everything willy nilly also isn't a good answer because it effectively puts everyone into a single-player narrative, which is less than ideal. Having everything a player does reflect on a multiplayer narrative for everyone else is also, to put it mildly, less than ideal (I recall a recent thread here where someone was disappointed that they couldn't burn Owl's Head to the ground, thus forcing everyone in the Hidden Vale to shop at their POT. Uh. That has some issues.) In general, our direction has to make a compelling narrative for everyone, regardless of play mode. I think it's obvious we have a way to go there, and continue to iterate on it (and will continue to do so well into the future).

    The whole topic is something we're actively working to improve, and we keep a close eye on feedback and suggestions here. (Note: burning Owl's Head to the ground is not a helpful suggestion.)

    FQ: Which is true now? That the story is finished and won't be "reworked" (LBs words) or that it is far from finished because besides other issues you don't have the right technical tools yet either (phasing...). Or is what you are saying something that will be addressed in Episode 2 an not before.​

    We are working on it to the wire; there are significant changes to the ending Path of the Oracle script going live next week based on player feedback.
    There's more than one challenge, but the biggest one is that what can be done story-wise in single player usually cannot be done in multiplayer. At least not with the same depth and how player actions (or inaction) affects the story and environment. For example:

    Single Player (hypothetical if the single player aspect was the only way to play the game, or was a separate entity)
    In Blood River Outskirts, if the player chose to side with the elves and serve Phineas with the warrant, the scene would change to reflect it. Phineas would clear out of his camp and head back to Aerie to reclaim his fortune and probably face trial. The player may even have a quest to be a witness in the trial. Aerie militia would have taken over his camp to make sure any and all signs of the vigilantes were being eradicated. The elves would relax a bit and probably just make this area their new home, building up the encampment to more resemble a village. Naturamans might eventually build up an army of fell-druidic plant-zombies and try to overtake the remaining elves, or make the pyramid his new home, burrowing out more of the interior to hone his master plan of regional domination. Fungelves (what I internally call the Corrupted Elves) would no longer be a problem and would cease to spawn. All the mushroom men and slimes would be a thing of the past. The Obsidian elf camp might build up to a fortification and cause problems for all in the area. Etc., etc.

    Now, what would this do to multiplayer? It would kill any other future players' chances of finishing the quests, giving the warrant, or poisoning the elves, etc. So, in considering multiplayer, all quests, interactions, progress, etc. has to play nice to all potential players no matter where they are in the quest lines. We can do checks in dialogues to represent where the player is in their quest progress. We can have the occasional solo-instance to allow us the freedom of showing change based on player actions. And we can put in multiple ways of completing quests to spice things up, time allowing. Now, I tried to do the latter in Blood River Outskirts wherever possible, but man did it cause a lot of problems. Anyone outside Port that could see how many flags and checks I'm using throughout all the dialogues and trigger boxes would probably have their heads explode. I know mine did several times during the polishing phases. It was a great trial-by-fire for me to quickly get up to speed on the tools, but man it was painful. It did allow me to do more with Highvale Outskirts, however. Yes, HVO is more straight forward and more combat oriented, but it's the path of courage and challenges players to jump into the fray. There's a lot of courage virtue points handed out in HVO as a result, and some taken away based on taking the easy way out, so to speak. But the lessons learned on BRO allowed me the time to create the frostgeist critters, the Bogman of highvale Outskirts, the water golems, the fancy barrier in the mine, and a bunch of other things. It doesn't necessarily change the environment based on player actions, but hopefully it made the encounters more interesting. One thing I was able to do that is a direct affect of where the player is in the quest line, is when the player finishes the main quest and defeats the geistesser, all the surprise frostegeist spawners will not fire for players at this stage of the quest, lessening the amount of frostgeists the player triggers in the scene dramatically.

    "You can just put in phasing! It's so easy. I could do it in a weekend!"
    No, it's not easy. And no, you couldn't do it in a weekend. It's a lot of work and is far from fool-proof. Current MMOs that use phasing still have a lot of issues, not the least of which is that if players want to meet up, they may not be able to because they are in different phases as a result of being at different points within the quest line. It's certainly something to consider, and we have had talks about it, but it's not like flipping a switch and everything magically fulfills everyone's dreams.

    Going forward, and using all I've learned about what can and can't be done effectively with the tools, I will try to put in as many options for quest completion as I can, as well as think of ways to illustrate the players' actions in the scene without breaking things for everyone else. It's a tough job, but I like taking a stab at it every chance I get.

    Q: What is the process for getting sound into the game?

    Q: What is involved in providing support for the game?

    Q: Who is behind support@portalarium.com?

    Q: Why are some features frequently postponed? How does that work?

    Q: Some features (ie the economy) seem very foundational/important. Why aren't they done sooner than feature X which gets a lot more attention?

    ---------------------------------------------------

    Q: What's the texturing workflow you guys using in SotA?

    Q: How much of the textures are in an atlas? If any, which ones do you group together?

    Q: How many objects and/or revisions does an artist do per day on average?

    Q: How many scenes uses Global Illumination if at all? If so, how much of a footprint does the light map have on memory? Do houses (or any dynamic objects) have any light maps?

    Non-Art related:
    Q: Do you utilize Unity's NavMesh pathfinding or do you build your own?

    Q: Did you ever had to scrap content (a scene or a quest)?
     
    Last edited: Oct 23, 2017
    Winfield, Hornpipe and amarious like this.
  3. Berek

    Berek Portalarian Emeritus Dev Emeritus

    Messages:
    3,957
    Likes Received:
    12,761
    Trophy Points:
    165
    Gender:
    Male
    Location:
    Austin, TX
    Q: @Berek - What are some of the challenges you face when dealing with the community? :)

    A: Surprisingly few actually, as our community is really that awesome all-around. I'll bullet-point the Top 3:
    1. Getting development updates to the community in a clear and easy-to-read / hard-to-miss manner.
    2. Showing the community that the developers are super passionate and are working their hardest.
    3. Trying to keep the peace with so many differing viewpoints and gameplay styles. Many times when we moderate, people take it very personally, and it's never personal or in a favoritism way. I wish I could do better at getting this point across.

    Q: @Berek - Can you tell us a few things about your job we might not know?

    A: A great question! Let's see...
    1. Many ideas on who we should have on a livestream, what spotlights to promote, etc., come from the community more than me trying to find someone ourselves (keep it up, thanks community!).
    2. I also manage website content, update the store front (let me know if you ever see something out of date here and on the website as a whole), send out the weekly updates w/emails, and some marketing/brand needs like creating article header images (now especially with Travian Games).
    3. I sit right next to @Lum the Mad, @Sea-Wolf, and @Scottie, so you can bug me if you need to bug them :).
    Bonus answer: I always have an ice cream cone (at some random Austin shop) Sunday evenings to prepare myself for the week ahead :).
     
  4. StrangerDiamond

    StrangerDiamond Avatar

    Messages:
    4,355
    Likes Received:
    4,999
    Trophy Points:
    153
    Oh but you did ! I'm the worse, and I know it, vicious obsidian snake I get told. Yet, Berek you always takes the time to clarify situations to help us understand, and everyone is human, sometimes when you feel you cannot handle a situation and you have to "wrap it up" of course some will think it looks like censorship. I'm the best living example that you guys are not censors, just humans trying to deal with emotional tornadoes, or I'd be long banned into the stygian abyss :p

    Lately I have seen very impressive examples that Portalarium has great adaptability, it took less than a month for you guys to take action on the stock shaders issue, of course its a work in progress, but my frame rate in blood bay yesterday was around 15 FPS, that is +5 FPS with my less than optimal home computer, GREAT improvement, also once I enter a scene or have initially loaded a scene, after the scene loads twice as fast, and there is less hitching on entering a scene, better prioritization of polygon loading.

    Most game development would take months to find a proper specialist, then months to settle issues... I am pretty sure someone @Portalarium has taken the issue in their own hands, and went through all the trouble of studying shader routines, props to this gal/guy !

    To me its obvious that we are lucky to have such passionate people working for us.
     
  5. Lum the Mad

    Lum the Mad Developer Emeritus Dev Emeritus

    Messages:
    2,488
    Likes Received:
    12,987
    Trophy Points:
    190
    This is a JIRA - otherwise known as a bug tracking ticket - as it happened I had one screenshotted as part of our SOTACON talk.

    [​IMG]

    Has a link to the discussion on the bug forum where I can go find it, and how to reproduce it so I can fix it. It's classified "High", which is lower than "Critical" (this breaks everything omg) and higher than "Medium" (people don't like this being broken) or "Low" (you have a typo in Godbert's dissertation about cheese)

    Any time someone touches it (to comment on it, reassign it, or resolve it) it is tracked. I can flag it as "in progress", which is handy to let Starr know what's actively being worked on. And because it's in a database it can always be called up whenever looking for related bugs.

    You can see that I have 87 JIRAs active for Release 47 as of that screenshot. Right now I'm down to 68. Progress!
     
  6. Lum the Mad

    Lum the Mad Developer Emeritus Dev Emeritus

    Messages:
    2,488
    Likes Received:
    12,987
    Trophy Points:
    190
    Q: What is the challenge in making a story for both single and multiplayer?

    A: Do you have a few months? :)

    It's one of the more hotly discussed topics on the forum, and with good reason. Story development has lagged behind other parts of the game for a while now, and has been @Lord British's personal cause for a while now. (Refer back to those 68 JIRAs - the number was about 30 higher last week, thanks to about that many suggestions from a feedback thread on the story finale that LB mined for action items) Specifically, making a compelling single player story that survives contact with multiplayer (and vice versa) isn't easy. There's some technical challenges involving instancing/phasing that we've yet to overcome, which ties our hands in a lot of ways in regards to making your actions have a visible impact.

    There's issues beyond that, though. Instancing everything willy nilly also isn't a good answer because it effectively puts everyone into a single-player narrative, which is less than ideal. Having everything a player does reflect on a multiplayer narrative for everyone else is also, to put it mildly, less than ideal (I recall a recent thread here where someone was disappointed that they couldn't burn Owl's Head to the ground, thus forcing everyone in the Hidden Vale to shop at their POT. Uh. That has some issues.) In general, our direction has to make a compelling narrative for everyone, regardless of play mode. I think it's obvious we have a way to go there, and continue to iterate on it (and will continue to do so well into the future).

    The whole topic is something we're actively working to improve, and we keep a close eye on feedback and suggestions here. (Note: burning Owl's Head to the ground is not a helpful suggestion.)
     
  7. Gix

    Gix Avatar

    Messages:
    2,203
    Likes Received:
    4,014
    Trophy Points:
    153
    @Bowen Bloodgood
    A mesh is a collection of lists: Vertices (points in space), Tris (which vertices make up a triangle) and additional (optional) data such as normals, UVs (or UVWs) and vertex colour.

    A square (or a "quad", as we call them) is essentially built as follows:

    Vertices is a list of vectors:
    vert0 : Vector3(0,0,0)
    vert1 : Vector3(1,0,0)
    vert2 : Vector3(1,0,1)
    vert3 : Vector3(0,0,1)

    Tris is a list of vertices. Three consecutive vertices is a tri (a triangle). The order dictates the frontface (what the engine identifies as the surface to draw when backface-culling is applied):
    vert0
    vert1
    vert3 _ one tri
    vert3
    vert1
    vert2 _ 2nd tri

    [​IMG]
    (the image above use the term "face" instead of "tris")

    Normals (optional) is a list of vectors that tell the light which direction the surface is facing. Normal maps is a texture file that contains (x,y,z) modifications to the normals and the data is stored in (r,g,b); used to influence how the surface is perceived by light on a per-pixel basis to add incredible levels of detail.

    In layman terms, a mesh is the geometry of a 3D model. The reason why we call it a "mesh" it's because a wireframe looks like a mesh. We love to use multiple words for the same thing.

    Code:
    struct Mesh {
         internal vector3[] vertex;
         internal int[] tri; //the number corresponds to the index of vertex.
    
         internal color[] vertexColor;
         internal vector3[] normals;
         internal vector2[] uv;
    }
    
    Texture maps works with the mesh :)

    Basically you add another optional list that we call UVs (or UVWs). It essentially goes like this:
    for vert0 : Vector2(u, v)
    for vert1 : Vector2(u, v)
    for vert2 : Vector2(u, v)
    for vert3 : Vector2(u, v)

    U corresponds to the X axis in 2D space, V to the Y axis in 2D space and W to the Z axis in 2D space (we use different letters to differenciate 3D space to 2D space).

    So Vector2(u,v) are coordinates that corresponds to the pixels in your texture file. (0,0) typically is assigned to the top-left corner of your image. (1,1) is the bottom-right corner of your image. A UVW is typically used for procedurally generated textures where you'd want a depth variant; like for tri-planar shading.

    So, for example, you map vert0 to (u,v) in your image and you map it in 3D space to (x,y,z).

    [​IMG]


    I hope this helps.

    Read more on game graphics at: https://www.shroudoftheavatar.com/forum/index.php?threads/on-video-game-graphics.54435/
    I believe it goes in greater detail on various game-related graphics terminology.
     
    Last edited: Oct 17, 2017
  8. High Baron O`Sullivan

    High Baron O`Sullivan Avatar

    Messages:
    3,478
    Likes Received:
    8,062
    Trophy Points:
    165
    Gender:
    Male
    Location:
    is everything.
    Love the work being done by the team. Great improvements as of late! Interesting to see how JIRA works, thanks @Lum the Mad !
     
  9. Rada Torment

    Rada Torment Community Ambassador (ES)

    Messages:
    1,473
    Likes Received:
    4,645
    Trophy Points:
    125
    Gender:
    Male
    Great thread Bowen.

    I think the questions were made to be answered by devs.

    I guess the point is to know the process and workflow (its very different depending on the project and game) used in Portalarium for this game.
     
    Last edited: Oct 17, 2017
  10. Puuk

    Puuk Developer Emeritus

    Messages:
    199
    Likes Received:
    1,023
    Trophy Points:
    30
    Gender:
    Male
    Location:
    Austin, TX
    Q: What is the challenge in making a story for both single and multiplayer?

    There's more than one challenge, but the biggest one is that what can be done story-wise in single player usually cannot be done in multiplayer. At least not with the same depth and how player actions (or inaction) affects the story and environment. For example:

    Single Player (hypothetical if the single player aspect was the only way to play the game, or was a separate entity)
    In Blood River Outskirts, if the player chose to side with the elves and serve Phineas with the warrant, the scene would change to reflect it. Phineas would clear out of his camp and head back to Aerie to reclaim his fortune and probably face trial. The player may even have a quest to be a witness in the trial. Aerie militia would have taken over his camp to make sure any and all signs of the vigilantes were being eradicated. The elves would relax a bit and probably just make this area their new home, building up the encampment to more resemble a village. Naturamans might eventually build up an army of fell-druidic plant-zombies and try to overtake the remaining elves, or make the pyramid his new home, burrowing out more of the interior to hone his master plan of regional domination. Fungelves (what I internally call the Corrupted Elves) would no longer be a problem and would cease to spawn. All the mushroom men and slimes would be a thing of the past. The Obsidian elf camp might build up to a fortification and cause problems for all in the area. Etc., etc.

    Now, what would this do to multiplayer? It would kill any other future players' chances of finishing the quests, giving the warrant, or poisoning the elves, etc. So, in considering multiplayer, all quests, interactions, progress, etc. has to play nice to all potential players no matter where they are in the quest lines. We can do checks in dialogues to represent where the player is in their quest progress. We can have the occasional solo-instance to allow us the freedom of showing change based on player actions. And we can put in multiple ways of completing quests to spice things up, time allowing. Now, I tried to do the latter in Blood River Outskirts wherever possible, but man did it cause a lot of problems. Anyone outside Port that could see how many flags and checks I'm using throughout all the dialogues and trigger boxes would probably have their heads explode. I know mine did several times during the polishing phases. It was a great trial-by-fire for me to quickly get up to speed on the tools, but man it was painful. It did allow me to do more with Highvale Outskirts, however. Yes, HVO is more straight forward and more combat oriented, but it's the path of courage and challenges players to jump into the fray. There's a lot of courage virtue points handed out in HVO as a result, and some taken away based on taking the easy way out, so to speak. But the lessons learned on BRO allowed me the time to create the frostgeist critters, the Bogman of highvale Outskirts, the water golems, the fancy barrier in the mine, and a bunch of other things. It doesn't necessarily change the environment based on player actions, but hopefully it made the encounters more interesting. One thing I was able to do that is a direct affect of where the player is in the quest line, is when the player finishes the main quest and defeats the geistesser, all the surprise frostegeist spawners will not fire for players at this stage of the quest, lessening the amount of frostgeists the player triggers in the scene dramatically.

    "You can just put in phasing! It's so easy. I could do it in a weekend!"
    No, it's not easy. And no, you couldn't do it in a weekend. It's a lot of work and is far from fool-proof. Current MMOs that use phasing still have a lot of issues, not the least of which is that if players want to meet up, they may not be able to because they are in different phases as a result of being at different points within the quest line. It's certainly something to consider, and we have had talks about it, but it's not like flipping a switch and everything magically fulfills everyone's dreams.

    Going forward, and using all I've learned about what can and can't be done effectively with the tools, I will try to put in as many options for quest completion as I can, as well as think of ways to illustrate the players' actions in the scene without breaking things for everyone else. It's a tough job, but I like taking a stab at it every chance I get.
     
  11. Gix

    Gix Avatar

    Messages:
    2,203
    Likes Received:
    4,014
    Trophy Points:
    153
    Sure but... not every 3D Artist actually know what a mesh is or how it works, much less explain it. You can be a good driver and not know how a car works. "What is a mesh", "how do texture maps work" and "what is foley" aren't exactly workflow questions.

    I'm sorry I ever bothered...
     
  12. Rada Torment

    Rada Torment Community Ambassador (ES)

    Messages:
    1,473
    Likes Received:
    4,645
    Trophy Points:
    125
    Gender:
    Male
    You did nothing wrong, but everyone could search in google all this and more. The interesting point in this thread is to know how they work. As an artist I would like to know their workflow with shading and texturing, because the terms are something really simple for any 3d artist (I don't know any artist working in the industry not knowing this tbh).

    Maybe the question should be "Whats the texturing workflow you guys using in SotA?", as example.
     
    Last edited: Oct 17, 2017
    Paladin Michael and Sir Cabirus like this.
  13. StrangerDiamond

    StrangerDiamond Avatar

    Messages:
    4,355
    Likes Received:
    4,999
    Trophy Points:
    153
    @Lord_Darkmoon
     
  14. Jens_T

    Jens_T Avatar

    Messages:
    641
    Likes Received:
    1,483
    Trophy Points:
    93
    Location:
    Zurich
    Would it be possible to have "major" changes reflected in instanced maps. I.e. BRO: One "Basic" map which is used until the main quest line is finished; one Map for "successfully helped the Elves", one for "support the Vigilantes" and maybe one for "Naturamans and the Obsidian Elves take over".
    This would mean extra work to place NPC, spawners and adjust some scenes - but can be done with existing technology.
     
  15. StrangerDiamond

    StrangerDiamond Avatar

    Messages:
    4,355
    Likes Received:
    4,999
    Trophy Points:
    153
    That would be quite impossible with guards around Lum, lol... that is a suggestion from someone that comes straight from UO and does not know about the earlier challenges we faced :p Sure in UO you could try to kill all npcs in a town to force players to go to your vendor on the edge of town, but they'd respawn after 10 minutes and being instant killed by the guards makes it very hard anyways. :)
     
  16. Puuk

    Puuk Developer Emeritus

    Messages:
    199
    Likes Received:
    1,023
    Trophy Points:
    30
    Gender:
    Male
    Location:
    Austin, TX
    The payoff for the amount of work it would take to do this isn't reasonable. It's akin to making 2 more BRO maps with entirely new quest lines, encounters, art work, etc. Figure it took roughly a month for a world builder to build out BRO. Then I come in and put in quest and encounter content that takes roughly 6 weeks to shoe horn in (keep in mind this doesn't count the polishing phase). Add to the initial 6 weeks another month of polish and we're looking at 2.5 months of work for just one of the scenes, which probably still needs more polishing because of how complex the conversations are based on player actions. Two scenes would mean at least 5-7 months. From the outside looking in, it seems rather easy to do, but when you factor in everything that needs to go into such tasks, the payoff just doesn't support it. At that rate, SOTA wouldn't be released until 2019.
     
  17. StrangerDiamond

    StrangerDiamond Avatar

    Messages:
    4,355
    Likes Received:
    4,999
    Trophy Points:
    153
    Agree with the sentiment and appreciate the complexity of your vision, but since we're talking about the same scene, it wouldn't add up like this :p

    I don't think people expect an amazing new scene with all buildings changed either... people still have imagination :)
     
    Last edited: Oct 17, 2017
  18. Puuk

    Puuk Developer Emeritus

    Messages:
    199
    Likes Received:
    1,023
    Trophy Points:
    30
    Gender:
    Male
    Location:
    Austin, TX
    You sure about that? None of the scenes that would have to be made to represent the player actions would be even close to the same scene as the original. Take for example if a player not only gave the warrant to Phineas, but also went back and poisoned the elves. Guess what? Now we have to make a fourth map to represent that situation. Now we have 4 BRO maps: The original; BRO for people who sided with the elves but did not poison the elves after delivering the warrant; BRO for people who sided with Phineas and poisoned the elves; BRO for people who sided with the elves, delivered the warrant, and then poisoned the elves; and there's another - BRO for people who sided with the elves, delivered the warrant, AND poisoned the vigilantes. So, there 5 total BRO maps and 4 more that need to be made for the main quest possible outcomes. And this doesn't take into consideration whether or not the player(s) even bothered to defeat Naturamans in the mushroom cave. Have to make 2 more maps just to cover that possibility - one map that still has fungelves running around, and another map that doesn't. Now we're looking at 2 more maps to reflect that outcome. BUT WAIT, THERE'S MORE! Now we have to take into consideration that the original new four maps would have to reflect the different possible outcomes of whether or not the player defeated Naturamans and the mushroom cave! Where does it end? We could conceivably make an entire game of BRO permutations based on what players did in the scene. It might be done in another 3-4 years.
     
    majoria70, Barugon, Rentier and 3 others like this.
  19. Drocis the Devious

    Drocis the Devious Avatar

    Messages:
    18,188
    Likes Received:
    35,440
    Trophy Points:
    153
    Gender:
    Male
    There was a recent phasing conversation on the forums and this was my response as a phasing alternative to the Charlotte quest. Thought you might appreciate this line of thinking...
    EDIT: Really great feedback, btw. I always appreciate understanding the reality of the development process. I understand that solutions are not always easy, and that might go for what I describe above. If that's the case, I'd love to know more.
     
    Last edited: Oct 17, 2017
  20. StrangerDiamond

    StrangerDiamond Avatar

    Messages:
    4,355
    Likes Received:
    4,999
    Trophy Points:
    153
    Well I really do enjoy the thoroughness of your design :) Its what makes a game great IMO but people would settle for much less... of course its a good amount of work upfront, but then its all automated :)

    I think you guys can do it, at least for a few critical scenes, and maybe skip side quests that have less impact on the world.

    Some scenes however, finishing the quest would be less rewarding from my POV than seeing that your actions had consequences. But I'm a roleplayer to the core, my personal preference would have been to finish the single player experience first (which is less than 5% of our population) :)

    No stress, but once I see it I will applaud loudly :)
     
    twofoldsilence likes this.
Thread Status:
Not open for further replies.