Gönderen Konu: Pitfall II - remake  (Okunma sayısı 39256 defa)

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

Çevrimdışı Pe@ceR

  • RAAT
  • Tedavideki Retromanik
  • *
  • İleti: 321
Pitfall II - remake
« : 09 Ekim 2013, 19:05:25 »
http://www.blitzbasic.com/codearcs/codearcs.php?code=1224

Oric için Atari 2600'ün Pitfall oyununun remake'i için uğraşıyorum bu sıralar. Orijinal Pitfall'ın program koduna ulaştım ve oradan karakter ve sesleri kırparak Oric'e uyarlamaya uğraşıyorum.

Bu arada pitfall'dan çok daha detaylı ve eğlenceli bir oyun olan Pitfall-II nin basic ile yapılmış bir remake'ini buldum PC için ve hayran oldum. Birebir kalitede ve emulatör değil direkt yeniden yazılım şeklinde olan oyunu da sizlerle paylaşmak istedim.

Yukarıda verdiğim linkte bu remake'in basic kaynak kodu, tüm ses ve grafik dosyaları mevcut.

Pitfall 2 oyunu ile ilgili şahsi hikayem de ilginçtir. 12-13 yaşlarında iken mahalle aralarında açılan "atarici"lerde bu oyunu "koşan adam" olarak oynardık ve "dobişko"-pacman ve "uçaklı oyun" river raid ile birlikte en çok harçlığımı yiyen oyundu.

Ancak yaş kemale erip 30 küsurlu yaşlara geldiğimde oyunla ilgili aklımda sadece meşhur melodisi kalmıştı. Atari oyunlarını emulatörlerde oynaya oynaya binlerce oyun içinde "koşan adam"a uyar bir oyun olarak hiç bulamıyordum. Uzun aramalar sonrasında hatırımda kalan melodisi ile birlikte koşan adam'ın aslında pitfall-II olduğunu bulup yıllar sonra  oynamak da büyük keyif olmuştu.

Şimdi emulatörle uğraşmadan PC üzerinde oynamak istiyorsanız yukarıdaki sayfadan kodlarına ya da aşağıdan oyuna ulaşmanız mümkün.
http://www.classic-retro-games.com/leave.php?id=309

Pitfall 2 100% Speedrun



Çevrimdışı Ref

  • Yönetici
  • Özgür Retrocu
  • *
  • İleti: 2866
  • Advanced User Simulator
    • ae unutmadan
Ynt: Pitfall II - remake
« Yanıtla #1 : 09 Ekim 2013, 23:46:57 »
valla atari2600 oyunları beni bayağı şaşırtıyor. Lakin 2600'ün teknolojisi biraz uçuk. Mesela çözünürlük diye birşey yok :) Aynı şey ses için de geçerli. Teorik olarak bayağı çılgınca grafik işleri yapılabilir. Bazı denemeler elbetteki scene'de bulunabilir fakat bence henüz son noktaya ulaşılmış değil.

TRSI & Digital Sounds System & Crest - aTaRSI (2013) Atari VCS


Doctor by Trilobit

Fakat makinenin acaip yapısı sebebiyle, kod okuyarak başka bir platforma kopyasını çıkarmak mümkün değil. Grafikler tuhaf çizildiği için (buffer yok, grafikler TV ışınını takip ederek yapılıyor) kodlama pratikleri beklediğimizden farklı. Yıllardır river raid'in koduna ara sıra açar bakarım, "belki bu sefer birşey anlarım" diye. Henüz o kodu zx spectruma çevirecek ilham gelmedi :D

Son olarak, sana bol şans diliyorum, ayrıca kolay gelsin. Yardım lazım olursa da bize haberdar edersin :P Düşününce burada çok sıkı 6502'ciler var ama, pek uğramıyorlar son zamanlarda...

Çevrimdışı Pe@ceR

  • RAAT
  • Tedavideki Retromanik
  • *
  • İleti: 321
