The Castle Doctrine Forums

Discuss the massively-multiplayer home defense game.

You are not logged in.

#101 Re: Main Forum » Total (own house) kill/attempt numbers should be visible » 2014-02-27 10:43:22

I definitely don't want any lifetime or cross-lifetime stats in the game.  When you die, it should have a real "poof it's gone" feeling.  You should have nothing but your memories of that life (in real life, you wouldn't even have that, perhaps).

As far as having to count tapes... hmm...

#102 Re: Main Forum » Top 8 (Top 10, technically) Paintings from Contest » 2014-02-27 10:40:30

Paintings are DONE and packaged at the printer.

They've sent one to me, which should arrive today, for me to open and inspect.

The gun shop gift certificates arrived a few days ago.

After I see that the paintings are good to go, I will get people's addresses and have everything sent out.

#103 Re: Main Forum » Chills » 2014-02-27 10:37:46

And this is to keep someone from "camping" in a house until the chill wears off to protect it from other players (like for dual account collaboration).

#104 Re: Main Forum » I just relaized what this game is missing that would change everything » 2014-02-27 10:36:17

Yeah, I purposely kept all direct communication out of the game for some pretty obvious reasons.

It's not that I mind direct, "obscene" harassment so much, or that I want to protect "innocent" people from abuse, but that I feel like it would detract from the atmosphere and mystery of the game.  That's part of the reason why there are period-specific names assigned in the game instead of xxxOOO_*_*_L337_HANDLEZ_*_*_OOOxxx.

Did any of you ever play Journey?  Pretty amazing in terms of a very consistent and smooth multiplayer integration (so much so that it was hard to tell you were playing with another human---many people didn't even realize it).... BUT, they spoiled at the end when they gave you a list of PSN handles that you played with.  At least they had sense enough to keep those out of the game itself.

#105 Re: Main Forum » House login failed » 2014-02-25 14:09:09

Oh, this is kind of amazing:

GET /gameServer/server.php

This IS actually a valid HTTP request, by itself, because it matches the ancient HTTP 0.9 spec from 1991.  The server responds with no headers and just sends the requested document (or does the requested PHP action).

Apache ships supporting this 1991 compatibility mode.

Sadly, this also prevents Apache from detecting modern HTTP requests that might be cut off mid-URL.

Weird that the protocol was "appended" in this way so that you can't tell which version of the protocol you're using from character 0 of the request.

Though maybe this allows modern HTTP browsers to still talk to old 1991 servers just fine?

#106 Re: Main Forum » Bugs are nasty » 2014-02-25 13:53:33

Yeah, so which recording shows your death?

#107 Re: Main Forum » House login failed » 2014-02-25 13:52:13

Yeah, fixed the multiple leave issue already.


Another player sent me recordings that confirm that their client was sending the full request (but that it got cut off before the server received the whole thing).

I'm already using Content-Length headers (these are POST requests, and I think they're pretty much required, right)?

So... that brings up the question of why PHP is accepting an HTTP request as complete that does not have POST data matching Content-Length!

Yeah, I just tested this, and PHP ignores Content-Length and lets the request through even if the length of the data does not match the length specified in the Content-Length header (like, if the connection is closed before all the data is sent).

Though I suppose that I could check the Content-Length and make sure it matches.  And this fix could happen server-side with no change to the client protocol.

And some client requests are GET requests, but these are protected from truncation because the full URL comes before the HTTP/1.0 marker in the protocol, so the request is totally invalid if the URL is cut off part way through.


Oh wait... on my servers, even totally incomplete HTTP requests (like "GET /" with nothing after it) are being processed.  So incomplete URLs are being sent through to server.php.   This is crazy.  Need to figure out how to block those for sure.

#108 Re: Main Forum » No redirected output from headless game client? » 2014-02-25 12:45:56

Mine shows output in the file, but only after quite a while, when the output becomes long enough.  I think it's being buffered.

http://stackoverflow.com/questions/1393 … ed-to-file

Looks like an fflush would help (isn't that ugly, though, because printf doesn't usually need it!?)

#109 Re: Main Forum » Bugs are nasty » 2014-02-25 12:41:33

What do you mean "went offline"?

You mean, you walked away from the game for a while?

Or your disconnected from the network?

If you timed out, the message would be "You died due to inactivity" but this can only happen if you go idle for a long time in the middle of the self test.

Please send me whatever recording you have!

#110 Main Forum » How to report bugs » 2014-02-25 12:36:54

jasonrohrer
Replies: 1

If it's not reported, I don't know about it and have no way to reproduce it.  If I can't reproduce it, I can't fix it!

This game has been played by over 14,000 people and gone though over 30 revisions.  There are almost no bugs left in it.  But, the few bugs that remain are VERY rare and very tricky to find.  You know, maybe they happen once every few days to one out of a thousand players.  Sadly, bugs in a game like this can often lead to death and significant loss of time and resources.

When it happens to you, you won the lottery and hold the only key in the world to fixing the rare thing that happened to you.

So, PLEASE report any and all bugs that you encounter.

You should NEVER die in this game when it's not your fault.  House check-in failed is always a bug (unless you timed out for some reason).  Server errors are always a bug.


Okay, so How To Report:

1) Quit the game immediately after you experience a bug.

2) Find the latest recordedGame file.

3) [For crashes and non-server-related bugs] Copy it into playbackGame and run the game to watch your recording.  Is the bug reproduced by the recording?

4) Send the recordedGame file to me, along with a brief message explaining what happened:

