zeroed-some/dougk / a3649c6

Browse files

scale things somewhat

Authored by espadonne
SHA
a3649c6c268dba8dae258562e80841c9bc819ae4
Parents
f9ef9de
Tree
7125fe6

1 changed file

StatusFile+-
M src/renderers/three/pond.js 72 72
src/renderers/three/pond.jsmodified
@@ -155,10 +155,9 @@ export function createPond(scene, gradientMap) {
155155
 
156156
   // ============================================
157157
   // DISTANT SCENERY - Mountains and Village
158
+  // Scaled small like game board pieces!
158159
   // ============================================
159160
 
160
-  const sceneDistance = 12 // How far away the scenery is
161
-
162161
   // Mountain range materials
163162
   const mountainMaterial = new THREE.MeshToonMaterial({
164163
     color: 0x6b8e7a, // Muted green-grey
@@ -173,56 +172,48 @@ export function createPond(scene, gradientMap) {
173172
     gradientMap: gradientMap
174173
   })
175174
 
176
-  // Create mountain range (back-left)
175
+  // Create mountain range (back-left corner)
177176
   const mountains = new THREE.Group()
178177
 
179178
   // Large back mountain
180
-  const bigMountainGeom = new THREE.ConeGeometry(3, 5, 6)
179
+  const bigMountainGeom = new THREE.ConeGeometry(0.8, 1.4, 6)
181180
   const bigMountain = new THREE.Mesh(bigMountainGeom, mountainMaterial)
182
-  bigMountain.position.set(-sceneDistance, 2, -sceneDistance * 0.8)
183
-  bigMountain.rotation.y = 0.3
181
+  bigMountain.position.set(-5.5, 0.7, -5)
184182
   mountains.add(bigMountain)
185183
 
186184
   // Snow cap for big mountain
187
-  const snowCapGeom = new THREE.ConeGeometry(1.2, 1.5, 6)
185
+  const snowCapGeom = new THREE.ConeGeometry(0.35, 0.45, 6)
188186
   const snowCap = new THREE.Mesh(snowCapGeom, mountainSnowMaterial)
189
-  snowCap.position.set(-sceneDistance, 4.2, -sceneDistance * 0.8)
190
-  snowCap.rotation.y = 0.3
187
+  snowCap.position.set(-5.5, 1.35, -5)
191188
   mountains.add(snowCap)
192189
 
193190
   // Medium mountain
194
-  const medMountainGeom = new THREE.ConeGeometry(2.2, 3.5, 5)
191
+  const medMountainGeom = new THREE.ConeGeometry(0.6, 1.0, 5)
195192
   const medMountain = new THREE.Mesh(medMountainGeom, mountainDarkMaterial)
196
-  medMountain.position.set(-sceneDistance * 0.7, 1.5, -sceneDistance)
197
-  medMountain.rotation.y = -0.2
193
+  medMountain.position.set(-4.5, 0.5, -5.8)
198194
   mountains.add(medMountain)
199195
 
200196
   // Small mountain
201
-  const smallMountainGeom = new THREE.ConeGeometry(1.8, 2.8, 5)
197
+  const smallMountainGeom = new THREE.ConeGeometry(0.5, 0.8, 5)
202198
   const smallMountain = new THREE.Mesh(smallMountainGeom, mountainMaterial)
203
-  smallMountain.position.set(-sceneDistance * 1.1, 1.2, -sceneDistance * 0.5)
199
+  smallMountain.position.set(-6.2, 0.4, -4.2)
204200
   mountains.add(smallMountain)
205201
 
206
-  // Another range on the right side (further back)
207
-  const farMountainGeom = new THREE.ConeGeometry(2.5, 4, 5)
208
-  const farMountain = new THREE.Mesh(farMountainGeom, mountainDarkMaterial)
209
-  farMountain.position.set(sceneDistance * 0.5, 1.8, -sceneDistance * 1.2)
210
-  mountains.add(farMountain)
211
-
212
-  const farSnowGeom = new THREE.ConeGeometry(0.9, 1.2, 5)
213
-  const farSnow = new THREE.Mesh(farSnowGeom, mountainSnowMaterial)
214
-  farSnow.position.set(sceneDistance * 0.5, 3.6, -sceneDistance * 1.2)
215
-  mountains.add(farSnow)
202
+  // Another tiny peak
203
+  const tinyMountainGeom = new THREE.ConeGeometry(0.4, 0.6, 5)
204
+  const tinyMountain = new THREE.Mesh(tinyMountainGeom, mountainDarkMaterial)
205
+  tinyMountain.position.set(-5, 0.3, -4)
206
+  mountains.add(tinyMountain)
216207
 
217208
   group.add(mountains)
218209
 
219210
   // ============================================
220
-  // VILLAGE
211
+  // VILLAGE - tiny game-board scale!
221212
   // ============================================
222213
 
223214
   const village = new THREE.Group()
224
-  const villageX = sceneDistance * 0.8
225
-  const villageZ = -sceneDistance * 0.4
215
+  const villageX = 5.5
216
+  const villageZ = -3
226217
 
227218
   // House materials
228219
   const houseMaterial = new THREE.MeshToonMaterial({
@@ -242,27 +233,27 @@ export function createPond(scene, gradientMap) {
242233
     gradientMap: gradientMap
243234
   })
244235
 
245
-  // Helper to create a simple house
236
+  // Helper to create a tiny house
246237
   function createHouse(x, z, scale, roofMat) {
247238
     const houseGroup = new THREE.Group()
248239
 
249240
     // House body
250
-    const bodyGeom = new THREE.BoxGeometry(0.8, 0.6, 0.6)
241
+    const bodyGeom = new THREE.BoxGeometry(0.3, 0.25, 0.25)
251242
     const body = new THREE.Mesh(bodyGeom, houseMaterial)
252
-    body.position.y = 0.3
243
+    body.position.y = 0.125
253244
     houseGroup.add(body)
254245
 
255246
     // Roof
256
-    const roofGeom = new THREE.ConeGeometry(0.55, 0.5, 4)
247
+    const roofGeom = new THREE.ConeGeometry(0.22, 0.2, 4)
257248
     const roof = new THREE.Mesh(roofGeom, roofMat)
258
-    roof.position.y = 0.75
249
+    roof.position.y = 0.32
259250
     roof.rotation.y = Math.PI / 4
260251
     houseGroup.add(roof)
261252
 
262
-    // Window
263
-    const windowGeom = new THREE.PlaneGeometry(0.15, 0.15)
253
+    // Window (tiny dot)
254
+    const windowGeom = new THREE.PlaneGeometry(0.06, 0.06)
264255
     const windowMesh = new THREE.Mesh(windowGeom, windowMaterial)
265
-    windowMesh.position.set(0.401, 0.35, 0)
256
+    windowMesh.position.set(0.151, 0.14, 0)
266257
     houseGroup.add(windowMesh)
267258
 
268259
     houseGroup.position.set(x, 0, z)
@@ -272,65 +263,68 @@ export function createPond(scene, gradientMap) {
272263
     return houseGroup
273264
   }
274265
 
275
-  // Create village houses
276
-  const house1 = createHouse(villageX, villageZ, 1.2, roofMaterial)
266
+  // Create village houses - clustered together
267
+  const house1 = createHouse(villageX, villageZ, 1.0, roofMaterial)
277268
   village.add(house1)
278269
 
279
-  const house2 = createHouse(villageX + 1.5, villageZ + 0.8, 0.9, roofRedMaterial)
270
+  const house2 = createHouse(villageX + 0.5, villageZ + 0.3, 0.8, roofRedMaterial)
280271
   village.add(house2)
281272
 
282
-  const house3 = createHouse(villageX + 0.5, villageZ + 1.5, 1.0, roofMaterial)
273
+  const house3 = createHouse(villageX + 0.2, villageZ + 0.6, 0.9, roofMaterial)
283274
   village.add(house3)
284275
 
285
-  const house4 = createHouse(villageX - 0.8, villageZ + 0.6, 0.8, roofRedMaterial)
276
+  const house4 = createHouse(villageX - 0.35, villageZ + 0.25, 0.7, roofRedMaterial)
286277
   village.add(house4)
287278
 
288279
   // Chimney on main house
289
-  const chimneyGeom = new THREE.BoxGeometry(0.15, 0.4, 0.15)
280
+  const chimneyGeom = new THREE.BoxGeometry(0.06, 0.15, 0.06)
290281
   const chimney = new THREE.Mesh(chimneyGeom, new THREE.MeshToonMaterial({
291282
     color: 0x8b7355,
292283
     gradientMap: gradientMap
293284
   }))
294
-  chimney.position.set(villageX + 0.2, 1.1, villageZ + 0.1)
285
+  chimney.position.set(villageX + 0.08, 0.45, villageZ + 0.04)
295286
   village.add(chimney)
296287
 
297
-  // Smoke particles
288
+  // Smoke particles (tiny puffs)
298289
   const smokeParticles = []
299290
   const smokeMaterial = new THREE.MeshBasicMaterial({
300
-    color: 0xcccccc,
291
+    color: 0xdddddd,
301292
     transparent: true,
302
-    opacity: 0.6
293
+    opacity: 0.5
303294
   })
304295
 
305296
   function createSmokeParticle() {
306
-    const size = 0.1 + Math.random() * 0.1
307
-    const smokeGeom = new THREE.SphereGeometry(size, 6, 4)
297
+    const size = 0.03 + Math.random() * 0.03
298
+    const smokeGeom = new THREE.SphereGeometry(size, 5, 4)
308299
     const smoke = new THREE.Mesh(smokeGeom, smokeMaterial.clone())
309300
     smoke.position.set(
310
-      villageX + 0.2 + (Math.random() - 0.5) * 0.1,
311
-      1.3,
312
-      villageZ + 0.1 + (Math.random() - 0.5) * 0.1
301
+      villageX + 0.08 + (Math.random() - 0.5) * 0.03,
302
+      0.52,
303
+      villageZ + 0.04 + (Math.random() - 0.5) * 0.03
313304
     )
314305
     village.add(smoke)
315306
     smokeParticles.push({
316307
       mesh: smoke,
317308
       age: 0,
318
-      maxAge: 3 + Math.random() * 2,
319
-      driftX: (Math.random() - 0.5) * 0.3,
320
-      driftZ: (Math.random() - 0.5) * 0.3,
321
-      riseSpeed: 0.3 + Math.random() * 0.2
309
+      maxAge: 2.5 + Math.random() * 1.5,
310
+      driftX: (Math.random() - 0.5) * 0.08,
311
+      driftZ: (Math.random() - 0.5) * 0.08,
312
+      riseSpeed: 0.12 + Math.random() * 0.08
322313
     })
323314
   }
324315
 
325316
   // Initial smoke
326
-  for (let i = 0; i < 5; i++) {
317
+  for (let i = 0; i < 4; i++) {
327318
     createSmokeParticle()
328
-    smokeParticles[i].age = Math.random() * 2 // Stagger initial ages
319
+    smokeParticles[i].age = Math.random() * 1.5
329320
   }
330321
 
331322
   group.add(village)
332323
 
333
-  // Small trees near village
324
+  // ============================================
325
+  // TREES - scattered around the edges
326
+  // ============================================
327
+
334328
   const treeMaterial = new THREE.MeshToonMaterial({
335329
     color: 0x2d5a3d,
336330
     gradientMap: gradientMap
@@ -340,32 +334,38 @@ export function createPond(scene, gradientMap) {
340334
     gradientMap: gradientMap
341335
   })
342336
 
343
-  for (let i = 0; i < 6; i++) {
337
+  // Tree positions - scattered around the scene edges
338
+  const treePositions = [
339
+    { x: 5.2, z: -4.5, scale: 0.35 },
340
+    { x: 6.2, z: -2.5, scale: 0.4 },
341
+    { x: 4.8, z: -1.8, scale: 0.3 },
342
+    { x: -5.8, z: -3.5, scale: 0.35 },
343
+    { x: -4.8, z: -2.8, scale: 0.28 },
344
+    { x: -6, z: 2, scale: 0.32 },
345
+    { x: 5.5, z: 3, scale: 0.38 },
346
+    { x: -4, z: 4.5, scale: 0.3 },
347
+  ]
348
+
349
+  for (const pos of treePositions) {
344350
     const treeGroup = new THREE.Group()
345351
 
346352
     // Trunk
347
-    const trunkGeom = new THREE.CylinderGeometry(0.08, 0.12, 0.5, 6)
353
+    const trunkGeom = new THREE.CylinderGeometry(0.04, 0.06, 0.25, 5)
348354
     const trunk = new THREE.Mesh(trunkGeom, trunkMaterial)
349
-    trunk.position.y = 0.25
355
+    trunk.position.y = 0.125
350356
     treeGroup.add(trunk)
351357
 
352358
     // Foliage (stacked cones)
353
-    const foliage1 = new THREE.Mesh(new THREE.ConeGeometry(0.4, 0.6, 6), treeMaterial)
354
-    foliage1.position.y = 0.7
359
+    const foliage1 = new THREE.Mesh(new THREE.ConeGeometry(0.2, 0.3, 5), treeMaterial)
360
+    foliage1.position.y = 0.35
355361
     treeGroup.add(foliage1)
356362
 
357
-    const foliage2 = new THREE.Mesh(new THREE.ConeGeometry(0.3, 0.5, 6), treeMaterial)
358
-    foliage2.position.y = 1.1
363
+    const foliage2 = new THREE.Mesh(new THREE.ConeGeometry(0.15, 0.25, 5), treeMaterial)
364
+    foliage2.position.y = 0.55
359365
     treeGroup.add(foliage2)
360366
 
361
-    const angle = (i / 6) * Math.PI * 0.8 - 0.4
362
-    const dist = sceneDistance * 0.6 + Math.random() * 2
363
-    treeGroup.position.set(
364
-      Math.cos(angle) * dist + villageX * 0.3,
365
-      0,
366
-      Math.sin(angle) * dist + villageZ * 0.3
367
-    )
368
-    treeGroup.scale.setScalar(0.6 + Math.random() * 0.4)
367
+    treeGroup.position.set(pos.x, 0, pos.z)
368
+    treeGroup.scale.setScalar(pos.scale)
369369
 
370370
     group.add(treeGroup)
371371
   }