Ynt: Pitfall II - remake
« Yanıtla #2 : 10 Ekim 2013, 01:03:37 »
Assembly kısmını kotarmak kolay değil o kısımlarla kendim uğraşacağım da oyuncu karakter grafikleri, ses efektleri ve bazı datalar işime yarayacak.

Ses datasını kullanarak Oric üzerinden aşağıdaki videodaki gibi sesleri üç aşağı beş yukarı elde etmeyi başardım mesela :)

Oric Pitfall Sounds

Çevrimdışı Ref

  • Yönetici
  • Özgür Retrocu
  • *
  • İleti: 2866
  • Advanced User Simulator
    • ae unutmadan
Ynt: Pitfall II - remake
« Yanıtla #3 : 10 Ekim 2013, 01:41:49 »
Hiç fena değil, güzel olmuş :) Ama ses denemelerini basic ile yapıyorsan asm'ye geçince aynı sesleri üretmek için biraz zorlanacaksın gibi geliyor bana :D

diğer taraftan videolar arasında Oric Raid'i gördüm, sen onu neden gizliyorsun bizden :) Süper olmuş :) Ama henüz oyun mantık işlemleri yok gibi görünüyor. Çarpışmalar falan hesaplanmıyor anlaşılan. Basic mi o kod?

Çevrimdışı Pe@ceR

  • RAAT
  • Tedavideki Retromanik
  • *
  • İleti: 321
Ynt: Pitfall II - remake
« Yanıtla #4 : 10 Ekim 2013, 08:26:26 »
Yoo niye sakliim :D http://retrojen.org/pano/index.php?topic=405.msg3049#msg3049 burada vermiştim hatta :)

Oric raid çook eski bir projemdi. Basic-makine dili karışık. Çoğunlukla makine kodu, scroll, ekranın çizimi, uçağın hareketi falan hepsi makine dilinde yazdıydım. Ekranın kaymasından etkilenip titremeyen güzel bir scroll olduydu. Dediğin gibi herhangi bir çarpışma şu bu yok. Onları katınca ne akdar oynanılaiblir olur tartışılır çünkü text modunda kayma olduğu için bit-bit değil her seferinde 8 bitlik bir kayma olduğundan kontrolü çok zor olacaktı.

Pitfallın sesleri ise makine dilinde de olsa aynı mantık geçerli ama genelde ana şablonu basic'te tutup grafikle ilgili durumlarda işleri hızlandırmak için makine dilinden destek aldığımdan sıkıntı olmaz :) Sesi de makine diline atsam olur çünkü makine dilinde oric'de ses çıkarmak kolay. Veriler de zaten direkt ses pitch değerleri. 

Çevrimdışı Ref

  • Yönetici
  • Özgür Retrocu
  • *
  • İleti: 2866
  • Advanced User Simulator
    • ae unutmadan
Ynt: Pitfall II - remake
« Yanıtla #5 : 10 Ekim 2013, 23:41:18 »
Hangi başlığa devam etsem bilemedim, o mesajını ben görmemişim herhalde. Yoksa benim bir River Raid denemesini yok saymam mümkün değil :D

Aslında bizim makinelerde zor olan yanlamasına kaydırma. Diklemesine kaydırma nispeten kolay oluyor. Eğer yanlamasına olacak ise de, pre-shifted sprite'lar tutuyorsun. Bu yönten diklemesine de işe yarar.

Örneğin, uçağını ya da gemileri her seferinde 2 pixel aşağı oynatmak için bit kaydırma işlemi yapmak yerine, önceden kaydırılmış hallerini ram'de bir tablo halinde tutuyorsun, çizim yaparken ayrıca bit shift işlemi yapmamış oluyorsun, "hazır burda kaydırılmışı var" diyip ordan kullanıyorsun. Böylece istediğin yöne ucuz bir kaydırma yapmış oluyorsun. Fakat çok farklı grafik var ise ram yetmeyebilir. River raid gibi toplam 3 çeşit düşman olan bir oyun için hiç sorun olmaz. Eğer Oric'de fontları yeniden düzenleyebiliyorsan Basic ile bile yapılabilir. Her 8 farklı fontta hazır kaydırılmış grafikleri tutarsın, sonra her frame'de fontu değiştirip basarsın. 1 pixel scrolling bile olur :)

