Skip to content

Commit

Permalink
update newsletter and last gif
Browse files Browse the repository at this point in the history
  • Loading branch information
Skytrias committed Apr 9, 2024
1 parent fa0c713 commit 476edec
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 4 deletions.
10 changes: 6 additions & 4 deletions content/news/2024-04.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
---
title: April 2024 Newsletter
summary: Highlights for April - Showcasing ***4*** Community Projects
summary: Highlights for April - Showcasing ***2*** Community Projects
slug: newsletter-2024-04
author: Michael Kutowski
date: '2024-04-01'
draft: true
categories:
- newsletter
- odin
Expand Down Expand Up @@ -194,11 +193,14 @@ The game uses the `OpenGL` and `glfw` packages for rendering and `miniaudio` for
<img src="/images/news/2024-04-nikio001.gif" class="img-fluid rounded">
</div>


### Platforming

The platforms are constructed in GLSL shader code by projecting and extruding 2D SDFs onto the surface of a cylinder. To get the geometry of the scene for the gameplay logic procedure, I place a cheap camera beneath the soap and take a low-res photo, which is copied from the OpenGL context to a multi-dimensional array and parsed to determine how much of the soap is over a platform and update its polar coordinates accordingly. I use array programming extensively to update the positions of the soap and the camera.

<div class="d-flex justify-content-center">
<img src="/images/news/2024-04-nikio002.gif" class="img-fluid rounded">
</div>

### Why Odin

I discovered Odin through my research into Data Oriented Programming. This is the 3rd game I've programmed in Odin. What I like about Odin is how a lot of the tedious work you had to do manually in C is delegated to the compiler or built into the language—there's no need for function declarations, no need to worry about the order of definitions, no need to name all the source files and all the libraries as arguments to the build command. A great example of this is the explicit procedure overloading: you can refer to a set of procedures by the same name and the compiler can determine which one you wanted to call by the arguments you provided, or panic otherwise.
Expand All @@ -207,4 +209,4 @@ One weakness is that much of the standard library is missing human-language desc

### Testing

I used the `testing` package to write a simple procedure to benchmark the game's performance. In just 5 lines of code I would read the best bench from disk, test for statistically-significant improvement from best bench to current bench, write the better bench to disk, and log the results.
I used the `testing` package to write a simple procedure to benchmark the game's performance. In just 5 lines of code I would read the best bench from disk, test for statistically-significant improvement from best bench to current bench, write the better bench to disk, and log the results.
Binary file added static/images/news/2024-04-nikio002.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 476edec

Please sign in to comment.