Ana Menü
· Ana Sayfa
· Dosyalar
· Dökümanlar
· Forum
· Günün Resmi
· Haber Arşivi
· WWW Linkleri
· Üye Listesi

     Forumlar

 strncpy ve strncpy_s
 Konu adi : Borland c++ Builder ile Amiral Batti
 Rady10 - YerliOyun
 Kabusta Kaybolmak
 Konsol da programı bekletmek
 Oyun programlama icin hangi programlama dilli ?
 flash! şanlıurfa bilgisayar oyununda(no rapid)
 Sevgilim Olur musun?
 Directx'e başlamak isteyenler bi bakın
 PSP programlama
 Flash tan php
 Bilgisyr oyunu yapmam için üniverstde hangi bölüme girmeliym
 www.arshiv.gen.ms
 Cimg.h ilgilenenler icin
 müttefik oyunu

Konu Disi
 Emraah
 Yeni sitemiz açıldı
 Kalp krizi durumunda ne yapılmalı?
 Oyun sektöründe hangi görevde çalışmak isterdiniz?
 Takım arkadaşı sorunu
 msn de renklı nıck
 pc hata veriyor ! YARDIM!!
 Gülmek isteyenler Buraya
 İnanılmaz hl 2 modu görüntüsü
 Computer Languages History

[ Forumlara Git ]


oyunyapimi.org: Forums

www.oyunyapimi.org :: Başlığı Görüntüle - Memory management
 SSSSSS   AramaArama   Kullanıcı GruplarıKullanıcı Grupları   ProfilProfil   LoginLogin 

Memory management

 
Yeni Başlık Gönder   Cevap Gönder    www.oyunyapimi.org Forum Ana Sayfası -> Programlama Dilleri ve Algoritmalar
Önceki başlık :: Sonraki başlık  
Yazar Mesaj
Arda



Kayıt: Feb 25, 2003
Mesajlar: 226

MesajTarih: Thu Jul 15, 2004 10:30 am    Mesaj konusu: Memory management Alıntıyla Cevap Ver

Selamlar,

Merak ediyorum da, burda oyunlarına engine yazanlardan kaçı kendi memory management sistemini oluşturuyor? Hani sürekli grafik motorundan bahsediyoruz da bu konuya el atan oldu mu henüz? Gerek duyan oldu mu yada?
Başa dön
Kullanıcı profilini gör MSN Messenger
UzMaN



Kayıt: Jan 29, 2003
Mesajlar: 118
Nereden: Eskişehir

MesajTarih: Thu Jul 15, 2004 3:57 pm    Mesaj konusu: Alıntıyla Cevap Ver

ufak çaplı oyunlarda memmanager a gerek oldugunu sanmıyorum.ama bir motorda tabiki memmanager olmalı.yapılacak memmanager da heap yönetimi,bellek sızıntılarını önleme,reference counting,çöp toplama vs olmalıdır aksi takdirde oyunumuz belleği verimli şekilde kullanmaz, tabi bir de uygulama uzun süre çalıştıktan sonra çakılabilir vs.
Başa dön
Kullanıcı profilini gör
Ziyaretci



Kayıt: Apr 24, 2003
Mesajlar: 287
Nereden: İstanbul

MesajTarih: Thu Jul 15, 2004 4:12 pm    Mesaj konusu: Alıntıyla Cevap Ver

bildiğim kadarıylan, memory allocation direk kernele falan gittiği için yavaş bi işlem. eğer oyun sırasında sürekli böyle bişeyler lazımsa kendin yazman mantıklı olabilir. ama sadece girişte yapıyosan bu işleri, sonra memory ile allocation işim olmaz diyosan yazmak boşuna meşgale oluyor.
Çünkü kendin yazdığında, belirli allocation schema ler yapman lazım, büssürü saçma sapan şeyle uğraşmak gerekiyo. büyük bir chunk alıp bunu parçalayacaksın sonuç olarak. bu yüzden fragmentation falan filan giriyo işin içine.. büssürü ıvır zıvır işi var.
Ama yine de basit bi alloc counter falan faydalı olur. yada direk malloc a falan bi wrapper da yazabilirsin. (ufak utility olarak yani.. )
tabi C++ da autoptr diye bi geyikler var. güzel aletlere benziyolar... onları kullanmak pek çok derdi çözer gibime geliyo..
sonuç:
dikkatli ve düzgün coding yaptıktan sonra temel olarak mem manager a ihtiyaç yok. ama bunu becermek biraz zor. eğer gerçekten ihtiyaç olursa, o zaman mümkün olduğunca light weight bişeyler yapmakta fayda var.. hatta varolan C++ yapılarını kullanmak en temizi..
Başa dön
Kullanıcı profilini gör
Darklight



Kayıt: Oct 31, 2002
Mesajlar: 185
Nereden: Ankara

MesajTarih: Thu Jul 15, 2004 7:47 pm    Mesaj konusu: Alıntıyla Cevap Ver

oyun icin yazmıstım belki isine yarar...
Asagidaki linkten ulasabilirsin

http://www.skywar.org/forum/viewtopic.php?p=416#416
Başa dön
Kullanıcı profilini gör Kullanıcının web sitesini ziyaret et
Notre_Dame



