Get Started. It's Free
or sign up with your email address
Dick by Mind Map: Dick

1. Minecraft

1.1. 3d world made of boxes

1.2. 3d map

1.2.1. 256 high

1.2.2. infinite wide

1.2.3. divided into 16x16 chunks

1.2.4. the world is generated every time the game starts

1.3. 124 types of blocks

1.3.1. gold, water, &c

1.3.2. 140 items

1.3.2.1. sword &c

1.4. Hostile & friendly mobs

1.4.1. eg, cripper

1.4.2. friendly as eatable

1.5. Universe of things to do

1.5.1. mining

1.5.2. crafting

1.6. Objectives?

1.6.1. No goal

1.6.2. You can do anything

1.6.3. Start from nothing

1.6.4. Build anything

1.6.4.1. crafting is the central thing

1.6.4.2. some ppl build computers there!

1.7. Bots enable to build agents that work for you

2. Bot types

2.1. Server side

2.1.1. most of the bots

2.1.2. Running inside the server

2.1.2.1. Java

2.1.3. Limited by server design, currently no stable API

2.2. Client side

2.2.1. You have to do the plumbing yourself

2.2.1.1. networking

2.2.1.2. game mechanics

2.2.2. Freedom

2.2.3. You're kind of alone

2.3. Proxy

2.3.1. Bungeecord

2.3.1.1. name of proxy

2.3.1.2. name of event that can happen in proxy situations

2.3.1.2.1. AKA sync issues

2.3.2. Can be easier to test goals live

2.3.3. Has problems of both server and client

2.3.4. double authentication

3. Bot & Python

3.1. It's fast enough, provided you're careful

3.1.1. 10sec algorithms will cause the server to kick you

3.2. Use the good stuff

3.2.1. Twisted, Numpy, Pypy

3.3. KISS - better not use threads

3.4. Start with simple

4. Cock

4.1. No official spec

4.1.1. ppl reverse engineer (decompile java bytecode)

4.1.1.1. http://wiki.vg

4.2. Minecraft has Bugs/features?

4.2.1. "good example of bad design"

4.2.2. it grew organically

4.3. Correctly parsing network bytestream

4.3.1. 90 types of packets!

4.4. Build the world *correctly* - properly interpreting the data from the server

4.4.1. otherwise your reality will be different than the server's

4.5. Pathfinding

4.5.1. A*

4.5.1.1. sometimes dangerous - can explode

4.5.1.1.1. costly computing

4.5.2. Map can be huge - 3d

4.5.2.1. use hierarchy

4.5.2.1.1. compositional

4.5.2.1.2. not trivial

4.5.3. If it takes too long to find the path - it's wrong

4.5.4. Creating possible places to go

4.6. Moving around

4.6.1. AABB is your friend

4.6.1.1. Axis Aligned Bounding Box

4.6.2. Minecraft physics is funky

5. pussy

5.1. The bot can

5.1.1. fall

5.1.1.1. !

5.1.2. see you

5.1.3. Not swim

5.1.4. Knows that the world changed

5.2. Make signs, it will walk betweek them

5.3. fragile

6. Plans

6.1. Mobs aware

6.1.1. Otherwise it'll be killed in the night

6.1.2. Perceive/interpret the world

6.2. Swimming

6.2.1. there are currents

6.3. Mining & building

6.3.1. don't want to script himself to death..

6.3.2. considered machine learning, but the state space is too big

6.4. Food

6.4.1. really live

6.5. Defend against hostile mobe

6.5.1. hardest

6.5.1.1. Interrupt other Plans

6.6. Robustness

6.6.1. GOAP

6.6.1.1. Machine learning GOAP?

6.6.2. Interrupt other Plans

6.6.2.1. Priorities?

7. Poop