arda tarafından yazılmış tüm yazılar

Blackstar – Richy Pitch (Sinclair Zx Spectrum Video)

Richy Pitch yıllar önce bir spectrum oyunu yazmış eski bir wannabe-programcı. Daha sonra müziğe yönelmiş ve yeni single’ının klibinin Zx Spectrum temalı olmasını istemiş. Bunun için Tom Jackson (RamJam) iş başına geçmiş ve şaşırtıcı derecede özüne sadık kalan, (elbette hafif esnetilmiş) bir video klip ortaya çıkmış.

Video’da zx spectrum’un klasik oyunlarına da göndermeler var. Bunlardan farkedebildiklerimiz şunlar:

Robot Messiah
(İLk başta kaldırımda yürüyor)
Daley Thompson’s Decathlon (koşan adamlar)
Bomb Jack (Binalar, P kapsülü, Koni şeklindeki düşmanlar ve kuş)
Scuba Dive(Balıklar, ahtapot, deniz kabukları)
Race Against Time (Taç mahal, özgürlük heykeli)
Death Wish 3 (Kadın, yaralı düşman, doktor)
Renegade (gökyüzü ve bazı düşmanlar)
Vigilante (Döküntü arka planlar)
Dizzy (Açılıştaki taşlar kayalar)
The muncher (ağaçlar)

Bu Bruno baştaki yükleme kısmındaki programı dekode etmeyi başardı, yüklenen program gerçekten bir loader:
10 BORDER 0 : PAPER 0 : INK 0 : CLEAR 24999 : POKE 23739,111 : LOAD “” SCREEN$ : LOAD “” CODE : POKE 23739,244 : PAUSE 0 : RANDOMIZE USR 50896

Diğer kısmın ise bir Alcatraz protection loader olduğunu zannediyoruz (data içinde “1986 Appleby Associates
James Wood, Antony Dunmore & John Bayliffe”) yazıyor. (Colosseum ve Legend of Kage’den alınma olabilir bu blok)

Son olarak bu videoyu yüksek kalitede download etmek isterseniz:
Download Blackstar – Richy Pitch HI-Q FLV Video 40MB (Ya da MegaUpload Mirror)

Daha buldukça yorum olarak eklerim…

Frontier First Encounters

İlk karşılaşma

Bu blog’u yeni yetişen bilgisayar oyuncularının da ara sıra takip ettiğini biliyorum. Bugün unutmadan, bu kitleye eski bir fenomeni anlatma kararı aldım.

(ps. Bu makale karalama şeklinde yazıldığı için imla hataları ve cümle düşüklükleri bulunabilir. Zaman içinde makale geliştirilecektir. Ayda bir kontrol etmenizi tavsiye ederim.)

Neyse, buyrun okuyun:
Frontier First Encounters yazısına devam et

Adidas ZX Spectrum’dan esinlenerek ayakkabı yapmış

Adidas yeni koşu serisi ayakkabılarını ZX serisi olarak adlandırmış. 8bit havası verilmiş bir reklamı da var.

Buyrun Adidas Zx Rainbow 500 modelide böyle:

Acaba bu model Türkiye’ye gelebilir mi?

Arkadaşım Alco bunları Photoshop ya da Fan made gibi birşey sanmış, hayır, bu ayakkabı alenen satılmaktadır, fiyatı da 65 sterlindir:

http://www.offspring.co.uk/perl/go.pl/style.htm?style_uid=5754&color_uid=16895

(alacaksanız çabuk olun sınırlı sayıda üretilmiş, çabucak bitecek)

**edit:
Adidas bu ayakkabılarının dilinin içine özel bir barkod yerleştirmiş, eğer adidas sitesindeki özel sayfaya gidip ayakkabıyı bir webcam’e tutarsanız, özel bir sayfaya yönlendiriliyorsunuz ve size özel bir oyun oynuyorsunuz!

Bu konudaki haberlere “Adidas Originals AR code” kelimeleriyle arama yaparsanız ulaşabilirsiniz.

Z80 assembly

