-
Notifications
You must be signed in to change notification settings - Fork 0
/
notes.txt
170 lines (101 loc) · 3.31 KB
/
notes.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
bypass level format
tutorial.zip
episode1.zip
episode2.zip
contains:
metadata.txt and a bunch of .dat files
metadata.txt contains only:
# of .dat files
example .dat file:
gen-0-4-2-8.dat
contents:
moves: 28
/---K--\
| CAAA|
| C B |
|RRC B K
| D B |
Y D J
| D |
\---J--/
generating levels:
There are 6 different boards that are used in the game:
com.brentonbostick.bypass.solver.Boards.board0
com.brentonbostick.bypass.solver.Boards.board1
com.brentonbostick.bypass.solver.Boards.board2
com.brentonbostick.bypass.solver.Boards.board3
com.brentonbostick.bypass.solver.Boards.board4
com.brentonbostick.bypass.solver.Boards.board5
1. generate transcripts from java code
Run these commands to generate transcripts for each board:
generate.bat 1
generate.bat 2
generate.bat 3
generate.bat 4
generate.bat 5
2. process the transcripts in Mathematica code
Run the code in Solving.nb and LevelProcessing.nb
deadlock notes
objectives:
connect entrances and exits for each level
prevent crashes, deadlocks
maximize traffic flow
idea is to trick people into developing an intuition about concurrency, threading, locks, wait-free algorithms,...
immediate design questions:
1. working with two lane roads is very appealing, but how to rationalize it?
something like with kirchoff, and whole scene is part of a circuit?
flow of paired lanes is equal, actual flow will come from this and other constraints
2.
how to represent data being manipulated?
cars are like instruction pointers moving through code sections... so like a million ips all working at same time
what are they doing?
doesn't matter, simply "work" of some kind, irrelevant
fork-join
reversible work
all work is being done in memory, nothing with side-effects
stm
constraints:
building roads cost money
natural and artifical obstacles (hills, ponds, monuments) get in the way
cars can crash
cars can fly off of a road if going too fast
construction: only one lane in a segment, but have 2-way traffic
resources:
money, based on tolls, based on traffic flow, based on fines for speeding
what to buy:
roads
signs
stop lights
traffic officers
computer systems
speed sensors!
stages:
first design the roads, commit (compile), then run
designing:
touching and dragging will create road segment schematic
releasing will draw road segment dropping down onto grid with satisfying "poof" and dust wooshing out from under
running:
cars have different visualizations, showing the space they will take up (think for a single lane with 2-way traffic)
the path they are taking, with it fading out the further away from the car it is
after running parallel for a sufficient distance, cars in parallel lanes may spontaneously switch lanes
idea if they have had enough time to slow down or speed up and can see what is going on
tunnleing??
different kind of cars:
1. mini-van, goes slow but will never crash
2. sports car, goes as fast as possible but can crash
3. whole spectrum in between
running a level is like a cutscene that people will watch
will have a dashboard with stats like flow, ...
level ideas:
speed traps!
music:
lee dorsey - working in a coal mine
sabre dance
anvil chorus
monk theme by randy newman, while drafting
ideas
minimize stress, waiting
stoplights = blocking
stop signs = ?
roundabouts = non-blocking algorithms?
build up to a high-traffic web server