proceduralgeneration | Unsorted

Telegram-канал proceduralgeneration - procedural generation

99

Created by @r_channels

Subscribe to a channel

procedural generation

More procedural colour palette experimentation in the procgen side-project (C++/OpenGL/GLSL) - Struggling to settle on a palette

https://redd.it/1atudhj
@proceduralgeneration

Читать полностью…

procedural generation

Techniques for procedurally filling box with rooms? Procedurally generated castle?
https://redd.it/1ath9yl
@proceduralgeneration

Читать полностью…

procedural generation

_os2f.OpenSimplex2F_noise2_XBeforeY
)
"""OS2F OpenSimplex2F_noise2_XBeforeY"""
OpenSimplex2F_noise2_XBeforeY.argtypes = [
ctypes.POINTER(OpenSimplex2F_context),
ctypes.c_double,
ctypes.c_double,
]
OpenSimplex2F_noise2_XBeforeY.restype = ctypes.c_double

OpenSimplex2F_noise3_Classic: ctypes._NamedFuncPointer = (
_os2f.OpenSimplex2F_noise3_Classic
)
"""OS2F OpenSimplex2F_noise3_Classic"""
OpenSimplex2F_noise3_Classic.argtypes = [
ctypes.POINTER(OpenSimplex2F_context),
ctypes.c_double,
ctypes.c_double,
ctypes.c_double,
]
OpenSimplex2F_noise3_Classic.restype = ctypes.c_double

OpenSimplex2F_noise3_XYBeforeZ: ctypes._NamedFuncPointer = (
_os2f.OpenSimplex2F_noise3_XYBeforeZ
)
"""OS2F OpenSimplex2F_noise3_XYBeforeZ"""
OpenSimplex2F_noise3_XYBeforeZ.argtypes = [
ctypes.POINTER(OpenSimplex2F_context),
ctypes.c_double,
ctypes.c_double,
ctypes.c_double,
]
OpenSimplex2F_noise3_XYBeforeZ.restype = ctypes.c_double

OpenSimplex2F_noise3_XZBeforeY: ctypes._NamedFuncPointer = (
_os2f.OpenSimplex2F_noise3_XZBeforeY
)
"""OS2F OpenSimplex2F_noise3_XZBeforeY"""
OpenSimplex2F_noise3_XZBeforeY.argtypes = [
ctypes.POINTER(OpenSimplex2F_context),
ctypes.c_double,
ctypes.c_double,
ctypes.c_double,
]
OpenSimplex2F_noise3_XZBeforeY.restype = ctypes.c_double

OpenSimplex2F_noise4_Classic: ctypes._NamedFuncPointer = (
_os2f.OpenSimplex2F_noise4_Classic
)
"""OS2F OpenSimplex2F_noise4_Classic"""
OpenSimplex2F_noise4_Classic.argtypes = [
ctypes.POINTER(OpenSimplex2F_context),
ctypes.c_double,
ctypes.c_double,
ctypes.c_double,
ctypes.c_double,
]
OpenSimplex2F_noise3_Classic.restype = ctypes.c_double

OpenSimplex2F_noise4_XYBeforeZW: ctypes._NamedFuncPointer = (
_os2f.OpenSimplex2F_noise4_XYBeforeZW
)
"""OS2F OpenSimplex2F_noise4_XYBeforeZW"""
OpenSimplex2F_noise4_XYBeforeZW.argtypes = [
ctypes.POINTER(OpenSimplex2F_context),
ctypes.c_double,
ctypes.c_double,
ctypes.c_double,
ctypes.c_double,
]
OpenSimplex2F_noise4_XYBeforeZW.restype = ctypes.c_double

OpenSimplex2F_noise4_XZBeforeYW: ctypes._NamedFuncPointer = (
_os2f.OpenSimplex2F_noise4_XZBeforeYW
)
"""OS2F OpenSimplex2F_noise4_XZBeforeYW"""
OpenSimplex2F_noise4_XZBeforeYW.argtypes = [
ctypes.POINTER(OpenSimplex2F_context),
ctypes.c_double,
ctypes.c_double,
ctypes.c_double,
ctypes.c_double,
]
OpenSimplex2F_noise4_XZBeforeYW.restype = ctypes.c_double

