Archive for the 'Programming' Category

02
Oct
09

2D Shadows pake XNA

Dari blognya Catalin Zima

Ada calon tutorial yang nampaknya menarik, tentang 2D shadow menggunakan XNA. :D
Screenshotnya:

Kita tunggu saja tutorialnya :D Cheers…

29
Sep
09

FAIL : wrong indices creates pasupati

Terrain triangle strip indices goes wrong… -.-

Kinda nice though… :D

26
Sep
09

Ebook ShaderX gratis

Saya lupa udah pernah ngasih link ini ato belum…
isinya ada dua buku pertama seri ShaderX dalam bentuk pdf, dan gratis! :D

Trus ada satu lagi, D3DBook, buku online gratis tentang vertex, geometry, dan pixel shader.

Lumayan buat yang mau belajar shader, mengurangi ketinggalan dari orang luar :p

Cheers :D

25
Jul
09

10 Tips untuk Programmer di Industri Game

Dari sini.

10 tips untuk programmer di bidang game development :

  1. Learn to be an effective communicator. Sebagian besar programmer di game dev tidak bekerja sendiri, namun dengan tim. Kemungkinan besar programmer harus bekerja dengan programmer lain, orang dari bagian art, atau bahkan dengan pekerja outsource. Komunikasi yang dimaksud bukan hanya jelas dalam mengeluarkan pendapat, namun juga dapat memahami dan melihat dari sudut pandang lawan bicara.
  2. Master the basics. Jangan menyepelekan matematika dan logika, karena hal-hal itu akan terus digunakan dalam pekerjaan ini. Tingkatkan kemampuan debugging dengan banyak berlatih. Jika tidak dapat menentukan struktur data yang cocok untuk suatu masalah, kemungkinan kode yang dihasilkan juga tidak akan baik.
  3. Code defensively. Selalu membuat kode secara defensif, periksa setiap input untuk fungsi yang dibuat, buat assertion, kembalikan pesan error yang jelas dan berarti, dan beri komentar pada kode yang dibuat.
  4. Have passion for games. Bidang ini adalah bidang yang menyenangkan namun sangat berat. Banyak lembur, bug list, feature creep, dan lain-lain. Jangan sampai beban di pekerjaan membuat semangat hilang.
  5. Maintain healthy work/life balance. Crunch adalah hal yang biasa ditemui di game development. Seimbangkan hidup di luar pekerjaan dan jaga kesehatan untuk menikmatinya.
  6. Ask for help. Jangan malu bertanya atau meminta bantuan pada orang lain. Know what you dont know.
  7. Learn multiple languages. C++ itu wajib :D Lalu sebaiknya pelajari bahasa pemrograman lain. Karena dapat memberi pola pikir baru dalam memecahkan sebuah masalah. Disarankan mempelajari suatu bahasa baru setiap tahunnya.
  8. Don’t lose sight of the big picture. Dalam sebuah game akan banyak sekali kebutuhan, namun tidak semuanya dapat dipenuhi. Namun tujuannya tetap membuat game terbaik yang bisa dibuat.
  9. Learn the code base. Sebagian programmer mengerjakan suatu bagian kecil dari game, AI, UI, Rendering, Physics, atau tools. Sebaiknya programmer dapat memahami secara garis besar bagaimana game secara keseluruhan bekerja, karena setiap bagian yang dibuat akan berinteraksi.
  10. Stay current. Pendidikan tidak berhenti saat mulai bekerja. Terus pelajari hal-hal baru, berlatihlah dengan membuat proyek pribadi, ikuti perkembangan industri dengan membaca berita atau mengikuti konferensi seperti GDC.

*diambil dari Game Career Guide 2009.

Cheers :D

23
Jul
09

FPS tidak relevan terhadap performance

Dari sini.

Cara untuk mengetahui performa adalah dengan mengukurnya, tapi sayang banyak paper yang mengukur dengan buruk. Contoh paling umum adalah mengukur dengan satuan FPS / Frame Per Second seperti pada paper ini.

