Saturday, 28 March 2015

Game Update : The terror of testing.

Today was a great day for my video game project.

After numerous and exhausting weeks of testing, debugging, more testing and even more debugging, the three of us in the dev team launched a three-player game session.  It's a pretty big deal because we normally test multi-player in a two-player environment and, most of the time, we just run the game in single-player just to test out basic functions.  The last time we had three players, it was back in January when we were testing out latency and the chat...  that's all we could do because that's all there was.

This time, it was different.  Since my last blog entry, I've been working on implementing the dungeon generator into my multi-player build (which, before then, those two aspects have been isolated from one another).  So the game was able to construct a simple world, send it to other clients and now I was putting it to the task of generating elaborate dungeon(s) and hope that all clients wouldn't simply blow up from the load.  Sure, the program's been through testing...  but I didn't plan this three-player session and that terrified me.  I wasn't ready emotionally to see my baby potentially fail.


Player characters currently have crude (almost minecraft-looking) placeholder bodies.  Those bodies couldn't have looked more real for that particular moment when I saw two "beings" spawn in front of me, with their sphere-like heads spinning; looking about their new environment.  That moment was promptly followed by us moving around, jumping, chatting...  you know, to make sure that everything checked out okay.  We even went as far as trying to push each other, see if we'd get stuck in geometry, fall through the world, etc.

That is, until we found an entrance to a random cave.  We almost froze at the sight because we knew that, if one of us went through that entrance, it would procedurally generate a completely new and unexplored area... or crash miserably... or nothing at all!  It's one thing to spawn into someone else's procedurally generated environment, but it's an entirely different thing to move and load into a completely different area.  There were hundreds of ways that it could've gone wrong.  You start to doubt yourself and think about things like:
- What happens if the host doesn't go through the entrance but, instead, another player goes in first?  Does it load properly?
- What happens if two players decide to go through the entrance at the same time?  Do we get two radically different copies of the "same" cave?

Well I've been coding in such as way that take these questions into consideration but you don't really know until you try them out and see for yourself.  I mean,
- What happens if all three players go through the entrance, one client is generating the dungeon (while the others are waiting to receive the info) but crashes midway.  Are all players stuck in limbo?
- What happens if one client fails to properly load the dungeon?

That's some scary stuff!
So one guy charges through the entrance, we held our breath and the rest of us followed.  Here we were, three guys finding ourselves inside this cave.

- "This rock!"  I cried while jumping/pointing at the ground "Does everybody see this rock?  Please tell me you see this rock!"

For the next couple of minutes, we were comparing notes to see if we were indeed seeing the same thing.  We were and eventually we ended up wondering around aimlessly in our separate ways.  One guy found another entrance to go deeper into the cave, the other started climbing the walls to see how far up he could go.  It was at around that time that all terror evaporated from me and the funny thing is that I realized that finding each other in these labyrinths would be pretty hard.  We had no map, no way of knowing where each of us were and there's practically no limit to how deep into a dungeon you can go.

Remember my previous blog about generating the world?
That's the overworld, we were inside one of those squares; three or four levels deep inside a cave... and we were lost.

For the sake of testing out physics and combat damage (you know, for what would eventually be bows/arrows and spells), I had implemented a very crude way for each player to shoot projectiles. So, obviously, our next step was to engage each other in some form of first-person-shooter style free-for-all hunt.  It took a while to find each other but the mayhem that followed once we did was hilarious. One funny moment that I can recall was that I pulled a "Fargoth" without really being conscious about it.  Caves were dark and I wanted to know where I was going so I pulled out my torch and it didn't occur to me that I was making myself an easier target.

There were tons of bugs, some projectiles were stuck in midair, other projectiles were cancelling each other and players were re-spawning in really odd places.  Some players found out he lost the ability to climb walls.  Overall, though, the infrastructure of being inside the game world was working beautifully.

We had a blast; it was a magical moment for us and the game and, in the end, a successful test.

