วิธีเปิด Terraria Server บน DigitalOcean (แบบละเอียด)
Terraria Server ใน Blog นี้จะใช้เปิดสำหรับ Terraria Version 1.4.4.9 เป็นตัวอย่าง
ทำไมต้องเปิด Terraria Server เอง?
คุณอาจจะสงสัยว่า Terraria มันก็สามารถเล่นแบบ Multiplayer ได้อยู่แล้วนี่นา แค่ให้คนนึงเป็น Host ก็พอแล้ว ทำไมต้องมาเปิด Server เอง คอยจ่ายค่า Cloud ด้วย?
ผมเจอปัญหาว่าเวลาเล่นหลาย ๆ คน หลายครั้งที่เราว่างไม่ตรงกัน บางทีผมว่างตอนกลางวัน แต่เพื่อนผมว่างตอนกลางคืน บางวันผมไม่อยากเล่น แต่เพื่อนผมอยากเล่น ตอนนี้ทุกอย่างมันขึ้นกับคนที่เป็น Host หมดเลย ถ้าเขาไม่ว่าง เราก็เล่นไม่ได้ ถ้าเขาไม่อยากเล่น เราก็เล่นไม่ได้
จะดีกว่าไหมถ้าเรามี Server ที่เปิดตลอดเวลา เราจะเข้าไปเล่นตอนไหนก็ได้ เลยตัดสินใจมาเปิด Server เองซะเลย
สมัคร DigitalOcean
อย่างแรกคงเป็นอะไรไปไม่ได้นอกจากไปสมัคร DigitalOcean ก่อน
กดที่ลิงก์นี้ได้เลย https://www.digitalocean.com/
(ถ้าสมัครแล้วก็ข้ามขั้นตอนนี้ไปเลย)
เริ่มต้นสร้าง Droplet
พอเรา Login เข้ามาแล้ว ก็จะเจอกับ first-project เป็น Project เริ่มต้นที่ทาง DigitalOcean เขาสร้างไว้ให้เราเริ่มใช้งานได้เลย
ซึ่งนี้ผมจะใช้ first-project นี่แหละ แต่ว่าใครอยากสร้าง Project แยกก็กดปุ่ม New Project ได้เลย

ในการสร้าง Terraria Server บน Cloud นั้น เราจะใช้ VM ซึ่ง VM ใน DigitalOcean เขาเรียกมันว่า Droplet
Droplets are Linux-based virtual machines (VMs) that run on top of virtualized hardware. Each Droplet you create is a new server you can use, either standalone or as part of a larger, cloud-based infrastructure.
กดที่เมนู Droplets จากนั้นกด Create Droplet

เลือก Region และ Datacenter
ต่อมาเลือก Region ว่าเราจะใช้ Server ที่อยู่ Region ไหน และเลือก Datacenter
ผมใช้ Region Singapore เพราะว่าอยู่ใกล้ไทยสุด Ping จะได้น้อยหน่อย ส่วน Datacenter ที่ Singapore มีที่เดียวอะนะ เลยไม่มีตัวเลือกอื่น ก็ใช้ที่เขาให้มานั่นแหละ

เลือก OS และ OS Version
และก็เลือก OS และ OS Version ที่ต้องการ
ผมใช้ OS Ubuntu Version 24.04 (LTS) x64

เลือกขนาด Droplet (Size)
ต่อมาเลือก Size ประมาณว่าเลือก Spec เครื่องที่ต้องการ
แนะนำ 2 CPUs และ Ram 4 GB นะ (เคยลอง 1 CPU Ram 2 GB มันสร้าง World ขนาดใหญ่ไม่ไหว)
ผมใช้ Basic > Regular > 2 CPUs Ram 4 GB ราคาก็ตามในภาพ $24/เดือน (ถ้าตอนนี้ที่เขียน Blog นี้ก็ประมาณ 773.46 บาท/เดือน)

เพิ่ม Storage และ Backup (ถ้าต้องการ)
ส่วนตรงนี้แล้วแต่ ใครอยากเพิ่ม Storage ก็เพิ่มได้ ถ้ากลัวไม่พอ แต่คิดเงินเพิ่มนะ
และก็ใครอยาก Backup ข้อมูลไว้ด้วยก็กดได้ คิดเงินเพิ่มเหมือนกัน ส่วนผมไม่เอาทั้งคู่

เลือกวิธี Login
ต่อมาเป็นการเลือกวิธีการ Login เข้าไปควบคุม Droplet เครื่องนี้
ถ้าอยากปลอดภัยหน่อยก็ใช้ SSH Key
ถ้าเอาแบบง่ายก็ใช้ Password
ผมขอใช้ Password ละกัน ง่ายดี

