การสร้างโอเพ่นซอร์สแบบไม่เป็นทางการของ Warcraft II: Tides of Darkness
โครงการโอเพ่นซอร์สนี้ไม่ได้เป็นพันธมิตรเกี่ยวข้องรับรองโดยหรือในทางใดทางหนึ่งอย่างเป็นทางการกับ Blizzard Entertainment, Inc. หรือ บริษัท ย่อยหรือ บริษัท ในเครือ เว็บไซต์ Blizzard Entertainment อย่างเป็นทางการสามารถดูได้ที่ http://www.blizzard.com
โครงการนี้เป็นกิจการที่เป็นอิสระและไม่ใช่เชิงพาณิชย์ มันไม่ได้มีไว้สำหรับการขายหรือกำไรและไม่มีกำไรทางการเงินมาจากการดำเนินงาน โครงการนี้มีวัตถุประสงค์เพื่อ การศึกษาและข้อมูล เท่านั้น
เป็นสิ่งสำคัญที่จะต้องทราบว่าในการใช้โครงการโอเพ่นซอร์สนี้ จำเป็นต้องมีเวอร์ชันดั้งเดิมของ Warcraft 2 โครงการ/ที่เก็บนี้ไม่ได้ให้สินทรัพย์เกมใด ๆ จาก Warcraft 2
Warcraft II: Tides of Darkness ได้รับการปล่อยตัวในยุโรปในปี 1996 ในฐานะเด็กเล็กฉันตกหลุมรักเกมนี้ทันที ฉันใช้เวลาหลายร้อยคนในการเล่นฉันมีการต่อสู้เครือข่ายที่ไม่มีที่สิ้นสุดกับครอบครัวและเพื่อน ๆ ของฉัน เนื่องจาก Warcraft II มีอิทธิพลอย่างมากต่อฉันและฉันยังคงหลงรักเกมนี้ฉันจึงตัดสินใจสร้าง War2.5 ซึ่งเป็นโอเพนซอร์สที่ไม่เป็นทางการของ Warcraft II มันมีเป้าหมายต่อไปนี้:
ฉันเริ่มทำงานในปี 2021 ในฐานะนักพัฒนาคนเดียวในช่วงเวลาว่าง ตอนนี้ในเดือนมกราคม 2567 ฉันรู้ว่าจำเป็นต้องมีการสนับสนุนเพิ่มเติมและขั้นตอนเชิงตรรกะถัดไปคือการปล่อยสถานะการพัฒนาปัจจุบันสาธารณะใน GitHub
ดูส่วน วิธีการสร้าง
ดูหัวข้อ วิธีการเรียกใช้
เล่นแผนที่โปรดของคุณในทุกฤดูกาล กด W, S, A, D เพื่อเปลี่ยนฤดูกาลได้ทันทีโดยไม่ต้องโหลด/รีสตาร์ทใหม่ minimap สามารถเห็นได้ที่ด้านบนขวา




C ++ เป็นภาษาการเขียนโปรแกรมที่ฉันเริ่มเรียนรู้การเขียนโปรแกรมด้วย ฉันต้องการสร้างโครงการโอเพ่นซอร์สที่ใช้การเขียนโปรแกรมเชิงวัตถุ (OOP) ใน C ++ ที่ทันสมัย ดังนั้นจึงใช้ชั้นเรียนมรดกความหลากหลายและแนวคิดเพิ่มเติม เป้าหมายของฉันคือการเขียนโค้ดที่สามารถบำรุงรักษาและยืดหยุ่นได้ในขณะที่ใช้ C ++ ที่ทันสมัยเช่น C ++ 17 และ C ++ 20 คุณสมบัติ คุณรู้จัก Warcraft II และเป็นโปรแกรมเมอร์ที่คุณคาดหวังว่าวัตถุประเภท "Mage"? จากนั้นเพียงแค่ดู mage.h และ mage.cpp สนใจว่าชาวนาทองคำของฉันจะเป็นอย่างไร? เพียงแค่เปิด compositestatemining.h และดู
เกมปัจจุบันได้รับการออกแบบโดยใช้วิธี RTS Lockstep ซึ่งหมายความว่าการกระทำที่เกี่ยวข้องทั้งหมดเช่นการผลิตหน่วยหรือการเคลื่อนไหวส่งผลให้เกิดเหตุการณ์ที่ดำเนินการในช่วงเริ่มต้นของเฟรมเกมใหม่ (= ติ๊ก) สิ่งนี้มีความสำคัญอย่างยิ่งเมื่อพิจารณาถึงรหัสผู้เล่นหลายคนที่ขาดหายไป รหัสปัจจุบันยังห่างไกลจากความสมบูรณ์แบบ แต่ฉันคิดว่ามันช่วยให้คุณมีส่วนร่วม การบริจาคของคุณได้รับการต้อนรับอย่างมาก!
ดูส่วน วิธีการสร้าง
ตามที่เขียนไว้ฉันทำงานเป็นเวลาสามปีใน Freetime ที่หายากของฉันอยู่คนเดียวอย่างสมบูรณ์ในโครงการนี้ อย่างไรก็ตามโครงการนี้มีสถานะการพัฒนาที่ค่อนข้างสูง War2.5 อย่างน้อยก็สามารถเล่นได้! กลไกเกมหลายอย่างได้ถูกนำไปใช้แล้ว อย่างไรก็ตามส่วนประกอบที่สำคัญหลายอย่างยังคงหายไปเช่นภาพเคลื่อนไหวที่เหมาะสมและการจัดการเวลา/เฟรมเครือข่าย AI ... เพียงบางสิ่งที่ทำงาน:
ดูหัวข้อ วิธีการเรียกใช้
งานนี้จะเป็นไปไม่ได้อย่างแน่นอนหากไม่มี
โอ้มีหลายสิ่งหลายอย่างที่หายไปบั๊กกี้หรืออาจได้รับการปรับให้เหมาะสม มีสิ่งเล็ก ๆ น้อย ๆ ที่คุณสามารถเริ่มต้นได้เช่นเมื่อสองครั้งที่คลิกสองหน่วยที่มองเห็นหน่วยที่มองเห็นได้ทุกประเภทควรเลือก และมีสิ่งใหญ่ที่คุณสามารถมีส่วนร่วมเช่นการเพิ่มประสิทธิภาพการค้นหาเส้นทาง ตัวอย่างเพิ่มเติม:
อย่างที่คุณเห็นมีสถานที่มากมายให้เริ่มต้นด้วย การบริจาคของคุณได้รับการต้อนรับอย่างมาก!
โหมดการดีบัก อนุญาตเช่นการตรวจสอบกระเบื้อง:

