vuongkkk
T.E.T.Я.I.S
Dota allstars loading time !?
Source : http://www.thehelper.net/forums/showthread.php/14918-Dota-allstars-loading-time!
Các phần mềm có thể giúp load map nhanh hơn
Wc3MapOptimizer của Vexorian
Widgetizer của PitzerMike
Ultimate Map SLK Optimizer của u9shasure (từ bbs.uuu9.com = đồ Tàu )
Những phần mềm này hoàn toàn stack (dùng kết hợp) với nhau !
Thực nghiệm khi kết hợp các phần mềm trên
Source : http://www.wc3c.net/showthread.php?p=1027540#post1027540
Source : http://www.thehelper.net/forums/showthread.php/14918-Dota-allstars-loading-time!
True.Rus đã giảm được thời gian load map 3 phút xuống còn chưa đầy 20 giây!
Bản dota 5.84b có khoảng 10k strings. Loại bỏ vấn đề về size map thì chỉ còn cách giải thích duy nhất đó là do string bị phân mảnh. Với những ai gặp vấn đề time load map thì chắc chắn đây là căn nguyên vấn đề. Nếu ko có string, bản 6.01 có thể load xong trong vòng 30 giây
Đã tìm ra được nguyên do vấn đề, nhưng tại sao string lại bị phân mảnh???
Thực ra việc phân mảnh string rất dễ xảy ra
Tạo item A
Thay đổi 1 số miêu tả của item A
Save
Tạo item B
Thay đổi 1 số miêu tả của item B
Save
Quay lại item A
Hoàn thành nốt miêu tả cho item A
Save
Thế là phân mảnh rồi. Giờ hãy tưởng tượng đến viễn cảnh có hàng nghìn thay đổi về items/abilities/heroes (updated/changed/created) mỗi 50 phiên bản.
Mỗi ability/unit/item được gán 4 kí tự 'code'. Những gì mà WE làm là phân chia tất cả những custom abilites thành 2 file. The phần liên quan đến hoạt động của war3 (damage/duration/effect, ...) vào file w3a and và phần string vào wts file (file này bao gồm tất cả string trong map).
Theo lý thuyết thì khi load map, game engine cố nhặt từng phần miêu tả trở lại ability. Nó search kiểu tìm lần lượt theo thứ tự trong string file 4 ký tự 'code' và ghép nó vào từng trường của ability/item.
Kể cả việc nạp loading screen trước khi vào game (trước khi đếm 5..4..3..2..1..) cũng mất 1 khoảng thời gian
Lại vấn đề string. Map description có 1863 string, Kể cả nó có nằm trong top 5 string đầu tiên. Bằng cách delete file string thì việc load nó chả tốn tí thời gian nào. Căn bản là vì kiểu search, từng string 1 cho đến khi tìm thấy cái khớp. Nên mỗi lần load screen picture, nó lại duyệt 1863 string, tương tự với các miêu tả của ability
Tôi đã PM lại Neichus về việc sửa map với string file. Có 1 cách là:
1. Delete .wts file
2. Mở map editor
3. Copy and paste(ko phải là import) tất cả các miêu tả lại
4. Save map
Làm thế sẽ sinh ra 1 file wts mới theo đúng tuần tự.
1 chú ý nữa là miêu tả cho creep, 1 vài miêu tả ko hề cần thiết cho những unit kiểu này, để chúng trống vì nhiều string đống nghĩa có nhiều thứ cho game engine search.
Chính xác là thế.
Tôi có 1 map ver 6.0 với 0 description và chỉ load trong in 20/30 seconds!
NHưng tôi nghe nói có thằng cha nào đó đã viết để làm điều đó tự động thay vì PASTING TẤT CẢ miêu tả lại như ý nêu trên (nghĩ thôi đã thấy khiếp)
Các phần mềm có thể giúp load map nhanh hơn
Wc3MapOptimizer của Vexorian
Widgetizer của PitzerMike
Ultimate Map SLK Optimizer của u9shasure (từ bbs.uuu9.com = đồ Tàu )
Những phần mềm này hoàn toàn stack (dùng kết hợp) với nhau !
Thực nghiệm khi kết hợp các phần mềm trên
Source : http://www.wc3c.net/showthread.php?p=1027540#post1027540
Thử nghiệm với 1 map : 117s load time / 4402 kb thì
- SLK opt only for BLP and MDX (mip2) + Widgetizer + Vex Opt (no attributes) = 67s load time / 3740 kb
- SLK opt only for BLP and MDX (mip2) + Widgetizer + Vex Opt (attributes) = 67s load time / 4163 kb
- Widgetizer + Vex Opt = 67s load time / 4053 kb
- SLK Opt (opt+clean) + Vex Opt = 62s load time / 3862 kb + broken models + broken units (units ko còn hiện trong map) + .... (quá dài để liệt kê)
- SLK Opt (opt) + Vex Opt = 66s load time / 3965 kb + broken units (units ko còn hiện trong map)
- SLK Opt (ko tích OPTION) = cleaned war3map.wts
Chỉ dùng đơn lẻ từng phần mềm
- SLK Opt alone = 69s / ~3650 kb
- Widgetizer alone = 68s / ~4120 kb
- Vex Opt alone = 97s / ~3440 kb
Thời gian cần để opt xong :
- Widgetizer = 8min 42s
- SLK Opt (nothing checked) = 33s
- SLK Opt (opt+clean) = 97s
- Vex Opt (no attribute) = 13s
BLP compression :
- Dường như kill 1 số .blp (ko hiện hoặc chỉ 1 màu đen)
mip2 :
- Khiến tất cả custom models đen sì
Có lẽ SLK Opt vẫn cần fix nhiều.
Qua đó mà ta có cách thức để tích hợp nhắm đến việc dung hòa size map + load time :
- Widgetizer (same thing) + SLK Opt (optimize only) + Vex Opt (finalizes again)
- SLK Opt (chỉ mip1 or mip16) + Widgetizer (dùng những option căn bản) + Vex Opt
có thể loại trừ SLK opt nếu SLK Opt làm hỏng 1 số cái
- safety: Widgetizer > SLK Opt
- speed: SLK Opt > Widgetizer
- load time: Widgetizer = SLK Opt (ai để ý nếu chỉ chênh 1 giây?)
Nếu ko quan tâm size map mà tập trung cho việc tối ưu load time (để chơi lan chả hạn) :
- SLK Opt + Vex Opt = Nếu ko muốn đợi
- Widgetizer + Vex Opt = cách an toàn hơn
Nếu chỉ muốn tối giảm map size (ko quan tâm time load map) :
- chỉ dùng Vex Opt
Chỉnh sửa cuối:




) còn bạn nào ko bị thì dùng cách 2 là cách tối ưu cả tốc độ load map lẫn size


