ติดเกมมาริโอ้แมว ตอนที่ 1 เห็นแค่แมวดิ้นเป็นพอ

มีอยู่วันหนึ่งเพื่อนรุ่นน้อง เห็นว่าผมสีหน้าเครียด
เค้าก็บอกว่าผมต้องเล่นเกมนี้ “อย่างฮาเลย
นั่นเป็นปฐมบทของความฮาซีรี่นี้

แล้วสักพักต่อมา เค้าก็มานั่งที่เครื่องผม
เพราะรู้อีกทีก็มีเกมที่หน้าจอแล้ว
เค้าส่งผ่าน FB message เข้ามา ระหว่างเรานั่งคุยกัน
พอได้ลองเล่นแล้วก็ฮาจริง ๆ
จำได้ว่าเคยเล่นเกมแนวนี้ ราวปีพ.ศ.2525
น่าจะเป็นเกมตู้ ที่ใต้โรงหนังดาว สมัยนั้นต้องหยอดเหรียญเล่น
https://github.com/thaiall/OpenSyobonAction

น้องเค้าดาวน์โหลดจาก Mediafire
http://www.mediafire.com/../Neko+Mario+Eng.rar
ขนาด File size: 4.63 MB
พอแตก RAR ก็เห็น source code ภาษา C

อุทานในใจ “เฮ้ยมี source code มาด้วย
เปิดดู code ก็ไม่เยอะ จำนวนแฟ้มก็แค่ 3 แฟ้มสำคัญ
ตั้งแต่นั้นก็เริ่มนั่งหาข้อมูล อยากให้แมวเริ่มดิ้นเป็นพอ
เพราะเสียง ภาพ และรหัสต้นฉบับมีหมดแล้ว
เหลือก็แค่ compile, link แล้วก็ run

1. เท่าที่ดูก็ใช้ภาษา C นะ แต่ C อะไรล่ะนั่น
ไม่ใช่โปรแกรม Hello world นะครับ จะได้ใช้ C อะไรก็ออกหมด
ในใจแอบคิด งัด Turbo C มาซะดีไหม
นั่งอ่านไปสักพัก พบว่า angelXwind ที่ github.com
แชร์มาเป็นแฟ้ม .cpp มี makefile ด้วย
เค้าใช้ GCC (GNU Compiler Collection) คำย่อเดิมคือ GNU C Compiler
แล้วใน Github.com มี readme ทั้งอังกฤษและญี่ปุ่น
https://github.com/angelXwind/OpenSyobonAction/blob/master/Makefile

2. มองเห็นจำนวนแฟ้ม นั่งหัวเราะหึหึ
เพราะมีแฟ้มสำคัญแต่ 3 แฟ้ม เป็น .c ทั้งนั้น หรือไม่ก็ .cpp
ดูใน makefile ก็บอกว่า 3 แฟ้มเป็นพอ พอจริง ๆ
ที่ cjxgm แชร์ไว้มี object file ที่ compile แล้วติดมาด้วยอีก เห็นเป็น .o
https://github.com/cjxgm/clabs/../syobon.tar.gz

3. ใคร ๆ เค้าก็เอา source code ไปลองกัน ท่าจะนิยม
เห็น David Gerber – CEO of Zapek Software Engineering
https://zapek.com/blog/syobon-action/
และลิงค์ไปยัง
https://sourceforge.net/../opensyobon/
ที่มี source code หลายรุ่น คือ v0.9, rc1 และ rc2 ทั้งหมดในปี 2010
แล้วก็ใช้ได้ทั้งบน Linux และ Windows
ไม่ต้องรักพี่เสียดายน้อย ได้หมดทั้ง 2 Operating System

4. เห็นแฟ้มต้นฉบับแค่ 3 แฟ้ม แต่มี Lib นะครับ
เห็น David Gerber หรือผู้พัฒนาคนอื่น ต่างพูดถึง Lib
ที่ชื่อ SDL (Simple DirectMedia Layer)
ที่ Need คือ sdl, sdl_image, sdl_gfx, sdl_mixer and sdl_ttf
เป็นห้องสมุดที่บริการภาพ และเสียง ช่วยให้แมวดิ้นได้
สรุปให้ว่าจะ compile link หรือ run ต้องมี Lib ครับ
https://www.libsdl.org/

5. ถ้าจะเขียนให้แมวดิ้น ก็ต้องหาที่ลง
อ้อ ไม่ต้องเขียนอะไรเลย เค้าเขียนมาให้หมดแล้ว
แค่ compile, link แล้วก็ run
ถ้าทำบน linux ก็เล่นบน linux
ถ้าทำบน windows ก็เล่นบน Windows
ติดว่า GCC นี่เค้าพัฒนาให้ทำงานบน Linux
ถ้าจะใช้ GCC for Windows
https://gcc.gnu.org/install/binaries.html
ก็เลือกได้ว่าจะใช้โปรแกรมอะไรมาช่วย เค้าแนะนำไว้ 2 ตัว
1. Cygwin
2. MinGW
อ่านมาเค้าว่ามี CodeBlocks.org ที่สนับสนุน GCC/G++
หัวข้อนี้รายละเอียดเพียบเลย
http://www.codeblocks.org/downloads/26

6. เล่าอีกนิดนะครับ สมัย 7 ปีก่อนใช้ GCC
สมัยที่เกมนี้เขียนเสร็จอยู่ราวปี 2010
source code ของ catmario มีทั้ง c และ cpp
ถ้าเป็น .c ก็ใช้ gcc
ถ้าเป็น .cpp ก็ใช้ g++
gcc and g ++ are both GNU compiler.
They both compile c and c++.
The difference is for *.c files gcc treats it as a c program,
and g++ sees it as a c++ program.
*.cpp files are considered to be c++ programs
เพราะสมัยนี้ gcc หมายถึง c ไม่ใช่ cpp
ดังนั้นการเลือกรุ่นของ compiler ก็น่าสนใจอยู่มาก
https://ftp.gnu.org/gnu/gcc/