OpenSimplex2F_noise4_XYZBeforeW: ctypes._NamedFuncPointer = (
_os2f.OpenSimplex2F_noise4_XYZBeforeW
)
"""OS2F OpenSimplex2F_noise4_XYZBeforeW"""
OpenSimplex2F_noise4_XYZBeforeW.argtypes = [
ctypes.POINTER(OpenSimplex2F_context),
ctypes.c_double,
ctypes.c_double,
ctypes.c_double,
ctypes.c_double,
]
OpenSimplex2F_noise4_XYZBeforeW.restype = ctypes.c_double
```

https://redd.it/1art4xs
@proceduralgeneration

Читать полностью…

procedural generation

My first game dev project, Star Citizen Like Planet Tech (procedural planet creating toolkit)

https://redd.it/1arth4u
@proceduralgeneration

Читать полностью…

procedural generation

Procedurally Generated Worlds with ASCII Art in CultGame
https://www.youtube.com/watch?v=lmK2DL4LsqQ

https://redd.it/1arnjvo
@proceduralgeneration

Читать полностью…

procedural generation

[WIP] Method for infinite terrain height maps with erosion (no simulation, GAN, etc)

https://redd.it/1aqyfwf
@proceduralgeneration

Читать полностью…

procedural generation

For my first game, first shot at procedural generation, beyond excited so far.
https://redd.it/1aqtjp8
@proceduralgeneration

Читать полностью…

procedural generation

randvoll... - cubes in a frustum

https://redd.it/1ap4uj9
@proceduralgeneration

Читать полностью…

procedural generation

A demo showing off my world
https://redd.it/1ap2dxd
@proceduralgeneration

Читать полностью…

procedural generation

My friend spent months making this video essay on the history of procedural games and what makes some of them amazing… and others really bland.
https://youtu.be/yL1hwWPsKoM?si=6yq-tCi-qV-gLGYY

https://redd.it/1aoha99
@proceduralgeneration

Читать полностью…

procedural generation

My friend spent literal months making this video essay on "Why Procedural Games are Bland" and it's honestly fascinating
https://youtu.be/yL1hwWPsKoM?si=6yq-tCi-qV-gLGYY

https://redd.it/1ao8j3s
@proceduralgeneration

Читать полностью…

procedural generation

Procedural generation of place names with pronunciations using Malcov chain. Do the results look natural?

https://redd.it/1ancu7f
@proceduralgeneration

Читать полностью…

procedural generation

ruin renders

https://redd.it/1amlndv
@proceduralgeneration

Читать полностью…

procedural generation

Spent a bit more time on my Outrun track generator, no textures or actual geometry yet.

https://redd.it/1amehwr
@proceduralgeneration

Читать полностью…

procedural generation

Dungeon layout randomizer I made a long time before I found out about this sub - never used

https://redd.it/1am76s9
@proceduralgeneration

Читать полностью…

procedural generation

Annotated source code for the classic Archimedes game Lander by David Braben. Including an explanation of the terrain generator
https://lander.bbcelite.com/

https://redd.it/1attxfz
@proceduralgeneration

Читать полностью…

procedural generation

Advice on Procedural Generation Methods

I've been tinkering around with procedural generation for my game for the last few months on and off in my free time. My basic goal was to have a map of n islands separated by sea. Currently, I've got a fairly trivial setup:

1. Generate a heightmap using simplex noise.
2. Apply a shaping function (square bump) to the heightmap to give the shape of an island in a given area.
3. Set the cells based on their resulting altitudes.
4. Repeat this process in different areas of the map.

The issues I'm running into involve improving the generation with more advanced features, some of which are as follows:

Biomes (and biome blending) - with my current setup I'm not sure how to best achieve this. I can add in another simplex map but applying that (even with low octaves) may look somewhat unnatural when spread across the whole world (cutting through different islands) etc.
Feature areas (related to biomes) - How can I identify (and even place) things like lakes, rivers, and areas with heightened difficulty? Anything that may have distinct features/properties (different fish types in lakes/rivers, harder enemies in certain areas, etc.)

If anyone has any tips on how I can improve upon my current approach, or if I should switch over to something like Voronoi or a different combination of algorithms, I would appreciate any help from those who are more experienced than me in this space. Thank in advance.

​

https://redd.it/1at27rp
@proceduralgeneration

Читать полностью…

procedural generation

I made a Python wrapper around OpenSimplex2F using ctypes

```python
# -*- coding: utf-8 -*-
"""Python OpenSimplex2 wrapper"""
from __future__ import annotations