Çevrimdışı Pe@ceR

  • RAAT
  • Tedavideki Retromanik
  • *
  • İleti: 321
Ynt: Pitfall II - remake
« Yanıtla #6 : 11 Ekim 2013, 08:37:08 »
Diğer başlıktaki (yumuşak geçişli scroll) elemanın yaptığı tam ekran scroll denemesi tam da dediğin şekilde işleniyordu. Yani adam text modunda bütün haritayı sabit tutup ekrandaki karakterlerin / fontların ramdeki görüntü verilerini değiştirerek hareketi sağlıyordu.

Ama sadece uçak ya da gemileri değil ekrandaki diğer objeleri de kaydırmak gerek. Yan taraftaki binalar, köprüler v.b....

HIRES modda makine dili ile ekrandaki her şeyi 1 bit yana ya da aşağı kaydırmayı bile denemiştim makine dili ile ki imkansız tabi. Yani imkanlı da o kadar yavaş oluyor ki.

Sırf bu yüzden oric-raid'i en azından şimdilik rafa kaldırdım :)

Pitfall için ise scroll'a gerek yok. Ekranları oluşturmak kafi. Onu da her seferinde çizmek yerine ihtimal dahilindeki her ekranı orijinal oyundan birebir screenshot alıp oric'e aktarmak ve yeniden düzenlemek daha kolayıma geldi.

Örneğin şöyle bir ekran demosu hazırladım;

Oric pitfall

Bunun gibi oyuna dahil olan ekranları tek tek hazırlayıp harry her ekran değiştirdiğinde random olarak bir ekran yüklenecek şeklinde olacak. Görüntüdeki ekrandaki temizliği tam yapmadım. Sadece gerçek oyundan oric'e aktarıp renkleri düzenledim. Ekran çözünürlüğü değişikliğinden dolayı piksel kirlenmeleri var onlar düzelir. Görüntü çok daha netleştirilebilir.

Çevrimdışı Pe@ceR

  • RAAT
  • Tedavideki Retromanik
  • *
  • İleti: 321
Ynt: Pitfall II - remake
« Yanıtla #7 : 13 Ekim 2013, 00:07:37 »
Oric Pitfall ekranı biraz daha düzelttim :)

Çevrimdışı Ref

  • Yönetici
  • Özgür Retrocu
  • *
  • İleti: 2866
  • Advanced User Simulator
    • ae unutmadan
Ynt: Pitfall II - remake
« Yanıtla #8 : 13 Ekim 2013, 01:19:59 »
iyi güzel de, bu kadar ekranı bitmap halde nasıl ram'e sığdıracaksın?

Çevrimdışı Pe@ceR

  • RAAT
  • Tedavideki Retromanik
  • *
  • İleti: 321
Ynt: Pitfall II - remake
« Yanıtla #9 : 13 Ekim 2013, 02:01:44 »
Aynı anda ram'de tutmayacağım ki. disketten yükleme hızı çok iyi. Disketten yüklerim.

Ayrıca aslında çok fazla ekran alternatifi de yok. Oyun farklı çok az alternatif ekrandan oluşuyor.

- Ağaçtan ipin sarktığı ekran
- Yolun ortasında gölün açılıp kapandığı ekran
- Aşağıda merdivenle inilip akreple karşılaşılan ekranlar

Aklıma daha da fazlası gelmiyor. Oyun bu ekranları random olarak getiriyor. Arada yuvarlanan tomruklar geliyor. Yerinde sabit duran yılan ve bir de hazine / yüzük var bazı ekranlarda. Bunlar da random olarak eklenebilir.