เปิด Metrics Monitoring
ต่อมาเป็นสิ่งที่ DigitalOcean เขาแนะนำให้เราใช้
ผมเอาแค่ Add improved metrics monitoring and alerting พอ เพราะมัน Free (อันนี้เอาไว้ Monitor Droplet ได้ว่าตอนนี้ CPU ใช้ไปเท่าไรแล้ว, Ram ใช้ไปเท่าไรแล้ว, Storage ใช้ไปเท่าไรแล้ว และอื่น ๆ)

ตั้งชื่อ Droplet และเลือก Project
ใกล้จะสร้าง Droplet เสร็จแล้ว อีกนิดเดียว
อันนี้ตั้งชื่อให้เราจำได้กันว่า Droplet คืออะไร และก็ถ้าเรามีหลาย Project ก็เลือกได้ว่าจะสร้างไว้ที่ Project ไหน จากนั้นก็กด Create Droplet เลย
ใน Blog นี้ผมตั้งชื่อว่า terraria-server และใช้ first-project

รอมันสร้างแป๊บนึง

สร้าง Droplet เสร็จแล้ว

เริ่มเปิด Terraria Server
เอาล่ะ ต่อมาจะเริ่มเปิด Terraria Server แล้วนะ
กดที่ชื่อ Droplet เพื่อเข้าไปหน้ารายละเอียดของ Droplet

ที่นี้กดที่ปุ่ม Console เพื่อเข้าไปควบคุม Droplet เครื่องนี้

จะเจอหน้า Terminal แบบนี้

1. Update รายการ Software Package
เริ่มจาก Update รายการ Software Package ด้วยคำสั่งนี้
sudo apt update

2. ติดตั้ง Unzip
เอาล่ะ มาติดตั้ง Unzip ก่อน เพราะไฟล์ Terraria Server ที่เราจะโหลดมานั้นเป็นไฟล์ .zip
sudo apt install unzip

3. ติดตั้ง Screen
ที่นี้เราจะมาติดตั้ง Software อีกตัวนึงชื่อ Screen เอาไว้ทำให้เราสร้าง Session ในระบบแล้วปล่อยมันทำงานอยู่เบื้องหลังได้ เพราะว่าถ้าเรา Start Terraria Server แล้ว เราจะต้องปล่อยมันทำงานอยู่เบื้องหลังไป เวลาปิด Terminal มันจะได้ไม่ไป Stop Terraria Server เรา
sudo apt install screen

4. Config Firewall
ต่อมาเราจะมา Config Firewall สักหน่อยเพื่อให้เราสามารถเชื่อมต่อมาที่ Terraria Server ด้วย Port 7777 ได้ ด้วยคำสั่งนี้
sudo ufw allow 7777

5. สร้าง Directory สำหรับเก็บไฟล์
ทีนี้แวะสร้าง Directory นิดนึง จะได้เก็บไฟล์เป็นระเบียบ
mkdir app
cd app

