Trang thông tin tổng hợp
Trang thông tin tổng hợp
  • Tranh Tô Màu
  • Meme
  • Avatar
  • Hình Nền
  • Ảnh Hoa
  • Ảnh Chibi
  • Ảnh Nail
Tranh Tô Màu Meme Avatar Hình Nền Ảnh Hoa Ảnh Chibi Ảnh Nail
  1. Trang chủ
  2. Ảnh tổng hợp
Mục Lục

Search code, repositories, users, issues, pull requests...

avatar
Xuka
08:04 31/10/2025

Mục Lục

AGPL licensed and opinionated game engine for 2D pixel-art games.

  • Pixel-perfect pixel art rendering with built-in rotsprite rotation shader.
  • Window creation with independent update and render game loop.
  • Hot-reloadable assets, seeing your assets update live in the game when you save them is a great boost in productivity for quickly iterating on ideas.
  • Single-binary, all non-texture assets will be embedded directly, and textures will be diced into a single atlas map embedded in the binary when deploying.
  • Simple bitmap font drawing.
  • OGG audio playback.
  • First-class gamepad support.
  • Separate managed camera systems for UI and game elements.
  • Ergonomic API with a focus on quickly creating small games, especially for game jams.
  • Reasonable performance, drawing thousands of animated sprites at the same time shouldn't be a problem.
  • Proper web support, it should be very easy to bundle as WASM for the web.
  • An ECS (Entity component system), although an ECS architecture is great for cache locality and thus performance, I feel that it's overkill for most small games. Nothing is stopping you to add your own on top of this engine if that's what you want though!
  • 3D, this engine is only for 2D pixel art.
  • Vector graphics, similar to the above, this engine is focused specifically on pixel art with lower resolutions.
  • Reinventing the wheel for everything, when there's a proper crate with good support I prefer to use that instead of creating additional maintainer burden.
  • Support all possible file formats, this bloats the engine.

Using this crate is quite simple, there is a single trait [Game] with two required functions, [Game::update] and [Game::render], that need to be implemented for a game state object.

Embed all assets into the binary when building.

Must be enabled when building for the web. If disabled all assets will be loaded from disk.

This will dice all PNG assets into a single tiny optimized PNG atlas. On startup this diced atlas will be efficiently uploaded to the GPU as a single bigger atlas, which will be used for all static sprites.

Expose read operations on images, if disabled sprites will be uploaded to the GPU and their data will be removed from memory.

On Linux you need to install asound2-dev for audio and udev-dev for gamepads:

This example will show a window with a counter that's incremented when pressing the left mouse button1. The counter is rendered as text2 loaded from a font in the top-left corner. When the 'Escape' key is pressed3 the game will exit and the window will close.

In the library it's possible to choose between multiple upscale implementations for the single-pass RotSprite algorithm, see the Rust documentation for more information:

This doesn't apply any extra rotation effects.

0 Thích
Chia sẻ
  • Chia sẻ Facebook
  • Chia sẻ Twitter
  • Chia sẻ Zalo
  • Chia sẻ Pinterest
In
  • Điều khoản sử dụng
  • Chính sách bảo mật
  • Cookies
  • RSS
  • Điều khoản sử dụng
  • Chính sách bảo mật
  • Cookies
  • RSS

Trang thông tin tổng hợp diendanmarketing

Website diendanmarketing là blog chia sẻ vui về đời sống ở nhiều chủ đề khác nhau giúp cho mọi người dễ dàng cập nhật kiến thức. Đặc biệt có tiêu điểm quan trọng cho các bạn trẻ hiện nay.

© 2025 - diendanmarketing

Kết nối với diendanmarketing

Trang thông tin tổng hợp
  • Trang chủ
  • Tranh Tô Màu
  • Meme
  • Avatar
  • Hình Nền
  • Ảnh Hoa
  • Ảnh Chibi
  • Ảnh Nail
Đăng ký / Đăng nhập
Quên mật khẩu?
Chưa có tài khoản? Đăng ký