เอกสาร Steamworks
ระบบเศรษฐกิจของ Steam

ภาพรวม

ระบบเศรษฐกิจของ Steam เป็นชื่อของชุดคุณสมบัติที่จะอนุญาตให้ไอเท็มในเกมจากหลากหลายเกมมาทำงานร่วมกันเป็นระบบใช้งานร่วมกันหนึ่งเดียวใน Steam ได้ โดยสามารถสั่งซื้อไอเท็มในเกมในระบบเศรษฐกิจของ Steam ผ่านทางธุรกรรมขนาดเล็ก ได้รับมาจากรางวัลความสำเร็จ Steam นำส่งให้ในเกม หรือมอบให้เป็นของรางวัลตามโปรโมชันประเภทต่าง ๆ ผู้ใช้สามารถดูช่องเก็บของในเกมของตัวเองได้ในชุมชน Steam ซึ่งรวมถึงลิงก์ไปยังไอเท็มในเซสชันการแชต และแลกเปลี่ยนไอเท็มต่างๆ กับผู้ใช้ท่านอื่นๆ ได้ โดย Steam จะเตรียมอินเตอร์เฟซของผู้ใช้เอาไว้ให้รวมทั้งจะดำเนินการจัดการคุณสมบัติเหล่านี้ให้ แต่จะปล่อยให้เกมควบคุมไอเท็มได้ด้วยตัวเองอย่างสมบูรณ์

ไอเท็มในเกมในระบบเศรษฐกิจของ Steam นั้นเรียกว่า Asset และจะเป็นอะไรก็ได้ที่ผู้ใช้สามารถครอบครองได้ในเกม ตัวอย่างเช่น อุปกรณ์ใช้งาน ยานพาหนะ ตัวละคร สัตว์เลี้ยง สูตรการประดิษฐ์ ฯลฯ โดยตัวเกมจะแจ้งให้ Steam ทราบถึงวิธีการแสดงผล Asset เหล่านั้นให้แก่ผู้ใช้ แต่ว่าการที่ Asset เหล่านั้นจะทำอะไรให้ผู้ใช้นั้นทั้งหมดก็ขึ้นอยู่กับตัวเกม โดยตัวเกมจะต้องเป็นผู้รับผิดชอบในการติดตามว่าผู้ใช้ใดเป็นเจ้าของ Asset ใด และสื่อสารข้อมูลเหล่านั้นให้กับทั้งผู้ใช้และตัวแทนฝ่ายสนับสนุน นอกจากนั้นยังถือเป็นความรับผิดชอบของตัวเกมอีกด้วยที่จะตัดสินว่า Asset ใด ที่สามารถนำไปค้าขายแลกเปลี่ยนได้ ตัดสินว่าจะมีการจำกัดพื้นที่จัดเก็บมากน้อยเพียงใดให้แก่ผู้ใช้ รวมทั้งยังต้องให้ข้อมูลทั้งหมดที่กล่าวไปข้างต้นแก่ทีมงานช่วยเหลืออีกด้วย

โดยเกมแต่ละเกมนั้นจะสามารถควบคุมสิ่งต่าง ๆ ดังที่กล่าวมานี้ได้ด้วยการใช้งาน Steam Asset API ซึ่ง API ตัวนี้คือชุดของ Web API ที่อนุญาตให้สามารถมองเห็น Steam ในส่วนแบ็คเอนด์นั้น ๆ ได้ คุณสามารถดูเอกสารประกอบการใช้งานของ Steam Asset API ฉบับเต็มได้ทางด้านล่างนี้

สิ่งที่ต้องทำล่วงหน้า

