Bagaimana secara prosedural (membuat) menumbuhkan pohon artistik (2D) secara real-time (L-System?)

20

Baru-baru ini saya memprogram modul L-system , membuat saya tertarik lebih jauh. Saya seorang pecandu Plants vs Zombies juga, sangat menyukai konsep Pohon Kebijaksanaan. Ingin sekali membuat seni prosedural serupa hanya untuk bersenang-senang dan belajar lebih banyak.

Pertanyaan: Bagaimana saya harus mendekati proses pembuatan pohon artistik (mungkin 2d dengan kamera / perspektif tetap) secara dinamis?

Idealnya saya ingin memulai dengan tanaman (hanya batang dengan daun) dan menumbuhkannya secara dinamis menggunakan pengaruh (input / aksi pengguna) terhadap strukturnya. Pengaruh-pengaruh ini dapat mengakibatkan berbagai jenis percabangan, kurva pada cabang-cabang, penyebarannya, lokasi buah-buahan, warna bunga, dll. Ingin itu benar-benar penuh dengan kehidupan / roh. :)

Tumbuhan vs Zombies: Pohon kebijaksanaan Ini akan bagus untuk secara dinamis menumbuhkan pohon yang sama, tetapi dengan lebih banyak variasi dan animasi terjadi.

Latar Belakang Saya: Programmer, telah menggunakan beberapa mesin game (Ogre3d, cocos2d, unity). Belum benar-benar diprogram secara langsung menggunakan openGL, mencoba memperbaikinya :).

Saya siap menghabiskan banyak waktu, Tolong beri tahu saya tentang API? dan bagaimana seorang ahli seperti Anda akan menangani masalah ini?

Mengapa 2D? Saya pikir lebih mudah untuk menyelesaikan masalah hanya dengan mempertimbangkan 2 dimensi.

Inspirasi artistik:

Hanya pohon, dengan buah dan daun, tanpa semak di bagian bawah

The pohon besar (cabang terlihat, daun hijau, bunga, buah, dll) di sebelah kiri, di belakang monyet.

PixelJunk's Eden (Inspirasi gaya seni).

Apple Tree yang Dihasilkan secara Prosedural menggunakan Fraktal

Tolong beri tahu saya jika mudah bagi Anda untuk memahami pertanyaan itu, saya dapat menjelaskan lebih lanjut.

Saya harap diskusi tentang berbagai pendekatan akan bermanfaat bagi semua orang. Kalian luar biasa.

lal
sumber
2
Saya mungkin tidak punya jawaban untuk Anda, tetapi saya pasti ingin melihat ke mana perginya. Konsep yang luar biasa!
Bloodyaugust
Pertanyaan bagus, saya sudah tertarik pada L-Systems untuk sementara waktu tetapi belum melakukan apa pun dengan minat itu :)
Luther
1
@Stephen hanya agar Anda tahu pertanyaan ini dari 2011 dan mendapat necro'd ke atas oleh pengguna yang mengajukan pertanyaan yang diedit Student/dariStudent/Programmer
PeterT
@alan Harap hanya melakukan pengeditan yang substansial untuk pertanyaan, fakta bahwa Anda bukan siswa lagi bukanlah perubahan besar, atau alasan untuk mengedit.
MichaelHouse

Jawaban:

8

Beberapa ide untuk "game" Anda:

  • Promosikan pengguna untuk nama pohonnya terlebih dahulu. Gunakan nama itu untuk menghasilkan seed untuk algoritme. Jadi setiap nama akan memiliki pohon unik itu. Benih juga dapat mempengaruhi jenis dedaunan dan buah pohon.
  • Anda bisa menerapkan semacam " tamagotchi pohon " di mana pohon itu tumbuh lebih besar dan lebih baik, semakin pengguna peduli tentang hal itu (pupuk, air, dll.)
  • Buat daftar skor tertinggi dari pohon-pohon tertinggi. Gagasan lain adalah menampilkan ketinggian dan nama pengguna lain di sebelah pohon Anda. Jadi Anda dapat membandingkan tinggi pohon Anda secara langsung dengan pengguna lain. Lihat video ini sebagai contoh. Awan menunjukkan ketinggian yang dicapai pengguna lain.

Ada banyak algoritma dan makalah untuk pembuatan pohon prosedural di luar sana ( utas ini mungkin menarik ). Tugas yang sulit adalah memadukan cabang dengan baik. 2D pasti akan lebih mudah dalam hal itu, karena Anda dapat menyelesaikannya dengan alpha-blending.

Karena Anda sudah berpengalaman dengan Ogre3D, Unitiy dan cocos2d, Anda dapat langsung menerapkannya (tidak perlu mulai belajar OpenGL sekarang IMHO). Secara pribadi saya akan memilih cocos2d dan rilis untuk iPad dan / atau iPhone, sehingga semua orang dapat membawa pohonnya berkeliling dengan perangkat mobile-nya.

bummzack
sumber
1
Saya akan dengan permainan itu hanya untuk bermain dengan L-Systems dengan cara sosial / kompetitif.
deft_code
1
Terima kasih telah mengarahkan saya ke utas gamedev .. Ide bagus, tamagotchi dan goo-tower .. aplikasi mobile akan sangat keren. menemukan video plugin 3DS Max - yang merupakan tautan yang sangat mengagumkan ..
lal