Sunday, July 16, 2017

Game-Testers

Game-Tester: sounds like a lazy dream job, doesn't it? Well, maybe you want to read this first.

Finally. Today I made the T22 Game + Tools available for an artist, so he can play, look, give feedback, and hopefully start replacing ugly dummy "Programmer Art" assets with some real awesome stuff. Well, if the .EXE works that is. You programmers all know what happens when giving that floppy with your program to another for the very first time... "Hej? How did that happen? On my PC it always works! What is the errorCode? Access Violation and then a long number you say? Strange...".

But hey, the executable actually worked on another computer (somebody at work was "lucky enough" to give it a shot), though the FPS was like grandpa's siesta. Unlike typical desktop programs, where most issues come from different Windows versions, missing drivers, network permissions, or local user settings, with games your biggest enemy is the videocard. Too old, too new, too nVidia, too AMD. Certain features you counted on may not be available, or shaders get compiled slightly different, causing black screens or glitches. In this case, the game just worked (shockingly, I really didn't expect that in one shot), but his older nVidia didn't like OpenGL ComputeShaders, I think.


Beta Testers
Well, our guy here won a brand new nVidia with an artist contest, so that shouldn't be a problem. More realistic problems could be getting stuck in the game itself. Falling through floors, getting locked in the stairs, just not knowing what to do, corridors too dark, game too boring. Who knows. Of course I play-tested the game like a hundred-trillion times. To check if script-X triggers, or if visual glitch-Y was fixed. And no, I didn't get stuck by bad physics really. I won't say its flawless, but I it ran pretty stable. On my computer at least. 

But testing your own game (or whatever program) so many times, also blinds. You automatically know what to do, and what NOT to do. Subconsciously you just know to stand on the left side of a door when opening it, avoiding a slam-in-your-face. You know an approach angle of 84 degrees works better for that specific ladder. And in a fairly dark game like T22, you know where to go and what to do. BUT, what I don't know: is the game fun to play? And more important, does this horror setting give any goosebumps?
 I see an empty unfinished room. Others may see an uncomfortable scary room. Yet another sees nothing at all: too dark. 10 people, 10 different opinions.

CUT. And… Action
Obviously I played / tested it so many times (and I really mean thousands of times) that there is no surprise at all. I know where to find every ugly bug in the environments, the monster A.I. is predictive, puzzles easy. To be honest, I don't have any fun playing it. Bad game, or just tasted it too often?

I wonder if movie directors like Steven Spielberg has been rewinding every 10 seconds of Jurassic Park a hundred times to tweak and fine-tune. I wonder if they shout "CUT! Stop, dammit" again and again. I hope they have other minions doing that for them, otherwise the final movie Premiere will be a loooong sleepy ride, knowing every inch of that video tape. I wish I had an army of workers doing the fine details of T22 for me, so I could just focus on programming stuff, and directing it on a global level. Then every week, artists would spoil me with fully-finished rooms, animated monsters, or music-pieces. I would use a red and green marker to approve or discard their assets. Being a bit outside of that "development dome", allows to look through different glasses at your work. Sharper, unbiased, loving or hating it.


Back to reality, I'm my own modeler, mapper, scripter, programmer, texture drawer and even audio composer (= Googling for free WAVs) all at once. And not a very good one, except for the programming part maybe. So there is zero surprise in the work being done. Except annoyance about the shortcomings, you know exactly which details have been rushed or skipped.



Script Writers
I underestimated the amount of scripting work that had to be done last half year. With that I mean "programming" the puzzles, triggers and events in your maps. So, what happens if you try to combine the blue key with the red door? T22 is sort of a puzzle game, so there is a lot of scripting. And to make it even more complicated, T22 uses a time schedule. That means certain puzzles or the visual state of a room, may also depend on the day or time. Curtains might be closed during nights, and between 10:00 and 10:30 on day three, something spooky happens on the corridor. Having time dependent scenarios doubles, triples or quadruples the (scripting) work per room

Also testing gets more complicated. You can always try an elevator or monster combat A.I. But puzzles usually require a certain chain of events. Timed events in this case; collect key on day1, do stuff at day2, then item-X appears on day3. And of course, there will be initial bugs somewhere in that chain, so you'll be playing that sequence again. And again. And again. Then it finally fucking works, until you add another side-puzzle that somehow interferes, and disrupts the chain-of-events. Sigh. It’s like Jenga: insert a brick here, another brick falls out on the other side.