Pitfall II desen asla mümkün değil tabi tek tek uğraşmak. Çok geniş bir haritası var ama pitfall çok basit ikincinin yanında.

Çevrimdışı Ref

  • Yönetici
  • Özgür Retrocu
  • *
  • İleti: 2866
  • Advanced User Simulator
    • ae unutmadan
Ynt: Pitfall II - remake
« Yanıtla #10 : 13 Ekim 2013, 03:19:04 »
Aynı anda ram'de tutmayacağım ki. disketten yükleme hızı çok iyi. Disketten yüklerim.

Ayrıca aslında çok fazla ekran alternatifi de yok. Oyun farklı çok az alternatif ekrandan oluşuyor.

- Ağaçtan ipin sarktığı ekran
- Yolun ortasında gölün açılıp kapandığı ekran
- Aşağıda merdivenle inilip akreple karşılaşılan ekranlar

Aklıma daha da fazlası gelmiyor. Oyun bu ekranları random olarak getiriyor. Arada yuvarlanan tomruklar geliyor. Yerinde sabit duran yılan ve bir de hazine / yüzük var bazı ekranlarda. Bunlar da random olarak eklenebilir.

Pitfall II desen asla mümkün değil tabi tek tek uğraşmak. Çok geniş bir haritası var ama pitfall çok basit ikincinin yanında.

Hmm haklısın, tüm ekranlar büyük olasılıkla bir seed'den üretiliyor olabilir.

Tam olarak random diyemeyiz, şöyle bir haritası varmış:



Eğer orjinale benzer birşeyler yapmak istersen faydalı olabilir.

Bu arada sen 3 başlık saydın, bu haritaya göre 20 başlık var :D Yılan, timsah, duvar, ateş vs...

Bu da kaynak koduna direk link, belki lazım olur (sonuçta işlemciler aynı, grafik çizim kodu dışındaki kısımları olduğu gibi alabilir misin acaba?):

http://arda.kisafilm.org/fish/pitfall_sourcecode.zip

Kaynak kodunda bölümlerin nasıl yaratıldığı anlatılıyor:

The 255 scenes are randomly generated through a "bidirecional" LFSR. This
; means, that the process of generating the next random number is reversible,
; which is necessary to allow traveling though the jungle in both directions.
; The random number defines the scene with the following bits:
; - 0..2: type of object(s) on the ground (logs, fire, cobra, treasure etc.)
; - 3..5: type of scene (holes, pits, crocdiles, treasures etc.)
; - 6..7: type of the tree pattern
; - 7   : position of the wall (left or right)

Çevrimdışı Pe@ceR

  • RAAT
  • Tedavideki Retromanik
  • *
  • İleti: 321
Ynt: Pitfall II - remake
« Yanıtla #11 : 13 Ekim 2013, 11:18:34 »
Of bu harita çok iyi oldu. Kaynak kodunu ben de bulmuştum ama haritayı görememiştim. "The 255 scenes are randomly generated " açıklamasını okumuştum sadece. Aslında bu 255 farkı yaratan öğeler çoğunlukla timsah, akrep , duvar , ateş v.b varlığı yokluğu üzerine yoksa ekran çok da fazla değişmiyor.

Aslında birebir aynısı olmasına da gerek yok. Orijinal oyunun çok fazla bir amacı yoktu. Sadece dolaş hopla zıpla şeklinde. Oyuna başka amaçlar yüklenebilir ya da zamana karşı yapılabilir. Bir düşüncem de androidlerdeki temple run benzeri bir sistem olabilir. Genel itibariyle hazır olduktan sonra düşünücem :)   Bir yandan da birçok işin makine koduyla çözülmesi gerekiyor, gözümde de büyüyor. Sadece bu demo ekranında da kalabilir bir süre sanırm :)