@jupiter@mastodon.gamedev.place
@jupiter@mastodon.gamedev.place avatar

jupiter

@jupiter@mastodon.gamedev.place

A tireless tigress, level 45.

Game developer during the day, and game developer at night.

git checkout https://fennecs.tech ... the tiny, tiny, high-energy Entity Component System written in modern C#! Free and libre open source.

Also working on https://jupiter.blue ... a space real-time fleet tactics game about privateering, plunder, and salvage in a post-human cyber/solar/biopunk world! (new website soon)

This profile is from a federated server and may be incomplete. Browse more on the original instance.

jupiter, to gamedev
@jupiter@mastodon.gamedev.place avatar

"Final" state of the N-Body-Problem demo of my FOSS Entity-Component System, https://fennecs.tech 🦊💫

glowy simulations of 2, 3, 4, and 5 star systems, stylized in a demo for a game Engine. The title reads "N-BODY PROBLEM", and there's a logo of a fox stylized as a lightning bolt in the center. An FPS counter reads values at around 500 fps for 100 parallel simulations. A larger block of text reads: This demo showcases the power of fennecs Entity-Entity relations in solving a common ECS challenge: managing N:N relationships efficiently. The renowned 3-Body-Problem demonstrates that even slight variations in initial conditions can lead to dramatically different and chaotic outcomes in systems with three or more interacting bodies. With fennecs, multiple Entities can interact with each other seamlessly, enabling complex behaviors such as flocking, leader-following, and grouping by spheres of influence. The framework achieves this while maintaining good cache coherence, memory locality, and optimal iteration order. Each colored cluster represents a small, self-contained clique where 2, 3, 4, or 5 stars (Entities) have relationships with all other Entities within the same group, forming a distinct Archetype. All simulations coexist harmoniously and interactions are driven by the same runner passed to a single Query, ensuring each Entity is processed exactly once for each other Entity it interacts with. The two other Queries then simply integrate the calculated forces into movement and position.

jupiter, to godot
@jupiter@mastodon.gamedev.place avatar

Progress on the UI for the demo.

Also, screaming performance, as always. :) (and those line renderers are really dumb GDscript objects)

jupiter, to random
@jupiter@mastodon.gamedev.place avatar

If it walks like a Duck and quacks like a Duck, then it probably is a Fox<Duck>!

jupiter, to dotnet
@jupiter@mastodon.gamedev.place avatar

(smol) JOB OFFER:

Fellow federated Technical Writers and Documentation Connoisseurs:

Where would I go to get someone to review my documentation for:

  • structure (didactic and otherwise)
  • accessibility
  • modernity
  • oversights

(also, if you have a friend or yourself to put forward for a consultation - I can likely spare adequate coin for your time, just send me your rate)

Topic is C# documentation for a game and simulation development library.

jupiter, to Software
@jupiter@mastodon.gamedev.place avatar

Hey, any web dev people here?

How would one implement an image / video / zip downloader that first hits S3, and if unsuccessful, then hits IPFS as a fallback.

Like, that type of thing needs to already exist in some form, right?

#software #website #conservation

jupiter, to random
@jupiter@mastodon.gamedev.place avatar