Having good tools softens the pain. First of all, you probably want to write down the events and puzzles first, on paper, on a global level. It always helps, having checklists you can confirm. But... in my experience, a creative process (like making a game) doesn't play well with a planning and systematic approaches. You can't squeeze out good ideas on demand. They just happen (or not, most of the time). So after playing the same room for twenty times, you may suddenly get a bright moment, deciding the room needs a bit more spice of this, or a puzzle like that. And once you've added that spooky event, you may still decide it sucks a day later, scrapping it.
Having a BehaviorTree editor definitely helps making your game "Behave".

Nonetheless, a list can help staying on schedule, and obtain a feeling of progression. Otherwise you would be tweaking and changing the same parts forever, never satisfied. Second, having some programming help-tools is mandatory. You could hard-code everything in Delphi (or C++, or ...) but assuming your Mappers don't know/have Delphi in general, it's more common to provide a scripting language or techniques like "Behavior Trees" in your (Map)Editors. Engine22 offers LUA scripting, which is pretty cool, yet I still made a lot of (syntax) bugs in the small scripts. Far more robust are Behavior Trees, which were added later on. They are fairly simply to make, and the chance of screwing up is much smaller, as you don't have to type any code or whatsoever.

It took a while to implement Behaviour Trees. Not just the code that can traverse a BT, but also the editor to create them, and the API with functions. As you would do with LUA or Python, also BehaviorTrees require a set of functions. “PlaySound”, “setVisible( entity, true/false )”, “GiveItem”, “check if variableX is > 5”, and so on. You start with nothing, and then the API slowly expands as you need more stuff to accomplish a specific puzzle or event. It costs a lot of energy, but when it works, it works like a charm, and saves a lot of work (and bugs + frustration) on the longer term.



Anyway. I hope our artist can see the potential of the game (demo), and has some time left to help me pimping up some rooms. So I can finally back of the game itself for a moment, focus on improving graphics or fixing whatever bug he finds or tool he needs. I’ve seen the same T22 corridors too many times last years!

Saturday, July 1, 2017

Bad, Good, and Nice news.



Every time when I write a new post, I’ll promise myself not to wait too long before writing another, then, just a few farts further, to discover yet another month passed. Oops. Well, I had some excuses for a change.

Sick Son
Bad news first, our little boy was/is(?) sick. Well, not that he felt or even realized, but in all of a sudden his legs and arms were covered with small bruises. Now of course, children without scratches is like Teenage Mutant Hero Turtles without pizza. But when I detected tiny red needle-like “Petechial”, my heart froze. Knowing a young girl that went to the dentist with somewhat bloody gums… she didn’t live another year, because those bloody gums were the result of Leukaemia. Googling for tiny red dots didn’t bring up cheerful results either, although Google is probably a terrible doctor when it comes to medical advice. According to the internet, I have gang-green, brain eating amoebas, and require immediate exorcism as well. Still, when the real doctor called only just a few hours after his blood was sampled, telling to go to the hospital NOW for a possible blood transfusion, my world stopped spinning. Not my two year old innocent boy, not like that.

Well, results aren’t final yet, but I think we can call ourselves lucky with the news it’s most probably just “ITP” – a blood disorder that can lead to excessive bleeding due the lack of platelets. Apparently little kids can catch a certain virus (especially when it’s getting hot again, like now here), then having their bodies react improperly. In 85% this is just temporarily, and the body will fully recover. In the other case, it can become chronic. Which sucks, because it basically means our son may have to wear a helmet the rest of his live, and learn chess instead of cage-fighting. When I asked if our son can still drink whiskey, that was a negative too. Then again, I remember having a kid with ITP on the sort-of Scouts. And now, 17 years, lot’s of karate kicks and barrels of beer later, he still lives.

But! Just in case you stumbled on this page while Googling for sudden bruises or petechial on your child, remember what I said about internet being a bad advisor. Just go to the Doctor. Now.
 

Anyhow, so basically we’re waiting now if he indeed has, or had, ITP (and not some other much scarier disease), and if he will heal from it. In the meanwhile, he has 24-hour YouTube duty (normally I give them a 1-hour maximum). No jumping off the couch, no running in the garden, no fighting with his big sister. Poor little dude.

-update (2 weeks later)
Other blood tests were positive (and I mean in a good way, not in a Doctor way). He still needs at least one check within a few months, but it seems everything is fine, as his blood levels went back normal quick. Thank God. But as I’m typing this, I just saw a news snippet of Michael BublĂ© (you probably know him from the radio); his three year old son Noah is diagnosed with cancer. And just looking at a few photo’s on TV, the little fellow looks almost identical to our son. Makes you realize how lucky we are, but it also gives me a slightly better understanding of families that weren’t blessed with such good news. Michael, I know you don’t read game-programming blogs of some unimportant dude at the other side of the world, but I wish you, your wife, Noah, and his big sister all the luck of the world with this. And that also goes for all you other anonymous friends. Kids shouldn’t be sick. Kids shouldn’t be blown up at concerts. Kids shouldn’t wash up on a beach. Kids shouldn’t see war. Kids should play, learn, love, and be loved. And live.



