1 điểm bởi GN⁺ 2024-08-11 | 1 bình luận | Chia sẻ qua WhatsApp

Mục lục

  • Trước Megapack
  • Gói đầu tiên
  • Gói thứ hai
  • Di sản
  • Mục tiêu của Megapack
  • Lớn hơn và tốt hơn
  • Hỗ trợ nhiều ngôn ngữ hơn
  • Biến thể kiểu dáng
  • Độ hoàn thiện kerning
  • Kiểm soát chất lượng tốt hơn
  • Phân phối và bảo trì dễ hơn
  • Nâng tiêu chuẩn lên
  • Học thiết kế phông chữ
  • Tư liệu tham khảo ảnh
  • PIFO: công cụ phông chữ pixel của tôi
  • Cách hoạt động
  • Các crate đã dùng
  • Bước 1: Tạo font sheet
  • Bước 2: Tạo đường viền glyph
  • Bước 3: Bảng kerning
  • Bước 5: Xuất
  • Kiểm thử chất lượng
  • Phân phối
  • Kết luận

Trước Megapack

  • Khi bắt đầu làm Ikenfell vào năm 2016, tác giả đã tạo gói phông chữ đầu tiên
  • Năm 2018, tác giả phát hành gói thứ hai với chất lượng được cải thiện đáng kể

Gói đầu tiên

  • Năm 2016, tác giả bán gói đầu tiên gồm 12 phông chữ trên itch.io
  • Khi đó kỹ năng thiết kế phông chữ դեռ còn hạn chế, nhưng nó được dùng nhiều trong các game indie

Gói thứ hai

  • Năm 2018, tác giả phát hành gói thứ hai gồm 40 phông chữ
  • Đã bổ sung bảng kerning và cung cấp theo các định dạng phù hợp với nhiều engine khác nhau
  • Tác giả hợp tác với các nhà phát triển indie và quảng bá bằng ảnh chụp màn hình game

Di sản

  • Gói thứ hai rất phổ biến, thậm chí được dùng trong những game lớn như Cadence of Hyrule của Nintendo
  • Nhiều phông chữ cũng được dùng trong Get in the Car, Loser của Love Conquers All Games

Mục tiêu của Megapack

  • Sau khi phát hành Ikenfell, tác giả rơi vào trạng thái burnout nhưng vẫn tiếp tục nâng cao kỹ năng lập trình Rust
  • Tác giả lên kế hoạch tạo ra một gói phông chữ lớn hơn

Lớn hơn và tốt hơn

  • Lần này mục tiêu là 100 phông chữ, hướng tới việc tạo phông phù hợp với nhiều thể loại game khác nhau

Hỗ trợ nhiều ngôn ngữ hơn

  • Các gói trước chỉ hỗ trợ ký tự ASCII, nhưng lần này đã mở rộng để hỗ trợ EFIGS (tiếng Anh, tiếng Pháp, tiếng Ý, tiếng Đức, tiếng Tây Ban Nha)

Biến thể kiểu dáng

  • Mỗi phông chữ hỗ trợ nhiều kích cỡ và độ đậm khác nhau để tạo biến hóa trong khi vẫn giữ được tính nhất quán về phong cách

Độ hoàn thiện kerning

  • Tác giả tự động hóa công việc kerning để giảm thời gian và lỗi

Kiểm soát chất lượng tốt hơn

  • Đưa vào các phương pháp giúp đánh giá dễ hơn chất lượng tổng thể của phông chữ

Phân phối và bảo trì dễ hơn

  • Tự động hóa quy trình upload và phát hành để giảm lỗi và tăng hiệu quả

Nâng tiêu chuẩn lên

  • Tác giả học thiết kế phông chữ và thu thập nhiều tài liệu tham khảo

Học thiết kế phông chữ

  • Tác giả học thiết kế phông chữ qua cuốn sách "Design School: Type" của Richard Poulin

Tư liệu tham khảo ảnh

  • Tác giả dùng nhiều ảnh chụp văn bản khác nhau làm tài liệu tham khảo