import ctypes
import os.path
from typing import TYPE_CHECKING, TypeAlias

__all__: list[str] = [
"Grad2",
"Grad3",
"Grad4",
"LatticePoint2D",
"LatticePoint3D",
"LatticePoint4D",
"OpenSimplex2F_context",
"OpenSimplex2F_shutdown",
"OpenSimplex2F_free",
"OpenSimplex2F",
"OpenSimplex2F_noise2",
"OpenSimplex2F_noise2_XBeforeY",
"OpenSimplex2F_noise3_Classic",
"OpenSimplex2F_noise3_XYBeforeZ",
"OpenSimplex2F_noise3_XZBeforeY",
"OpenSimplex2F_noise4_Classic",
"OpenSimplex2F_noise4_XYBeforeZW",
"OpenSimplex2F_noise4_XZBeforeYW",
"OpenSimplex2F_noise4_XYZBeforeW",
]

if TYPE_CHECKING:
Fields: TypeAlias = list[
tuple[str, type[ctypes._CData]] # pylint: disable=protected-access
]

_os2f: ctypes.CDLL = ctypes.CDLL(
os.path.abspath("../lib/OpenSimplex2/OpenSimplex2F.so")
)


class Grad2(ctypes.Structure):
"""OS2F Grad2"""

_fields_: Fields = [
("dx", ctypes.c_double),
("dy", ctypes.c_double),
]


class Grad3(ctypes.Structure):
"""OS2F Grad3"""

_fields_: Fields = [
("dx", ctypes.c_double),
("dy", ctypes.c_double),
("dz", ctypes.c_double),
]


class Grad4(ctypes.Structure):
"""OS2F Grad4"""

_fields_: Fields = [
("dx", ctypes.c_double),
("dy", ctypes.c_double),
("dz", ctypes.c_double),
("dw", ctypes.c_double),
]


class LatticePoint2D(ctypes.Structure):
"""OS2F LatticePoint2D"""

_fields_: Fields = [
("xsv", ctypes.c_int),
("ysv", ctypes.c_int),
("dx", ctypes.c_double),
("dy", ctypes.c_double),
]


class LatticePoint3D(ctypes.Structure):
"""OS2F LatticePoint3D"""

_fields_: Fields


LatticePoint3D._fields_ = [ # pylint: disable=protected-access
("dxr", ctypes.c_double),
("dyr", ctypes.c_double),
("dzr", ctypes.c_double),
("xrv", ctypes.c_int),
("yrv", ctypes.c_int),
("zrv", ctypes.c_int),
("nextOnFailure", ctypes.POINTER(LatticePoint3D)),
("nextOnSuccess", ctypes.POINTER(LatticePoint3D)),
]


class LatticePoint4D(ctypes.Structure):
"""OS2F LatticePoint4D"""

_fields_: Fields = [
("xsv", ctypes.c_int),
("ysv", ctypes.c_int),
("zsv", ctypes.c_int),
("wsv", ctypes.c_int),
("dx", ctypes.c_double),
("dy", ctypes.c_double),
("dz", ctypes.c_double),
("dw", ctypes.c_double),
("xsi", ctypes.c_double),
("ysi", ctypes.c_double),
("zsi", ctypes.c_double),
("wsi", ctypes.c_double),
("ssiDelta", ctypes.c_double),
]


class OpenSimplex2F_context(ctypes.Structure):
"""OS2F OpenSimplex2F_context"""

_fields_: Fields = [
("perm", ctypes.POINTER(ctypes.c_int16)),
("permGrad2", ctypes.POINTER(Grad2)),
("permGrad3", ctypes.POINTER(Grad3)),
("permGrad4", ctypes.POINTER(Grad4)),
]


OpenSimplex2F_shutdown: ctypes._NamedFuncPointer = _os2f.OpenSimplex2F_shutdown
"""OS2F OpenSimplex2F_shutdown"""
OpenSimplex2F_shutdown.argtypes = []
OpenSimplex2F_shutdown.restype = None

OpenSimplex2F_free: ctypes._NamedFuncPointer = _os2f.OpenSimplex2F_free
"""OS2F OpenSimplex2F_free"""
OpenSimplex2F_free.argtypes = [ctypes.POINTER(OpenSimplex2F_context)]
OpenSimplex2F_free.restype = None