FPS is useless.
Gamer mungkin senang dengan FPS, dan benchmark komputer umumnya menampilkan FPS, tapi game developer berbicara dalam milisecond. Kenapa? Karena secara definisi, frame per second itu mencakup semua hal yang terjadi dalam frame, bahkan hal-hal yang bukan bagian utama dari teknik rendering.
Pada contoh paper diatas, SSDO adalah teknik post processing, dan setiap GPU butuh buffer clear dan main scene rendering adalah tidak relevan. Dan karena terjadi pada satu frame yang sama, sehingga tidak bisa diketahui berapa FPS biaya proses-proses tersebut.
Contohnya mereka bilang bahwa ada overhead 2,4% pada SSDO vs SSAO, padahal SSDO bisa saja dua kali lebih lambat dari SSAO, tapi proses lain menutupi fakta tersebut.
Misalnya main scene rendering perlu 12ms, SSAO 0,5ms, sehingga total 12,5ms dengan FPS 80. Jika SSDO ternyata 1ms, total jadi 13ms, 77 FPS. Penurunan  framerate hanya 4% walau sebenarnya cost SSDO dua kali lipat SSAO.

FPS tidak bisa menunjukkan apa yang mahal dan tidak.
Jika kita menjalankan game dengan 20 FPS dan menambah proses 1ms, framerate menjadi 19,4 FPS, penurunan yang terlihat tidak signifikan. Namun jika kita menjalankan game 100 FPS dan menambahkan tepat 1ms yang sama, framerate turun menjadi 90,9 FPS, sebuah penurunan yang lebih besar baik dari angka FPS atau dengan persentase.

FPS tidak valid untuk dirata-ratakan.
Jika kita merender tiga frame dalam 4ms, 4ms, dan 100ms, kita dapat rata-rata FPS :
(1000/4 + 1000/4 + 1000 / 100) / 3 = 170 FPS.
Sedangkan jika merender dalam 10ms, 10ms, dan 10ms kita akan mendapat rata-rata FPS :
(1000/10 + 1000/10 + 1000/10) / 3 = 100 FPS.
Proses render kedua, selain selesai dalam 30ms (dibanding 108ms), namun juga lebih stabil, namun mendapat rata-rata FPS jauh lebih rendah.

Verdict : STOP USING FPS as performance measurement. Use miliseconds instead. D:

*SSDO = Screen Space Directional Occlusion
*SSAO = Screen Space Ambient Occlusion

13
May
09

New Features of CryEngine 3 and Unreal Engine 3

Untuk berita pertama (sumbernya dari sini), baru-baru ini Crytek merilis presentasi detail tentang CryEngine3 dan fitur-fitur barunya (dari Triangle Game Conference) :

  1. 32/64 bit, WinXP/Vista, DX9/10, Multi CPU/GPU
  2. WYSIWYP (what you see is what you play)
  3. Resource Compiler (source asset -> platform spesific)
  4. Direct light (shadow mapping)
  5. Indirect light : SSAO (screen space ambient occlusion)
  6. No precomputed lighting
  7. Übershader

Jangan tanya detailnya, saya baca presentasinya aja ga ngerti… T_T (banyak istilah asing, kayak GBuffer,, apaan tuh…). Kalau tertarik, bisa baca-baca paper dari Crytek yang lain di situs mereka.

Berita kedua tentang fitur-fitur baru Unreal Engine yang dirilis di GDC 2009 yang lalu. Intinya UE3 menyediakan fitur-fitur untuk mempermudah membuat game, termasuk game online. Beberapa fiturnya adalah sebagai berikut :

  1. Unreal Lightmass : global illumination solver
  2. Unreal Content Browser : viewer dan manager asset untuk game
  3. Unreal Master Control Program : service-oriented architecture untuk membangun fasilitas online dalam game

Sekian dulu. Ada yang tertarik membuat engine seperti dua yang diatas? :P

Cheers… :D

03
Feb
09

Hosting SVN Gratis

Post kali ini berhubungan dengan post saya sebelumnya, yaitu tentang Google Apps untuk project management…

Berdasarkan bung Peb, ada Google Apps lain yang sangat cocok untuk project management, yaitu Google Code.

Bung Peb berkata :
repot amat pake google app? kan ada google code. udah ada wiki, bugtracking, sama svn.

Okay, itu adalah tiga fitur utama yang memang sangat dibutuhkan game developer. :D

Mari kita coba… Continue reading ‘Hosting SVN Gratis’

21
Jan
09

Maze Generator Algorithm Part 3

Sampai bagian dua yang lalu, kita seharusnya sudah bisa membuat sebuah maze dengan loop atau sirkuit. Pada bagian ini akan dijelaskan cara menempatkan ruangan dalam maze kita. Berikut adalah gambaran hasil akhir maze yang sudah memiliki ruangan.

Pertama-tama kita perlu membuat struktur data untuk ruangan, sifatnya kurang lebih sama dengan sebuah maze. Sebuah ruangan akan memiliki ukuran, dan memiliki sejumlah sel.
Continue reading ‘Maze Generator Algorithm Part 3′