ในการเพิ่มเกมเข้าไปยังระบบเศรษฐกิจของ Steam นั้น จำเป็นจะต้องปฏิบัติตามข้อกำหนดบางประการให้เสร็จสิ้นสมบูรณ์เสียก่อน

  • เกมจะต้องมีแบ็กเอนด์ของ Asset ที่เป็นแบ็กเอนด์ที่ไม่ได้จัดเก็บไว้ในไคลเอนต์เกม รวมทั้งจำเป็นจะต้องมีการใช้งานฐานข้อมูลบางประเภทที่อยู่ในศูนย์ข้อมูลอีกด้วย ซึ่งผู้เผยแพร่หรือผู้พัฒนาก็ควรจะเป็นเจ้าของศูนย์ข้อมูลดังกล่าวนั้น หรือไม่เช่นนั้นก็ควรใช้ผ่านทางการให้บริการการโฮสต์ด้วยคลาวด์ Steam จะนำเสนอบริการช่องเก็บของฟรีเพื่อให้นำไปใช้เป็นพื้นที่จัดเก็บประเภทใช้งานต่อเนื่องสำหรับไอเท็มในเกมของคุณ
  • ตัวเกมจะต้องระบุค่าของชุดของ Context IDs ที่จะใช้ระบุค่าคอนเทนเนอร์ที่ผู้ใช้สามารถใช้เก็บ Asset ของตนเองได้
  • เกมแต่ละเกมจะต้องให้ ID ประเภทใช้งานได้ต่อเนื่อง (Persistent) แบบ 64 บิตให้กับแต่ละ Asset ที่สามารถนำไปแลกเปลี่ยนกับผู้ใช้ท่านอื่นได้ โดยขั้นต่ำแล้ว Asset ID นี้จะต้องไม่ซ้ำกันในตัวบริบทที่ได้ถือครอง Asset นี้เอาไว้
  • เกมจะต้องเตรียมไอคอนช่องเก็บของเอาไว้ให้กับ Asset ในเกมทั้งหมดผ่านทางเว็บเซิร์ฟเวอร์ ไอคอนเหล่านี้ควรเป็นไฟล์รูปแบบ jpg, png หรือ gif ที่มีมีขนาด 96x96 และ 200x200 ทาง Steam จะเตรียมแบนด์วิดท์ที่จำเป็นในการใช้งานรูปภาพเหล่านี้เอาไว้ให้แก่ผู้ใช้
  • อย่างน้อยเกมจะต้องใช้งานเมธอดที่รวมอยู่ในการแลกเปลี่ยนของ Steam ด้านล่างนี้
  • นอกจากนี้ เกมควรใช้งานเมธอดจาก \การผสานเครื่องมือสนับสนุน\ อีกด้วย

อ่านต่อเฉพาะในกรณีต่อไปนี้...

คุณวางแผนที่จะสร้างเซอร์วิสการติดตาม Asset ของคุณเอง เอกสารประกอบการใช้งานที่เหลือจะวางโครงร่างให้เห็นถึง Web API ที่จำเป็นต้องใช้
ไม่เช่นนั้นแล้วหากคุณวางแผนว่าจะใช้งาน บริการช่องเก็บของ Steam คุณไม่จำเป็นที่จะต้องอ่านข้อมูลอะไรเพิ่มเติมอีก

การแลกเปลี่ยนบน Steam

ระบบ Steam Trading เป็นระบบที่จะใช้งานเว็บอินเตอร์เฟสเพื่อดำเนินการแลกเปลี่ยนและดูช่องเก็บของ หน้าดังต่อไปนี้เป็นหน้าเว็บที่ถูกใส่ข้อมูลของผลลัพธ์ของ GetContexts, GetContextContents, GetAssetClass, และ GetAssetClassInfo ใน Asset API เมื่อผู้ใช้ทั้งคู่ได้ยืนยันการแลกเปลี่ยนแล้วนั้น จะมีการลงนามความยืนยัน 3 เฟสให้แก่เกมทุกเกมที่เกี่ยวข้องในการแลกเปลี่ยนนั้น โดยเซิร์ฟเวอร์ระบบเศรษฐกิจจะเป็นผู้จัดการโลจิกของการลงนามการยืนยันและการยกเลิกการคอมมิตแบบ 3 เฟสใน Steam ซึ่งจะทำให้เปลี่ยนการเป็นเจ้าของของในเกมผ่านทางเมธอด TradeSetUnowned และ TradeSetOwned
GETGetContexts/v0001คืนค่ารายการของบริบท (context) แก่ผู้ใช้
GETGetContextContents/v0001คืนค่าคลาสของ Asset สำหรับ Asset และสกุลเงินของผู้ใช้แต่ละคนเพื่อแสดงผลในการแลกเปลี่ยนหรือในชุมชน Steam
GETGetAssetClass/v0001คืนค่าคลาสของ Asset และเจ้าของให้แก่รายการของ Asset เพื่อแสดงผลในการแลกเปลี่ยนหรือในชุมชน Steam
GETGetAssetClassInfo/v0001คืนค่าข้อมูลการแสดงผลของผู้ใช้ให้แก่คลาส Asset คลาสเดียว
POSTTradeSetUnowned/v0001จะถูกเรียกเมื่อเซิร์ฟเวอร์ระบบเศรษฐกิจต้องการให้ตัวเกมลบ Asset หรือสกุลเงินบางประเภทออกจากผู้ใช้
POSTTradeSetOwned/v0001จะถูกเรียกเมื่อเซิร์ฟเวอร์ระบบเศรษฐกิจต้องการให้ตัวเกมเปลี่ยน Asset ที่มีอยู่แล้วที่ปลอดการครอบครอง ให้ไปอยู่ในการครอบครองของผู้ใช้

