Sunday, September 26, 2010

LazerTag Team Ops Packet - Part 1

Phoenix LTX

[ 3 bits - zero ] [ 2 bits - team ] [ 2 bits - damage ]

Team:
0x00 = Solo
0x01-0x03 = Team 1-3

Damage:
0x00-0x03 = Damage 1-4 (3-4 are only usable by LTTO as Mega-Tag)

LTTO

[ 5 bits - zero (for solo at least) ]

Location Pulse

#define LTTO_HDR_MARK_ONE 3000
#define LTTO_HDR_MARK_TWO 6000
#define LTTO_HDR_SPACE 6000
#define LTTO_ONE_MARK 2000
#define LTTO_ZERO_MARK 1000
#define LTTO_SPACE 2000

Thursday, September 2, 2010

Goal-Oriented Action Planning

I found a very good paper on AI planning by the guy that did the F.E.A.R. AI architecture.

Jeff Orkin's page on GOAP contains lots more links to even more details.

Learn something!

Monday, August 23, 2010

Phoenix LTX

Hey look I made a lazer tag gun! It runs on Arduino using the IRremote library.

Send:
void IRsend::sendPHOENIX_LTX(unsigned long data, int nbits) {

enableIROut(36);
//HEAD
mark(PHOENIX_HDR_MARK);
space(PHOENIX_HDR_SPACE);
mark(PHOENIX_HDR_MARK);
int i = 0;
for (i = 0; i < 7; i++) {
if (i % 2 == 0) {
space(PHOENIX_LTX_SPACE);
} else {
mark(PHOENIX_LTX_ZERO_MARK);
}
}
//DATA
if ((data >> 2) & 1 == 1) {
mark(PHOENIX_LTX_ONE_MARK);
} else {
mark(PHOENIX_LTX_ZERO_MARK);
}
space(PHOENIX_LTX_SPACE);
if ((data >> 0) & 1 == 1) {
mark(PHOENIX_LTX_ONE_MARK);
} else {
mark(PHOENIX_LTX_ZERO_MARK);
}
//TAIL
for (i = 0; i < 4; i++) {
if (i % 2 == 0) {
space(PHOENIX_LTX_SPACE);
} else {
mark(PHOENIX_LTX_ZERO_MARK);
}
}
space(PHOENIX_LTX_SPACE);

}

Receive:
long IRrecv::decodePHOENIX_LTX(decode_results *results) {

long data = 0;

int offset = 1;

int i = 0;

//HEAD

if (results->rawlen != 18) {

return ERR;

}

if (!MATCH_MARK(results->rawbuf[offset], PHOENIX_HDR_MARK)) {

return ERR;

}

offset++;

if (!MATCH_SPACE(results->rawbuf[offset], PHOENIX_HDR_SPACE)) {

return ERR;

}

offset++;

if (!MATCH_MARK(results->rawbuf[offset], PHOENIX_HDR_MARK)) {

return ERR;

}

offset++;

for (i = 0; i < 7; i++) {

if (i % 2 == 0) {

if (!MATCH_SPACE(results->rawbuf[offset], 2000)) {

Serial.println(i, DEC);

return ERR;

}



} else {



if (!MATCH_MARK(results->rawbuf[offset], 1000)) {

Serial.println(i, DEC);

return ERR;

}

}

offset++;

}

Serial.println("Data");

//DATA

for (i = 0; i < 3; i++) {

if (MATCH_MARK(results->rawbuf[offset], PHOENIX_LTX_ONE_MARK)) {

data << 1;

data |= 1;

} else if (MATCH_MARK(results->rawbuf[offset], PHOENIX_LTX_ZERO_MARK)) {

data << 1;

data |= 0;

} else {

Serial.println(i, DEC);

return ERR;

}

offset++;

}

Serial.println("Tail");

//TAIL

for (i = 0; i < 2; i++) {

if (!MATCH_SPACE(results->rawbuf[offset], 2000)) {

return ERR;

}

offset++;

if (!MATCH_MARK(results->rawbuf[offset], 1000)) {

return ERR;

}

offset++;

}



// Success

results->bits = 3;

results->value = data;

results->decode_type = PHOENIX_LTX;

return DECODED;

}

Defines:
#define PHOENIX_HDR_MARK 3000
#define PHOENIX_HDR_SPACE 6000
#define PHOENIX_LTX_ONE_MARK 2000
#define PHOENIX_LTX_ZERO_MARK 1000
#define PHOENIX_LTX_SPACE 2000

Sunday, May 30, 2010

TankTank 0.3.1 (Experimental)



Less 'crashing into walls' Edition.

Download

Sunday, April 25, 2010

Internet TankTank 0.3.0


New version of tanktank with fewer unintended features and more candy! Internet servers via the server browser appear to work. You need to open port 18007 for TCP/UDP if you want it to work though.



  • CTF was rebalanced.

  • Spawns were color coded

  • Unused spawns were hidden

  • New teams arn't created after game start to keep it balanced

  • Vastly improve push zone drawing

  • Turn triangle around seems to help when people get stuck

  • Fix some laser issues

  • Drawing tweaks

  • Fix for cwd issue and empty maps

  • Draws properly on win7 now hopefully


Download


O yah, Lava!

Monday, April 5, 2010

SteamBirds

Quite fun fighter plane game! If you are not playing it your are clearly the victim of lead poisoning.


Monday, January 11, 2010

Capture TankTank Fish 0.2.8


Now with server browser and capture the flag support. Also works better on vista/win7.

Also added an option to turn off UDP if your firewall explodes like mine does.

Mongo says get it now.