z80 çok yaygın bir işlemci. Z80’in komut seti ile bugün kullandığımız pentium/coreduo gibi modern işlemcilerin temel komut seti de birbirine uyumlu olduğu için z80 öğrenenler modern işlemcilerin assembler’larına da kolay yoldan ısınmış oluyorlar. Sonuçta Z80 makine dilini öğrenmek karlı bir iş.

Neyse konuya gelirsek, Jonathan Claudwell’in her satırını yorumladığı giriş seviyesindeki golf oyunu z80 ile uğraşanlar için faydalı olabilir:
http://members.fortunecity.com/jonathan6/egghead/id2.html

Herşeyin başlangıcı: Manic Miner

Matthew Smith ile klasik platform oyunu Manic Miner üzerine uzun bir sohbet.

Topla ve atla türü platform oyunlarının atası Manic Miner’ın her ekranını tek tek anlattığı RetroGamer makalesini unutmadan okumalı:
http://www.nowgamer.com/features/556/the-making-of-manic-miner

Birde unutmadan, Matt Smith uzun bir süre ortalıktan kaybolmuştu. 2009’a kadar aylak aylak gezmiş ve gözlerden uzakta kalmış (bu bir tercih değil herhalde, onu arayan soran yoktu, parası pulu da yok zaten). Nihayet son zamanlarda Hollanda’dan tekrar Liverpool’a dönmüş. Tahminen 8bit gençliğinin para kazanmaya başlamasıyla, onların köklerine bakma, mümkünse ovum’a geri girme çabaları sayesinde retro computing diye birşey hortlayınca Matt de tekrar göz önüne çıktı. İyi ki de çıkmış, youtube’daki söyleşilerinde bana acaip eğlenceli bir adam gibi geldi…

“Miner 2049er” hakkında konuştuğu kısımda beni çok güldürdüler 😀 3:40 civarı.

Purebasic denemesi, bir küçük intro

Purebasic yıllardır duyduğum ama bir türlü denemeye fırsat bulamadığım bir programlama dili. Öveni çok olurdu, başta “Windows, Linux, MacOS ve Amiga üzerinde derleme yapabiliyorsunuz”, sonra “sade ve basit”, “güzel bir IDE’si var” denirdi.

Son haftalarda public chat kanalımız #retrojen’de yatu nickli arkadaşımızın basic programlama denemeleri yapması bana PureBasic’i tekrar hatırlatmıştı. Bu hafta sonu ise, sohbet ederken 64bit derleyiciler konusunda konuşmaya başladık ve yorganın altından yine purebasic çıktı. Eh madem x64 derleyicisi de var, bir deneyelim bakalım yetti canıma dedim, neymiş bu pb:
Hemen indirdim ve hello world yazmaya koyuldum. Helloworld düşündüğümden de basit çıktığı için **MessageRequester(“Message Box”, “Hello World”)** bir scroller yazmaya başladım. Doğrusu purebasic’in antikalıkları sayesinde yarım saatte bitecek iş 4 saatimi aldı. Öncelikle alpha kanalı olan bir bitmap’i cropladığınızda alpha’sı gidiyor. Bu durumda fontların arka planları siyah bloklara dönüştüğü için keyfim kaçtı. 1-2 saat bunu yapmanın yöntemini aradım internet üzerinde. Malsef bu kadar popüler bir basic varyasyonunun nette neredeyse hiç (google’da çıkmadı valla) örnek kodu bulunmuyor. Kısa, genelde bir paragrafı geçmeyen, çok yüzeysel açıklamalarla yetinmek zorundasınız. Bence purebasic’in en büyük problemi burda. Yıllardır geliştirilen (dikkat: 10 yıl) bir programlama dilinin bu kadar komik dökümantasyona sahip olması üzücü.

