Log in

Z2K Development Journal

Mar. 18th, 2007

Concept: Player and Non-Player characters develop skills faster by failing than they do by succeeding.

As per the previous post, I've been looking at the core game mechanics of Z2K's character creation/development system today, and I just had this idea that needs to be written down and explained so I don't forget it later.

Z2K is utilising a character development system that shares more in common with Jagged Alliance than it does with the Fallout series, although it borrows ideas from both.

Some background. In Fallout, you gain a level by earning a specific amount of xp, which then gives you points to spend on increasing your skills as you see fit. In Jagged Alliance, your skills increase through use, in a similar way to the Elder Scrolls games. However, these games have often only improved your skills on successful attempts to use them - probably to prevent abuse by repeatedly failing the same task over and over until you are proficient.

I'm not that concerned about that abuse aspect in Z2K, due to the way it measures time. Perform an action, and it takes a specific amount of time to do so, depending on the action. (successfully barricading a door might take 5 minutes, for example.) At this point, if you fail an action, not only does the desired outcome not happen, it takes you a longer time to realise that what you're doing is not going to work. Time's precious in this game and ties in to a number of other unrelated game mechanics.

What I'm toying with now is the idea of rewarding characters with more marks toward improving their skill when they fail than they would by succeeding. I've always felt that I've learned more through failure than I do through success. Not only that, it means that you as a player benefit a little by trying even if you don't get the desired outcome. (Provided failing the desired outcome doesn't kill you through other means, of course ;P).

I'm toying around with some of the base game mechanics for Z2K at the moment, specifically those regarding human players and non-player characters.

It's not easy to balance stats at this early a stage, but I'm trying to make sure each base stat is at least close to being as attractive a choice as the next. Currently, I've got six base stats split into two categories, and it looks a little like this:

Notice the odd one out? Charisma. The stat that no one ever focuses on outside of the Fallout games. Even in those games, an astute player will tell you that having a high intelligence and then just buffing the fuck out of your Speech skill has more benefits.

I just thought of a third thing that Charisma can modify, based on remebering the GURPS initial reaction tables. It's not looking quite so retarded now - it's still a little "take it or leave it" depending on your gameplay style though. I guess it's just going to be a matter of ensuring that the penalties for low charisma are as substantial as penalties for low strength. (No one ever takes low strength in these games. You've got to carry your loot around somehow, and more weight capacity generally means you can wear better armour.)

There's still more skills that need to be factored in, but I honestly can't see them fitting under the "charisma" banner - they're far more likely to go under the other headings. There's some potential solutions to this problem:

1. Replace Charisma with another stat that has a wider application. (I'm drawing a blank here, though.)2. Make the few charisma based skills comparitively more important than the other ones. (this is tricky to balance)3. Just ditch it altogether in favour of having the skills currently affected by it changed so they're not affected by any base stat.

Not sure what I'm going to do yet. Thoughts? (I can appreciate that without knowing what I have planned for how the rest of the game mechanics fit into this, it's difficult to offer an opinion)

---

GameMaker is pretty fricking awesome. I've recreated just about everything I did in Torque in a fraction of the time. The community for it is larger, there's a ton of extensions and extra DLL's out already that provide code examples of a number of the functions I want to put in.

It's made me look at broadening the scope of the game's combat mechanics a little. Destructible terrain, ala XCom, anyone?

Oct. 24th, 2006

One of the key things I'm keeping in mind when working through designing the interface for this game is displaying as much useful information as I can without making it overwhelming to someone who's not an information junkie or hardcore strategy gamer. It needs to show you what you absolutely *must* know at any given time, but allows you to access extra information if you need or want to see it.

As such, I'm veering away from using numerical displays as a default, and instead using coloured bars. I'm intending on giving the player the option to switch to numerical displays if they wish - to be honest, I usually use the numbers option when given the chance, as I like to know what the "hard data" is as opposed to having it graphically represented.

Case in point - one of the few issues I had with the Baldur's Gate series on PC was the way a character's remaining hitpoints were displayed by having the character's portrait display gradually fill up with a red overlay as they became injured - let's be honest here, this game was built on the Advanced Dungeons & Dragons ruleset, which displays everything in numbers - and I wasn't given that option without hovering my mouse cursor over the character's portraits to find out. Really, I should have had an option to display something so critical constantly so I could just glance at it in the middle of combat.

Icewind Dale, based on the same engine, fixed this by allowing the player to use either the graphical display, or a numerical one put in the portrait's corner.

Comparison: Baldur's Gate vs. Icewind Dale