การผสานเครื่องมือสนับสนุน

เครื่องมือสนับสนุนเป็นระบบที่ตัวแทนฝ่ายสนับสนุนของ Steam จะใช้เพื่อช่วยเหลือแก้ปัญหาที่เกิดกับ Asset ของผู้ใช้ (และปัญหาทางบัญชีอื่นๆ ใน Steam) การใช้ API เหล่านี้จะทำให้สามารถใช้ได้ทั้งการเข้าถึงเครื่องมือการช่วยเหลือแก่ Asset ในเกมได้ทั้ง 2 รูปแบบ

โดยจะสามารถใช้งานเครื่องมือการช่วยเหลือการเข้าถึงเกมในระบบเศรษฐกิจของ Steam ได้จาก 2 หน้าดังต่อไปนี้: ระบบเศรษฐกิจและประวัติ หน้าระบบเศรษฐกิจจะปฏิสัมพันธ์กับ Asset ที่อยู่ในบริบทด้วย GetContextContents และ GetAssetClassInfo ส่วนหน้าประวัติจะใช้ GetUserHistory, GetHistoryCommandDetails, HistoryExecuteCommands หน้าทั้งสองหน้าจะแสดงผลรายละเอียด Asset พร้อมด้วยผลลัพธ์จาก SupportGetAssetHistory ContextCommand มีไว้ใช้เพื่ออนุญาตให้ตัวแทนฝ่ายสนับสนุนเข้าไปจัดการดำเนินการในระดับบริบทและระดับแอสเซ็ตได้
POSTContextCommand/v0001จะสั่งใช้งานคำสั่งบริบท (context command) จากเครื่องมือสนับสนุน
GETGetUserHistory/v0001จะคืนค่าประวัติการตรวจสอบทางบัญชี (audit history) ให้แก่ผู้ใช้เพื่อนำไปใช้ในเครื่องมือสนับสนุน
GETGetHistoryCommandDetails/v0001จะคืนค่ารายการการดำเนินงานคำสั่งอย่างละเอียดของคำสั่งประวัติให้แก่ตัวแทนฝ่ายสนับสนุน
POSTHistoryExecuteCommand/v0001จะสั่งใช้งานชุดของการดำเนินงานคำสั่งประวัติกับผู้ใช้ให้แก่ตัวแทนฝ่ายสนับสนุน
GETSupportGetAssetHistory/v0001จะคืนค่าข้อมูลประวัติเกี่ยวกับ Asset ให้แก่ผู้ใช้ในเครื่องมือการช่วยเหลือ

การสั่งซื้อผ่านเว็บ

คุณสามารถอนุญาตให้ผู้ใช้สั่งซื้อไอเท็มในเกมของคุณผ่านทางเว็บไซต์ได้ด้วยการใช้งาน API ดังต่อไปนี้
POSTStartWebAssetTransaction/v0001เริ่มดำเนินธุรกรรมแทนลูกค้าให้แก่ไอเท็มที่ระบุ เรียก ISteamMicroTxn/InitTxn เพื่อให้ Steam จัดตั้งธุรกรรมและเรียกรับ URL ที่จะส่งไป
POSTFinalizeWebAssetTransaction/v0001จะถูกเรียกหลังจากผู้ใช้ได้ชำระค่าไอเท็มในธุรกรรมนั้นแล้ว ควรจะเรียก ISteamMicroTxn/FinalizeTxn ก่อนที่จะดำเนินการมอบไอเท็มให้แก่ผู้ใช้
GETGetAssetPrices/v0001คืนค่าราคาและหมวดหมู่ของไอเท็มที่ผู้ใช้สามารถสั่งซื้อได้

การขอรับเงินคืนบน Steam

นโยบายการขอคืนเงินของ Steam อนุญาตให้ผู้ใช้สามารถขอคืนเงินสำหรับการสั่งซื้อในเกมภายในเวลา 48 ชั่วโมงหลังจากที่สั่งซื้อ ตราบใดที่ยังไม่ได้ใช้ ดัดแปลงแก้ไข หรือโอนถ่ายผลิตภัณฑ์ดังกล่าว ถ้าต้องการเข้าร่วมนโยบายนี้ คุณจะต้องนำ API ต่อไปนี้มาใช้งาน
GETQueryRefundAllowed/v0001เรียกเพื่อตรวจสอบสถานะของแต่ละไอเท็มในการสั่งซื้อในเกม
POSTRefundPurchase/v0001จะถูกเรียกเมื่อการคืนเงินได้รับการอนุมัติ ไม่ว่าจะดำเนินการโดยอัตโนมัติหรือโดยตัวแทนฝ่ายสนับสนุน

