What we’ve been working on lately.

We built a DirectX11 rendering backend for our engine, which is likely to be the default when running on Windows. Up until now we had been running on DirectX9, which made sense when we thought the game was going to be done a while ago. But these days, DX9 is getting pretty old and busted. So far the DirectX11 version has been very successful; the engine runs much more smoothly, especially on low-end platforms, due to the drastically lowered CPU overhead of draw calls. There's a little work to do here still -- some of our weirder shaders don't work in DX11 yet and there are a couple of lighting bugs -- but this all should be nailed down soon. We've been revising the modeling and texturing for areas near the end of the game. There are some nice treats in store! We've been working on some of the "special effects" in the game, most notably particle effects. Our particle system was old and slow, so we are speeding this up, and then we will make some modifications to help make particle authoring an easier process. We've been making some baseline functionality smoother. For example, so that you don't need to think about saving your game, The Witness autosaves your progress every minute or so. On a high-end PC, you don't notice the autosave, but on a low-end PC or on a console (because consoles tend to have different memory access properties than PCs), scanning the world for stuff that needs to be saved can be pretty slow, like, it could take 1/10 of a second, which would result in a hitch in the frame rate happening every minute. So we are hammering on this to make it faster, which should also result in saved game files being smaller, since we'll be excluding a lot of things that don't need to be saved.  