OpenSimplex2F: ctypes._NamedFuncPointer = _os2f.OpenSimplex2F
"""OS2F OpenSimplex2F"""
OpenSimplex2F.argtypes = [
ctypes.c_int64,
ctypes.POINTER(ctypes.POINTER(OpenSimplex2F_context)),
]
OpenSimplex2F.restype = ctypes.c_int

OpenSimplex2F_noise2: ctypes._NamedFuncPointer = _os2f.OpenSimplex2F_noise2
"""OS2F OpenSimplex2F_noise2"""
OpenSimplex2F_noise2.argtypes = [
ctypes.POINTER(OpenSimplex2F_context),
ctypes.c_double,
ctypes.c_double,
]
OpenSimplex2F_noise2.restype = ctypes.c_double

OpenSimplex2F_noise2_XBeforeY: ctypes._NamedFuncPointer = (

Читать полностью…

procedural generation

Wanderers (2014)
https://www.behance.net/gallery/21605971/Neri-Oxman-Wanderers

https://redd.it/1arozgf
@proceduralgeneration

Читать полностью…

procedural generation

Realistic Ocean Simulation Week 15: Switched spectrum from Phillips to JONSWAP
https://redd.it/1argqzx
@proceduralgeneration

Читать полностью…

procedural generation

Removing Dead Ends From Cellular Automata
https://redd.it/1aqxsd2
@proceduralgeneration

Читать полностью…

procedural generation

Generative Organic Form: After Effects
https://youtube.com/watch?v=I3I-acpxofM&si=XqfJtEOdFve0umqQ

https://redd.it/1apyem1
@proceduralgeneration

Читать полностью…

procedural generation

Call for Presentations - C3 Dev Festival

It is the contemporary software engineering and design festival. Our 2-days event will take place in Amsterdam. We will have one-day with two tracks featuring the latest and greatest news and insights from the global network!

Your talk topic should be relevant to the coding, career & creativity and topics around it, including (but not limited to):

* Career
* Culture
* Psychology
* Productivity
* Code
* Architecture
* Infrastructure
* Deep learning
* AI
* Data
* Graphics
* Creativity
* UX

Full talk length: 20 min.
Lightning talk length: 5-7 minutes.

Feel free to submit multiple talk proposals if you have a few ideas to share!

⚠️ Submission Deadline → February 28

Submit your talk → https://docs.google.com/forms/d/e/1FAIpQLSfD-K3eyLhLglvqpsCEzq1-m\_K5NE2ih5YMtujxyIRcjiJw\_g/viewform
Learn more → https://c3fest.com/
Follow on Twitter → https://twitter.com/c3devfest

https://redd.it/1ap4o36
@proceduralgeneration

Читать полностью…

procedural generation

Rudimentary Character Movement on Procedurally Generated Isometric Tilemap
https://youtu.be/xPAxgiiRA4w

https://redd.it/1aoqohe
@proceduralgeneration

Читать полностью…

procedural generation

Battery explosion
https://youtu.be/LYLgx9tmw3I

https://redd.it/1aoce0k
@proceduralgeneration

Читать полностью…

procedural generation

My small Image to ASCII converter

https://redd.it/1ao6ayu
@proceduralgeneration

Читать полностью…

procedural generation

Easily texturing a procedural terrain!

https://redd.it/1ampu7y
@proceduralgeneration

Читать полностью…

procedural generation

ruin render

​

https://preview.redd.it/93e5m73qhjhc1.jpg?width=2560&format=pjpg&auto=webp&s=709094455f966c5dad8a5999c82fb90f93de840d

https://preview.redd.it/65fibc6rhjhc1.jpg?width=2560&format=pjpg&auto=webp&s=c5d4b113869b3e171855b61a91f6d17177509938

https://redd.it/1amlgai
@proceduralgeneration

Читать полностью…

procedural generation

What do you think Sims uses for Procedural generate their characters?

I wonder how they do it and I want to research more about the different technics, so...

How do you think EA generates Sims for you to interact with?

https://redd.it/1amb1r7
@proceduralgeneration

Читать полностью…

procedural generation

Realistic Ocean Simulation Week 14: Attempting to create my own FFT. Butterfly Texture.
https://www.reddit.com/gallery/1am58yw

https://redd.it/1am5cct
@proceduralgeneration

Читать полностью…
Subscribe to a channel