Neyse sonuçta problemleri dededen kalma yöntemlerle çözerek yola devam edince, bir Basic türevi olarak gayet hızlı çalıştığını gördüm. Görünüş olarak bayağı ilkel görünüyor, hafif bir 16 bit havası bile var denebilir 😀 Dökümante edilmemiş acaip kısıtlamaları da var. Ama bence yeni başlayanlar için işe yarayabilir. Object Oriented (Obje yönelimli) değil, bayağı oldschool, procedure oriented, çocukluğunda 8bit bilgisayarında basic kullanmış olanlar için aynı tadı 64bitte yaşamalarını sağlıyor.

Belki de en güzel yanı dağıtım şekli, bilmiyorum sizde çalışacak mı ama, build exe komutu verince, her kütüphanesi içinde bir exe yaratıyor, hiçbir dış DLL’e ihtiyaç duymuyorsunuz.

Neyse sonuç olarak, ilk purebasic denemem, modern basic’lere pek benzemiyor, ama sonuç olarak 4 saatte aşağıdakini yapabildim, pure basic’in iyi mi kötü mü olduğu konusundaki takdir sizin:

Purebasic Intro: 750kb
(dikkat müzik araklamadır (andromeda/playboy), diğer herşey, intronun yazımı sırasında kendi pc’imde yaratılmıştır)

ilk purebasic denemesi başlıyor:
[13.02][23:09] ref_ scroller kasayım şimdi
[13.02][23:09] ragnor_ 🙂
[13.02][23:09] ragnor_ aha çıkıyo intro

son rötuşlar, çalma çırpma bir müzik:
[14.02][01:56] ref_ bu xm arşivi nerdeydi yav?
[14.02][02:04] ref_ neyse chiptune’den aldım bitane

Bu bir scene release değildir, denemedir!

Sonuç: Purebasic, aşamadığınız limitasyonları olan bir basic türevi. Ama bu yazdığım kesinlikle hiçbir optimizasyondan geçmemiş, aksine savruk ve mektup yazar gibi baştan sona dümdüz kodladığım intronun çalışma hızı beni etkiledi. Ayrıca debugger’ında profiling gibi çok önemli özellikleri de var. Bilmiyorum kime yarar ama Inline assembler da destekliyor. İleride birkaç küçük program deneyebilirim üzerinde. Eğer faydalı bulursam da register edeceğimden eminim. Demo versionu WinAPI kullanmaya izin vermiyor, ama bu introda benim ihtiyacım olmadı. Büyük olaslılıkla ciddi birşey yapmaya kalkarsak registered version gerekecektir.

Sırada Freebasic ve BlitzMAX var. Seneye artık. Bu yıllık basic hakkımı Sinclair Basic için kullanacağım 😀

Bresenham ve Xiaolin Wu

Kodlamaya meraklı olanlar zaten bilirler, lakin ben sıkça unutuyorum iki nokta arasına doğru bir çizgi çekmenin yöntemini.

Bresenham bu işi en hızlı yapan en eski adam, Xiaolin Wu ise bresenham’ın algoritmasını geliştirip antialias ekleyen adam.

Ben genellikle oyun yazımı sırasında sprite’ın düz bir doğrultuda istediğim noktaya ulaşmasını bresenham’ın yöntemini kullanarak yapardım. Son zamanlarda bezier curve’lar kullanarak işi birazcık daha “tuhaf”hale getirdiğimi söyleyebilirim. Ama mütemadiyen ihtiyaç duyacağım bir kod olduğu için buraya yazayım, ilerde yine unuttuğumda buraya bakarım.

Bresenham’s line algorithm ve Xiaolin_Wu’s line algorithm

Eğer Bresenham’ın algoritmasını Sinclair Basic üzerinde denemek istiyorsanız kodu uyarladım, buyrun okuyun:Bu kod 110 numaralı satırdan başlar ve x0,y0-x1,y1 girdilerini alır, burada 20 numaralı satırda kordinatlar rastgele hazırlanıyor, 250 numaralı satırda da başa dönüyoruz.