Assets ภายนอก

หากเกมของคุณมีการนำเข้า Asset มาจากเกมอื่น ถ้าเป็นเช่นนั้นก็จะสามารถเรียก GetExportedAssets เพื่อเรียกรับ Asset ดังกล่าวได้
GETGetExportedAssets/v0001จะคืนค่ารายการของไอเท็มที่ได้รับการส่งออกมาจากเกมอื่นบน Steam

การจัดเวอร์ชันของอินเตอร์เฟส

ในการที่จะอนุญาตให้มีเวอร์ชันของ Asset API ในอนาคตนั้น เซิร์ฟเวอร์ระบบเศรษฐกิจจะแนบหมายเลขเวอร์ชันไปกลับทุก URL ที่ได้เรียก ในขณะนี้เมธอดทั้งหมดจะมีค่าเป็นเวอร์ชัน 1 เพราะฉะนั้นก็จะแนบ "/v0001" เข้าไปให้แต่ละ URL เพราะฉะนั้นหาก URL ของ เซิร์ฟเวอร์ Asset ของคุณ คือ https://api.mygame.com/assetapi จากนั้นเมธอด GetContexts จะถูกเรียกเป็น https://api.mygame.com/assetapi/GetContexts/v0001 ตามด้วยพารามิเตอร์ GET ที่ระบุไว้
สำหรับเมธอดนี้

API Key

หากคุณได้ตั้งค่าคีย์ API ในแท็บระบบเศรษฐกิจของรายละเอียดทางเทคนิคของเกมของคุณนั้น คีย์ดังกล่าวก็จะถูกส่งผ่านเข้าไปในทุกการเรียกที่ดำเนินโดยเซิร์ฟเวอร์ระบบเศรษฐกิจ
คีย์ดังกล่าวจะอยู่ในรูปแบบของพารามิเตอร์ GET หรือ POST (ตามประเภทการร้องขอ) ที่เรียกว่า "คีย์" เวลาที่คุณได้รับเรียก กรุณาตรวจสอบความถูกต้องว่าคีย์ดังกล่าวมีค่าตรงกับสิ่งที่คุณได้ตั้งเอาไว้ในแท็บระบบเศรษฐกิจ เพื่อตรวจสอบให้มั่นใจว่าเรียกนั้นได้มาจากเซิร์ฟเวอร์ระบบเศรษฐกิจจริง ๆ

คำถามที่พบบ่อย

ถาม: อะไรคือระบบเศรษฐกิจของ Steam?

ตอบ: เป็นแพลตฟอร์มของ Steam ที่มีฟังก์ชันการใช้งานใส่เอาไว้เพื่อการซื้อขายแลกเปลี่ยนที่มีความปลอดภัยและเชื่อถือได้ เป็นตลาดสินค้าใช้เงินจริงที่เชื่อมต่อกันทั้งโลก ให้รายละเอียดไอเท็มนอกเกมผ่านทางชุมชน Steam และอื่นๆ อีกมากมาย คุณสามารถเลือกใช้ฟังก์ชันการใช้งานนี้ได้เพียงบางส่วนหรือจะใช้ทั้งหมดก็ได้

ถาม: อะไรคือข้อดีของการเข้าร่วมใช้งานระบบเศรษฐกิจ Steam?

ตอบ: ไอเท็มที่อยู่ในเกมที่มีการเปิดการใช้งานระบบเศรษฐกิจ จะมีค่ามากกว่าไอเท็มที่ใช้งานแต่เพียงแต่ระบบของเกมตัวเอง ซึ่งการใช้งานระบบเศรษฐกิจนั้นสุดท้ายแล้วจะทำให้ลูกค้ามีความสุขมากขึ้น