47 Comments:

  1. Sounds like you guys are getting stuff done, can’t wait! I enjoyed being able to see the progress you were making on this blog, so thank you for sharing throughout. I know the Witness will be fantastic, you all put so much thought and care into it. I wish you all success and I’m sure the team will come up with intriguing ideas in the future as well.

    DFTBA,
    Mary

    • ^ Amen to that. Been waiting for this game for so long, but I have no qualms about it after seeing how dedicated this team is to really being thorough with this game. Thanks for all your hard work, guys! Getting hyped for the final product!

  2. Congratulations on porting the game. I hope I will be able to play The Witness this year :)

  3. Wow it sounds like you guys are applying a lot of end-game polish. It’s encouraging, as it means the game is (hopefully) just about done! Keep up the good work. This looks to be another masterpiece, and I’m really excited for it.

  4. Pretty smart to keep the old DX9 till near the end, so that you’re used to developing with lower graphical performance getting game play fast enough optimized, and then optimize the graphics when you’re almost done for optimization purposes. Pretty smooth.

  5. I’m waiting for the game for years! I need the release date!

  6. Hi Jon. Good to see things are coming along. I’m definitely eager to get my hands on the finished product whenever it’s ready!

    I’m sure you’ll optimize the saving anyway, but have you thought of deferring saves until when the player is facing a puzzle panel? I doubt the frame rate drop would be noticeable then.

    • Hey that’s a thought, although it might be noticeable since the player is actively participating with controller input when they are solving a panel.
      Perhaps instead of when they are solving a puzzle, run a save as soon as they finish one? At that point they won’t be actively inputting to the game anymore for a short while.

      Really excited to hear that the game is in polishing stages, looking forward to the release!

    • It sounds like what they are trying to accomplish is that they save periodically so that when you leave the game you can return to the exact same position that you left off instead of having to run back to that place from the last puzzle.

      A lot of games will do this same thing but they will only do it at certain save zones. This will give the player more of a sense of immersion without having the fixed save points.

      Personally, if they were trying to figure out a clever way so doing saves without a hiccup, I would time the saves, but only save it when the player has stopped and no longer moving. Often times players will just stop for a brief second for some reason or another. Thats when I would do the save.

      Keep up the great work guys!! Im still hyped about this game!

  7. So a 2014 release date is out of the question? That seems like quite a bit of work.

  8. What I’ve mainly been wondering about The Witness, because of its relevance as a sign to how near to the end of development the game is, is at what stage getting the final voice acting into the game is. As far as I’m aware, the voice acting in there currently is still only placeholder and so if the game is 2-6 months away from completion this has got to be imminent in being cast or recorded, right? I can only imagine that the casting decisions and voice recording sessions themselves would be painstakingly carried out to ensure it provides exactly the tone and quality Jonathon is after. Will it really be almost be the final element that gets put into the game? I guess I can see that making sense. Or am I misinformed and this is already in?

    Relatedly, I remember an interview a few years back now (August 2011) between Jonathan and ‘Brainy Gamer’ and at the time Jon explained his misgivings about the use of found voice recording in games and that it was fairly weird format for introducing exposition into a game which he wasn’t sure how to solve. I would be very interested in knowing (at some point if it can’t be answered now) about whether Jon has solved this in his view and is now completely happy its usage or if it just seems the best option out of a set of imperfect alternatives.

  9. CAN’T. WAIT.
    Getting an iPad Air 2 32GB [or will they skip 32 & go 16/64/128 like all thier other products?]
    just for this app masterpiece-in-the-making!!

  10. I just have to play this game.

    I have to know what inspired Jonathan Blow to create HUNDREDS of puzzles for the same game. And that game being a Myst-like game. And for him to work on it this long. And be so excited about it!

    I just can’t imagine!

  11. I’m curious as to why it is necessary to scan the game world to find things to save. Presumably all changes to the game world are initiated by the player, meaning that you could theoretically keep a save state diff in memory all the time and simply update it when the user takes those actions. Then at save time, all you’d have to do is persist the diff. Is there something about the game world that prevents that approach?

    • In order to do this you would have to annotate any possible change to the data of a gameplay object with “note this object has changed”.
      This is an error-prone process (no way to know when you forgot to do it) and would annoy you when writing all code all the time.

      You could imagine a programming language that lets you do this relatively easily, but that ain’t what we have right now. I mean, I could imagine concocting something in C++ that does this but it’d be very ugly.

  12. I wish they’d confirm either way if it’s coming out this year or not.
    Waiting & waiting for it to come out this year, because they didn’t say it *wouldn’t*
    come out this year, and then having it *not* come out this year, might result in bad publicity.

    There’s a very thin line between anticipation & impatience.
    Just ask George Lucas.

    Again, just by making an announcement either way, 2014 release/2015 release,
    it would go a long way towards allaying any major disappointments by many fans.
    I’d rather be told straight away that it’s NOT coming out this year,
    rather than to be told nothing, then wait eagerly for it this Christmas, and end up being let down.

  13. I saw in a vid that you said that some puzzles require understanding of previous puzzles to fully grasp. But this game also seems to be designed (just from interviews I’ve listened to) to play at almost literally any pace you want. If puzzles W, X, and Y are needed to know how to complete Z, but I take a long break playing after I finish W, X, and Y (like a month or something), do you think it’ll be easy for me to remember the components of WXY to solve Z right when I jump back in the game? Or would I need to go back and resolve/remember them?

    Or is it kind of like Braid, where there are a few fundamental ideas that get thrown around at you but you can jump into pretty much any level at any point and not feel that you have to resolve any of the previous puzzles?

    • I would imagine it is somewhat like reading a book, in that the difficulty in remembering where you were and what was going on will vary depending on both where you stopped and how well you have grasped a concept before moving on. You may want to go back and run through some puzzles again to refresh your memory at times.

      I believe it is unlikely that Jon would be expecting players to memorize puzzle solutions. (Never can be sure though, haha.)

  14. Does this mean an OSX/Linux version would be targeting OpenGL 4.x, or are you just going to be using GLES from the iOS version?

    • We have an OpenGL backend running (on windows) right now that makes use of some of 4.2 level features, but drops back to 3.x where 4.2 isn’t available. The target api for a Linux or Mac version would really depend on a few things, such as the state of drivers, and the performance spread of systems out there. e.g. according the steam hw surveys, most Macs out there are (unsurprisingly) macbooks rather than desktop systems, with accordingly lower-spec GPUs.

      As an aside, we very much expect the final iOS version will use Metal, rather than GLES, because we need all the performance we can squeeze out.

      • ah, I see, thanks! for the record, it looks like Yosemite is sitting on the OpenGL 4.1 compatibility that Mavericks rocketed up to, so 4.2 doesn’t look like a possibility on OSX anytime soon — and of course on Linux it’s realistically only available using nVidia (although Mesa, which at least represents the bleeding edge for Intel and seems to be competitive with other platforms performance-wise up to 3.3 for Sandybridge and newer, has been adding 4.x extensions for a while now despite not reaching 4.0 yet, so they may “catch up” relatively quickly next year).

  15. Weekly updates would be great. Even if the update says “hey, nothing’s changed significantly, k, bye”, it would still provide a specific time to look forward to an update, and it doesn’t have to be thought out, it would still connect to the people interested in this project

    • I would much rather they provide weekly updates to the unfinished game than to the blog.
      As much as I’ve enjoyed following the development of the game, I would not want to change the current style of updates, which seems to be something along the lines of “when there’s something worth saying”.

      Also, it’s good to see that the release date begging has no effect on the team. I think that as fans of the game the most careless thing we can do is try to put pressure on the team, although I believe they’re smart enough to ignore the pressure anyways.

      • I do agree that the team should not be pressured by the fans. However they shouldn’t respond rude to people who beg for a release date.

        These are just fans who can’t wait to play the game. I understand that all the begging might be annoying, but on the other hand they should be happy that so many people want to play the game as soon as possible.

        A response like “this blog is not intended to talk about the release date of the game” would, in my opinion, have been better than “the game will come out when it’s done.”

        That being said, I don’t mind if I would have to wait until 2016 to play this game. I know it would be worth the wait.

        • Seriously now, around 3 years ago, the team thought they were going to finish the Witness soon, and then realized that it could be way deeper, and way better. For those last three years, and well before that, I remember reading Jon saying over and over and over again that he didn’t have a release date because he wasn’t sure when he’d be done. He’s been saying it’ll come out when it’s done for years now. Despite this, I too have watched people ask the same question over and over again like as if he owed them something, as if if he didn’t say something that they would lose interest. I don’t see his response as disrespectful. Even I’m a tad annoyed by the question now and I’m not even working on the game. What else are you supposed to say besides it’ll be ready when it’s done? I’m sure he’ll post right on this blog the release date when it’s real. At least you don’t have to worry about a false release date because of overlooked complications. We’ve seen that happen with games many times.

          • I’d agree that taking that response as disrespectful is reading into it too much. It’s really the only thing to say at this point. If a release date becomes clear, then I’m sure that Jon will let everyone know. Otherwise, it’s a waste of energy to expect the game by a specific date, as Jon is not going to release the game until he thinks it’s ready.

            I suppose people are spoiled by AAA release scheduling. They can put exact dates on their games almost a year out because the games are almost always highly formulaic or serialized, and because the publisher is willing to release unfinished games.

            With any project that is breaking new ground, it is unclear how long it will take to properly develop the ideas. And for some developers, it is unacceptable to release a sub par product and “fix it in the sequel.” Not so common for big studios unfortunately.

  16. it seems like I’ve been waiting for this game forever – any chance it’s out before the end of 2014?

  17. J: Is there any way for someone to “donate” to the cause?

    Over the years, I have been involved in the user end of various software. I have both tested games and general software for many-many developers. (alpha, beta and friends & family) .

    In my world, there is not enough puzzle type games and I would not have a problem supporting in the development phase.

    TY, Miz

  18. I hope you’ll keep the DX9 support in the game so people with older video cards can play it too. My card only supports DX10.1.

    • My understanding is that the game should run on DX10 cards, because DX11 can run at lower compatibility levels. The only thing this changes is that we won’t be able to run on Windows XP or earlier, since DX11 does not run on those operating systems. Ideally we would run on everything, but in terms of making a tradeoff this is a pretty reasonable one.

  19. Could we get a new update at what u’ve ben working on lately?
    Maybe some old and new pictures so we can see/understand what u’re doing in all those weeks?

    I hope to see a new article!!

    TY, Mark

  20. It’s intriguing that you’d be scanning through the world for things which have changed rather than keeping a log of things that the player had interacted with, given the lonely setting of the game. Are things happening on this island independently of the player’s direct interaction? :)

  21. No XP support? Well that knocks out China and 4% of steam users – and me. Not a bad tradeoff, I guess, but I am disappointed.

    • Not complaining mind – if it makes the code and game safer, that’s great-
      It’s just that I haven’t come across any games I genuinely couldn’t play on XP yet – a lot that said they couldn’t – like Xcom EU – but actually could.
      M

      • It is not about making things safer, it is about making the game run fast enough. DirectX9 is just not very good at handling the resource usage patterns of modern games, but Microsoft didn’t care about making any later version of DirectX work on XP.

        • What about OpenGL? (as a side note, this may or may not support the idea that DirectX should just be abandoned in favor of OpenGL) Doesn’t The Witness support OpenGL? I would think it would be a good idea to at least make it installable on XP and then to run it would look for the version of OpenGL that The Witness needs. Not that I know what I am talking about, but I would think someone out there has a modernish graphics card on XP with support for a newer version of OpenGL. At least make sure it runs, then you have XP compatibility.

    • Sorry, we are doing what we can do, but PC development is complicated and fraught with peril.

      • I don’t think it’s unreasonable for a modern game to omit support for a 13 year old operating system which is no longer supported by the manufacturer. No one is doing PS2 or xbox development, either.

        The opposite seems true–for anyone to express displeasure about this is unreasonable in the extreme.

        • People think that just because something might be technically classified as indie doesn’t mean it can’t be resource intensive. The gaming community in general always strives to keep up-to-date PC’s.

          Still running XP? You got 99 problems and gaming ain’t 1.

  22. If only The Witness could use a mature game engine solution such as Unity, we could have the game finished more quickly?

  23. It’s been really exciting sifting through this blog and Casey’s Witness Wednesdays over the past couple days, if for no other reason than just to get a glimpse of the level of technical skill and imaginative problem-solving necessary for a big-scope-small-team game.

    But I haven’t been able to find anything on what I consider one of The Witness’s most central and interesting mechanical features – the way perspective is manipulated. I liked reading about things like Casey Muratori’s directionality solution to mapping walkable areas and the crazy-brilliant idea of storing every entity as its own little file for concurrent world modification. Maybe the reason I haven’t seen an equally fascinating post about the tech behind the 2D “screen space” puzzle / 3D “world space” exploration relationship (I’m trying to avoid spoilers, so I’m sorry if this comes across as vague or confusing without citing a specific example) is that it was a comparatively unimpressive technique that was established early in development.

    But can you tell us about it anyway? How do the positions of 3D objects on the island get in the way of the little 2D line I’m trying to draw on the screen?

Leave a Reply

Your email address will not be published. Required fields are marked *