sōr devlog
contents
Progress
Graphical juice
An interesting way to make the graphics look cooler that I discovered accidentally; mixing the color channels (for example, swapping red and blue) will give it a cool effect. Perhaps if this could be gradually blended in and out, maybe even as an energy overload indicator or grayscale to indicate lack of energy, to communicate that energetic state can affect visual perception.
AI
Refactor to Engine
At this point, the AI has become pretty interesting and fairly advanced, so I want to create an API out of it. That way, the AI engine can be used to run agents for other simulations.
Perhaps name the engine DuckMind
.
The engine would be a component-based system, that would likely depend on Nez for math and types. However, the component system would be independent of Nez, and instead would be a relationship of "Mind has Components" rather than using polymorphism with the mind.
Ideally, this should provide all the current functionality with room for extension for simulation, specific things, but should also maximize the amount of shared code that can be extracted to the library, as that would allow broader usage of the library without first creating a detailed scenario.
It is okay for init time to be higher, as long as per-loop hot performance of the mind remains good.
Currently, the AI is built in a tiered system. Since not every node of each tier requires a tier below it (this explodes complexity), the tiers should be as independent and decoupled as possible. However, the tools for each tier will still be available; just that using the broadest tier will not necessitate using more specific tiers.
Duck Intelligence and Socialization Engine (DISE)
Sor implements an AI system that allows it to model duck intelligence and socialization.
Lunchlib AI Continuation
imported and adapted the code from older agent logic research project ("Lunch Simulator") start working on the personality vector representation.
Architecture
Logic algorithm split
reasoner is generally reserved for choosing higher-level actions. the actual execution of these actions is left to simpler, more precise subroutines.
Hierarchy
Use the utility planner to select the most "useful" objective. it gives the planner its target world state and leaves it up to the planner to figure out the actions necessary to reach that goal state. the reasoner just decides what the best goal is, the planner figures out how to reach that goal.
based on my research so far of goap, i want to use the XGOAP library. since it looks like most of those are based on boolean preconditions and postconditions (for obvious reasons), we need to let goap do high-level planning of the steps/actions required. for example, goap could tell us to "eat beans."
actually carrying out that task of eating beans will mean constructing yet another plan on how to achieve that goal, though this will not be done by a planner, it will be done by handwritten code paths. for example, to eat beans, i will have code to eat the nearby beans in a particular order until a quota is reached. it will pursue goals in order. if an order becomes no longer valid, it will be canceled. if it was a critical order, the whole plan will be invalidated. then, a new plan will have to be formed. in addition, if utility decides that a new objective is more important, the current action plan will be discarded and a new one will be instituted.
Separating action planning from action execution
both the action planning and execution systems should be distinct and able to operate independently (minimally coupled). that way, the action execution only needs to care about how to carry out the immediate task in the world given very detailed instructions. all the plan generators need to create detailed plans to feed to these though. for example, if we are adding pathfinding, we shouldn't need to add any new support to the plan executor; all we need to do is add some more plans to our task queue.
Performance/Optimization
the lighter the computational load of each unit's AI is, the more AIs we can support. ideally we would aim to reduce the compute load by reducing unnecessary or unused computations, and decreasing the frequency of expensive ones. a lot of the sense/think can happen on worker threads. for example, vision is not something that needs to be recomputed every update frame. significant savings could be gained by simply updating vision every 0.2sec or such. one cool idea! make the ai update timers flexible, so for ai out of the scene the updates can be much slower and thus much performance can be gained. we can focus our compute resources on the ai nearby, as that will be more interesting. for now, use Tasks and manual task management, but in the future if optimization can be gained by using Nez primitives such as Nez Coroutine, look into that.
Threading
Use Interlocked
for atomic variable operations across threads.
Personality
eating/feeding
receptiveness
based on traits. this is used to scale the opinion bonus from being fed a capsule.
a revision that would be cool is to make birds easier to feed; this would be done
emotions
need to add emotions soon.
Considerations
Social
Social objective aims to make friends with other birds, usually by feeding them. In the future perhaps it could do things like build rapport by proximity support to a friendly bird. The consideration will only be selected if there's a bird with a plausible chance of making a friend with. Thus, we're guaranteed to have at least one nearby bird that is a candidate. Select the first candidate (this represents that candidate being the highest expected value for feeding) and try to make friends with them. In the future perhaps use multiple heuristics and a GOAP solver to figure out what birds to feed and for what costs, taking into account things like speed discrepancies between the birds or distance.
Explore
to-do
Defend
to-do
Pathfinding
A* heuristics
excellent reading on use of the heuristic: http://theory.stanford.edu/~amitp/GameProgramming/Heuristics.html map representations: http://theory.stanford.edu/~amitp/GameProgramming/MapRepresentations.html
Structural navigation graph
The map analysis stage can build a proper room graph representing connections between the rooms, but this may not be particularly useful for actually understanding how to navigate the structure of the world. Instead, the room graph should be used to compute a "structural navigation graph" that contains nodes with positions corresponding to world positions; each room will translate into multiple nodes on this graph. For example, a room will have a node at the center, representing "being inside" the room, and two additional nodes per door, one slightly inside the door and one slightly outside. This way, a bird can path from any room to any other room by simply following the open lanes from doorway to doorway.
To build the structural navigation graph, start with the room graph. Then, we add four "nodes of indirection" between each room-to-room link; first the inner-door of the local room, then the outer-door of the local room, then the outer-door of the far room, then the inner-door of the far room. We use breadth-first-traversal on the room graph to discover all the nodes. Then, we map each room node to a "structural navigation room center" node, each of which start off completely unconnected. Then, we iterate through all the center rooms, iterating through each of their door-links. For each door-link, we then generate the four nodes of indirection (we only do the local two, and each of these are mapped to the "Door" edge so that we can look it up. when the other side of the link is processed, we do the other two.) The end result of this processing will be the structural navigation graph, which can then be traversed by A*.
Persistence
Saving generated maps
Possible ways:
-
save the rng seed used for mapgen
-
this may be bad because rng seed is used for plenty of other generation than just mapgen
-
if this is the option chosen, a separate rng should be created for mapgen
-
-
serialize the grid and recreate the roomrects from that
Mechanics
Fruit trees
In rooms, fruit seeds can be planted that grow into trees that release capsules. trees can be generated. perhaps seeds can be spread and new trees can start to grow. Later stages (7-10) release fruit.
Pips
pips represent 40 opinion (red, orange, yellow, blue, green) <-500 to -300: red -300 to -100: orange -100 to 100: yellow 100 to 300: blue 300 to >500: green
Boosting mechanics
Boosting now drains energy at a per-second rate. While boosting, the bird passes through any walls.
Evolution
Make bird kinematics and everything computed based on functions of its mass.
Map generation
Tilemap analysis
we attempt to analyze the tilemap to convert it into a better data structure. one important thing we want to be able to do is detection of rooms.
room detection
attempt to simply find all the rooms by using the corners. find the top left corner, go right until a top right corner, and etc. to create a clockwise loop. This can be saved as a Room. to detect doors and such edges, while scanning along the edges, any gaps are listed as exits.
edge detection
after a room detection pass which finds all rooms and their doors, we iterate over all the rooms and each of their doors. from a corner of the door, we scan outward until we intersect another room. if the intersect happens before out-of-range, then we add an edge.
Tilemap generation
Start with a big grid.
Links
-
https://ondrejnepozitek.github.io/ProceduralLevelGenerator-Unity/docs/roomTemplates
-
http://theory.stanford.edu/~amitp/GameProgramming/MapRepresentations.html
-
https://www.reddit.com/r/roguelikedev/comments/6vuw7i/faq_fridays_revisited_22_map_generation/
-
https://www.gridsagegames.com/blog/2014/06/procedural-map-generation/
-
https://ondra.nepozitek.cz/blog/42/dungeon-generator-part-1-node-based-approach/
Funny bugs
"Spill the beans"
so i feed this bird, and its social objective tells it it wants to feed me so it goes to a safer distance out of caution, then while trying to feed me it accidentally just releases all of its energy beans and then it starts chasing after them again; meanwhile, Big Bird is like gimme some of those :b:eans
Time log
-
As of today (2020-01-22 00:46:25), have logged 13h45m into the project.
-
As of right now (2020-01-22 19:07:50) have logged about 20h into the project.
-
As of today (2020-03-03 15:31:52), have logged about 61h into the project.
-
As of today (2021-01-20 20:00:16), have logged 136h into the project.
Tasks [0/11]
TODO
control [3/6]
DONE
add down
to slow down
CLOSED: [2020-01-12 Sun 23:21]
-
State "DONE" from "TODO" [2020-01-12 Sun 23:21]
DONE
only WALL
-tagged colliders should suck velocity
CLOSED: [2020-01-12 Sun 23:34]
-
State "DONE" from "TODO" [2020-01-12 Sun 23:34]
TODO improve collision
-
State "TODO" from "REVIEW" [2020-01-21 Tue 20:27]
-
State "REVIEW" from "TODO" [2020-01-17 Fri 01:26]
i mean? idkDONE wing-wing collision
CLOSED: [2020-01-14 Tue 15:12]
-
State "DONE" from "NEXT" [2020-01-14 Tue 15:12]
DONE collision momentum
CLOSED: [2020-01-14 Tue 15:12]
-
State "DONE" from "TODO" [2020-01-14 Tue 15:12]
BLOCKED collision bounce/elasticity
-
State "BLOCKED" from "TODO" [2020-01-21 Tue 20:27]
do we realy want bounce?ARCHIVED raycast checking
CLOSED: [2020-01-21 Tue 21:31] boost tends to clip through things, we want that fixed using a raycast, turning boost off if invalid.
REVIEW tweak handling constants
-
State "REVIEW" from "TODO" [2020-01-14 Tue 15:52]
tweaked the movement to feel a bit better
REVIEW add interact and utility keys
-
State "REVIEW" from "TODO" [2020-01-17 Fri 01:26]
there is interact key now
DONE boost
CLOSED: [2020-01-15 Wed 16:01]
-
State "DONE" from "TODO" [2020-01-15 Wed 16:01]
TODO
ai [1/3]
TODO
systems [12/12]
DONE groundwork
CLOSED: [2020-01-14 Tue 11:43]
-
State "DONE" from "TODO" [2020-01-14 Tue 11:43]
DONE basic ai controller support
CLOSED: [2020-01-14 Tue 11:42]
-
State "DONE" from "NEXT" [2020-01-14 Tue 11:42]
DONE decision debug display
CLOSED: [2020-01-14 Tue 11:43]
-
State "DONE" from "REVIEW" [2020-01-14 Tue 11:43]
-
State "REVIEW" from "DOING" [2020-01-14 Tue 11:42]
added working display -
State "DOING" from "TODO" [2020-01-14 Tue 11:42]
DONE
logic Sense-Think-Act outline [3/3]
CLOSED: [2020-02-05 Wed 01:03]
-
State "DONE" from "TODO" [2020-02-05 Wed 01:03]
DONE Sense outline
CLOSED: [2020-01-22 Wed 18:13]
-
State "DONE" from "NEXT" [2020-01-22 Wed 18:13]
DONE vision
CLOSED: [2020-01-17 Fri 01:27]
-
State "DONE" from "NEXT" [2020-01-17 Fri 01:27]
DONE object tracking
CLOSED: [2020-01-22 Wed 18:13]
-
State "DONE" from "TODO" [2020-01-22 Wed 18:13]
should be able to track capsules and what happens to them
DONE Think outline
CLOSED: [2020-03-03 Tue 00:38]
-
State "DONE" from "TODO" [2020-03-03 Tue 00:38]
DONE Act outline
CLOSED: [2020-03-03 Tue 00:38]
-
State "DONE" from "TODO" [2020-03-03 Tue 00:38]
DONE personality engine port
CLOSED: [2020-01-22 Wed 18:14]
-
State "DONE" from "NEXT" [2020-01-22 Wed 18:14]
DONE ai representations
CLOSED: [2020-02-05 Wed 01:03]
-
State "DONE" from "TODO" [2020-02-05 Wed 01:03]
DONE personality engine
CLOSED: [2020-02-05 Wed 01:03]
-
State "DONE" from "TODO" [2020-02-05 Wed 01:03]
DONE opinion
CLOSED: [2020-01-23 Thu 11:11]
-
State "DONE" from "TODO" [2020-01-23 Thu 11:11]
DONE per-mind opinion storage
CLOSED: [2020-01-23 Thu 11:11]
-
State "DONE" from "TODO" [2020-01-23 Thu 11:11]
DONE mind for player
CLOSED: [2020-01-22 Wed 18:21]
-
State "DONE" from "TODO" [2020-01-22 Wed 18:21]
DONE non-control minds
CLOSED: [2020-01-22 Wed 18:15]
-
State "DONE" from "NEXT" [2020-01-22 Wed 18:15]
DONE fixed personality for player
CLOSED: [2020-01-22 Wed 18:21]
-
State "DONE" from "NEXT" [2020-01-22 Wed 18:21]
TODO interactions
TODO signaled capsule feed TODO make feed capsule use trait interaction TODO add mood to mind
DONE representation of resources to AI
CLOSED: [2020-03-03 Tue 00:37]
-
State "DONE" from "TODO" [2020-03-03 Tue 00:37]
CANCELED representation of tethers and links to AI
CLOSED: [2020-03-03 Tue 00:40]
-
State "CANCELED" from "TODO" [2020-03-03 Tue 00:40]
no tethers
DONE signaling review
CLOSED: [2020-02-05 Wed 01:03]
-
State "DONE" from "TODO" [2020-02-05 Wed 01:03]
DONE ai movement
CLOSED: [2020-02-05 Wed 01:03]
-
State "DONE" from "TODO" [2020-02-05 Wed 01:03]
DONE turn ai
CLOSED: [2020-02-01 Sat 14:40]
-
State "DONE" from "TODO" [2020-02-01 Sat 14:40]
DONE move ai
CLOSED: [2020-02-01 Sat 14:40]
-
State "DONE" from "TODO" [2020-02-01 Sat 14:40]
DONE make the code less shit
CLOSED: [2020-02-05 Wed 01:03]
-
State "DONE" from "TODO" [2020-02-05 Wed 01:03]
PROG show unit plans
-
State "PROG" from "NEXT" [2020-03-03 Tue 00:37]
DONE action planning
CLOSED: [2020-02-06 Thu 09:25]
-
State "DONE" from "TODO" [2020-02-06 Thu 09:25]
DONE move action planning
CLOSED: [2020-03-03 Tue 00:35]
-
State "DONE" from "TODO" [2020-03-03 Tue 00:35]
DONE target move planning
CLOSED: [2020-02-06 Thu 09:25]
-
State "DONE" from "TODO" [2020-02-06 Thu 09:25]
DONE target distance follow planning
CLOSED: [2020-02-06 Thu 09:25]
-
State "DONE" from "TODO" [2020-02-06 Thu 09:25]
TODO use time validity on task plans too
TODO add an approach type that is rougher and doesn't attempt to distance itself
sometimes it tries to back off if it gets too close for the feed
TODO
refinement [0/3]
TODO make nearby interaction less exploitable
right now being near it while friendly will indefinitely increase opinion
TODO
wander movement [3/3]
-
State "DONE" from "TODO" [2020-03-03 Tue 13:32]
DONE pathfinding over room graph
CLOSED: [2020-03-03 Tue 00:40]
-
State "DONE" from "TODO" [2020-03-03 Tue 00:40]
DONE translate pathfind results into action queue
CLOSED: [2020-03-03 Tue 13:32]
-
State "DONE" from "NEXT" [2020-03-03 Tue 13:32]
DONE navigate using structural navigation graph
CLOSED: [2020-03-06 Fri 11:16]
-
State "DONE" from "TODO" [2020-03-06 Fri 11:16]
TODO birds should attempt to bond
DONE
ai inspector [6/6]
CLOSED: [2020-03-06 Fri 11:15]
-
State "DONE" from "TODO" [2020-03-06 Fri 11:15]
-
State "DONE" from "TODO" [2020-02-05 Wed 01:03]
DONE support ai inspector component
CLOSED: [2020-01-14 Tue 13:10]
-
State "DONE" from "TODO" [2020-01-14 Tue 13:10]
DONE show unit data in inspector
CLOSED: [2020-01-23 Thu 11:06]
-
State "DONE" from "TODO" [2020-01-23 Thu 11:06]
DONE collect inspect data from both Mind and State
CLOSED: [2020-01-23 Thu 11:06]
-
State "DONE" from "TODO" [2020-01-23 Thu 11:06]
DONE show unit vision
CLOSED: [2020-01-23 Thu 11:06]
-
State "DONE" from "TODO" [2020-01-23 Thu 11:06]
DONE show unit thoughts
CLOSED: [2020-03-03 Tue 00:36]
-
State "DONE" from "TODO" [2020-03-03 Tue 00:36]
DONE value board
[2/2]
CLOSED: [2020-03-06 Fri 11:15]
-
State "DONE" from "TODO" [2020-03-06 Fri 11:15]
DONE separate sections in board display
CLOSED: [2020-03-06 Fri 11:15]
-
State "DONE" from "TODO" [2020-03-06 Fri 11:15]
DONE board line color support
CLOSED: [2020-03-06 Fri 11:15]
-
State "DONE" from "TODO" [2020-03-06 Fri 11:15]
TODO
visual [5/8]
DONE
pips [4/4]
CLOSED: [2020-01-22 Wed 20:31]
-
State "DONE" from "NEXT" [2020-01-22 Wed 20:31]
DONE pip sprites
CLOSED: [2020-01-22 Wed 19:16]
-
State "DONE" from "TODO" [2020-01-22 Wed 19:16]
DONE only onscreen pips
CLOSED: [2020-01-22 Wed 20:31]
-
State "DONE" from "TODO" [2020-01-22 Wed 20:31]
DONE update pips based on opinion
CLOSED: [2020-01-22 Wed 20:31]
-
State "DONE" from "NEXT" [2020-01-22 Wed 20:31]
DONE pips represent opinion
CLOSED: [2020-01-22 Wed 20:31]
-
State "DONE" from "TODO" [2020-01-22 Wed 20:31]
DONE add screen shake
CLOSED: [2020-01-17 Fri 01:26]
-
State "DONE" from "TODO" [2020-01-17 Fri 01:26]
DONE add trail (disabled)
CLOSED: [2020-01-17 Fri 01:27]
-
State "DONE" from "TODO" [2020-01-17 Fri 01:27]
DONE add indicator bar
CLOSED: [2020-02-06 Thu 09:50]
-
State "DONE" from "REVIEW" [2020-02-06 Thu 09:50]
-
State "REVIEW" from "TODO" [2020-01-21 Tue 16:53]
added indicator bar to show energy
DONE fruits with more energy pulsate faster
CLOSED: [2020-02-06 Thu 09:50]
-
State "DONE" from "TODO" [2020-02-06 Thu 09:50]
TODO overload indicator
show overloaded ship (energy > 2x capacity) by tinting it.
TODO color filters and vfx
TODO menu redesign
TODO
mechanics [9/10]
CANCELED phase switching [0/4]
CLOSED: [2020-01-22 Wed 11:53]
-
State "CANCELED" from [2020-01-22 Wed 11:53]
unnecessary -
State "BLOCKED" from "TODO" [2020-01-22 Wed 11:51]
is this needded?TODO support different physics based on phase
TODO implement phase physics
TODO create phase transitions
CANCELED wall attachment [0/6]
-
State "BLOCKED" from "TODO" [2020-01-22 Wed 11:51]
is this really needed?TODO inspect InfiniteGravity code
TODO animation support
TODO input design for controls
TODO physical snapping to walls
TODO movement along walls
TODO boosting off walls
CANCELED tethers
CLOSED: [2020-02-06 Thu 21:41]
-
State "CANCELED" from "TODO" [2020-02-06 Thu 21:41]
TODO manual tether attachment
DONE disable walls
CLOSED: [2020-03-03 Tue 00:34]
-
State "DONE" from "TODO" [2020-03-03 Tue 00:34]
DONE
trees [4/4]
CLOSED: [2020-02-06 Thu 21:41]
-
State "DONE" from "TODO" [2020-02-06 Thu 21:41]
DONE tree loading
CLOSED: [2020-01-21 Tue 23:37]
-
State "DONE" from "TODO" [2020-01-21 Tue 23:37]
DONE tree stage animation
CLOSED: [2020-01-21 Tue 23:37]
-
State "DONE" from "TODO" [2020-01-21 Tue 23:37]
DONE tree growth
CLOSED: [2020-01-22 Wed 00:08]
-
State "DONE" from "TODO" [2020-01-22 Wed 00:08]
DONE trees dropping fruit
CLOSED: [2020-01-22 Wed 00:08]
-
State "DONE" from "TODO" [2020-01-22 Wed 00:08]
DONE
boosting [2/2]
CLOSED: [2020-01-23 Thu 07:59]
-
State "DONE" from "REVIEW" [2020-01-23 Thu 07:59]
-
State "REVIEW" from "TODO" [2020-01-22 Wed 11:50]
basic boosting mechanics functionalDONE boosting drains energy
CLOSED: [2020-01-21 Tue 21:48]
-
State "DONE" from "TODO" [2020-01-21 Tue 21:48]
DONE boost time delay
CLOSED: [2020-01-22 Wed 11:50]
-
State "DONE" from "TODO" [2020-01-22 Wed 11:50]
DONE lanes
CLOSED: [2020-01-23 Thu 07:59]
-
State "DONE" from "REVIEW" [2020-01-23 Thu 07:59]
-
State "REVIEW" from "TODO" [2020-01-22 Wed 11:50]
basic lanes are fucntioningDONE analyze lanes in map and create triggers
CLOSED: [2020-01-22 Wed 11:50]
-
State "DONE" from "TODO" [2020-01-22 Wed 11:50]
DONE
capsules [6/6]
CLOSED: [2020-01-22 Wed 11:50]
-
State "DONE" from "REVIEW" [2020-01-22 Wed 11:50]
-
State "REVIEW" from "TODO" [2020-01-22 Wed 11:49]
add working capsulesDONE capsule creation
CLOSED: [2020-01-22 Wed 00:20]
-
State "DONE" from "TODO" [2020-01-22 Wed 00:20]
DONE capsule transfer
CLOSED: [2020-01-22 Wed 00:20]
-
State "DONE" from "TODO" [2020-01-22 Wed 00:20]
DONE capsules as fruit
CLOSED: [2020-01-22 Wed 00:20]
-
State "DONE" from "TODO" [2020-01-22 Wed 00:20]
DONE capsule gravity
CLOSED: [2020-01-22 Wed 00:38]
-
State "DONE" from "TODO" [2020-01-22 Wed 00:38]
DONE capsule acquire animation
CLOSED: [2020-01-22 Wed 00:45]
-
State "DONE" from "TODO" [2020-01-22 Wed 00:45]
DONE capsule despawn
CLOSED: [2020-01-23 Thu 08:21]
-
State "DONE" from "TODO" [2020-01-23 Thu 08:21]
DONE world state persistence
CLOSED: [2020-02-06 Thu 21:41]
-
State "DONE" from "NEXT" [2020-02-06 Thu 21:41]
NEXT make kinematics computed based on functions of mass
TODO
bugs [4/4]
DONE pull Nez
CLOSED: [2020-01-13 Mon 00:09]
-
State "DONE" from "NEXT" [2020-01-13 Mon 00:09]
DONE reintroduce Nez as submodule
CLOSED: [2020-01-13 Mon 00:08]
-
State "DONE" from "NEXT" [2020-01-13 Mon 00:08]
DONE collision glitching
CLOSED: [2020-01-14 Tue 11:42]
-
State "DONE" from "REVIEW" [2020-01-14 Tue 11:42]
-
State "REVIEW" from "TODO" [2020-01-14 Tue 11:42]
solved by simply increasing the borderREVIEW look at
KinematicBody
in Glint and atMover
and see if they can be used to help correct. -
State "REVIEW" from "TODO" [2020-01-14 Tue 11:41]
looked at it, might need to port oBLOCKED try to replicate pos collision MinTranslation glitching
-
State "BLOCKED" from "TODO" [2020-01-14 Tue 11:42]
CNR
DONE
in MapLoader::adjustColliders
center tile
CLOSED: [2020-03-03 Tue 00:35]
-
State "DONE" from "REVIEW" [2020-03-03 Tue 00:35]
-
State "REVIEW" from "TODO" [2020-01-21 Tue 22:15]
check left tile if center tile is null
check more than just the center tile (see note)
TODO
refactor [1/1]
CANCELED refactor collision in WingBody
to use a System
CLOSED: [2020-01-23 Thu 11:04]
-
State "CANCELED" from "TODO" [2020-01-23 Thu 11:04]
unncessary
TODO
map [1/2]
DONE representation of map as room graph
CLOSED: [2020-03-03 Tue 00:35]
-
State "DONE" from "TODO" [2020-03-03 Tue 00:35]
-
State "DONE" from "TODO" [2020-01-23 Thu 11:04]
DONE convert from tile grid to rooms
CLOSED: [2020-01-23 Thu 11:04]
-
State "DONE" from "TODO" [2020-01-23 Thu 1
TODO interpret rooms and doors as graph
TODO
map generation [2/3]
DONE full graph representation mapping
CLOSED: [2020-03-03 Tue 00:35]
-
State "DONE" from "TODO" [2020-03-03 Tue 00:35]
DONE map graph generation
CLOSED: [2020-03-03 Tue 00:35]
-
State "DONE" from "TODO" [2020-03-03 Tue 00:35]
TODO convert from graph to rough tile grid
TODO
design [2/3]
DONE weapon/shoot design
CLOSED: [2020-03-03 Tue 00:35]
-
State "DONE" from "TODO" [2020-03-03 Tue 00:35]
TODO tether design
DONE ai design
CLOSED: [2020-01-23 Thu 11:04]
-
State "DONE" from "REVIEW" [2020-01-23 Thu 11:04]
-
State "REVIEW" from "TODO" [2020-01-14 Tue 13:24]
written section in plan
TODO
assets [2/2]
CANCELED phase switch assets
CLOSED: [2020-01-23 Thu 11:03]
-
State "CANCELED" from "TODO" [2020-01-23 Thu 11:03]
DONE game icon
CLOSED: [2020-01-23 Thu 11:04]
-
State "DONE" from "TODO" [2020-01-23 Thu 11:04]
TODO
platform [4/4]
DONE resolution
CLOSED: [2020-01-22 Wed 18:37]
-
State "DONE" from "TODO" [2020-01-22 Wed 18:37]
DONE custom resolution
CLOSED: [2020-01-22 Wed 18:37]
-
State "DONE" from "TODO" [2020-01-22 Wed 18:37]
DONE custom scaling mode
CLOSED: [2020-01-22 Wed 18:37]
-
State "DONE" from "TODO" [2020-01-22 Wed 18:37]
DONE binary distribution
CLOSED: [2020-01-22 Wed 18:37]
-
State "DONE" from "TODO" [2020-01-22 Wed 18:37]
DONE native build doesn't include bin
CLOSED: [2020-01-22 Wed 18:37]
-
State "DONE" from "TODO" [2020-01-22 Wed 18:37]
DONE logging
CLOSED: [2020-01-23 Thu 11:03]
-
State "DONE" from "TODO" [2020-01-23 Thu 11:03]
DONE logging configurable verbosity
CLOSED: [2020-01-22 Wed 20:31]
-
State "DONE" from "TODO" [2020-01-22 Wed 20:31]
DONE more logging
CLOSED: [2020-01-23 Thu 07:59]
-
State "DONE" from "TODO" [2020-01-23 Thu 07:59]
DONE logging sinks
CLOSED: [2020-01-23 Thu 11:03]
-
State "DONE" from "NEXT" [2020-01-23 Thu 11:03]
DONE only trace log AI with inspectors
CLOSED: [2020-01-23 Thu 08:03]
-
State "DONE" from "TODO" [2020-01-23 Thu 08:03]
DONE game exit
CLOSED: [2020-03-03 Tue 00:35]
-
State "DONE" from "TODO" [2020-03-03 Tue 00:35]