Merhaba, eminim yeni başlayan bir çok kişinin bir anlığına da olsa düşündüğü bir konuya değinmişsin.
Ben kendimden yola çıkarak anlatayım.
Dediğin gibi bu işe girerken hemen hemen herkes 0 bilgiyle başlıyor, ben de öyle başladım. Hatta ele avuca sığmaz, çöp diyebileceğin bir filesle başladım. Yani sıfır altyapıya göre çok daha sorunlu dosyalarla başlamıştım. Acemilik işte, filesın görünüşü falan cazip geliyor o an. Başlangıç için kötü bir seçimdi benimki. Ama zaman geçtikçe bitmek bilmeyen sorunlarla beraber sıfır altyapıya geçmeye karar verdim. Sıfır altyapıda sorunlar olmuyor mu? dersen elbette oluyor. Olmaya da devam edecek. Şu an bile saatlerdir beni merakta bırakan bir sorunla uğraşıp karakteri olduğu yerde ardı ardına sürekli ışınlayıp duruyorum.
Her neyse; metin2 geliştiriciliği tek bir parçadan oluşmayan bir ortam olduğu için, bir çok alandan azar azar da olsa bilgi gerektiriyor.
Photoshop olsun, temel bilgisayar kullanımı olsun, temel düzeyde kod okuyabilme olsun vs vs.. yani oyuna dokunabilen her şeyden biraz anlamak gerekiyor. Tabi bunları çoğu kişi doğuştan öğrenmiyor, kimi bir vesile ile öğreniyor kimi merakından öğreniyor kimi zaten önceden bilgili oluyor.
Hiç bilmeyen birisi ise, metin2 geliştirmeye başladığında ve eğer sabırlı bir şekilde inatla ilerliyorsa, istemese bile zamanla öğreniyor bir şeyleri.
Fakat bu işin içinde her zaman için pratik düşünce tarzı gerekiyor. Mesela bahsetmiş olduğun "anlatım dosyasında olan kod, benim dosyalarımda yok" cümlesine ithafen şöyle bir minik örnek vereyim:
Anlatım dosyasında senden aratmasını istediği kod şu olsun:
(input.h)
void Roulette(LPCHARACTER ch, const char* c_pData);
Ve sen bunu böyle kopyalayıp, sendeki input.h dosyasında arattın ancak bulamadın diyelim.
Bunun en büyük sebebi kod yazımının farklılığıdır. Kodu sana öyle vermiştir ancak senin dosyanda:
void Roulette(LPCHARACTER ch, const char* c_pData);
eklinde ekli olabilir. Yada
char* c_pData kısmı
char * c_pData şeklinde olabilir.
Aradaki tek bir boşluk karakterinin bile farklı olması buna sebebiyet verir.
Böyle durumlarda kodun asla değişmeyecek olan temel kısımlarını alıp aratmak daha pratik olacaktır.
Mesela yukarıdaki kodu şu şekilde arattığında:
Anında bulunur. Ben hep böyle yaparım, hiç tamamını kopyalayıp da aratmam. Kod yazımındaki diğer farklılıklar ne kadar farklı olursa olsun bu kısım kolay kolay değişmeyen kısımdır.
Veya anlatımda olan şöyle bir kodu:
CPacketInfo * m_pPacketInfo;
Sadece şu şekilde aratmak yeterli olur:
Bulunan sonuç büyük ihtimalle aratılması istenen kod ile aynı olacaktır.
Belki bunu zaten biliyorsundur, olabilir. Sadece yeni başlayan bir çok kişinin böyle basit şeyler yüzünden zorlandığına şahit olduğum için böyle bir örnek verdim.
Metin2 geliştirme konusunda bence en çok öğretici olan faktör, birinin sana bir şeyleri anlatmasından ziyade hatalar yaparak, neyin neye sebep olduğuna şahit olmak çok daha akılda kalıcı bir etki bırakıyor. Tabi bunun için zaman gerekiyor.
Sonra bir bakıyorsun, bir syserr ile karşılaştığında netten bakma gereği dahi duymuyorsun. Çünkü o seviyeye gelindiğinde, o syserr in nerelerle bağlantılı olabileceğini zaten biliyor oluyorsun ve gerekli kontrolleri yapabiliyorsun. Bunun öncesinde elbette zamanla pratik yapıp internetten destek almak gerekiyor, bu bir gerçek. Son olarak bu işin yapı taşlarından bir tanesi ise yedek almak. Bunu alışkanlık haline getir, büyük veya önemli düzenlemeler öncesinde kesinlikle yedek al.
Sonuç olarak eğer özet istersen; bol bol hata yap, ama yaptığın şeyin ne olduğunu bilerek yap.