For both screenshots, I immediately thought that once there are characters in the scene, both will look miles better (assuming character models are up to it).
I asked this a ITS too: is the area where high shcool that this library belongs to, in a "poor" area? Because there are too few bookshelves and the ceiling is too low (though I wouldn't really expect that level of awareness in level design).
Vault Dweller said:
Yes, adventure games have plenty of such examples, because you can't go anywhere you want and can't do anything you want. In adventure games if you can build a barricade, you can do it in a certain place only, not everywhere. It quite obviously can't work in an RPG where you can go into different buildings, different rooms/corridor, face zombies from different directions, and have different available materials. Pre-scripting and designing barricades for all possible locations is not a solution. The only way to do barricades right is to make a complex - sorry to say - mini game where you actually build a fucking barricade out of possible objects.
This would require to move and rotate furniture and objects (which would require a huge database of objects with stats and different combinations), implement weights and physics correctly, implement damage and push resistance, make the objects breakable because that's what zombies do to barricades, implement different kinds of barricades (from poorly done to rock solid), etc. Furthermore, there would have to be some tetris-like elements where objects would have to fit each other properly and actually form something that looks like a barricade that can stop and significantly slow down 10 zombies, which I can't even imagine how to approach. Etc.
Can it be done simpler? I'm not sure and you aren't helping. If you've calmed down sufficiently to have a reasonable discussion, let me know how you think it could be done, which is probably the most constructive attitude one might have.
I think that creating barricades is an excellent feature that would greatly enhance any game, but I think that it will be almost impossible [for a small team] to implement. If I'm wrong, show me how and I'll be very, very grateful.
Adventure games have that kind of thing only in certain places only because designers want such things to have an exclusive role in certain few places, not because it's hard to do it for every scene. There's no design limitation here, what goes behind the scene at such situations isn't complitcated by any standards. It is a problem/extra work to set up the assets, animation and the puzzle effect for each scene, but not the core logic is as simple as it gets. Adventure games are the epitome of simplicity in core design.
Now, all those things you mention; you're giving too much to it, complicating the concept even as you think about it. Unless you want to make a Barricade Simulator Deluxe minigame (and I don't think anyone would appreciate such a realistically correct and intricate simulator once the novelty will die in an hour or two), most but not all of those things are not necessary. Correct weights and physics you say? I ask: what else are you doing "correctly" in any other aspect, be it combat, dialogue skills and whatnot to demand correctness in this aspect now; and how do you measure how much correct something is in a game where everything is abstracted to a reasonable level to make it work by using common sense and by adding extra layers of entirely made up shit to make room for exploration of game rules? It doesn't need to be correct at all. It only needs to be on a level that will make sense to the player and will be easily utilized.
For a beginner, off the top of my head, a player doesn't need to be able to use every single item in sight to the point of piling every useless junk to make a barricade, but only what makes sense at first sight. Heavy furnitures. Doors. Boards. Let's start with boards:
Break doors, chairs, mattresses or any other reasonably large object to get boards. For a poor man's implementation, you can determine how many boards you will get out of a furniture by first checking if it's large enough in either direction (X,Y,Z), larger than a fixed minimum and then checking the volume to determine how many or how large boards you can get. Boards can be used to reinforce other heavy/big furnitures, or nailed to doorways or windows. Assuming the game is grid-based and there will be at most a dozen standards for doorways and windows (in their sizes due to the grid), you can simply have it fixed to the level geometry whenever the board model can collide vertically with these objects on any tile. Grid based means you don't need to adjust the position of the board on any surface by float values; just the tile/tile-edge to apply the board to. For reinforcing other furniture, you don't really need add any visual indicators. You use some nails and boads on furniture, both go poof while whatever stats the furniture has increase by appropriate amounts.
Doors. Doors are everywhere. You can simply close a door, lock it and and board it from your side to reinforce it somewhat. Or you can simply dismount a door off of a doorway and chop it up for boards, or use it somewhere else, on a window perhaps. Or maybe rotate it sideway to make a stronger barricade on a doorway by nailing it horizontally, so you can nail two doors on a doorway. The same simplifying nature of a grid and tiles apply to this as well.
Heavy furnitures. Not much you can do with these. You can either push one behind a door or another barricade, or rotate it sideways to benefit from different height/width it will provide. You can chop wooden ones for boards. If there's a flat ground hatch somewhere, going down to a basement or a bunker, you can push it above it to hide it. Remember the scene from The Road, the book?
Rotating these is a simple matter of adding a context menu, and again, assuming it is a square-grid-based game, you only need a few options to rotate it by 90° in either axis and have the rotation apply and actually rotate objects only when you've "pre-rotated" into the desired orientation.
Now the dynamics of these objects. Simpler it is, the better. First, any furniture or object could be thought of as made up of n objects where n could be a base piece of boards. Give only a few levels of "resistance" to each object, and in turn to each base piece. Don't deal with varied materials. A resistance level could mean how many turns it takes a force level to break it, where a single zombie could have either force level in a short range like 1-5, depending on zombie's condition (fresh, heavily decayed, missing limbs etc.).
If a door is made up of n pieces with a quality of 10, zombies need to apply 10n or something like { 10n x (0.75) } to completely break through the barricade. Let's say, a "fresh", "healthy" (for lack of better words) and regular (average body, not extra-muscular/strong) zombie can apply a force of 4. This zombie alone can break 2 pieces of boards every 5 turns. Another zombie joins, and now they can break 1 piece every 5 turns. Another one starts pushing from behind, adding a, let's say, force of 1 per 1 or 2 turns. More zombies show up and start pushing from back lines, applying a force on the door every turn, and amplified as more zombies join the show. Now, there's a hierarchical transfer of force between zombies based on tiles with an amplification curve that goes up based on spread towards middles of the hoard, and down based on back lines. This can easily be determined by angle/relation of each zombie to the next and the first zombie and the amount of force transfer. Noticing that the shit has hit the fan, you can push that metal cupboard to the door to reinforce it. This will either add penalties to the force applied by zombies or add bonuses to the wall. Whichever is easier to implement (than whichever makes sense; the result is the same).
Uhh, I don't know. I'm making these up as I go and Getting tired, it's already morning here. These examples, as far as my scripting knowledge and experience go, are also very doable in Oblivion/Fallout 3 as well and I'm specifically giving these as examples because pulling any kind of seemingly advanced stuff in games which have nothing like the desired thing speaks volumes about the simplicity involved. There's no one single solution, but there's no real solution that's too complex, and in the big picture, it's not a matter of technical complexity and difficulty, but of balance and perseverance.
Speaking of which, have you even made a note of checking that game I mentioned?
Can it be done simpler? I'm not sure and you aren't helping. If you've calmed down sufficiently to have a reasonable discussion, let me know how you think it could be done, which is probably the most constructive attitude one might have.
Sadly, you yourself would need to stop taking everything as if it's a personal attack and reply accordingly, and come forward earlier with what you're doing only now at 5th page, not to mention not accusing anyone who disagrees with you to be spewing bullshit, which would would probably be an even more constructive attitude.