Kayıt: Jun 17, 2003
Mesajlar: 77

MesajTarih: Thu Jul 15, 2004 9:27 pm    Mesaj konusu: Alıntıyla Cevap Ver

Çokta gerekli bişey değil ama en azından bellek sızıntılarını felan önlemek için crtdbg.h içinde tanımlı fonksiyonlar kullanılarak sızıntılar önlenebilir.
Çok fazla allocation free gereken yerlerde ben şöyle bir yöntem kullanıyorum. Aslında buna sadece parçacık şeysinde ihtiyaç duydum.
Önce bağlı liste ile max sayıda parçacık için bellek ayırıyorum bunu havuza atıyorum. havuzdaki veriler bağlı liste şeklinde tabi. parçacık allocation etmem gerektiğinde havuzdan 1 tane pointer alıp emittere ekliyorum, emitterdeki parçacık yok edileceği zamanda ordan alıp havuza bırakıyorum felan...
Başa dön
Kullanıcı profilini gör
lucifer



Kayıt: Nov 02, 2002
Mesajlar: 215
Nereden: Istanbool

MesajTarih: Fri Aug 13, 2004 8:01 pm    Mesaj konusu: Alıntıyla Cevap Ver

Memory manager yazmak guzel bir egzersiz. Ama bunun disinda bir ise yaradigini dusunmuyorum. Memory leak'lerle sorunu olanlara da, java kullanmalarini oneririm Smile
Başa dön
Kullanıcı profilini gör Kullanıcının web sitesini ziyaret et
ayberk_cerit



Kayıt: Aug 13, 2004
Mesajlar: 51
Nereden: Avdan'dan geliyor elinde desdi,kız kurban olduğum sana kim küstü ...

MesajTarih: Sat Aug 14, 2004 7:10 pm    Mesaj konusu: Alıntıyla Cevap Ver

Java da sonuç olarak bir hafıza yöneticisi kullanıyor (C tabanlı..) ama bu konuda güzel bir örnek Linux kernel'i.Son sürümünü indirip bir incelemenizi öneriyorum...
Başa dön
Kullanıcı profilini gör
CHaRMaNDeR



Kayıt: Nov 25, 2003
Mesajlar: 109

MesajTarih: Sun Aug 15, 2004 10:19 am    Mesaj konusu: Alıntıyla Cevap Ver

Benim kendi oyunumun içinde AMD'nin 3DNow SDK'sının içinde bulunan bazi hafıza yönetmek için kullanılan fonksiyonlar var. hepsi assembly kullanıyor ve standart fonksiyonlardan çok daha hızlı çalışıyor. Yani türkiyede oyun yapanlarda da kullananlar varmış demekki.
Başa dön
Kullanıcı profilini gör E-Posta'yı gönder
lucifer



Kayıt: Nov 02, 2002
Mesajlar: 215
Nereden: Istanbool

MesajTarih: Mon Aug 16, 2004 8:05 am    Mesaj konusu: Alıntıyla Cevap Ver

Memory manager bana sadece bir kere lazim olmustu. GL_NV_VERTEX_ARRAY_RANGE diye bir extension vardi hani bir zamanlar, iste o zaman...

Bu extension'da guzel bir procedure vardi : gl_nv_malloc_agp gibi birsey. Ama bu procedure'yi sadece bir kere cagirabiliyordun, yoksa sorun cikiyordu. Sen de oyunda tek bir malloc yapiyordun, sonra bu kocaman AGP memory'i kullanan kendi memory manager'ini yaziyordun mecburen. Hatta nvidia'nin soyle basit bir memory manager'i vardi.

Hala memory manager kullanmaya gerek oldugunu sanmiyorum. Bir frame'de kac kere new yada delete cagiriyorsunuz ki? muhtemelen hic...sadece level load ederken yada oyunda particle falan eklemek icin...100 fps calisan bir oyunun bir karesinde 1 tane NEW kullanicam diye memory manager yazmaya deger mi?

Bence degmez.
Başa dön
Kullanıcı profilini gör Kullanıcının web sitesini ziyaret et
Mesajları göster:   
Yeni Başlık Gönder   Cevap Gönder    www.oyunyapimi.org Forum Ana Sayfası -> Programlama Dilleri ve Algoritmalar Tüm saatler GMT +2 Saat
1. sayfa (Toplam 1 sayfa)

 
Forum Seçin:  
Bu forumda yeni konular açamazsınız
Bu forumdaki mesajlara cevap veremezsiniz
Bu forumdaki mesajlarınızı değiştiremezsiniz
Bu forumdaki mesajlarınızı silemezsiniz
Bu forumdaki anketlerde oy kullanamazsınız


Powered by phpBB 2.x.x © 200x phpBB Group
Türkçe Çeviri : Onur Turgay & Erdem Çorapçıoğlu
Türkçe Düzenleme: Alexis Canver
Version 2.x.x of PHP-Nuke Port by Tom Nitzschner © 200x www.toms-home.com




Web site powered by PHP-Nuke
Web site engine\'s code is Copyright © 2002 by PHP-Nuke. All Rights Reserved. PHP-Nuke is Free Software released under the GNU/GPL license.
Sayfa Üretimi: 0.097 Saniye