on master help sign in
Create turf.md (#2127)

@jalehman @johnhyde See grants listing for Turf. Let me know if we need any other changes, otherwise we can move forward with posting and contract.

commitf443f54975cf2d817615eae62b358122668ec214 authoralangalis <116312511+alangalis@users.noreply.github.com> dateFri 19 May 2023, 12:33 (3 years ago) parenta9b82ff
1 file changed+205
content/grants/2023/turf.md+205
content/grants/2023/turf.mdnew file+205
@@ -0,0 +1,205 @@
1++++
2+
3+title = "Turf"
4+date = "2023-05-17"
5+
6+[taxonomies]
7+grant_type = ["Proposal"]
8+grant_category = ["App Dev"]
9+
10+[extra]
11+image = ""
12+description = "Build a thriving and customizable virtual world on Urbit"
13+reward = "9 Stars"
14+assignee = ["~midlev-mindyr"]
15+champion = ["~wolref-podlex"]
16+grant_id = "P0265"
17+completed = false
18+canceled = false
19+
20++++
21+
22+## Summary
23+
24+Turf is like if [gather.town](http://gather.town/) were fully customizable, interconnected, and lived on Urbit. However, to start out with, it will have a lot less content and features. Turf will be good for Urbit for the following reasons:
25+
26+- it will be fun / it will give people another reason to use Urbit day-to-day
27+- it will enable spontaneous and casual social interactions
28+- it will be a space that people can mold and construct freely, which means it can naturally develop into a vibrant, complex virtual world
29+- it will cause people to crave app interoperability like never before, which will mean I can later build a plugins system (Monkey) and actually convince people to use it
30+
31+Each turf is made up of pixelated tiles which can be customized with a variety of items, and people can run around in them and chat with voice and text. Everyone can make their own turfs, and (with consent) make portals to other turfs. At the end of the final milestone, we hope to have a thriving, organically self-organizing web of connected turfs, where people know how to get where they’re going and have lots of new things to discover all around them.
32+
33+## Why me
34+
35+I have some amateur gamedev experience, some hoon experience, plenty of frontend experience (see Astrolabe). I have been thinking about something like Turf for a while, but I’m actually proposing it now because it seems like a necessary step to generate interest in a plugin system I want to build (plus it sounds fun!). So, I want to be the one to build Turf so that I can use it to demonstrate and promote Monkey (the plugin system).
36+
37+## User Stories
38+
39+After each user story is the short code for the milestone which will implement it:
40+
41+SP - Single-Player MVP
42+
43+MP - Multiplayer
44+
45+HT - Hometowns
46+
47+AI - Advanced Items
48+
49+SS - Super Speed with WebRTC
50+
51+TP - Advanced Turfs & Permissions
52+
53+?? - Some Future Grant??
54+
55+**My Avatar**
56+
57+- I can customize my avatar’s appearance somewhat (SP)
58+
59+**My Turf**
60+
61+- I can have a turf (SP)
62+- I can have multiple turfs (TP)
63+- I can resize my turf(s) (SP)
64+- I can customize my turf’s appearance by placing items (floor, walls, furniture, decor, objects, portals) (SP)
65+- I can move around in a turf (SP)
66+- I can explicitly specify who can and can’t enter my turf (SP)
67+- I can specify advanced permissions for my turf(s) (TP)
68+- I can grant write access to part of a turf (even if I'm not a star) (TP)
69+- I can transfer ownership of my turf to someone else (TP)
70+
71+**Items**
72+
73+- I can create my own items (wearable, wall, floor, furniture, etc) (AI)
74+- I can add items I find in the wild to my library (AI)
75+- I can make my custom items do cool custom things (??)
76+
77+**Multiplayer**
78+
79+- I can see other people moving around (MP)
80+- I can see other people moving around in realtime (SS)
81+- I can chat with other people over text (MP)
82+- I can chat with other people over voice (SS)
83+- I can create portals to other turfs (MP)
84+- I can walk through portals to travel between turfs (MP)
85+- I can summon people when I’m in a turf I admin (MP)
86+- I can teleport home to my turf from anywhere (MP)
87+- I can place my turf in a hometown (HT)
88+- As a star, I can grant plots of turf to planets for embedding (HT)
89+
90+**Misc**
91+
92+- I can integrate other apps with my turf (using %monkey) (??)
93+
94+# Milestones
95+
96+I’m asking for 9 stars for 6 milestones, which I plan to complete in 46 weeks, working part-time with a couple built-in vacations. These milestones may be accelerated if I’m able to spend fewer days on my day job. The Due Dates assume a contract is signed before May 20th, 2023. Milestones 4-6 may be reordered based on user feedback.
97+
98+## Milestone #1 - Single-Player MVP
99+
100+Reward: 1 star
101+
102+Time: 6 weeks (plus a bit of time I’ve already put in)
103+
104+Due Date: June 25th, 2023
105+
106+- You have a little pixel-art character which you can customize with basic wearable items (facial features, skin color, hats, hair, shirts, pants)
107+- You have a turf associated with your ship, composed of tiles
108+ - Each tile has a square image 32x32px image
109+ - You can place a limited set of basic items (e.g. walls, floor, grass, tables, chairs)
110+ - You can resize your turf
111+- You can move around on the grid
112+
113+## Milestone #2 - Multiplayer
114+
115+Reward: 2 stars
116+
117+Time: 9 weeks (I’d say 6, but I will have less time to work on Turf during this period)
118+
119+Due Date: August 27th, 2023
120+
121+- Through mutual agreement, two players can link their turfs with a 2-way portal. Players can visit each other by traveling through those portals.
122+- When in a turf with other players, you can see them move around (with some ames lag)
123+- You can send ephemeral, turf-scoped text chats which appear in a bubble overhead and in a chatbox sidebar
124+- Very basic permissions: I can choose to blacklist or whitelist @ps to gate visitors to my turf (prevent unwanted neighbors of neighbors)
125+- You can summon people to your turf
126+- You can teleport yourself home from anywhere
127+
128+## Milestone #3 - Hometowns
129+
130+Reward: 1 star
131+
132+Time: 5 weeks
133+
134+Due Date: October 1st, 2023
135+
136+- When I walk off my turf, I appear in my hometown, which is a star’s turf
137+- I can choose what star I want as my hometown and place my house in it, although some may require manual approval
138+- My turf/house has some little house avatar in the hometown which is customizable in some way
139+- Basic permissions for allowing people to claim (or request to claim) write access for a plot of land
140+
141+## Milestone #4 - Advanced Items
142+
143+Reward: 2 stars
144+
145+Time: 9 weeks
146+
147+Due Date: December 3rd, 2023
148+
149+- You can create custom items w/ custom art (tile, furniture, decor, wearable)
150+ - Enable png import
151+ - In-app pixel art canvas
152+- Items can have basic interactions like:
153+ - portal: teleport the activator to a particular turf (with or without coordinates)
154+ - sign: display some text, markdown, or html in a popup
155+- Items can have a foreground and/or a background image
156+- Items can have simple animations
157+- Items can be oversized (e.g. a tree which is taller than 1 tile)
158+ - Items turn partially transparent when a person walks behind them
159+- Sharing items: when you see a cool item in someone else’s turf, you can add it to your personal item library
160+
161+## Milestone #5 - Advanced Turfs & Permissions
162+
163+Reward: 1 star
164+
165+Time: 10 weeks (would be 7 or 8, but for Christmas-time)
166+
167+Due Date: Feb 11th, 2024
168+
169+- You can create multiple turfs (and link them together, of course)
170+- You can transfer your turf to someone else
171+- You can ban all comets and/or moons from your turf
172+- You can grant people/lists of people permission to do the following wrt your turf
173+ - Join, move around, and chat (whole turf)
174+ - Redecorate tiles, add/remove items, create custom items (for sections or whole turf)
175+ - Claim sections of turf (with limits, of course)
176+ - Full admin (for sections or whole turf)
177+- Permission lists
178+ - You can assemble lists of people to more easily whitelist or blacklist the same people over and over. E.g. if you want to make the same 5 people and some of your moons admins in multiple of your turfs
179+ - You can sync a list to a group so that only members of the group have access to the land
180+ - There’s a “pals” list
181+
182+## Milestone #6 - Super Speed with WebRTC
183+
184+Reward: 2 stars
185+
186+Time: 7 weeks (hard to estimate, because I’ve never done anything with WebRTC)
187+
188+Due Date: March 31st, 2024
189+
190+- Use WebRTC for low latency movement and chat
191+- Use WebRTC for proximity voice chat
192+- Enable private voice chat areas
193+
194+## Some other time
195+
196+- Use a plugin system (Monkey) to enable other apps to embed content, e.g. shared whiteboards; %radio streams; interacting with an item automatically requests a gora; link the text chat to a groups channel
197+- Item animations? (or include in Advanced Items milestone)
198+- Item inventories (allow some items to be picked up, carried, and set down elsewhere by visitors with no write access)
199+- Custom items with custom code so you can turn your turf into a full game or an economy or whatever
200+- Decentralized turfs
201+ - When you want to visit a galaxy turf that’s not turf-enabled, you instead ask one of its turf-enabled stars (if any) for its opinion on the layout of that galaxy-turf
202+ - Stars can coordinate to maintain agreement about what the fictional galaxy-turf looks like
203+ - When in a galaxy-turf, you can interact with any other people who have the same idea of what it looks like, even if they got it from a different star
204+ - The same can be done between galaxies for the notional “root turf”
205+ - The same can perhaps be done between any group of ships for some arbitrary unrooted turf