20 LET x0=RND*256: LET x1=RND*256: LET y1=RND*170: LET y0=RND*170
110 REM line draw function
120 LET steep=ABS (y1-y0)>ABS (x1-x0)
130 IF steep THEN LET xb=x0: LET x0=y0: LET y0=xb: LET xb=x1: LET x1=y1: LET y1=xb
140 IF x0>x1 THEN LET xb=x0: LET x0=x1: LET x1=xb: LET xb=y1: LET y1=y0: LET y0=xb
150 LET dx=x1-x0
160 LET dy=ABS (y1-y0)
170 LET e=dx/2
180 LET y=y0
185 LET ystep=-1
190 IF y0<y1 THEN LET ystep=1
200 FOR x=x0 TO x1
210 IF steep THEN PLOT y,x: GO TO 220
215 PLOT x,y
220 LET e=e-dy
230 IF e<0 THEN LET y=y+ystep: LET e=e+dx
240 NEXT x
250 GO TO 20

eğer yukarıdaki version çalışmıyorsa, sayfa kaynağını açarak aşağıdan copy etmeyi deneyin:

20 LET x0=RND*256: LET x1=RND*256: LET y1=RND*170: LET y0=RND*170
110 REM line draw function
120 LET steep=ABS (y1-y0)>ABS (x1-x0)
130 IF steep THEN LET xb=x0: LET x0=y0: LET y0=xb: LET xb=x1: LET x1=y1: LET y1=xb
140 IF x0>x1 THEN LET xb=x0: LET x0=x1: LET x1=xb: LET xb=y1: LET y1=y0: LET y0=xb
150 LET dx=x1-x0
160 LET dy=ABS (y1-y0)
170 LET e=dx/2
180 LET y=y0
185 LET ystep=-1
190 IF y0

BREAKPOINT 2010!

Ve zamanın sonu geldi. Breakpoint bitiyor. Bu yıl, bilgisayar meraklılarını tarihlerinde yarattığı en kaliteli sanat ürünü olan “demo”ların yarışacağı dijital sanat festivaline elveda diyoruz. Gittikçe küçüldüğü ve anlamını yitirdiği için, büyük olasılıkla uzun yıllar boyunca (belki bir daha hiç) bu kadar büyüğünü *ve* özgününü yapamayacak olan demoscene, BreakPoint adı altında son kez bir araya geliyor.

Buna da bir çift lafım var (olmasa şaşardım zaten -ed):Scene sıkıntı bir dönem geçiriyor, belki de tarihinin en sıkıntılı dönemlerini geçiriyor. Eminim benimle hemfikir olmayanlar olacaktır ve belki de bazıları gaflet, dalalet ve belki de hıyanet içine düşerek Assembly, Nvision ya da the Gathering gibi alakasız oluşumları işaret edecektir. Sonuç olarak farbrausch’un neden çok uluslu sermayeye benzediğini ve scene’i yok ettiğini göremeyeceklerdir.

Neden breakpoint bu kadar önemli?

Keiser geziye çıkmadan önce, “Bütün kuş beyinli uyruklarını yıkanmış paklanmış olarak” görsün diye habercileri almanyanın dört bir yanına salarmış, fakat keiser’ın buyruklarına göre düzenlenmiş uydurma bir hayatı yaşamaktansa kendi oyunarını sürdürmek isteyen çocuklar direnir, yıkanmak istemezlermiş.

Lakin dangozlarla dolu da olsa Scene, aynı zamanda bilgisayar dünyasının çocuklarından oluşmaktadır. Herşeye karşı durmuş, arada korsanlığa bulaşsa da kendini çok ama çok güzel aklayabilmiştir. Sonuçta scene, başından beri, gençlerin zengin olduğu, çakallıkla milletin hakkını gasp eden birşey olmadığını, tam aksine önlerine konmuş oyuncakla oyalanıp keiser’in sözünü dinlemesi beklenen çocukları kolayca kandıramayacaklarını göstermek için direnenlerden oluşmaktadır. Bugün demoscene, bilgisayarla uyutulmaya çalışan bir neslin zincirlerini kırma çabasıdır. Breakpoint ise diğer karma partilerin haricinde en büyük pirüpak demoscene olayıdır.