Amateur Architects
The brighter news then. I’ve also been busy with drawing blueprints. But not for some gloomy Tower22 apartment, covered in dust and slime. But a house –my house (covered in dust and slime). Yes, time to move to another house, so why not trying to build a new one, at our own taste? And I must say, even though level design is not my talent, all that game “experience” certainly helped in some ways. I mean, we have visited treehouses in Zelda, pirate huts in Monkey Island, Western taverns in Red Dead Redemption, Maya temples in Tomb Raider, Zombie infested mansions, mushroom houses in the Smurfs, floating or underwater bars in Bioshock. Oh, and how can I forget, I must have built a hundred homes in The Sims. I most definitely borrowed some creative inspiration from the wonderful world of games.

Only problem is that those ideas are often a bit expensive… or just completely impossible. I didn’t get permission for my basement laboratory, and the architect said it’s not possible to make a house on top of a crawling titan named Cronos. Bummer.
Concept sketches were rejected by the town community, exceeding the 11 meter height limit.


 
Tower22 - Getting the Playable Demo Playable
In the meanwhile, there was some Tower22 time as well. I’m filling the gaps and bugs so the game-demo can be “played”, with a beginning and an end. Then one of the guys who helped me in the past as well, will have a look, and see what we can do to turn this demo into something real. Either that means working very hard on creating (quite a lot) textures, models and sounds. Or… maybe we should take a turn, and simplify things instead. I wish I invented the endless Silent Hill corridor demo, because that must have been damn easy (asset-production-wise, not twisted-mind-wise)! If resources are few, maybe the current demo is too big / ambitious.

Then again, I feel just showing a few eerie rooms won’t cover the game properly. “Unfortunately”, the game is all about slow terror, not in-your-face blood splatter and constantly pumping adrenaline. Which means even a demo requires some breathing room to develop itself.

Major problem are those pesky graphics. They got too good. And even if I would be able to keep up programming/engine/shader wise, it still takes an army of artists. Not a surprise most Indy games took an alternative “Retro” path. Characters made of cubes and sticks, 8-bit pixel graphics, 2D platformers, and so on. Yet I think that won’t really work for a game like Tower22. It’s about showing you a claustrophobic skyscraper that gets stranger and stranger. I don’t think I can reach that effect visually with Super Nintendo sprites, cartoony looks, or 3D rooms without detail.

But what I could do however… just like one of my great inspirators Resident Evil did… is switching back to fixed camera’s. Oh dear, NO! Drunken tank controls, not able to look further than 4 meters, six seconds to rotate 180 degrees, seven seconds to open a door, NO! Well, ironically often the same people are complaining about the lack of horror in modern (Resident Evil) titles. Think about it. Would the original Resident Evil still be scary if you could see the zombie hiding behind a plant right even before entering a new room? Would the game still be difficult if you could headpop every, slow-shuffling, corpse from a safe distance? Would you still poop your pants if you can sprint away quickly when a mutated one-legged ape is trying to chase you? I never felt the Resident Evil controls or camera as something annoying. More like a challenge that makes the game scarier. But ok, opinions differ of course. And RE7 was pretty good as well, with full 3D (even Virtual Reality!) controls.
Unless using fixed camera's or laying dead on the floor, you won't enjoy this"toddler" perspective.



Whether you agree or not, a more solid fact is that fixed cameras can safe work. Another ROCKsolid fact is that Tower22 won’t succeed, unless I either get that army of artists, or give in some fancy 3D graphics a bit. See, the problem with full-3D is that every inch and every corner has to look good, whereas with fixed camera’s, you don’t even have to model a ceiling in case it’s out of sight. You decide the cool shots, and just focus on that. And if the camera is truly fixed, you can even cheat with Photoshop, drawing an overlay that holds details that require a lot of sweat to model / bumpMap / glossMap / … Certainly in a horror game where unrealism may prevail, 2D drawing can give a lot of freedom.

I’m not saying T22 will go that route. One of the downsides is that you will need a nicely animated 3D character in return, and yes, I reckon, it doesn’t matter if I’m charmed by fixed camera’s and clumsy controls, if the rest of the world isn’t. Anyhow, that’s why we’ll be looking on how to proceed with this demo; Beautify or Simplify. But first I’ll need to make sure he can actually play and finish the demo without falling through floors, getting stuck in too illogical puzzles, or getting bored in too unfinished environments! And fortunately, today I finally saw the End-Credits (of the Demo at least)... showing only one familiar name so far... Need more!