OpenGL C++ Zeki kişiler aranıyor, yardım lazım...

BatuhanKZ
23-06-2018, 02:13   |  #1  
BatuhanKZ avatarı
OP Taze Üye
Teşekkür Sayısı: 0
2 mesaj
Kayıt Tarihi:Kayıt: Haz 2018

Eskiden kalma içimde opengl ile oyunlar yapmak , öğrenmek, yanı sıra c++ öğrenme isteğim vardı;  uzun süre bir kaç yazılım denediğimi hatırlıyorum, c# , php gibi ... şuan bu  tür yazılımları deneye deneye algoritmaları hallettiğime inanıyorum, şimdi ise c++ başladım öğrenmeye (openGL Kütüphanesiyle başladım, çünkü algoritmaları diğer dillerden kalma bilgimle halledebiliyorum gibi)

Code Block kurup birde GLUT Kütüphanesini kurdum.

Sizlere sormam gereken sorular var, cevaplarsanız sevinirim...;


  1. Eğer GLUT Kodlarına aşina olup iyice çözersek yapabileceğimiz maksimum şeyler nedir, bu piyasadaki oyun,program ,vs. her şeyi yapmaya uygun kodları var mı, tutorialları,vs.?
  2. Ben normalde googleye OpenGL öğrenmek yazıp başlamıştım fakat karşıma GLUT, SFML Gibi şeyler çıktı, bunların hepsi OPENGL altındaki şeyler mi, yoksa opengl ye benzer yazılımlar mı? OpenGL ile bunların bağı nedir?
  3. ( GLUT içinde opengl kullanılıyor dersek, eğer öyleyse ) bir oyun yaptığımızda o oyunu glut ile yapmış olsak bile bunu opengl ile yaptık diyebilir miyiz? yoksa opengl ile yapmış olmazmıyız? Mesela  bazı 2d online oyunların bilgilerine bakıyorum ve görüyorum ki C++/GL ile yapıldı diyor, adamın glut ile yapmış olma olasılığı nedir? Direk olarak opengl mi kullanmıştır yoksa benim gibi glut vs. ek bir kütüphane eklemiş olabilir mi?
  4. Proton SDK nedir? Araştırdım biraz ve galiba ekrandaki nesneler için kolaylık mış.. Bulunabilirliği nedir, kullanımını bilen var mı?
  5. OpenGL ve c++ hakkında genel olarak mesela SFML baktığımda gördüm ki network,audio gibi şeyleri var bu kütüphanenin, mesela  farklı kütüphanelerden farklı nesneler lazım,  aynı kütüphanede kullanabiliyormuyuz? Yani mesela sfml deki network kolaylığını kullanıp online oyun yapmak için glut dan da oyunun grafik kısmını halletsek olur mu? iç içe farklı kütüphaneler..
  6. Bir dosya kodladığımızda (pencere) Code Block ta veya çıktısına bastığımızda (.exe) arkada komut ekranı çıkıp, sonradan önünde oluşturduğumuz pencere geliyor, normal uygulamalar gibi yapmak için ne yapmamız lazım?
  7. CodeBlock tan kodladık ve pencere yaptık, bunu çalıştırabiliyoruz fakat dosyalara gönderilen çıktıya bastığımızda uygulama düzgün olarak başlatılamadı diyo, ben projedeyken glut kütüphanesini görüp, dosyaya geçtiğinde bulamamasıdır diyorum , bir dosya kodladığımızda kullandığımız kütüphaneleri dosyanın yanına koyup yolu nasıl gösterebiliriz? Mesela oyunu piyasa çıkarttığımızda yanına (.exe nin yanına) tüm kullandığımız kütüphanelerin .dll sini koyacağızdır diye düşünüyorum ki günümüzde indirdiğimiz oyunların yanlarında .dll dosyaları var hep.. Biz ismini değiştirip (kullananlar ne olduğunu çakmasın diye) uygulamaya nasıl tanıtabiliriz?

Ek olarak şunların ne işe yaradığını bilen varsa yazabilirmi, ben anlayamadım da;


  • glutInit(&argc,argv);
  • glutInitDisplayMode(GLUT_RGB);
  • glClear(GL_COLOR_BUFFER_BIT);
  • glLoadIdentity();