jasonrohrer@fastmail.fm


If you're on Steam, you can find your game folder by following these instructions:

It varies by platform, but you need to find your SteamApps/common/CastleDoctrine folder.

On Windows, it's:

Program Files/Steam/SteamApps

On Mac, it's in your home folder under:

Library/Application Support/Steam/SteamApps/

One Linux, look in your home folder under .steam (a hidden folder).

#111 Re: Main Forum » Lost money after successful robbery » 2014-02-25 12:27:27

Yes, please send me the recordedGame file that shows this.

jasonrohrer@fastmail.fm

You can watch it yourself (to check) by copying it into playbackGame and running the game.

#112 Re: Main Forum » Is the server down or something? [House Login Failed] » 2014-02-25 12:24:54

If you ever get a House Checking Failed message, please stop playing immediately and send me your latest recordedGame.

jasonrohrer@fastmail.fm

I can't fix it if it's not reported to me!

#113 Re: Main Forum » Bugs are nasty » 2014-02-25 12:12:36

I looked at the code, and the only way "You died" is displayed is if your CLIENT decides that you died before it even sends the moves to the server (and then after the server gets the moves and sends back OK, the client shows "You died."  but it already decided that you died before it even communicated with the server).  In all other cases (server-side death due to a bug or otherwise), there should be some other error message (house check-in failed).

So, it sounds like this is a very mysterious bug.

Please send me the recordedGame file that shows this happening:  jasonrohrer@fastmail.fm

You can also watch the recording yourself, which might give you some idea of why it happened.

If you're on Steam, there is a pinned thread in the Steam forums that will help you find your game folder.

#114 Re: Main Forum » House login failed » 2014-02-24 11:19:25

Yeah, the hard part about fixing this stuff is really finding it...

These are so rare and mysterious at this point that sometimes it's hard to figure out what caused the problem.

In Stefan's case, it looks like his request to the server was cut off for some reason at the end of his robbery, which meant that the whole map wasn't submitted.

I have NO idea what's causing this.  I assumed that an HTTP request, if received by the server, was guaranteed to be a complete request and not cut off.  Maybe that's not the case.

I think I need to add something to the protocol to detect and deal with this.

Of course, it is SO rare that it's hard to even notice.

But when it happens to YOU, you notice it!

#116 Re: Main Forum » Displaying paintings on walls ! » 2014-02-21 20:26:53

Yeah, that's possible.

But there are 150 paintings, each made by different people...  I'm not sure I could algorithmically "shrink them down" in a sensible way without actually redrawing all of them.

I have some sketches in very early design docs about how to display paintings on walls (very much like what you show there), but I decided against it early on.

#117 Re: Main Forum » Compile on Mac » 2014-02-21 20:23:12

Oh... OS X never supported SDL!

It was something that I downloaded and installed (and I guess that's where it installed itself  /System/Libraries/Frameworks...)

#118 Re: Main Forum » Setting up a server for test runs All are welcomed :D » 2014-02-21 20:20:59

Trying to set your own LAMP (Linux Apache MySQL PHP) thing up from scratch is pretty complicated (though it's rather easy if you just install Ubuntu and then turn on those packages---it kinda just works, except for the database admin part).

In the real world, I've mostly been using web hosts that give me a web-based cPanel, which lets me easily create databases, create database users, assign users to databases, and so on.  "phpMyAdmin" is another variant on this (web-based control panel for doing MySQL setup stuff).

That's the only part that's not really covered in my instructions.

#121 Re: Main Forum » Exploit for two Accounts » 2014-02-21 20:05:27

Yeah, sadly, there is no way to prevent this.  How do you tell the difference between two friends who are helping each other and one person using two accounts?

This is true of ALL online games, of course.  Friends working together can help each other.

I'm not saying that it's an intended part of this game.

There were plenty of things put in place to thwart straight-up resource transfer between two accounts.  So you can't easily feed yourself $2000 over and over from a second account (or two friends can't easily feed each other $2000 repeatedly).  But those fixes make sense in the game and don't have huge negative effects on the non-exploiting players.

Trying to detect IP addresses that "seem" to be collaborating would be like looking for patterns in static.

#122 Re: Main Forum » Gun Vs. Window » 2014-02-21 19:57:59

Yeah, I just thought that it wouldn't break the whole window.

#123 Re: Main Forum » That feeling in the pit of your gut... » 2014-02-21 19:55:47

The RoosterTeeth guys have a pretty similar experience in their great and entertaining video:

http://www.youtube.com/watch?v=dhz-f3KQw2Q

When I watched that, I realized how LUCKY I was that they had that experience when showing the game.  The triumph in their voices is undeniable.

#124 Re: Main Forum » Help » 2014-02-21 19:53:11

I got the idea from id Software, which used to used tga files back in the day, as I recall.

Super-simple file format, very easy to write portable code to open them that doesn't depend on huge, fragile libraries (like libpng).  In the case of the graphics that ship with my game, they're so tiny that they really don't need to be compressed.  Very simple and convenient to output screenshots and mapshots using the same format.

#125 Re: Main Forum » Wireless transmission and Step-limit exploits » 2014-02-20 15:52:01

Yes, paradoxes are still possible.

That green light is always powered in every step of the loop (alternately gets power from top and bottom) so it settles to powered, even though neither top or bottom settle to powered.

Even more striking if you have orange lights on either side of the green that show up as not powered.  Or even better, a trap door that looks like it is powered from "off" electric floors on both sides of it.

Board footer

Powered by FluxBB 1.5.10