|
Konu Başlığı: C64 assembler ve oyun yazma hikayesi Gönderen: metaone üzerinde Mart 31, 2023, 01:30:58 ÖÖ Herkese merhaba…Son dönemlerde donanım ve diğer hususlar çokça tartışıldı forumda ama yazılım tarafı sanki unutulduı gibi. O yüzden bugün biraz yazılım kısmına bakalım istedim. Aslında yazılım derken de Commodore 64, assembly dili ve oyundan bahsetmek istiyorum. Bu post uzun hikaye gibi gelebilir, sıkabilir, şimdiden uyarayım :) Vakit varken dönen dönsün :)
Aslında hikaye şöyle başladı: Dave’s Garage kanalını izlerken bir bölümde pong makinası (devresi) yaptı https://www.youtube.com/watch?v=BKkNiic4tzY (https://www.youtube.com/watch?v=BKkNiic4tzY) Benim de o sıra aklıma geldi, çocukken bir arkadaşımın evinde ilk kez görmüş ve çok hoşuma gitmişti, sonra nedense kısmet olmadı oynamak, bu nedenle canım çekti. Elimin altında da Commodore 64 var (emülatörleri saymıyorum, kusura bakmayın), e dedim herhalde vardır bir pong, oynarım. İndirdim 3-5 tane, bir kısmı fazlasıyla değiştirmiş, Arkanoid tarzı olanı var, BASIC’te yazılmış olanı derken hiçbiri hoşuma gitmedi. E dedim yahu 2 çubuk bir top, ne kadar zor olabilir ki kendimce bir pong yazmak (büyük lokma yemeden büyük konuşma demek lazım). Tabi bu oyunu oynamanın en iyi yolu da paddle tabii ki. Ona da baktım, yapması oldukça kolaymış. Hepi topu 470KOhm’luk potansiyometre (SID analog sinyallari dijitale çeviriyor), ben de Yazıcıoğlu’ndan aldım malzemeleri ve yaptım. Gel gör ki 5 TL’lik potansiyometre kendi içinde dalgalı bir seyir izliyor, örnek olarak durduğu yerde 100 göstermesi gerekirken 95-105 arası gidip geliyor. Gitarda kullandığım 350 TL’lik CTS marka kullanmamak için Aliexpress’ten getirttim orta halli birşey çünkü başka bulamadım burda. Bu da memleketimin düştüğü haller işte. Orjinal Commodore paddle : (https://i.hizliresim.com/l1kc903.png) (https://www.hizliresim.com/l1kc903) Aldığım malzemeler: (https://i.hizliresim.com/ngmg7qe.JPG) (https://www.hizliresim.com/ngmg7qe) Bitmiş hali: (https://i.hizliresim.com/nl0a8ov.JPG) (https://www.hizliresim.com/nl0a8ov) Sonradan Aliexpress’ten getirttiğim potansiyometleri kullandım: (https://i.hizliresim.com/9wwhvoe.JPG) (https://www.hizliresim.com/9wwhvoe) Daha önceden alışkın olduğum C64 Prg Studio’yu açtım, standart başlangıçları yaptım, ekranı temizle, çubukları ve topu sprite olarak çiz (3 öbje olduğu için çarpışma testi falan da kolay olur diye), ekrana koy falan. Bunları hızlıca yaptım, sonra dedim oynatalım, oda tamam. Şimdi geldi sıra topun hareketine. Top her halükarda çarparak gideceği için (yani dümdüz gitmeyecek bir senaryo) 4 çapraz yöne birer rakam verdim. Başladıktan sonra alt ve üst koordinat kontrolü yaparak yön değiştirttim, keza çubuklara çarpınca da. Şöyle bir kontrol rutini aslında: Kod: LDA BALLDIRECTION ; TOPUN YÖNÜNÜ BİR DEĞİŞKENDE TUTTUM Neyse ilk hareketleri tamamladım. Sonra sağ ve solda çubukları ötesine geçince ekrana skor yazdırdım. İyi de oyun ne zaman bitmeli? İki seçenek var: 1- İlk 10 (ya da her ne ise) sayıya ulaşınca 2- Belli bir süre geçince. Hadi dedim her seferinde farklı skorla bitirme imkanı olsun, o zaman bir geri sayım yapayım. Onu da interrupt’larla yapsam ne güzel olur, bu konuda pratik yaparım. Ama gel gör ki raster interrupt’lar yapmayı düşündüğüm başka işlerle çakıştı (ben çözmedim, ustası yapar illa ki). Biraz araştırınca CIA çipinden NMI interrupt’ının zaten saati olduğunu gördüm. Çok detaya girmeden, bu interrupt’ı kullanarak ekrana arka önde yapılan işten bağımsız arka planda saati basmasını sağladım. Gerçi durduramadım sonra :) ama Lemon64’de sorunca cevabı aldım. (Devamı alta geliyor) Konu Başlığı: Ynt: C64 assembler ve oyun yazma hikayesi Gönderen: metaone üzerinde Mart 31, 2023, 01:32:23 ÖÖ Bu da tamamlanınca biraz oynamak için bilgisayar mühendisi arkadaşımı davet ettim, sağolsun test ve debugging’de üstüne tanımam. Ufak şeyleri hallettik, sonra sıra geldi açılara. Dedim ya yukarda 4 yöne çarparak gidiyor diye, tabi x ve y koordinatlarını birer azaltıp arttırarak gittiği için top hep 45 derecelik açıyla hareket ediyor. E bu da kısa sürede sıkacak ve tahmin edilebilir bir oyun demek. E beğenmediğim diğer pong’lar farklı açılarla hareket ettiriyor, hadi bakalım. Arkadaşımın önerisiyle antialiasing ve çizgi çizme için Bresenham algoritmasını kullanalım dedik. Ama bunun hesabını C64’e gerçek zamanlı yaptıracak halimiz yok. ChatGPT’ye bir kod hazırlattık, Python’da yazdı, Visual Studio’da çalıştırıp çizilen farklı açıdaki çizgilerin delta’larını alarak tablo haline getirdik. Sonra da topun çubuklara vurduğu yere bağlı olarak açı belirledim. Üst tarafına vurunca 45, ortada 15, altta 30 derece gibi. Daha rahat oynanabilir hale geldi sayılır. Son olarak da paddle yanı sıra joystick ile de oynama özelliği ekledim, ne de olsa herkes de paddle yok.
(https://i.hizliresim.com/lp31vbh.gif) (https://www.hizliresim.com/lp31vbh) Şimdi oyun yazmak sırf kod değil tabii. Bunun giriş ekranı, basit ses efekti yanısıra girişte bir müzik olsa derken mecbur uğraşmaya başladım. Bitmap multicolor ekran için bulduğum bir resmi Timanthes ile Koala formatına çevirdim, daha doğrusu basit bir emojiden ekran yaptım ve bunu bitmap olarak yüklettim. Müziği de basit olsa bile kendim yapmak istedim. Goat Tracker aslında kullanabilen için çok güzel bir program ama uğraşıp öğrenmek lazım. Ben biraz basite kaçtım, C64 üzerinde çalışan SidWizard’la bir şarkı yaptım, bunu da player’ı ile kaydedip sonra IRQ ile her cycle’da çağırıp çaldırabiliyorsunuz. İşte herşeyin en basitini ihtiva eden bir oyun haline geldi. Ama yazarken kafa patlattığım, yazdıktan sonra neden çalışmadığını keşfettiğim bir süreç oldu, akşamları uğraşarak 1 ayda getirebildim bu hale. Bu süreçte kullandığım programları ve yayınları sıralarsam: - C64 Prg Studio : Assembler yazma, ekran ve sprite tasarımı, ses efekti konusunda güzel bir paket sunuyor. - VICE: number 1 emülatör - C64 Debugger: Çok faydalı, anlık durumu görmek, hafızayı incelemek, değişik hızlarda (%10,%20,%50) çalıştırıp detayları görmek için ideal. - Timanthes: Bitmap grafikleri Koala formatına çevirip yüklemek için kullandım. - SidWizard : C64’te çalışan bir tracker, müzik yapmak için kullandım. - “C64 Programmer’s Reference Guide”, “Compute’s Mapping the Commodore 64” ve “Compute’s Programming the Commodore 64 the Definitive Guide”. Bu 3 kitap ihtiyaç duyulabilecek her şeyi verebiliyor. Zaten Türkçe kaynak yok gibi, olanlar da yabancı kaynaklardan yalandan çevirme (bu forumda açıklama yazan kişileri tenzih ederim). C64 Debugger: (https://i.hizliresim.com/zciduzw.png) (https://www.hizliresim.com/zciduzw) Oyun haliyle 2 kişilik, henüz bilgisayarı nasıl oynatırım fikrim yok. Yani aslında var ama aklımdakini yazarsam oyun fazlasıyla zor olur, o yüzden 2 kişilik olarak bıraktım. Kodlarda olabildiğince açıklama yazmaya çalıştım, ama İngilizce. Maalesef araştırmalarım sırasında yabancı site gezmekten, İngilizce okumaktan ve yabancı forumlarda tartışmaktan Türkçe yazmak anlamsız gelmeye başlıyor, ukalalık olarak görmezseniz sevinirim. Dediğim gibi, bu konudaki Türkçe kaynaklar az, olanları da okuduğum zaman ben anlayamıyorum. Bir de kısaca bu oyun sonrasına değineyim. C64 Prg Studio gayet güzel ama yeni yazılan oyunların kodlarına bakarken sık sık Kick Assembler’a rastlıyordum, biraz ona bakayım dedim. Gerçekten de o ayrı bir dünyaymış zira kodu Java kullanarak derlediği için high level dil özelliklerini kullanabiliyorsunuz. Oturdum biraz onu çalıştım, yeni kod yazma ortamımı da şöyle geliştirdim: - Sublime Text: Kod yazma (Visual Studio da denedim ama bana kolay gelmedi) - Kick Assembler: Kurması ve ayarlaması da gayet kolay - C64 Debugger: Olmazsa olmaz - Charpad/Spritepad: Ekran ve sprite tasarımı için güzel bir paket. Pro versiyonunu aldım. - SidFx: Ses efekti üretmek, dosyasını kaydetmek ve sonra IRQ ile çağırmak için kullandım. Birden çok ses üretebilirsiniz, sonra parametrelerle yaptığınız efektleri istediğiniz kanaldan (ki hepi topu 3 kanal) çaldırabilirsiniz. Charpad’i ve onunla gelen ekran örneklerini incelerken karakter setini yeniden tanımlayarak yapılmış örnekleri inceledim. Buradan esinlenip önce bir karakter yaratıp ona koşma/zıplama hareketleri yaptırdım. Arkadaşımın yine debugging ve ince ayar desteği ile ufak bir adam oynatma motoru oluştu. Şimdilik birkaç ekran tasarlayarak, içine de biraz Impossible Missionvari robot ekleyerek bir şeyler yapmaya çalışıyorum. Burdan bir oyun çıkar mı, yani çıkar tabi, onca güzel ve profesyonelce yazılmış platform oyunları adına atılmış adımlar içinde küçük bir adım olur, ama bana epey birşey katmış olur. Yayınlanabilir hale gelirse onu da paylaşırım isteyen olursa, onun da hikayesi başka. (https://i.hizliresim.com/8lerrn4.gif) (https://www.hizliresim.com/8lerrn4) Son olarak konuyu kapatmadan şunu söylemek isterim. Bu işe 2-3 sene önce başladığımda gözümde büyüyordu, geçmişte yap(a)madığım kodu şimdi mi öğrenecem derken bu noktalara geldim. Gerçi yazdığım kodun kesinlikle daha iyi yazılma ihtimali var, optimize edilebilir, daha efektif olabilir ama o da ayrı bir başlığın konusu... Niyeti olan, içinde ukde kalan varsa geç kalmadan girişsin. Yukarıda development ortamı için gerekenleri belirttim, indirip kurun, ufaktan başlayın. Biraz hareketlensin ortalık bu konuda da. Kaynak kodlarıyla ilgilenen için Github, indirmek isteyenler için de itch.io adresleri imzamda görülebilir. Soru olursa da bunlarla ilgili elimden geldiğince cevaplarım. Buraya kadar okuyana zaten ödül vermek lazım bir şekilde :) Sağlacakla kalın. Konu Başlığı: Ynt: C64 assembler ve oyun yazma hikayesi Gönderen: Cengiz Demir üzerinde Mart 31, 2023, 08:27:00 ÖÖ Elinize emeğinize sağlık.
Bir solukta olmasa bile iki solukta okudum :D Hem Pongy hemde A Space Game i indirip denedim. İkisi de hoş güzel olmuş. ;) Konu Başlığı: Ynt: C64 assembler ve oyun yazma hikayesi Gönderen: witchdoktor üzerinde Mart 31, 2023, 08:54:57 ÖÖ Baştan sona güzel bir çalışma olmuş, elinize sağlık, tebrikler. Detaylar ve tasarımdaki profesyonellik dikkat çekiyor.
Konu Başlığı: Ynt: C64 assembler ve oyun yazma hikayesi Gönderen: Simon (Özay Turay) üzerinde Mart 31, 2023, 09:49:14 ÖÖ Uzun zamandır forumda böyle tehlikeli düşünceler olmuyordu. Şimdi yine gaza getirdin bizi. :D
Şaka bir yana bu sıralar Unity öğrenmeye çalışıyorum ben de. Güzel uğraşlar bunlar. Tebrik ederim. ;) Konu Başlığı: Ynt: C64 assembler ve oyun yazma hikayesi Gönderen: wizofwor üzerinde Mart 31, 2023, 10:10:31 ÖÖ Eline sağlık. Çok güzel görünüyor.
Pong YZ için topun nereye gittiğini hesaplayıp raketi aynı yönde ilerletmen yeterli. Tabi bilgisayarın yenilebilir olması için tepki süresi ve hesaplama hatası eklemek gerekiyor. Şurada güzel bir örnek var: https://codeincomplete.com/articles/javascript-pong/part5/ Konu Başlığı: Ynt: C64 assembler ve oyun yazma hikayesi Gönderen: Aykiri1 üzerinde Mart 31, 2023, 11:26:21 ÖÖ tebrikler başarılarınızın devamını dilerim emeğinize sağlık
Konu Başlığı: Ynt: C64 assembler ve oyun yazma hikayesi Gönderen: metaone üzerinde Mart 31, 2023, 11:37:35 ÖÖ Çok teşekkür ederim hepinize. Bahsetmeye çalıştığım üzere bir şeyler öğrenmek üzere çıktığım yoldaki iddiasız çalışmalar diyorum ben... Ama bu yolda yalnız yürümemek için de biraz gaz vermeye çalışıyorum :) Umarım alan olur :D
Pong YZ için topun nereye gittiğini hesaplayıp raketi aynı yönde ilerletmen yeterli. Tabi bilgisayarın yenilebilir olması için tepki süresi ve hesaplama hatası eklemek gerekiyor. Buraya bakıp çalışmam lazım... Açıkçası bir deneme yapmıştım ama üzerine fazla düşemediğim için bilgisayar oyuncusu, diğer oyuncu vurduktan sonra standart olarak bulunduğu yerden topa hamle yapıyor ve kaçırmıyordu. Biraz delay verdiğimde de bariz şekilde (delay süresince) bekleyip hamle yapıyordu ama gözüme güzel görünmedi, yani karşıda bir "human player" var gibi olmadığı için vazgeçtim. Daha akıllı bir algoritma lazım, o yüzden çalışmam lazım :)Şurada güzel bir örnek var: https://codeincomplete.com/articles/javascript-pong/part5/ Konu Başlığı: Ynt: C64 assembler ve oyun yazma hikayesi Gönderen: MC_Skywalker üzerinde Mart 31, 2023, 13:26:18 ÖS Tebrikler. Ellerinize sağlık.
Konu Başlığı: Ynt: C64 assembler ve oyun yazma hikayesi Gönderen: hüseyinc64 üzerinde Nisan 02, 2023, 02:21:11 ÖÖ hocam tebrikler elinize sağlık yazıyı baştan sona büyük bir keyifle okudum c64 de assemblyde oyun yaz kod,grafik,müzik birde uğraş kendi imkanlarınla 2023 yılında paddle yap kesinlikle commodore 64 üstün hizmet madalyası takılacak birisin :D
Konu Başlığı: Ynt: C64 assembler ve oyun yazma hikayesi Gönderen: mavi yıldırım üzerinde Nisan 02, 2023, 17:35:26 ÖS tebrik ederim gerçekten güzel bir çalışma olmuş
Konu Başlığı: Ynt: C64 assembler ve oyun yazma hikayesi Gönderen: Oğuzhan üzerinde Nisan 02, 2023, 19:38:40 ÖS Bir solukta okudum. Oyunları deneyince mutlaka deneyimlerimi ve yorumlarımı paylaşacağım. Tebrik ederim.
Konu Başlığı: Ynt: C64 assembler ve oyun yazma hikayesi Gönderen: alidereli üzerinde Nisan 02, 2023, 20:40:40 ÖS @metaone bu güzel çalışmanızı tebrik ediyorum ve başarılarınızın devamını diliyorum teşekkürler.
Konu Başlığı: Ynt: C64 assembler ve oyun yazma hikayesi Gönderen: Theoden (CYON4D) üzerinde Nisan 03, 2023, 11:29:29 ÖÖ Elinize sağlık çok güzel ve keyifli bir çalışma olmuş.
Bresenham algoritmasını C64'de "lookup table" metodu ile kullanmanız çok güzel. Bu tip lookup table'lar eski bilgisayarlar ve konsollarda çok yaygın kullanılıyordu. Başlangıç olarak, tek kişilik oyun modu için yenildikçe daha az hata yapan ve daha hızlı tepki vermeye başlayan basit bir AI rutini yazabilirsiniz. AI için "finite state machine" başlığını araştırmanızı tavsiye ederim. Kendi geliştirdiğim oyunlar için tasarladığım AI oyunu kusursuz bir şekilde oynamasın diye bir "error margin" algoritması yazmıştım. Kısaca AI'ın tepki verme süresine random olarak ufak gecikmeler ve hatalar ekliyorum, bu da kusursuz bir makineye karşı değil de arada hata yapabilen bir oyuncuya karşı oynuyorsunuz hissi veriyor. Konu Başlığı: Ynt: C64 assembler ve oyun yazma hikayesi Gönderen: metaone üzerinde Nisan 03, 2023, 16:51:21 ÖS Değerli yorum ve katkılarınız için teşekkür ederim... Bu AI işine ayrıca bakacağım. Şu anda platform oyunu üzerinde çalışıyorum biraz, toparlanıyor gibi görünüyor (yani kendi çapımda yine, amatörce) ama goattracker'ı anlayıp da hem müzik hem ses efektlerini tek dosyada toparlamak için imanım gevredi. Çözdüm sonunda neyse, bakalım ne çıkacak :D
Konu Başlığı: Ynt: C64 assembler ve oyun yazma hikayesi Gönderen: Theoden (CYON4D) üzerinde Nisan 03, 2023, 23:58:12 ÖS Değerli yorum ve katkılarınız için teşekkür ederim... Bu AI işine ayrıca bakacağım. Şu anda platform oyunu üzerinde çalışıyorum biraz, toparlanıyor gibi görünüyor (yani kendi çapımda yine, amatörce) ama goattracker'ı anlayıp da hem müzik hem ses efektlerini tek dosyada toparlamak için imanım gevredi. Çözdüm sonunda neyse, bakalım ne çıkacak :D Rica ederim, platformer oyununuzu da merakla bekliyorum :) Konu Başlığı: Ynt: C64 assembler ve oyun yazma hikayesi Gönderen: ksercan5 üzerinde Nisan 04, 2023, 20:43:27 ÖS Elinize sağlık, keyifle okudum. Ben de vakit buldukça godot oyun motoru ile birşeyler yapmaya çalışıyorum. Kafa dağıtmak için en güzel şey kod yazmak, ama bazen takılınca insan çıldırıyor o başka. Zevkle takip ediyorum. Saygılar.
Konu Başlığı: Ynt: C64 assembler ve oyun yazma hikayesi Gönderen: metaone üzerinde Haziran 04, 2023, 00:14:15 ÖÖ Tekrardan selamlar. Platform oyunu bitireli oldu ama buraya yazamadım, kusura kalmayın artık. Oyunu itch.io'dan indirebilirsiniz. Grafik vs konusunda pek yetenekli olmadığım için görsellik fazla yok, amatör çalışma olarak değerlendirebilir.
https://metesev.itch.io/jumpn-crate (https://metesev.itch.io/jumpn-crate) Oyunlar ilgili birkaç da video yapmışlar, benim bir suçum yok :P https://www.youtube.com/watch?v=SXZmaV9Ppns&t=546s (https://www.youtube.com/watch?v=SXZmaV9Ppns&t=546s) https://www.youtube.com/watch?v=GCRLXPQUa6A (https://www.youtube.com/watch?v=GCRLXPQUa6A) https://www.youtube.com/watch?v=Pxf3oev6-0E (https://www.youtube.com/watch?v=Pxf3oev6-0E) Kaynak kodu da github'da, isteyen olursa bakabilir bittabii. https://github.com/metaone70 (https://github.com/metaone70) Konu Başlığı: Ynt: C64 assembler ve oyun yazma hikayesi Gönderen: witchdoktor üzerinde Haziran 04, 2023, 00:55:58 ÖÖ Ben grafikler ve tasarımı da gayet başarılı buldum. Elinize sağlık, güzel bir oyun olmuş.
Konu Başlığı: Ynt: C64 assembler ve oyun yazma hikayesi Gönderen: ercanersoy üzerinde Haziran 04, 2023, 02:18:00 ÖÖ Tebrikler. Ellerinize sağlık.
Konu Başlığı: Ynt: C64 assembler ve oyun yazma hikayesi Gönderen: Theoden (CYON4D) üzerinde Haziran 04, 2023, 02:38:56 ÖÖ Elinize sağlık çok güzel gözüküyor.
Konu Başlığı: Ynt: C64 assembler ve oyun yazma hikayesi Gönderen: fort_apocalypse üzerinde Haziran 04, 2023, 03:25:18 ÖÖ Tebrik ederim @metaone
Konu Başlığı: Ynt: C64 assembler ve oyun yazma hikayesi Gönderen: freedom üzerinde Haziran 04, 2023, 09:01:57 ÖÖ @metaone,
Tebrikler, çok başarılı bir çalışma olmuş. Yurtdışında da tanınmış olması ayrı bir gurur. Umarım bu tip çalışmalar, donanım geliştirmede olduğu gibi daha da artarak devam eder. Konu Başlığı: Ynt: C64 assembler ve oyun yazma hikayesi Gönderen: muhendis üzerinde Haziran 04, 2023, 11:58:19 ÖÖ tebrikler ellerinize emeğinize sağlık
Konu Başlığı: Ynt: C64 assembler ve oyun yazma hikayesi Gönderen: runal üzerinde Haziran 05, 2023, 07:41:04 ÖÖ @metaone,
Tebrikler gerçekten güzel bir oyun olmuş. Konu Başlığı: Ynt: C64 assembler ve oyun yazma hikayesi Gönderen: wizofwor üzerinde Haziran 05, 2023, 22:15:53 ÖS Videolardan pek anlaşılmıyor. Çok keyifli bir oyun olmuş. Herkesin denemesini tavsiye ediyorum. Tebrikler.
Kodları derlemek istediğimde "Jump'n'crate_bitmap.prg" bu dosyayı bulamıyor. Repoya ekleyebilir misin? Konu Başlığı: Ynt: C64 assembler ve oyun yazma hikayesi Gönderen: metaone üzerinde Haziran 05, 2023, 23:36:14 ÖS Değerli yorumlarınız için teşekkür ederim.
@wizofwor, hakılısın görünmüyor repo'da, yükledim dosyayı. Programcılık konusunda bu kadarlık tecrübem olduğu için repo biraz karışık olabilir, kusura bakma artık ;) Konu Başlığı: Ynt: C64 assembler ve oyun yazma hikayesi Gönderen: hüseyinc64 üzerinde Haziran 05, 2023, 23:42:39 ÖS :D@metaone
hocam grafikler gayet başarılı müzik ise harika müziğine bayıldım bir insanın tek başına uğraşıp yapmış olduğu düşünüldüğünde sonuç mükemmel diyebilirim bir sonraki çalışmanız nasıl olacak şimdiden merak ediyorum çünki her seferinde üzerine koyarak ilerliyorsunuz ne diyim LDA STA devam :D Konu Başlığı: Ynt: C64 assembler ve oyun yazma hikayesi Gönderen: wizofwor üzerinde Haziran 06, 2023, 00:41:13 ÖÖ Karakterin zıplama hareketi gözüme biraz çarpık göründü.
Jump table'ında ufak bir değişiklik yaptım. Daha iyi oldu diye düşünüyorum. Pull request yapacağım. Bitmap dosyasını bulamadığım için kaldırmıştım. Onu geri koymak için bekliyordum. Konu Başlığı: Ynt: C64 assembler ve oyun yazma hikayesi Gönderen: metaone üzerinde Haziran 06, 2023, 09:15:49 ÖÖ Karakterin zıplama hareketi gözüme biraz çarpık göründü. Jump table'ında ufak bir değişiklik yaptım. Daha iyi oldu diye düşünüyorum. Pull request yapacağım. Bitmap dosyasını bulamadığım için kaldırmıştım. Onu geri koymak için bekliyordum. Çok teşekkürler katkıların için... Bu tip "collaborative" çalışmalar ile bir şeyler yapmak da hem eğlenceli hem öğretici oluyor. Keşke yazım aşamasında böyle destek alabilseymişim :) Son durum için yalnız gözüme çarpan bir konuyu paylaşayım. Normalde oyuncunun zıplaması 4 karakter üstteki platforma kadar olmasını planlamıştım. Son jump table'da birkaç pixel'den dolayı bir üste atabiliyor. İkinci seviyede el alttan zıplarken fark ettim. Platform tasarımı itibariyle fazla yükseğe zıplamış oluyor gibi. Ama bir bakabilirsen sevinirim, yani hem zıplama hareketini daha iyi yapıp hem de birkaç pixel aşağıda tutacak şekilde olabiliyor mu acaba? Konu Başlığı: Ynt: C64 assembler ve oyun yazma hikayesi Gönderen: wizofwor üzerinde Haziran 06, 2023, 09:19:18 ÖÖ Bakarım ama yüksekliği değiştirmedim. Sadece $03'lerin sayısını bir arttırdım. Sondaki $01'leri bir eksilttim. Onu da kendim hesaplamadım. Başka bir oyunun jump table'ına bakarak yaptım.
Konu Başlığı: Ynt: C64 assembler ve oyun yazma hikayesi Gönderen: ekenciz üzerinde Haziran 06, 2023, 10:04:15 ÖÖ Oyun grafik ve ses olarak çok kaliteli, hiç de öyle amatör işi denecek bir şey değil. Siz amatörce başlamış olabilirsiniz ama bunun gibi bir sür oyunun ve hatta yanına yaklaşamayacak kalitede oyunların döneminde ticari olarak satıldığını düşünürsek sizi çabanıza amatör demek büyük haksızlık olur. Tebrik ederim. Elinize sağlık.
Konu Başlığı: Ynt: C64 assembler ve oyun yazma hikayesi Gönderen: wizofwor üzerinde Haziran 09, 2023, 09:58:58 ÖÖ İkinci pull request'i gönderdim.
Jump table'ı compile time hesaplanacak şekilde değiştirdim. Eski versiyonda toplam yükseklik 31px imiş. Ona denk getirince istediğin gibi oldu sanıyorum. Programlama pratiği açısından bu kadar oluyor dediğin seviye gayet yeterli bence. Ben de yazılımcı değilim hobi olarak uğraşıyorum sadece. Gayet nitelikli bir çalışma. Teknikler gayet düzgün şekilde implemente edilmiş. Temiz kod olmasa değişiklileri yapamazdım zaten. Repo'yu da düzenleyebilirim aslında. Şimdilik commitler fazla dağılmasın diye elimi sürmedim. Şu anda yapılabilecek baştaki splash imajın iyileştirmesi olabilir. Bir de bir AI sıkıntısı gördüm. Eğer hareket etmezsen robot sana yapışıyor ve ölene kadar bırakmıyor. Bir süre sonra ayrılması lazım. Veya belli bir süre sonra hala kaçmıyorsan hızlı bir şekilde öldürebilir. Konu Başlığı: Ynt: C64 assembler ve oyun yazma hikayesi Gönderen: metaone üzerinde Haziran 09, 2023, 12:16:42 ÖS İkinci pull request'i gönderdim. Jump table'ı compile time hesaplanacak şekilde değiştirdim. Eski versiyonda toplam yükseklik 31px imiş. Ona denk getirince istediğin gibi oldu sanıyorum. Programlama pratiği açısından bu kadar oluyor dediğin seviye gayet yeterli bence. Ben de yazılımcı değilim hobi olarak uğraşıyorum sadece. Gayet nitelikli bir çalışma. Teknikler gayet düzgün şekilde implemente edilmiş. Temiz kod olmasa değişiklileri yapamazdım zaten. Repo'yu da düzenleyebilirim aslında. Şimdilik commitler fazla dağılmasın diye elimi sürmedim. Şu anda yapılabilecek baştaki splash imajın iyileştirmesi olabilir. Bir de bir AI sıkıntısı gördüm. Eğer hareket etmezsen robot sana yapışıyor ve ölene kadar bırakmıyor. Bir süre sonra ayrılması lazım. Veya belli bir süre sonra hala kaçmıyorsan hızlı bir şekilde öldürebilir. Öncelikle ilgilendiğin için teşekkür ederim :) Benim de hep istediğim bir şeydi bu, yanlış olan veya daha iyi yapılabilecek şeyler varsa paylaşılması. İlave olarak da bir şeyler yapmak isteyenlerin buradan bir şeyler alması, öğrenmesi (benim diğerlerine bakarak da öğrendiklerim gibi). Splash imajına bakalım: Keşke pixelart vs gibi şeyler becerebilsem, bu konuda çok güzel çalışmalar yapıyorlar, gıpta ile bakıyorum. Ben anca biryerlerden aldığım resimleri orantılayıp falan 8-bit'e çevirip adapte ediyorum. Daha iyi bir "art" olsa süper olur tabi. AI'a gelince: Aslında yapışma meselesini kasten yaptım, sebebine gelince: Bu "fast paced" bir oyun, sakin bir yerde dursan bile tek bir bar olan zaman çubuğu (hem zaman hem hak -life- olan) azalıyor, dolayısıyla bu oyunu bitirebilmek için durmamak ve doğru strateji ile çok hızlı hareket etmek gerekiyor. Bu sebepten her halükarda oyuncunun bu yapışmaya meyilli robottan kaçması mutlak şart. Zaten asıl amaç en uzun rota olan zeminde oyuncuyu rahat hareket ettirmemek, bu yüzden yapışan sadece en alttaki olarak yapmıştım. Ama her şeye rağmen birkaç saniyeden sonra eski rotasına dönmesi de sağlanabilir. İstersen bundan sonrakileri repo'da ayrı bir yere koyup (ve versiyon arttırıp) devam ettirebiliriz. Desteğin için tekrardan teşekkürler ;D Konu Başlığı: Ynt: C64 assembler ve oyun yazma hikayesi Gönderen: wizofwor üzerinde Haziran 09, 2023, 14:02:00 ÖS Versiyonlamayı git kendi içinde yapıyor. Eğer farklı bir dosya adı verirsem bu sefer değişiklikleri yakalayamayacak. Tabi belli aşamalarda eski dosya checkpoint gibi ayrı bir klasöre alınabilir veya projenin o anki durumu komple ayrı bir fork olarak saklanabilir.
Bununla ilgili yazılımcı arkadaşlar tavsiye verirse sevinirim. Konu Başlığı: Ynt: C64 assembler ve oyun yazma hikayesi Gönderen: wizofwor üzerinde Haziran 27, 2023, 03:12:22 ÖÖ Son bir pull request gönderdim.
Açılış resmini biraz iyileştirmeye ve repoyu da biraz düzenlemeye çalıştım. Konu Başlığı: Ynt: C64 assembler ve oyun yazma hikayesi Gönderen: metaone üzerinde Haziran 27, 2023, 11:25:13 ÖÖ Son bir pull request gönderdim. Açılış resmini biraz iyileştirmeye ve repoyu da biraz düzenlemeye çalıştım. Çok teşekkürler :) İstanbul dışındayım, dönünce bakacağım… |