Ve bu katıksız demo scene şenliği, bilgisayar dünyasının en eski, en akıllı, en çalışkan ve en manyak bireylerini son kez bir araya getirecek. Gelmeyen varsa el kaldırsın!


Scene hypnotoad gibi, bir yakalanan bir daha çıkamıyor!

Global Game Jam 2010 tamamlandı…

GGJ Türkiye ayağı Odtü Metutech/ATOM işbirliği tamamladı. Odtü Enformatik binasında yapılan organizasyona arkadaşımız Ragnor’da katılımcılardan biriydi.

Dünya çapında, birçok ülkede aynı anda yapılan ve iki gün süren organizasyon sonucunda onlarca hatta yüzlerce oyun yazıldı (çizildi, çalındı). Müzisyenler, grafikerler ve programcıların bir araya geldiği merkezde türk oyun endüstrisinin ilk adımları atılmaya çalışılıyor, bir taraftan eğleniliyor.

GGJ 2010’da Türkiyede yapılan oyunların listesine aşağıdan ulaşaiblirsiniz:

http://www.globalgamejam.org/games?tid[]=486&title=&tid_1=

Wizards & Viruses’i tavsiye ederim!

İstanbulda da yapılsa biz de katılsak…

Dobişko’nun hayaletleri…

Kaç yaşındaydım bilmiyorum, 5, 6 yoksa 7 mi? 80’lerin başıydı orası kesin. “Atari” salonlarında bütün avcunuzu dolduracak kadar kocaman olan jetonları alır, onları makineye atardık. Sonra köşede bir ışık yanar ve süremiz başlardı. O zamanlar bizim oralara “arcade” dediğimiz tek oyun oynatan kabinler yerine, “çakma arcade” diyebileceğimiz, içinde bir televizyon ve hemen altında bir atari2600 olan, joystick’i bir zamanlayıcıya bağlı kabinler olurdu. Zamanlayıcı dolduğunda artık joystick ve düğme çalışmazdı, ama oyun sürerdi.

Benim maceram “dobişko” ile başladı. Jetonumun süresi bittiğinde, altta dizdiğim bir sürü “hak” olmasına karşın hayaletlerin salına salına dobişkoya ulaşarak onu patlatmalarını izlemekten başka birşey kalmazdı. Sırada başka biri varsa beklemek istemediği için “fatih abi”ye bağırır, o da hafifçe arkaya uzanarak reset düğmesine basardı.

Dobişko ile ilgili bu acıklı anılarımın devamında yıllar sonra yaptığım bir pac-man klonu vardır. 80’lerin sonlarına gelmiş ve amigalanmış olsak da ara sıra eski spectrumumu açıp basic ile programlar yapmaya devam ederdim. Bunlardan birinde ilk göz ağrım dobişkoyu yeniden yapmaya kalkmıştım, ve bir şekilde başardığıma inanıyorum. Sonuçta ortada oynanabilir bir pacman kopyası olmuştu. O zaman farkettiğim şey şuydu, eğer tüm hayaletler aynı algoritmayı kullanırsa bir süre sonra kaçınılmaz şekilde üst üste biniyorlardı, mecburen her hayalet için başka bir hesap yaptırmak zorunda kalmıştım. Yıllar sonra pacman’deki hayaletlerin her birinin başka bir kurallar dizini izlediğini okuduğumda kendi adıma çok mutlu olmuştum!

Yıllar yılalr geçtikten sonra, beni spectrumda yeni bir pacman serüvenine başlatacak bir makaleye denk geldim. Nihayet pac-man bütün gizlerini ortaya sermişti, hatta z80 tabanlı kaynak kodu da mevcut. Acaba kaç yılda bu kodu zx spectrum’a uyarlayabilirim? 10? 20? Umarım hem benim hem de speccy’nin kondansatörleri bu süreye dayanırlar.

unutmadan, buyrun makale:
http://www.gamasutra.com/view/feature/3938/the_pacman_dossier.php?page=7

Pac-man’in tam “disassembly”si (kaynak verisinin assembler koduna çevrilmiş hali):
http://cubeman.org/arcade-source/pacman.asm