PIFO: công cụ phông chữ pixel của tôi

  • Tác giả phát triển một công cụ tên là PIFO bằng Rust để tạo phông chữ pixel

Cách hoạt động

  • Công cụ dùng PNG tile sheet và file cấu hình để tạo phông chữ, tự động tính các cặp kerning rồi xuất ra file TTF

Các crate đã dùng

  • Đã sử dụng clap, image, rayon, serde, glyph-names, ab-glyph, crunch và các crate khác

Bước 1: Tạo font sheet

  • Tạo phông chữ bằng tile sheet và file cấu hình

Bước 2: Tạo đường viền glyph

  • Nhóm các pixel thành cụm, tạo đường viền rồi chuyển thành glyph TTF

Bước 3: Bảng kerning

  • Tạo bảng kerning thông qua kerning thủ công và tự động

Bước 5: Xuất

  • Xuất phông chữ thành file TTF, tile sheet và texture atlas nén

Kiểm thử chất lượng

  • Kiểm tra chất lượng phông chữ và xử lý các vấn đề

Phân phối

  • Tạo dự án trên itch.io và upload lên

Kết luận

  • Vào tháng 12/2023, tác giả phát hành 175 Pixel Font Megapack, đồng thời xây dựng toolchain bằng Rust để tạo phông chữ, kiểm thử chất lượng và phân phối

Tóm tắt của GN⁺

  • Bài viết này cung cấp phần giải thích chi tiết về quá trình thiết kế và sản xuất phông chữ pixel
  • Việc phát triển công cụ tạo phông chữ bằng Rust cùng hệ thống kerning tự động và kiểm soát chất lượng là điểm rất thú vị
  • Đây sẽ là thông tin rất hữu ích cho những ai quan tâm đến thiết kế phông chữ pixel
  • Các dự án khác có chức năng tương tự gồm FontForge và Glyphs

1 bình luận

 
GN⁺ 2024-08-11
Ý kiến trên Hacker News
  • Tôi tò mò về lý do mang tính phong cách đằng sau sự khác biệt về khoảng cách giữa "Fdj" và "Fjo"
  • Việc làm font có thể mất một năm và bao gồm nhiều biến thể như chữ hoa, chữ thường, ký hiệu, độ đậm, độ nghiêng, v.v.
    • Kerning (khoảng cách giữa các ký tự) là công việc rất quan trọng và đòi hỏi nhiều thời gian, công sức
    • Một font hỗ trợ 176 ký tự có thể cần 37.976 cặp kerning
    • Có thể tự động hóa việc này để xử lý phần lớn công việc kerning, rồi chỉnh tay khi cần
  • Đây là kiểu công việc gợi nhớ về thời kỳ chưa có ranh giới giữa nghệ sĩ và kỹ sư
  • Có thể tạo font raster thông qua phần mềm Metafont của Donald Knuth
  • Tôi thích font trên trang web và phần tạo kiểu đơn giản của nó
    • Có một bài viết về cách trang web này được tạo ra
  • Thật vui khi biết công việc này cũng mang lại lợi ích về mặt tài chính
    • Chevy Ray là một nhà phát triển game indie, từng hoạt động trong giai đoạn 2010-2012
  • Có vẻ như phải có cách làm thuật toán nhanh hơn
    • Thay hash map bằng bitmap và mảng chỉ mục byte có thể là một cách
  • Nếu bạn quan tâm đến font, hãy thử xem tomorrow.type.today
    • Một thành viên trong nhóm chúng tôi đang sưu tầm các tác phẩm của họ
  • Trong Rust, có thể dễ dàng chạy công việc trên nhiều lõi
    • Chỉ cần chèn một lệnh gọi duy nhất vào chuỗi hàm là đủ
  • Typography là một lĩnh vực khó hiểu
    • Việc tạo ra 175 font và khiến mỗi font khác biệt một cách có ý nghĩa là điều đáng kinh ngạc