การสำรวจ บางส่วนทำงานได้:

อาคาร มีคิวการผลิต :

เลือกและสั่งคำสั่งให้มากที่สุดเท่าที่คุณต้องการ:

การค้นหาเส้นทางโดยใช้ แอสตาร์ :


เล่น เพลงเกม ต้นฉบับ (หรือเพิ่มไฟล์เสียงของตัวเอง):

ใช้ เบราว์เซอร์ PUD เพื่อโหลดแผนที่ที่คุณต้องการ:


การสร้างบน Linux ได้ทำบน Ubuntu หมายเหตุ: WAR2.5 สามารถสร้างและทำงานบน Ubuntu ได้ใน VirtualBox
sudo apt install libsdl2-image-2.0-0 libsdl2-image-dev libsdl2-mixer-2.0-0 libsdl2-mixer-dev libsdl2-ttf-2.0-0 libsdl2-ttf-dev git cmake git clone https://github.com/war2/war2tools.git
cd war2tools
mkdir build
cd build
cmake ..
make
sudo make installgit clone https://github.com/glfw/glfw.git
cd glfw
mkdir build
cd build
cmake ..
make
sudo make installgit clone https://github.com/hsbgit/war25.git
cd war25/src/build
cmake ..
make -j4เสร็จแล้ว
น่าเสียดายที่เราไม่สามารถติดตั้ง sudo apt-get ได้ติดตั้ง libs ที่ต้องการทั้งหมดเมื่อใช้ Windows ดังนั้นเราต้องได้รับห้องสมุดบุคคลที่สามต่อไปนี้ด้วยตัวเราเอง อย่างไรก็ตามเราไม่ได้สร้างมันขึ้นมา เราเพียงแค่ใช้รุ่นที่ให้มา
เพื่อให้สิ่งต่าง ๆ ง่ายขึ้นชุด LIBs ที่ใช้งานได้อย่างสมบูรณ์จะรวมอยู่ใน 3rdparty/Win ซึ่งหมายความว่าไม่จำเป็นต้องมีขั้นตอนต่อไปนี้เว้นแต่คุณต้องการเปลี่ยนเป็น LIB เวอร์ชันอื่น
War2Tools ไม่มีการเปิดตัวล่วงหน้า ดังนั้นเราต้องรวบรวม lib นี้ด้วยตัวเอง:
เปลี่ยน Windows SRC/3RDPARTY/WIN/PATHS เป็นพา ธ ที่สอดคล้องกับหมายเลข LIB ที่ถูกต้อง
เสร็จสิ้น การรวบรวมและการเชื่อมโยงควรใช้งานได้
คัดลอก DLLs จากโฟลเดอร์ LIB ที่เกี่ยวข้องไปยังโฟลเดอร์ Build
ที่เก็บนี้ไม่มีสินทรัพย์ Warcraft 2 ใด ๆ ดังนั้นในการเรียกใช้ WAR2.5 จำเป็นต้องใช้ Warcraft 2 Battle.net Edition สำหรับการสกัดข้อมูล โฟลเดอร์ซีดีของคุณควรมีลักษณะเช่นนี้:

เป็นขั้นตอนแรกเราต้องแยกสินทรัพย์ (เสียงกราฟิก ฯลฯ ) จากซีดี งานนี้จะเป็นไปไม่ได้อย่างแน่นอนหากไม่มีผู้นำเข้า Wargus และสคริปต์สำหรับ Warcraft II ซึ่งใช้ในการสกัดสินทรัพย์เริ่มต้นจากสำเนา Warcraft 2 ดั้งเดิมของคุณ
wartool.exe your_warcraft2_cd_folder extracted_data
แค่นั้นเริ่ม War2.5!