เพราะผู้เล่นจะสามารถลิงก์ไอเท็มของตนเองได้ในโปรไฟล์และแชต Steam ทำให้ทั้งเกมและไอเท็มที่อยู่ในเกมนั้นสามารถได้รับการมองเห็นเพิ่มเติมได้โดยไม่มีค่าใช้จ่ายเพิ่มเติมตาม สำหรับเกมที่ให้การรองรับการแลกเปลี่ยนนั้น นอกจากตัวไอเท็มจะเพิ่มมูลค่าให้แก่ผู้ครอบครองไอเท็มดังกล่าวแล้ว ยังเพิ่มมูลค่าให้แก่ผู้เล่นท่านอื่น ๆ ที่เล่นเกมอยู่และว่าที่ผู้เล่นใหม่อีกด้วย นั่นก็หมายความว่าเกมทุกเกมที่ใช้ระบบเศรษฐกิจ Steam จะมีความน่าสนใจและมีคุณค่ามากขึ้นทันทีสำหรับผู้เล่นของทุกเกมที่มีการเปิดการใช้งานระบบเศรษฐกิจ (เช่น Team Fortress 2 และ Dota 2)

นอกจากนี้ คุณยังสามารถใช้ประโยชน์จากโครงสร้างพื้นฐานที่เราได้เตรียมไว้ให้ เพื่อซื้อขายแลกเปลี่ยน/ดำเนินธุรกรรมทางการเงิน และให้การสนับสนุน พร้อมทั้งใช้ฟังก์ชันการทำงานที่จะมีให้ในอนาคตได้โดยไม่เสียค่าใช้จ่าย

ถาม: ในการที่จะเข้าร่วมนั้นมีข้อกำหนดอะไรบ้าง?

ตอบ: เกมจะต้องมีแบ็กเอนด์ของ Asset ที่เป็นแบ็กเอนด์ที่ไม่ได้จัดเก็บไว้ในไคลเอนต์เกม หรือที่รู้จักกันในนามว่าเซิร์ฟเวอร์ไอเท็ม รวมทั้งจำเป็นจะต้องมีการใช้งานฐานข้อมูลบางประเภทที่อยู่ในศูนย์ข้อมูลอีกด้วย
ซึ่งผู้เผยแพร่หรือผู้พัฒนาก็ควรจะเป็นเจ้าของศูนย์ข้อมูลดังกล่าวนั้น หรือไม่เช่นนั้นก็ควรใช้ผ่านทางการให้บริการการโฮสต์ด้วยคลาวด์ Steam จะเตรียม การบริการช่องเก็บของ ที่ไม่เสียค่าบริการเอาไว้ให้ ซึ่งสามารถนำไปใช้เป็นพื้นที่จัดเก็บประเภทใช้งานต่อเนื่อง (Persistent) ให้แก่ไอเท็มของเกมของคุณได้ โดยในส่วนแบ็กเอนด์นั้น จะต้องมีการใช้งาน Web API จำนวนเล็กน้อยเพื่อให้ Steam สามารถสื่อสารกับแบ็กเอนด์ได้

ถาม: ฉันสามารถเข้าใช้งานแต่เพียงบางส่วนของระบบเศรษฐกิจ แต่ไม่ใช้งานทั้งหมดได้หรือไม่?

ตอบ: Web API ที่เรียกโดย Steam นั้นจะให้อินเตอร์เฟสร่วม 1 อินเตอร์เฟสแก่การดูไอเท็มในชุมชน Steam การซื้อขายแลกเปลี่ยนข้ามเกมและตลาดชุมชน Steam (Steam Community Market) คุณสามารถควบคุมได้ทั้งในระดับใหญ่ ว่าจะปิดใช้งานคุณสมบัติทั้งหมดเลย (ซึ่งในที่นี้คือ อนุญาตให้มีการแลกเปลี่ยนแต่ปิดการใช้งานธุรกรรมทางตลาดทั้งหมด) หรือในระดับย่อย (ซึ่งในที่นี้คือ สามารถดูไอเท็มทั้งหมดผ่านทางชุมชนได้ สามารถแลกเปลี่ยนไอเท็มบางชิ้นได้ แต่จะมีเพียงไอเท็มบางไอเท็มเท่านั้นที่จะถูกลงรายการไว้ในตลาด) ซึ่งคุณสามารถเปลี่ยนการตั้งค่าเหล่านี้ตามแต่ละไอเท็มเมื่อไหร่ก็ได้ที่ต้องการ

ถาม: Valve ได้เตรียมระบบแบ็กเอนด์ไอเท็มประเภทใช้งานได้ต่อเนื่อง (Persistent) ที่เราสามารถใช้งานได้โดยถือเป็นส่วนหนึ่งของ Steamworks ไว้ให้แล้วหรือไม่?

ตอบ: ในกรณีนี้คุณสามารถใช้งาน การบริการช่องเก็บของ Steam ได้