Fraser commited on
Commit
22c2bfb
·
1 Parent(s): 8051b6f
Files changed (1) hide show
  1. README.md +0 -98
README.md CHANGED
@@ -17,104 +17,6 @@ Monster collection & battle game leveraging Huggingface ZeroGPU spaces!
17
 
18
  [Play Here!](https://fraser-piclets.static.hf.space/)
19
 
20
- ## Old Battle System Ideas
21
-
22
- ## How to handle combat?
23
- I want a combat system that leverages the diversity of monsters and creativity of LLMs.
24
- I'd rather the game ran "offline" so without the need for non borwser-based computation.
25
-
26
- I'd also like the combat to feel interesting with a diversity of Piclets being required.
27
- Now for most players they won't actually be able to catch that many Piclets (1 per day).
28
-
29
- By interesting I mean the unique properties of the monster should shine through despite them not being explicitly coded for.
30
- The simplest version of this is having "weak against, robust against" lists and using a semantic encoder matches to define effectiveness.
31
-
32
- I previously liked the idea of monsters having a "status" that would then effect combat, e.g. burning, bleading, sleeping, etc.
33
- This ofc also matches Pokemon though it does seem a little tricky to code and connect all of this.
34
-
35
- Should also note that I can have a TON of data within my HF space so coding up a ton of status effect options is fine!
36
-
37
- #### Combat Ideas
38
-
39
- **Semantic top-trumps**
40
-
41
- You attack with a given trait e.g. "flight" they then pick a counter monster to compare on that axis.
42
- The monster with the better semantic score wins.
43
-
44
- A variation on this is each attack description vs the monsters description.
45
-
46
- TBH 1v1 battles with just 1 move doesn't feel tactical enough.
47
-
48
- **True Pokemon**
49
-
50
- Just define a full running pokemon style game with the Pokemon suite of moves.
51
- Could even extend to include special abilities like being invulnerable to drain, can't be switched out, etc.
52
-
53
- This would mean abilities would be defined ahead of time and picked for the monster.
54
-
55
- Nice thing is that this would balance the same way and have a high complexity ceiling.
56
- The bad thing is that this could actually be extremely difficult to implement, likely best done by just emulating the underlying game with modified sprites & names for the monster.
57
-
58
- **LLM powered Pokemon**
59
-
60
- Leverage free LLM spaces (maybe RWKV?) to have the LLM generate the outcomes of the different action.
61
- Include updating free-form status descriptions.
62
-
63
- This should give a consistent range of effects without requiring complex code.
64
-
65
- The issue here is with accessing the LLM responses.
66
- This would have to rely on non zero-GPU spaces to get the response rate required.
67
-
68
- **Semantic Pokemon**
69
-
70
- Define pokemon style moves with keywords defining strong against, weak against and action special cases.
71
-
72
- This is effectively doing what "LLM powered Pokemon" would do but offline.
73
-
74
- Different effects have different probabilities.
75
- Statuses are applied and semanticly matched into hard coded ones.
76
-
77
- e.g. "Dazed" is similar to "Confusion" so gets the "Confusion" effect
78
-
79
- #### Combat Choice
80
-
81
- I think Semantic Pokemon is the best choice as it gives great variety while being runnable offline.
82
-
83
- To put this in more detail...
84
- 1. monsters each have lists of keywords for "weak to" and "robust to" for effective/ineffective
85
- 2. each action has hard coded effects with special cases for certain monsters
86
- 3. monster actions are colored to indicate attack/buff/debuff/special
87
-
88
- When hard coding effects the action can apply descriptors to the enemy, these then interact with game-level effects and the monsters own effective/ineffective.
89
- Previously I did like the emoji setup as it was quick to communicate... but it often wasn't high level enough.
90
- I'm hopeful that high level descriptors + a semantic encoder will give more matches than previously.
91
-
92
- So the monster schema will have:
93
- ```json
94
- "robust against": {"type": "string", "description": "A brief description of things the monster is robust to"},
95
- "weak against": {"type": "string", "description": "A brief description of things the monster is weak to"},
96
- ```
97
-
98
- Then for the actions:
99
- ```json
100
- "attack": {
101
- "name": "...",
102
- "description": "...",
103
- "damage": "likert",
104
- "accuracy": "likert",
105
- "inflictStatus": "...",
106
- }
107
- ```
108
-
109
- ### Keyword based
110
-
111
- Another option is to just have claude create a really extensive keyword system to analyze action descriptions and make a series of classifiers based on that.
112
- I have had success with this before and its nice to think I then only have to handle the action descriptions.
113
- Then I could add back the old Piclet types to pair up with this.
114
- Plus then include an emoji for each action to give a cool animation effect!
115
-
116
- The bad thing here is that I am having to hand-code a battle system which I didn't really want to do.
117
-
118
  # Svelte + TS + Vite
119
 
120
  This template should help get you started developing with Svelte and TypeScript in Vite.
 
17
 
18
  [Play Here!](https://fraser-piclets.static.hf.space/)
19
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
20
  # Svelte + TS + Vite
21
 
22
  This template should help get you started developing with Svelte and TypeScript in Vite.