Oyun Programlamaya Giriş

Oyun Programlamaya Giriş

Selam, oyun programlama hakkındaki yazı dizimize geçmeden önce bazı konulara açıklık getirmek gerektiğini düşünüyorum. Neden oyun programlama konusunda kendinizi geliştirmek istiyorsunuz ? Bu bir hobi mi ? Yoksa ileride gerçekten büyük bir oyun firmasına mı girmek istiyorsunuz ? Belki de kendi başınıza oyun çıkarmak, hatta kendi oyun şirketinizi kurmak istiyorsunuz.

Aslına bakarsanız yukarıda bahsedilen sorular bir oyun programcısının adımlarıdır. İlk başta hobi olarak başlayan bu serüven az buçuk öğrendiği programlama diliyle ve onun sağlamış olduğu grafik kütüphanesi ile oyun yazmaya çalışırak başlar ve basamakları teker teker çıkarak yoluna devam eder. Şu anda üzerinde duracağım konunun ne hobi, ne de oyun firması kurmak ile ilgisi yok. Bu yazı dizisindeki yazılar daha çok bir oyun firmasında çalışmak isteyen oyun programcısının kendisini geliştirebilmesi için yazılmıştır.

İlkin gelin piyasadaki oyun firmalarının işe alacakları programcıların hangi niteliklere sahip kişiler olması gerektiğini inceleyelim.

PROGRAMMERS, THIEF 3 & DEUS EX 2

JOB DESCRIPTION:
  • Must have demonstrable experience in some or all of the following:
  • A degree in Computer Science or Software Engineering or equivalent industry experience
  • The ability to meet or exceed established milestones
  • Game UI
  • Gameplay mechanics
  • Game AI or Physics
  • Console programming experience is a plus

 

Programmer/Senior Programmer
We have several exciting positions open for programmers with at least 2 years of professional game coding experience. You must be an expert in designing and writing optimized C/C++ game code, and must have the coding talent and experience to produce fun gameplay with that extra polish that makes a game great. We're especially interested in people who have experience in:
  • Character implementation
  • Next-gen special effects
  • Split-screen multiplayer gameplay
  • Physics
  • Gameplay for assorted mini-games and bosses

 

GAME PROGRAMMER
We're looking for candidates who are passionate about developing high-quality games, and who have a strong desire to work in a team environment. If you have the requirements listed above and are longing to be part of an extremely talented and synergistic game development team, send us your resume and code samples today!

Individuals will be responsible for a variety of programming tasks on the project including AI, engine, tools, visual special effects, character and camera control, and Python scripting. The ideal candidate will have at least 3-4 years of game industry experience and be proficient in C++. Prior PS 1 or 2, Gamecube, or Xbox experience helpful, but PC programming is acceptable. Strong math background a plus, along with someone who can blend the visual creative aspects with the programming. Prior experience in any of the following is also helpful: Physics, AI, Collisions system, engine programming, PS2 Microcode, Maya plugins, miscellaneous tools, special effects, character and camera control, Python scripting language, and real time cut scene generation.

 

Programmers/Senior Programmers
We have a number of exciting opportunities for experienced programmers. We're especially interested in people with complex/advanced animation experience, (rendering/processing/sequencing).

The ideal candidate will have:
  • 2+ years of game programming experience, or a distinguished college course list in relevant fields.
  • A minimum of 1 completed game, (or graphical/interactive related), project.
  • Proficient in C/C++.
  • Good oral communication.
  • Able to work with a bare minimum of supervision or management.
  • Must be able to work in a team atmosphere with schedules and reliable milestone delivery.

Bonus Skills:

  • Experience with cross-platform development.
  • Low level assembly experience, (80x86, MIPs or VU code).
  • DirectX 8.0 experience.
  • Advanced animation, processing, rendering or sequencing.
  • Proven technical expertise on either Xbox or PS2.

 

Yukarıda incelediğimiz iş ilanları, şirketten şirkete ve yapılacak oyuna göre değişsede ortak olan çekirdek konuları çıkartabiliriz. Bunları aşağıda listeledim.

  • Oyunları ve oyun oynamayı sevmek
  • C/C++ Programlama Dili (İleri düzeyde)
  • İyi derecede Matematik bilmesi
  • Oyun Mekanizması, Bilgisayar Grafikleri, Yapay Zeka ve Müzik Programlama
  • OpenGL veya DirectX gibi Apileri kullanabilme
  • Yazılım Mühendisliği ve Proje Yönetimi hakkında bilgi sahibi olma.

Bunlardan ilk üçü ile hiç ilgilenmiyeceğiz. Çünkü oyun oynamayı sevmek, zaten kişinin doğuşundan gelen bir özellik, ikinci ve üçüncü konular ise lise, üniversite eğitimi veya özel ilgi ile elde edilebilecek özelliklerin olması. Bu açıklamalarıda yaptıktan sonra artık yazı dizimizin hangi başlıklar altında ve hangi formatta verileceği hakkında bilgi verebiliriz.

Oyun Programlama -1 (2D Oyun Programlama)

Oyun Mekanizması: Bu yazı bölümümüzde basit bir oyun programı yazarak oyun mekanizmasını ve alt parçalarının nasıl çalıştığını yakından izleyebilme imkanı bulacağız. Geliştireceğimiz oyun Tetris.

Input ve Windowing İşlemleri: Bu kısımda ne kadar win32 Apisi kullanım gereksinimi gözüksede başlangıç için ben bu apinin ağır olduğunu düşünüyorum. Bu kısımda kısaca Glut (OpenGL Library Utility Toolkit) Api'sinin kullanımını aktaracağım. Pencere oluşturumu, keyboard ve mouse girişlerini dinleme, oyun döngüsü oluşturma hakkında ayrıntılı örnekler sunacağım.

Bilgisayar Grafikleri-1: Bu yazımızda bilgisayar grafikleri nedir? OpenGL nedir ? OpenGL terimler sözlüğü, OpenGL'de 2D Çizim Yapabilmek için kamera ve projeksiyon ortamının hazırlanması, 2D Primitiflerin çizimi, 2D Kaplamaların çizimi, 2D Dönüşümler, 2D Animasyon(Sprite), 2D Oyunlarda Arkaplan Programlama, 2D Font gibi konular örnekler ile açıklanacaktır.

Bilgisayar Müzikleri-1: Bu yazımızda Fmod müzik apisinin nasıl kullanıldığı ve oyun içerisinde nasıl kullanılacağı üzerinde duracağız.

Yapay Zeka: Pacman veya Bomberman gibi basit oyunlarda kullanılan yapay zeka programlarının mantığı ve oyun içerisinde nasıl kullanımı anlatılacaktır.

Kaynakların Oluşturulması: Bu yazımızda oyun için gerekli olan resim, animasyon, ses ve müzik dosyalarının nasıl oluşturulacağı üzerinde duracağız. Alt düzeyde Lightwave, Photoshop kullanımı aktarılacaktır.

Örnek Oyunların Programlanması: Snake, Breakout, Pacman, Bomberman, ve SpaceCombat oyunları programlanacaktır.
   

Daha sonraki bölümlerde real-time strateji, 3D oyunlar ve 3D oyun motoru hakkında bilgiler verilecek ama şimdiden bu bölümlerin ayrıntılandırmasını yapmadım. Zaten basamakları teker teker çıkmalıyız değil mi?

Onur Dayıbaşı :: 2002 ::




Bu yazının bulunduğu site: OyunYapimi.org
http://www.oyunyapimi.org

Bu yazı için adres:
http://www.oyunyapimi.org/modules.php?name=Sections&op=viewarticle&artid=13