Lesson learned there - when it comes to an interface, you really can't make it customisable enough. Let the player get the information they need in whichever way they desire. I do think a graphical representation should be the default, certainly. It's less intimidating to new players, it has less of a detriment to immersive factor (no better way than a bunch of numbers to remind you that you're just playing a game that at it's core boils down to a whole bunch of math) and some people prefer to be able to compare things at a glance by looking at the size of something rather than a raw number.

With Z2K, at least at this stage, there are really three things that a player must be concerned about at all times when it comes to their party members - Health, Fear, and Trust. These are easily represented in bars, or a percentile display. You might want to check a character's traits or strongest skills as well, so I'm intending on making a little popup box appear next to the "quick character" display on the right hand site when you hover the mouse over each character, showing just that - their traits, strongest skills, and perhaps any illnesses or critical things affecting them at the time.

The theme I'm following here is that if the player doesn't need to know about it, they shouldn't be presented with it unless they ask for it. I'd like to keep things as simple as possible so as not to overwhelm people who haven't spent ten years tabletop gaming or playing stat-heavy roguelikes.

Want more detail? That's what the character screen is for. I'd like to avoid having people access that screen at all unless they want to do inventory related stuff though - decisions and an overall "picture" of what's going on should be able to be seen from the main user interface. If you're that determined to know every facet of a particular party member though (well - every facet that you know of so far - but that's another whole post), you can always go to that screen - it's just not going to be in your face all the time.

This game might not be for everyone, but damned if I'm going to alienate anybody I don't have to.

---

"I find the interface is one of the hardest aspects of game design [...] It's one of those things that should be tested and tested until everyone is happy with it."

Alternatively, you can just add this community to your friends list by clicking here.

---

There's possibly a few more posts that should be archived in addition to the ones below that I've stumbled across. Communities don't allow you to backdate, however, so we'll have to make do with links:

Oct. 11th, 2006

I decided that this week would entail a short break from studying C#.NET to play around with TorqueScript and see if I can get some very basic framework happening for Z2K. I justified this diversion by telling myself it's still coding. :P

I wrote out a short six point "wishlist" of little simple things I could put together into one package - enough things to ensure I would not run out of stuff to work on, but mainly to see if I could do it on a smaller scale:

A 50x50 game world grid with a player character that can move around it in the eight cardinal directions. The game world does not wrap, it ends at the edges and players should not be able to move beyond this point.

Add in impassable squares. Players should not be able to move into these squares.

Add in a “zombie” character. This will have very basic AI that makes a beeline for the player. It will not take obstacles into account, but will not be able to move through them either.

Ensure the code works with multiple zombies.

Give the player character and the zombie a couple of basic “stats”. Speed and Health. The player character moves roughly twice as fast as the zombie character and this should be reflected. If the zombie touches the player, the player loses health. When player's health reaches zero, the game ends.

Refine the “combat” engine. Generate an algorithm based on chance to hit and body locations. Let the player “touch” the zombie now to fight back.

I'm pleased (and surprised, given my initial frustrations with TorqueScript) to say that I've managed to do the first four in a day and a half. I have a method I can run from a console that generates more zombies on the fly, and they all move one tile toward the player every time he makes a move in any direction, or passes a turn. Neither the zombies or the player move through walls.

However, the pathfinding algorithm I've bashed together is shocking, essentially it just looks at the x,y coordinates for each zombie, compares them to the player's coordinates and moves the zombie directly toward the player - this results in ugly behaviour like zombies getting "stuck" on a wall to its southwest when they should just move south instead of trying to go southwest... (zombies might be dumb but they're not quite that stupid) but I'll be looking to refine it further down the track once I have some more of the basics out of the way.

I have a few ideas as to how to achieve the last two, but it's going to need some more research into the "datablock" structures that TorqueScript uses to see if they're the best way of storing variables for individual objects.

Here's some programmer art, for funsies:

Originally I was going to just draw a blue stick figure for the player and a red stick figure for a zombie that I could use in game, but once I get MSPaint open, I just can't help myself. :P

Oct. 12th, 2006

I spent most of today playing around with the "feature complete" build of the Torque Game Builder (previously Torque 2D). I've still a long way to go on paper for Z2K before I can consider scripting anything substantial, but I really wanted to get my hands dirty and play around with the engine a bit to get a better idea of what it's capable of doing.

I'm in love with the particle effect engine in particular - it allows you to create so many neat effects in a very short time, using whatever image materials you have at hand.

After going through a bunch of tutorials involving flaming spaceship engines and explosions, I decided I'd try my hand at weather effects and implementing sounds in script. I took my existing main menu GUI that I'd created for Z2K and enhanced it somewhat. It still needs work, the snow's not quite falling how I want it to and I need to find a better sound effect, but I'm happy with the results so far.

Being that a screenshot won't actually show the full effect of falling snow, if you're up for a 2MB download you can check it out in real time in an actual build. It runs very well on my machine, but I haven't had a chance to test it out on a lower end system yet.

It's a Windows compile, but I can put a Mac OSX build together too if anyone's curious. It's self extracting, so you'll just need to specify a directory to install it to, then run z2k.exe and you'll be good to go. Provided I haven't stuffed up the build! (it works fine from my end, but there may be stuff that I have on here already that's required to run it that I've forgotten to include).

Jan. 27th, 2006

I'm finding that one of the most challenging things about writing a turn-based computer game with role playing elements - especially when you've come from a tabletop gaming background - is having to remember that the computer doesn't know when to "fudge" things in the player's favour in the interest of keeping the game fun.

When the odds stack up against the player, they'll keep on stacking unless you put something in there to stop it. As a designer, you need to anticipate where balance is going to need to be implemented, instead of the tabletop Dungeon Master's blessed position of being able to do it on the fly as situations come up.

On the other hand, it has always been part of the original design that players will die - horribly, violently and frequently. This was not ever going to be a game for people who want to "win" every time they play. Look at your typical zombie movies - how many of the party typically survive?

Jan. 10th, 2006

I'm going to teach myself C++ over the next month. I was thinking about it the other day when I was having a browse through Angus & Robertson, as it's the next most sensible thing to add to my coding language repetoire. Reading up some more information on the Torque game engines tonight has all but made my mind up for me. 100 USD for a fully functioning 2D/3D engine kit? Yes please.

Problem is, there's a lot of books out there, and from what I've heard a lot are seriously lacking. Bearing in mind that I've got a decent programming background now, (ie. I'm not going to need to be taught Object Orientated Programming concepts, but I'm not afraid to start from square one again if need be) can any of you recommend a few?

A number of you have been asking me how The Game is coming along, and offering contributions of your own in everything from storyline writing to music creation. In retrospect, I've probably been a little standoffish or appeared disinterested when said offers have been made. This wasn't the intention, and I really owe some of you an explanation.

I've not really been in a position to accept help recently - one of my main concerns in starting any project is making sure it gets finished. I know from first hand experience that there's nothing worse than throwing yourself headfirst into helping someone else with their creation only to find the whole thing falls by the wayside weeks - or even months - later.

At the moment, if it falls by the wayside, the only person I've disappointed or let down is myself. If I give it a go and fail on my own, I'll have learned some valuable lessons and will come out with more knowledge than I started with. The moment I let someone else in on this project is the moment I have to start considering other people's emotional and time-based investments in it.

That terrifies me. I am in love with the ideas and basis behind this project, but I have doubts as to whether or not I have the skill set to carry through with it to completion.

I really want to do this. Honestly and truthfully.

I just can't promise you that anything will eventuate from it.

This year holds a number of important things I need to do. Get started on my career instead of just working in a job that pays the bills, obtain a mortgage on an apartment, and get Z2K well and truly rolling.

In order to achieve the third, I need to decide very shortly what sort of investment I'm going to make in it, and how much of that investment I'm willing to give up to invite others in. This is my baby, and I'm incredibly posessive of it - but by the same token, I understand that it's something I cannot do on my own.

I also would really, quite genuinely like to have a lot of you on board. I love the ideas I hear coming from you. I have a group of talented and creative friends whose abilities are often underestimated and seldom used because others don't recognise their potential. I enjoy working with others, and my best ideas come from being able to bounce thoughts off of other people.

I guess the short of this is that I'm interested in your help, despite what my body language or reactions might have lead you to believe.

I would like to have a gathering sometime in the near future, maybe over some drinks and food with a whiteboard, notepaper and several rolls of butcher's paper for a brainstorming session. To compare my ideal to yours.

Oct. 17th, 2005

There's a million different opinions on the best doomsday zombie scenario. I'd love to give the user the opportunity to set up their own gameworld at the start of the game to suit their own "ideal" - or even purely out of the interest of creating a more dynamic difficulty level setup (want an easier game? retard your zombies.) - but that's an ambitious drive best left for future revisions.

With that in mind, I need some opinions... it won't take long, I swear. Nine questions. You fill out at least five times that amount to find out What Colour Best Describes Your Toothpaste's Moral And Ethical Stance On 'The War On Terror'? - several times a week if my friends page is any indication. ;)

---Livejournal rather stubbornly refuses to allow me to repost this poll here. You'll have to follow the links below to the original one in my journal.---

Ta muchly. More questions to come at a later date. If you're feeling really helpful and want to pass this poll on to another person or post a link on your journal, this is the direct link to just the poll itself:http://www.livejournal.com/poll/?id=592086&mode=enter