Discuss the massively-multiplayer home defense game.
You are not logged in.
Good point!
Right now, the code is using the same "stuck" flag to handle both "broken" thinks (like dead pets, fried power supplies, etc.) that actually need paid replacement and the one weird case (trapdoors) where the thing isn't actually broken, but needs to preserve its state for possible consistency.
I really should separate the two things.... so that something could be "stuck" (does not auto-revert in edit mode for whatever reason) but not subject to paid replacement. Essentially, a "doesNotFlipBackButNotActuallyBroken" property.
Thanks for helping me see it clearly!
Well, that's the point, really....
I mean, the system already clearly allows for NP-hard stuff to be built, even with full visibility. Partial visibility makes it even worse... combo locks are a great example of this: a 10-bit lock effectively requires 2^10 guesses to guarantee that you find the solution (or 2^9 guesses on average).
The only thing that de-tooths NP hard problems is a limit on the size of the problem space. If something is truly NP-hard, it means that for a problem of size K, there is no algorithm that can solve the problem in polynomial time... meaning polynomial in K. You should be able to scale K up to any value and still have sensible problem instances (a salesman who must visit K cities, where K can be 10 cities or 10,000 cities). If K can never be bigger than a certain value, we're not really playing by the NP-hard rules.
And in our case, K might be something like 32, which is fixed the dimension of the map. It's never bigger than that.
And the difficulty of squeezing electronics into that 32x32 space makes our prospects even better. Yes, you can build full-visibility problems in The Castle Doctrine that are instances of truly NP-hard problems, but these constraints limit you only to the smaller, more trivial instances of those problems.
But in general, the problem instance in TCD is, "Given this house map, what is the optimally cheapest tool set and movement path that will get the robber to the vault without dying?" I'm pretty sure that for NxN maps, that is an NP-hard problem (no polynomial time way to solve it, polynomial in N). Obviously, we know part of the answer already: the cheapest toolset is alwasy $0, because the owner provided us with that 0-tool solution (though this is not the case for reaching the wife, or dealing with a house that has already been partially broken).
Summary: it's good that building complex electronics is quite limited by space constraints!
Ah, the doorstop! About as useful as a... "doorstop"....
Looking at the stats, either one or zero of these hand-crafted beauties has been sold each day, with the average hovering closer to the 0 mark than the 1 mark.
They're meant to thwart door-based commit gates, where the door starts out open, but closes when you step through.
Clearly, cutting around the door, or cutting the power to the door, is always cheaper. Plus, those cutting tools can be used in other circumstances in case you don't encounter a door, where the doorstop is specific.
Thus, the doorstop should at least be cheaper than the saw.... I'll try $200 (1/3 of door cost, instead of 2x) and see how that changes sales.
You used to start each new life with $500 on your head.
Josh pointed out that this made money too easy to come by (from suicide runners). I've reduced it down to $100.
The bounty still goes up by $500 for each vault reached and $1000 for each family member killed. Thus, entrapping a seasoned robber will bring you a lot more bounty than entrapping a suicide runner with nothing to lose.
Great to see this posted here, Zed.
I'm going through the tutorial levels now.... and wishing for a RESET button. I see UNDO.... but sometimes I get many moves in before I realize that I made a mistake right at the beginning.
Also, I can't figure out what the little button with three yellow hexes on it does (I click, and one turns green, another red, and then one piston turns red in the level that I'm in, but that piston isn't needed to unlock the lock...).
Also, people have accused me of making obtuse user interfaces.... but... ahem!
Also, I wish I had an elegant solution for this issue, but it eludes me.
Not cheating! You are only robbing yourself of proper intimacy with your own creation.
As for the trap door thing, yes, this is working as it should be, as strange as it is.
The problem is that, at the end of a robbery, a dog can end up standing on TOP of a closed trap door. Thus, any trapdoor that was closed at the very end of a robbery gets "stuck" closed (stuck means that it doesn't auto-reset after the owner comes home and fiddles with the house---it can still go through normal transitions during robbery, but it remains stuck during editing). Most non-broken things auto-reset to their 0 state after your first self-test (after you get to inspect their post-robbery state, which may involved some closed doors, etc.)
But if a trapdoor auto-reset, sometimes, it would leave a living dog floating in the air in edit mode (because dogs can't die in edit mode).
And having the trapdoor only be stuck closed if a dog is on top would require a bunch of extra trapdoor states, which would be messy. So, the trapdoor remains closed, just to be safe.
It will pop open again, permanently, after any successful robbery where it is open at the end of the robbery.
Fun stuff!
Obviously, the game and server are open source and in the public domain, so it's sitting there ready for as elaborate of a mod as people can dream up.
HOWEVER, I also want to point out that mods without programming are totally possible. For Halloween, we had a really great skin, but it can go way beyond that, assuming that you want to run your own server for the mod so that you don't have to be compatible.
You can start from scratch and redefine the houseObjects from the ground up, complete with totally new states and assign properties for those states (keeping with the list of existing properties that the code recognizes). Then, you can edit transitions.txt and define your own transitions.
On the server side, you can edit settings.php to give all your new objects prices. You can also edit the various "names" source files, that the server slurps-in at setup time, to specify your own name pools for players and family members.
Example: imagine a pre-internet hacking game where player names are 3-part modem phone numbers (like 212 675 0098), and houses are actually computer systems with ice, and various tools are cracking scripts.
AND, to let players in, you can run your own TicketServer, which you can use to generate free tickets for your friends, or you can even hook up your own FastSpring payment system to it and charge money to join the server. Like I said, it's in the public domain, so you can do whatever you want with it without my permission (including charging money for whatever it is that you do with it).
Thanks for working on this, folks!
3:
The wife gets half of the total money, even-steven, every time you return home and either edit something OR buy/sell tools. This re-division does not happen if you return home to buy paintings but don't edit the house or buy/sell tools.
After that, while you are away, the wife gets bounties from any robbers that SHE kills directly with the shotgun. Other bounties (from deaths elsewhere in the house), plus tools from all dead robbers, are added to the vault.
There are currently no salaries paid, and I don't think that's going to change.
I think there's something nice about having these weird little constraints in place. It reminds me of engineering, where sometimes the fact that some part only turns in one direction can have an unexpected consequence that will make you have to redesign the whole damn thing, just because of that one finicky part. Also true of retrofitting.... dammit, I'm going to have to tear this wall out to get to the back of this switch plate!
There's one other thing to consider, and that's the visibility of floor tiles behind south-adjacent wall tiles. Currently, the "important" part of these voltage switches (the top, spring-loaded part) is always visible, even if there's a wall to the south.
Finally, rotating stuff while editing feels finicky. Note that the game currently auto-rotates many things based on the location of adjacent walls, but not in ways that affect their functionality.
Yeah, I was thinking about adding a "diode" tile that only passes power in one direction to help with this, but I think it can generally be accomplished with the existing voltage-triggered switches.
Actually, there were very few other variables convincing us to move!
Las Cruces was pretty nice otherwise.
But, on EVERY block, there was a juiced-up pit bull in a front yard behind an insufficient fence. A fence literally touching the sidewalk.
3-foot-hight cyclone fences were pretty common.... barely tall enough to keep even a small dog's head from coming over into the sidewalk space. Wooden fences were seen occasionally, but almost always rotting, with loose boards where a dog snout or sometimes entire head would come out at you, snarling.
I've even had a snarling dog head come at me over the top of a 6-foot-high cement block wall as I walked by.... the jaws just a few feet from my face. There must have been something behind the wall that the dog was standing on top of.
Fortunately, we were only ACTUALLY attacked by ONE of these dogs. We had some close calls with only a few others.
But it was the daily encounters, especially AFTER being attacked once, that really got to us. You just could not avoid these dogs... they were literally everywhere.
The point being that, even if I had a gun, I couldn't shoot them all---they weren't actually doing anything other than being scary accidents waiting to happen. I shoot such a dog, even if the animal and owner are really asking for it, and i might actually be doing a public service, but I don't think the owner or the police would see it that way. Also, if you shoot a dog, even one that is attacking you, you probably have to contend with a very angry and emotional owner, who may bring out a gun of their own. At that point, you're in a gun fight. Not good by any measure.
And I really didn't want to live in a place where I HAD to arm myself in order to feel safe. And my wife---who was often out with three little kids on her own, without me, especially didn't want to arm herself in order to feel safe.
Given the situation, moving seemed like the best option. Now we don't live in constant fear, and the non-gun weapons that we used to carry are gathering dust.
Good stuff, Josh!
setz:
PLEASE send me a recordedGame file for one of these crashes!
You should be able to drop them into playbackGame and watch them by running the game. Playing back the recording should still cause the same crash again. Find one, and email it to me, please: jasonrohrer@fastmail.fm
Yes, I'll change it so you can control that fourth slot. Before, I was thinking that controlling the order of all the paintings in the fourth slot would be cumbersome, so I avoided it. But now I realize that it's only the painting on top (visible) that matters!
Also, keep in mind that the painting order in general (even the other slots) isn't saved until you actually check-in your house. Watching tapes simply leaves your house without checking it in.
Ah, yes, you're right! It happens with dogs to.... hmm...
Well, that's obviously a bug. I'll move this back onto the other list.
No, he should not.
You can sometimes see him there, though, lurking in the shadows, because of the soft edge on the black visibility fog.
Wow, yeah, #2 is something that I missed. Will fix, thanks for that!
But #1 is something that I'm not able to reproduce... I can fill the entire frame with wooden walls using one, uninterrupted drag, and clear it as well with another uninterrupted drag.
Do you have a brief recording that demonstrates #1? If so, please email it to me: jasonrohrer@fastmail.fm
Okay... so the "or so" part meant nearly three weeks!
But with v24, all known bugs have been fixed, and I think that sailing is smooth enough to invite people back into the fold for one final push.
Also, the game has now been featured on that Penny Arcade Extra Credits video TWICE.... well, it was the same video, but reposted again yesterday for some reason, which got a whole new batch of viewers. So, we have a bunch of really new people right now.
That means that we're up over 4800 people now, and pushing toward 4900. 121 people have played in the past week, with 31 playing yesterday, and 35 playing so far today. This is the liveliest the game has been for as long time.
Time to send out 4800 emails.
Right, you can't load your backpack without fixing your broken house.
In v24 that was just released, you now can't even buy paintings.
So, money will just build up in your house until it is finally worth brute-force robbing.
Actually, for now, I've decided to leave it. A dead family member pushing a panic button by lying on top of it isn't that strange, and it's kind of a weird little twist.
This minor release fixes a bunch of tiny, rare glitches and bugs.
It also adds a function for saving an image of an entire house map (in edit and tape playback modes only). Press the '+' key and then check the mapShots folder.
A full list of changes can be found here:
Good point! I will update the FAQ.
On Windows 8, the files are hidden. See the forum FAQ for help with that.
A tally of total money spent on a house so far (fixing it up, changing it, etc., not just its current state) is an interesting idea!
Regarding the controversy, well, interesting stuff there. I am NOT "anti-gun," in that I don't thing guns (or any other potentially dangerous thing) should be outlawed. People need to take responsibility for their own actions. That doesn't mean that I'm pro-gun, though! I also think heroin should be legalized, and gambling, and prostitution.... but I don't necessarily think those are GOOD things that I'd want to involve myself in. I just don't want to make choices for other people.
I chose not to drink, but I don't want to stop you from drinking.
Anyway, I've written a bunch of articles about this in the blog:
http://thecastledoctrine.net/news.php
See the archives for most of them, particularly "Addressing some confusion"