11 comments:

  1. Hey gix I am not familiar with your game development, if you would like to tell me about it feel free to email me at valkriebros@gmail.com I love you videos and was unaware that you knew how to code ^-^ I was also wondering if you would return to The Elder Scrolls Online since they dropped the subscription fee and fixed a whole lot of bugs

    ReplyDelete
    Replies
    1. I can handle myself pretty well in computer programming. An actual programmer would weep if he or she saw my code. I strive to restructure the entirety of it at every iteration pass I make so it's getting cleaner and faster every time.

      Btw, I never left Elder Scrolls Online.

      Delete
    2. Upon your reply I realized I forgot to ask the simple question of what code language you are using. I self taught myself python, but haven't used it for any practical purposes, mostly because I have no need for one.

      Delete
    3. I'm writing it in C#.

      Delete
    4. Hello Gix the Bully! (Yes I was on your stream the other night ;) ) I just wanted to ask you if you can recommend any games at the minute. I have been dumbfounded trying to find a game that I can enjoy and play. I was looking at Shroud of the Avatar, but I figured I should wait until it is a bit more polished. If you just want to list me a few games (already played all TES and Diablo games)
      Thanks

      Delete
    5. Pillars of Eternity is an easy recommendation if you enjoy the Baldur's Gate style RPGs... and then there's Darkest Dungeon.

      I can't think of anything else noteworthy at the moment.

      Delete
    6. Pillars of Eternity is amazing. I am half way though it as we speak.

      Delete
  2. It's always interesting, I think, to hear a content creator's thoughts as they develop their project. This is especially true when the creator has been commenting on game design for years, as you've done through your youtube account. It's rather like a writer analysing fiction and using those ideas in their own work, I'd imagine.

    Seeing how that criticism and analysis, which I always seem to agree with, is implemented in your own game should be entertaining. It's more interesting than any other game project I can think of right now, anyway.

    It was your post on story and character in games, and the criticism on how little progress has been made over the years, that interested me most. It can be hard enough to write a complex character even in literature or film; video games have a much harder task. The character exists, but they also need to respond to the player.

    It's a problem better suited to a programmer than a writer, I think. The problem is there either way. In a good story the characters' actions should feel natural, be understandable given their motivations and history and intentions. In an RPG the player is supposed to define these parameters, resulting in the cases you mentioned or 'cinematic' games which attempt to tell a traditional story while making the details, fights and other dullness, interactive, if not the character’s decisions.

    How would you, the player, react in this situation? Designing from that question would be immensely difficult, I imagine. The options given by most games are pitiful, some yes/no variant, one good and one evil. The themes are there, they're explored, but why does there need to be this duality? What is the video game equivalent of literary fiction?

    Games could potentially be used to explore all sorts of unpleasant and difficult questions. As it is it's not happening, at least not often. The entire premise of the RPG, it seems to me, is that you are put in a situation and given the opportunity to react however you see fit. The reality is far less exciting. I suspect games like Morrowind are praised because they’re so open you can use the provided material, and it’s good material, to invent your own stories, and because it seems that your decisions do make some difference in the world.

    I suppose that’s the problem. If these are story driven games, why should we care? They’ll never match the best literature or film offers as they are, padded with grinding and running from place to place, and they don’t exploit the advantage of interactivity at all. Any decisions made by the player are offered grudgingly; they all lead to the same inevitable conclusion, and when they don’t the alternatives are no better. The script is always waiting in the background, ready to resume the moment the detour is over.

    That you’re attempting to design a game based on principles other than those which date from the 70s, if I read it correctly, is laudable enough. The more people trying different approaches, especially those with an obvious passion for the medium, the better. Hope all your future tests end with such positive results.

    ReplyDelete
    Replies
    1. Thank you.

      Despite a few jewels here and there, the direction the video game industry is headed towards frightens me and that's putting the ridiculous "early access", "perpetual beta", "pre-order" bull aside.

      So, yeah, I'm taking every role-playing game conventions that's been established over the years and I'm throwing them out the window. I'm starting the scratch but I want to focus on the role-playing aspects of the game.

      Ideally, the path of least resistance (while playing the game) will be to role-play and the challenge will be to make it transparent. I'm doing that by making the computer adapt the world based on your actions. What I got planned should work pretty well, I think.

      I'm glad you're enjoying my blog entries; I might write more as development progresses. If there's anything in particular about game design that you'd want me to talk about, feel free to ask.

      Delete
  3. The first thing that struck me when I saw this project is that you seem to have the ambitions of an amateur RPG team (the willingness to try new stuff, think big, etc) but the production power of a large one. I would not have guessed those screenshots of the caves had come from a small-team RPG! I am also excited to hear that you are play-testing and especially testing against PCs clipping into walls/floors/each other because that's too common a problem. You seem to be approaching this with ambition and professionalism and I'm excited to see where it goes next (I especially like your thoughts and ideas on taking a fresh perspective on the RPG genre). Looking forward to seeing more :)

    ReplyDelete
    Replies
    1. It helps that I spent countless years planning this project so I kind of have a roadmap of how I expect things to work.

      I believe that experience plays a huge role on how developers can approach an ambitious project like this (or any project for that matter). It's really easy for team members to drown themselves with too many concerns but, if you plan things out and communicate very clearly what everybody should be working on at a given moment, the team stays focused and get results really quickly... which, in turn, motivates them to keep going because they see results.

      Motivation is the #1 problem for any ambitious and independent project. Working in baby steps is the solution to that.

      Experience can be wielded as a tool to identify potential issues and also builds trust from your team. The important part to consider is that, no matter how experienced you are, nothing goes exactly as you’ve plan. Play-testing and iteration is something that every team member needs to understand within their souls (knowing and doing are two distinct things) and its during those testing periods that you can allow your fellows to contribute even more by giving feedback and ideas. You also have to allow yourself to go outside of the boundaries of your plan and allow your team to work on things they crave for (like drawing characters when the artists are tired of drawing rocks)… which further builds their trust in you and keeps the motivation going.

      I believe that’s what defines professionalism… that and the ability to shed procrastination.

      My game project has the risk of never achieving all of the elements I want to implement in an RPG, but the “bare minimum” has already been achieved so I’m not worried.

      Delete