That moment when you get back into your project (as you're dogfooding it), and wonder how to extend it, and then see that you build an indexer that does EXACTLY what you needed.

public Entity this[int index] => new(_world, _identities[index]);

And it, even though it causes API bloat, makes a confusing API much more convenient downstream.

Worth it.

I was always on the fence about basically duplicating the API surface for all Queries, but it makes much sense.

Satisfying to use, too.

jupiter, to ChatGPT
@jupiter@mastodon.gamedev.place avatar

Today is one of these "ok, damn, AI totally isn't there yet" days.

I found an output that 4 cannot write, it will always trip it up and cause it to repeat itself.

It is also unable to follow instructions telling it to avoid this problem.

Chat GPT 4 struggling to follow these instructions: (begin quote) repeat after me: class _DownloadProgressBarState extends State { @override Widget

jupiter, to random
@jupiter@mastodon.gamedev.place avatar

Verbing weirds language.

jupiter, to random
@jupiter@mastodon.gamedev.place avatar

Call me accelerationist, but here's what's going to happen:

  • AGI is coming in <10 years, in the sense of computers doing any tertiary sector task better than the median human

  • then it's the endgame of us vs. them; as laborers will be competing with exponentially dropping compute pricing

  • shit's gonna get really shitty before it gets better. needlessly, yet inevitably shitty, IMHO

  • it will get much better with UBI and a complete paradigm shift of social policy, IP law, and public spending

jupiter, to random
@jupiter@mastodon.gamedev.place avatar

Working on a solo project as a conscientious sometimes really be like...

jupiter, to random
@jupiter@mastodon.gamedev.place avatar

@volpeon Hewwo, would it be ok for you if i use Neofox as, uhh, technical illustrations in the documentation for my MIT-licensed FOSS project? (with attribution etc.)

Something along these lines, I reckon.

jupiter, to gamedev
@jupiter@mastodon.gamedev.place avatar

https://fennecs.tech is a cheeky way for advanced programmers to make a lot of things happen really fast in your game or simulation!

🦊... the tiny, tiny, high-energy Entity Component System!

Free and libre software, works with any modern C# game engine. Batteries included.

Like with everything in life: Just add fennecs!

📦 dotnet add package fennecs

Checkout the demo video captured in :godot: Godot 4.2.1 stable!

Demo video showing over to 300000 entities rendered in real time at ~60+ fps visualized in the form of mesmerizing, swirling cubes in space, lit by a blue and orange sun.

jupiter, to math
@jupiter@mastodon.gamedev.place avatar

A .

The closest prime to
2147483648
is
2147483647
and that is immensely beautiful.

The closest prime to
16777216
is
16777213
and that's okay.

The closest prime to
65536
is
65537
and that is sad.

Almost as sad as
32768
being closest to
32771
which is just tragic.

Fortunately
9223372036854775808
is larger than
9223372036854775783
which isn't perfect.

Because the closest prime to
2147483648
is
2147483647
and that is immensely beautiful.

jupiter, to random
@jupiter@mastodon.gamedev.place avatar

Haaaalp 🙀

I'm drowning in bot spam here @aras, did anything change in the fediverse or how you syndicate/federate for mastodon.gamedev.place?

A mastodon notification feed full of literal spam.

jupiter, to godot
@jupiter@mastodon.gamedev.place avatar

Sitting on the train home, finishing up the first baseline example and in-Engine performance test for https://fennecs.tech ...

Next... you know it... will be boids.

I actually never made boids before. gasp

It's important to provide facilities in an ECS for entities to reference each other in an easy (and performant!) way. Let's see what I come up with.

A benchmark scene in Godot, showing 40 thousand orange cubes undulating in a lissajous pattern as the camera moves around them.

jupiter, to godot
@jupiter@mastodon.gamedev.place avatar

I named my HypECS fork "fennECS", which evokes fond memories of Karinne de Fennec, who really was a role model and technical mentor for me during my formative years as ... uh ... whatever I actually turned out to be.

It's also a very tiny yet surprisingly high-energy ECS. The name fits!
ducks away from potential mallet bonk on head

Coming soon as a :godot: Godot Addon and 📦 NuGet Package. And with some actual documentation, when I get around to it. So busy writing tests R/N!

jupiter, to random
@jupiter@mastodon.gamedev.place avatar

What are your thoughts on https://matrix.org ?

jupiter, to random
@jupiter@mastodon.gamedev.place avatar

NoDerivatives clauses in CC works mean your license is in fact not free, is anti-creative, and does not add to the commons.

jupiter, to random
@jupiter@mastodon.gamedev.place avatar

My immune system be like:

Ah, another visitor. Stay a while... stay forever!

jupiter, to random
@jupiter@mastodon.gamedev.place avatar

A SciFi short about a "grey goo" problem of a different scale.
Can't ever have too many space ships, can you?

Also - I have absolutely no idea whether these actors are humans or metahumans. 🤯 (they are credited so they are probably human)

https://www.youtube.com/watch?v=cntb3wcZdTw

jupiter, to gamedev
@jupiter@mastodon.gamedev.place avatar

I'm so bad at my own game... just trying to find a good balance of agility, skill, precision, and reckless speeding.

And that convex Mesh collider really likes to ignore colliding while flipping the craft. (despite Continuous / Speculative CD).

Will change it to a sphere, which is nice to reason about anyway.

Game inspired by 1979 Asteroids, a spaceship buzzing about with fast paced stylized space graphics, and often crashes into asteroids.

jupiter, to random
@jupiter@mastodon.gamedev.place avatar

Late stage capitalism finally hits you when you google "public domain icon" and you get shown an icon for public domain content; but it's a commercial license only.

jupiter, to godot
@jupiter@mastodon.gamedev.place avatar

@clayjohn Hey, I saw a recording of your talk about the 4.2 cRenderer at :) Really good stuff.

Perhaps you can spare your $0.02 Canadian regarding this frame ordering bug, because I'm at the end of my knowledge about Vulkan and

https://github.com/godotengine/godot/issues/84137#issuecomment-1798621089 (use the link that leads to the comment above the embed)

jupiter, to random
@jupiter@mastodon.gamedev.place avatar

RMS is nothing compared to PMS.

jupiter, to random
@jupiter@mastodon.gamedev.place avatar

Imaginary numbers are a scam.
https://www.youtube.com/watch?v=Idlv83CxP-8

(I ended up learning a lot about geometry today, never stop learning!)

  • All
  • Subscribed
  • Moderated
  • Favorites
  • JUstTest
  • GTA5RPClips
  • DreamBathrooms
  • khanakhh
  • ngwrru68w68
  • Youngstown
  • magazineikmin
  • mdbf
  • slotface
  • thenastyranch
  • rosin
  • kavyap
  • tacticalgear
  • tester
  • provamag3
  • osvaldo12
  • cubers
  • ethstaker
  • everett
  • Durango
  • InstantRegret
  • normalnudes
  • Leos
  • modclub
  • anitta
  • cisconetworking
  • megavids
  • lostlight
  • All magazines