6. Download และ Extract Terraria Server
ต่อมาเราจะ Download Terraria Server Version 1.4.4.9 มาลงเครื่องด้วยคำสั่งนี้
(ลิงก์ Download ก็เอามาจากเว็บ Terraria Wiki https://terraria.wiki.gg/wiki/Server#Downloads)
wget https://terraria.org/api/download/pc-dedicated-server/terraria-server-1449.zip
แล้วก็แตกไฟล์ด้วยคำสั่งนี้
unzip terraria-server-1449.zip

แตกไฟล์เสร็จแล้ว

7. เข้าไปใน Directory ของ Terraria Server
ลอง List Directory ดู จะเห็นโฟลเดอร์ที่เป็นเลข Version 1449 อยู่ ให้เข้าไปในโฟลเดอร์นั้น
ls -l
cd 1449

List Directory ดู จะเห็นโฟลเดอร์แยกตาม OS ที่รองรับ ในกรณีนี้เราจะใช้ Linux ดังนั้นเข้าไปในโฟลเดอร์ Linux
ls -l
cd Linux

8. เพิ่มสิทธิ์ให้ไฟล์ Terraria Server
คือไฟล์ Terraria Server ที่เราจะใช้รันนั้นชื่อ TerrariaServer.bin.x86_64 แต่ว่าตอนนี้เรายังไม่มีสิทธิ์ในการรันไฟล์นี้ เราต้องเพิ่มสิทธิ์ให้มันก่อน ด้วยคำสั่งนี้
chmod +x TerrariaServer.bin.x86_64

9. เปิด Screen Session
ต่อมาเราจะเปิด Screen Session เพราะเตรียมรัน Terraria Server แล้ว
พิมพ์คำสั่งนี้ แล้วกด Enter
screen
จะได้หน้าตาแบบนี้

ให้กด Space Bar หรือ Enter แล้วมันจะกลับมาหน้าปกติของ Terminal
10. Start Terraria Server
เอาล่ะ และแล้วก็มาถึงเวลาที่รอคอย Start Terraria Server นั่นเอง
พิมพ์คำสั่งนี้แล้ว Enter เลย
./TerrariaServer.bin.x86_64
ตอนแรกมันจะถามเราว่าเราจะสร้าง World ใหม่ หรือว่าใช้ World ที่มีอยู่แล้ว แต่ตอนนี้เรายังไม่มี World เลย เราจะสร้างใหม่ พิมพ์ n แล้ว Enter

เลือกขนาด World
จากนั้นก็เลือกขนาดของ World ที่จะสร้าง Small, Medium, Large จะเอาขนาดไหนก็พิมพ์ตัวเลข 1, 2, 3 แล้ว Enter
ผมเลือก Large
ขนาด World มีผลต่อการใช้ Ram ของ Server ด้วยนะ ยิ่งขนาดใหญ่ Ram ก็จะยิ่งกินเยอะตามไปด้วย

เลือกความยากของ World
จากนั้นก็เลือกความยากของ World ที่จะสร้าง Classic, Expert, Master, Journey จะเอาแบบไหนก็พิมพ์ตัวเลข 1, 2, 3, 4 แล้ว Enter
ผมเลือก Master

เลือก Evil Biome
ต่อจากเลือก Evil Biome ว่าจะให้มัน Random, Corrupt, Crimson จะเอาแบบไหนก็พิมพ์ตัวเลข 1, 2, 3 แล้ว Enter
ผมเลือก Random

ตั้งชื่อ World
จากนั้นก็พิมพ์ชื่อ World ที่จะสร้างลงไปเลย แล้ว Enter
ผมตั้งชื่อว่า MyFirstWorld

ใส่ Seed ของ World
จากนั้นก็พิมพ์ Seed ของ World ที่จะสร้างลงไปเลย (ถ้าไม่ใส่ก็ปล่อยว่างไว้ แล้วเดี๋ยวมันสุ่มให้) แล้ว Enter
ผมไม่ใส่อะไร ปล่อยว่างไว้

รอสร้าง World
ทีนี้ก็รอให้มันสร้าง World สักพัก

สร้าง World เสร็จแล้ว
ไฟล์ World จะเก็บอยู่ที่
~/.local/share/Terraria/Worlds/
มันจะกลับมาหน้าเลือก World ใหม่อีกครั้ง
รอบนี้เราก็เลือก World ที่เราสร้างไว้เมื่อกี้เลย พิมพ์ 1 แล้ว Enter

กำหนดจำนวนผู้เล่นสูงสุด
จากนั้นให้ใส่จำนวนผู้เล่นสูงสุดที่เราต้องการ (ถ้าไม่ใส่ก็จะใช้ค่า Default คือ 16 คน) แล้ว Enter
จำนวนผู้เล่นสูงสุดมีผลต่อการใช้ Ram ของ Server ด้วยนะ ยิ่งจำนวนผู้เล่นสูงสุดเยอะ Ram ก็จะยิ่งกินเยอะตามไปด้วย
ผมปล่อยว่างไว้

กำหนด Port
ต่อมากำหนด Port ที่จะใช้ (ถ้าไม่ใส่ก็จะใช้ค่า Default คือ 7777) แล้ว Enter
ผมปล่อยว่างไว้

ตั้งค่า UPnP Port Forwarding
อันนี้มันจะถามว่าจะให้ทำการ Forward Port อัตโนมัติให้ไหม
ถ้าเราใช้ Router ที่รองรับ UPnP มันจะ Forward ให้เองอัตโนมัติเลย
ผมไม่ได้ใช้ Router เพราะว่าเราใช้ Cloud Server อยู่ เลยพิมพ์ n แล้ว Enter

ตั้ง Password สำหรับ Join Server
ต่อมาใส่ Password สำหรับ Join Server (ถ้าไม่ใส่ก็จะไม่มี Password แต่ใส่เถอะ ปลอดภัยกว่า) แล้ว Enter
ผมใส่ Password ว่า Th1s_Secret

รอ Start Terraria Server
จากนั้นก็รอให้มัน Start Terraria Server สักพัก

เปิด Terraria Server เสร็จแล้ว

วิธี Join Terraria Server
ที่นี้เรามาลองเข้าไป Join Terraria Server ของเรากัน
เปิดเกม Terraria ขึ้นมาเลย แล้วกดไปที่ Multiplayer

จากนั้นกดที่ Join via IP

เลือกตัวละครที่จะใช้เล่น

กรอกเลข IP ของ Droplet เรา และก็กด Accept (ถ้าจะให้เพื่อนเข้ามาเล่นด้วยก็ส่งเลข IP ให้เพื่อนไปนั่นแหละ)

คำถามคือ แล้วเลข IP ของ Droplet เราเอามาจากไหนล่ะ?
จริง ๆ เลขนี้ผ่านตาเรามาแล้วสองรอบ
-
รอบแรกคือตรงนี้ กด Copy มาเลย

-
รอบที่สองคือตรงนี้ กด Copy มาเลย
(ค่าเดียวกันกับรอบแรกนั่นแหละ เลือกเอาเลยว่าจะ Copy จากตรงไหน)
เลข Port มัน Default คือ 7777 อยู่แล้ว ไม่ต้องเปลี่ยนอะไร จากนั้นกด Accept

ถ้าทุกอย่างถูกต้อง มันจะถาม Password ให้ใส่ Password ที่เราตั้งไว้ตอน Start Server ลงไปเลย แล้วกด Accept

บางครั้งอาจจะเจออาการค้างอยู่หน้า Found Server แบบนี้

ให้กด Cancel แล้วลอง Join ใหม่อีกครั้ง
เข้าได้แล้ว เย้!

การใช้งาน Screen สำหรับจัดการ Session
เดี๋ยวก่อนจะจบ Blog นี้ ยังมีอีกเรื่องที่ขาดไปไม่ได้ คือการปล่อยให้ Terraria Server มันทำงานตลอดเวลา คือเราจะมาเรียนรู้วิธีการใช้งาน Screen สำหรับจัดการ Session กันนิดนึง
คือตอนแรกก่อนที่จะ Start Terraria Server เราได้สร้าง Screen Session ไปแล้วด้วยคำสั่ง screen แล้วเนอะ ที่นี้เราจะลองออกจาก Session กัน (แต่ไม่ได้ปิด Session นะ ระบบยังทำงานอยู่เบื้องหลัง) โดยการกด Ctrl + A + D จะได้ผลลัพธ์เป็นประมาณนี้อะนะ

ทีนี้ลอง List Screen Session มาดูว่าเปิด Session อะไรไว้อยู่บ้าง
ด้วย screen -list จะเจอว่าตอนนี้มีอยู่ 1 Session ที่ทำงานอยู่เบื้องหลัง

จากภาพด้านบน จำเลขที่ชี้ไว้นะ เราจะเอาไว้ใช้เวลาที่จะกลับไปทำงานกับ Session นั้นโดยใช้คำสั่ง screen -r <เลข Session> เช่น
screen -r 3601
พอพิมพ์แล้ว Enter ก็จะเห็นว่าเรากลับมาที่หน้า Terraria Server เหมือนเดิม

คำสั่ง Terraria Server
อีกนิดนึง ๆ ที่ Terraria Server ที่มันกำลังทำงานอยู่ เราสามารถพิมพ์ Command ของ Terraria ได้ เช่น เต๊ะคนออกจาก Server, ส่งข้อความไปหาคนที่อยู่ใน Server, ดูว่ามีใครบ้างที่อยู่ใน Server หรือแม้กระทั่งปิด Server ก็ได้
ถ้าอยากรู้ว่าใช้ Command อะไรได้บ้าง ลองพิมพ์ help แล้วกด Enter ดู มันก็จะแสดงรายงานของ Command ที่ใช้งานได้
(ถ้าพิมพ์แล้วได้ Invalid Command ให้ลอง Enter สักรอบก่อน มันจะมี : ขึ้นมาให้พิมพ์ Command ได้)
help

สรุป
วิธีที่สอนไปจริง ๆ ไม่ได้จำกัดอยู่แค่กับ DigitalOcean นะ
สามารถใช้วิธีนี้กับ VM บน Cloud เจ้าอื่น ๆ ได้ด้วยเหมือนกัน ต่างกันแค่ราคาและวิธีการสร้าง VM เท่านั้นเอง ส่วนตอนเปิด Terraria Server ที่ทำผ่าน Terminal ก็ทำเหมือนกันทุก VM
หวังจาก Blog นี้จะเป็นประโยชน์สำหรับคนที่ต้องการเปิด Terraria Server ทุกคน อย่างน้อยก็ตัวผมเองนี่แหละที่ถ้าลืมวิธีเปิดก็คงได้กลับมาอ่าน Blog ตัวเอง
สุดท้ายก็ขอขอบคุณเอกสารของ Terraria Wiki ด้วยครับ
https://terraria.wiki.gg/wiki/Server
เพราะวิธีการเปิดส่วนนึงก็เอามาจากเอกสารนี้นี่แหละ