BENİM sorularım bunlar, eğer herhangi bir soru cevabını bilen varsa cevabını yazarsa sevinirim, her soru benim için cevabı ayrı önemli ve önümü aydınlatcak derecede.

White-Fox
23-06-2018, 11:40   |  #2  
White-Fox avatarı
Yıllanmış Üye
Teşekkür Sayısı: 155
1,104 mesaj
Kayıt Tarihi:Kayıt: Eyl 2010

Şimdi heves kırmak istemem ama c#,php bitirdim demişsin.Php için konuşmuyorumda c# ı nasıl bitirdin ben senelerdir uğraşıyorum insan her geçen gün yeni şeyler öğreniyor :) biz öğrendikçe sürüm yükselip yeni özellikler geliyor.Hadi dili öğrendin dip seviyede şablonlara algoritmalara nasıl hakim oldun :) binlerce pattern var.C++ güzel bir dil güzelliği platform bağımsızlığından geliyor.Şimdi sana bir soru ;

Madem c# biliyorsun niye c++ ile uğraşıyorsun?Eğer GTA 5 gibi grafik canavarı bir oyun yapmayacaksan senin c++ ın hızına ihtiyacın yok ve eğer apple ve linux için oyununun çalışması hayati değilse bu defa cidden boşuna kendini yoruyorsun diyebilirim.Bunların pazar payını toplasan 10 eder.

Online oyundan bahsetmişsin standardı da ele alalım bunları c# ile yaparsın.Online bir oyun yapacaksan ASP.net ki bildiğin c# sadece proje şablonu değişik , normal oyun yapacaksanda tonla eklenti ve bana göre dünyanın en iyi derleyicisi visual studio var :) 

Soruları yanıtlayalım ;

Glut nedir ? 

Şimdi opengl ile program geliştiriyoruz ve c++ ile c++ platform bağımsız burada okeyiz. opengl de platform bağımsız olması için tüm işletim sistemlerinin user interface'i ile iletişim sağlamalı ki sağlayabilir ancak kodlama anında linux için ayrı windows için ayrı kütüphanelere ihtiyaç duyuluyor ya kodu her sistem için yazacaksın yada tüm sistemleri tanıyan ortak bir kütüphane olan glut u kullancaksın.

Evet bunlar opengl için bir nevi eklenti diyebileceğimiz kütüphaneler.

Proton sdk hakkında pek bilgim yok ancak ekran girdileri sağladığını söyleyebilirim örneğin ekrana dokunarak bir butonu tetikleme yada multi-touch özelliği ile bir olay tetikleme vb.

Codeblock sorusuna gelince bence projene göre daha ufak bir ide gibi geliyor bana.

Neyin ismini değiştirdiğini anlamadım ancak bir programı dağıtırken onu setup haline getirmen gerekiyor.Böyle büyük bir işe daha güçlü bir derleyici gerekiyor çok fazla detay olacaktır en basiti  birden fazla çözünürlükteki ekrana göre oyunun şekil almasını sağlaman olacak bunu otomatik yaptığını sanmıyorum elle yapacaksın.1280x800 olan bir laptop ile 1920x.. olan bir masaüstünde düzgün biçimde çalışacak kodların vs.laptopda deve masaüstünde sinek olmayacak :) 

c++ ı öğren güzel bir dildir , zannediyorum visual studioda c++ kullanılabiliyor ancak .net framework olduğundan windows'a bağlı kalacaktır.

glutInit(&argc,argv); => burada Init=initialize yani glutu başladan method.

glutInitDisplayMode(GLUT_RGB); => renk düzeni belirtir cmyk değil rgb haliyle.

glLoadIdentity(); => buda verilen nesneyi çizip sonra ölçütlendirmeye yarıyor diye hatırlıyorum.Çözünürlük vs.Çizmekten kasıtım belleğe yüklemek.


Umarım faydalı olur kolay gelsin.

Son Düzenleme: White-Fox ~ 23 Haziran 2018 11:42
BatuhanKZ
23-06-2018, 11:50   |  #3  
OP Taze Üye
Teşekkür Sayısı: 0
2 mesaj
Kayıt Tarihi:Kayıt: Haz 2018

Teşekkürler, c++ öğrenme isteğim Growtopia isimli oyun gibi oyunlar yapmak istediğim için geldi; c++ ile yazıldığını öğrendim.

C# kısmında ise belki algoritmalar için bildiğimi söylemiş olabilirim.