Skip to content

Newsletter 13: Add mochi, optic, sia, ijron #272

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
103 changes: 98 additions & 5 deletions content/posts/newsletter-013/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -936,9 +936,37 @@ _Discussions:
[@moletrooper]: https://twitter.com/moletrooper
[sf-graph-post]: https://moletrooper.github.io/blog/2020/08/starframe-1-architecture/

### 🐦 [Puffin Profiler]
### [mochi]

Pufin is a simple instrumentation profiler created by [Embark]
![A running app on a physical device](mochi.jpg)

[mochi] by [@richardanaya] is a game engine oriented toward
low-power mobile Linux phones/tablets.
It's written in Rust and uses Gtk and Cairo.
All drawing is done with an [Cairo Context][cairo-context] that mochi
has extended to do some really [common graphics operations][mochi-cairo].

This project is super alpha but usable.
Current features include: touch, screen rotation, atlases, sounds.

[pinephone-cairo-game-starter][mochi-start] is a starter for creating
a Cairo-based game in Rust for [PinePhone][pinephone-wiki]

_Discussions:
[/r/rust_gamedev](https://reddit.com/r/rust_gamedev/comments/i2389n/how_to_build_a_pinephone_game_using_rust)_

[mochi]: https://github.com/richardanaya/mochi
[@richardanaya]: https://github.com/richardanaya
[pinephone-wiki]: https://en.wikipedia.org/wiki/PinePhone
[mochi-start]: https://github.com/richardanaya/pinephone-cairo-game-starter
[cairo-context]: https://gtk-rs.org/docs/cairo/struct.Context.html
[mochi-cairo]: https://docs.rs/mochi/latest/mochi/trait.MochiCairoExt.html

### 🐦 [Puffin] Profiler

![Puffin flamegraph shown with puffin-imgui](puffin.png)

[Puffin] is a simple instrumentation profiler created by [Embark]
where you can opt-in to profile parts of your code.

```rust
Expand All @@ -954,12 +982,44 @@ fn my_function() {

The collected profile data can be viewed ingame with [imgui-rs].

![Puffin flamegraph shown with puffin-imgui](puffin.png)

[Puffin Profiler]: https://github.com/EmbarkStudios/puffin
[Puffin]: https://github.com/EmbarkStudios/puffin
[Embark]: https://www.embark-studios.com/
[imgui-rs]: https://github.com/Gekkio/imgui-rs

### [Optick][optick] Profiler

[![A screenshot from the video](optick-video.jpg)][optic-video]
_Click to watch a [video tutorial / features overview][optic-video]_

[Optick][optick] by [@bombomby] is a lightweight C++ profiler for games
that provides access for all the necessary tools required for
efficient performance analysis and optimization:
instrumentation, switch-contexts, sampling, GPU counters.

This month Rust API for Optick was released: [optick-rs].

Also, a set of procedural macros for simplifying the process of code markup
were published: [optick-attr].

```rust
// Instrument current function
#[optick_attr::profile]
fn calc() { /* Do some stuff*/ }

// Generate performance capture for function
// to {dir}/capture_name(date-time).opt.
#[optick_attr::capture("capture_name")]
pub fn main() {
calc();
}
```

[optick]: https://optick.dev/
[optick-rs]: https://github.com/bombomby/optick-rs
[optick-attr]: https://crates.io/crates/optick-attr
[optic-video]: https://youtube.com/watch?v=p57TV5342fo
[@bombomby]: https://github.com/bombomby

### [wowAddonManager] v1.0.2

![wowAddonManager Example](wowAddonManager-example.png)
Expand All @@ -977,6 +1037,39 @@ communicate with the TTY.
[tui-rs]: https://github.com/fdehau/tui-rs
[Termion]: https://gitlab.redox-os.org/redox-os/termion

### [intellij-ron]

[RON][ron] (Rusty Object Notation) is a simple readable data serialization format
that looks similar to Rust syntax and is designed
to support all of [Serde's data model][serde-data].
RON is relatively popular amongst Rust game developers.

This month [@JonahHenriksson] released [intellij-ron] - a new plugin
that adds [RON][ron] support to IntelliJ-based IDEs.

_Discussions:
[/r/rust](https://reddit.com/r/rust/comments/ictnsc/ive_created_an_free_open_source_intellij_plugin)_

[intellij-ron]: https://github.com/ron-rs/intellij-ron
[@JonahHenriksson]: https://github.com/JonahHenriksson
[ron]: https://github.com/ron-rs/ron
[serde-data]: https://serde.rs/data-model.html

### [".sia" Parser & Viewer][football-manager]

![sia_viewer demo: A textured model](football-manager.jpeg)

This month [@Stromberg90] published [Football Manager Tools] - a set of tools
for working with [Football Manager's][football-manager] 3D mesh format(.sia).
Amongst them:

- `sia_parser` - a Rust crate for parsing .sia files.
- `sia_viewer` - a standalone Mesh(.sia) Viewer.

[@Stromberg90]: https://github.com/Stromberg90
[football-manager]: https://en.wikipedia.org/wiki/Football_Manager
[Football Manager Tools]: https://github.com/Stromberg90/football-manager-tools

## Popular Workgroup Issues in Github

## Meeting Minutes
Expand Down
Binary file added content/posts/newsletter-013/mochi.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added content/posts/newsletter-013/optick-video.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.