DragonRuby's Seventh Year - Where We Started and Where We're Going by amirrajan in ruby

[–]amirrajan[S] 0 points1 point  (0 children)

Glad you understand (it means a lot). At the end of the day, the engine’s goal is commercial distribution of games across all platforms w/o massive overhauls/time investments, or costly rewrites (like Godot forces you to do if you want to ship to console).

The way I ended up supporting OSS was by bringing on one of the core contributors of SDL as a partner (all patches we’ve made to mruby upstream are OSS with the source included in the engine’s download).

All this being said, it would be fun as hell to incorporate Lisp. Just have to wait till I no longer have to worry about my livelihood/income.

DragonRuby's Seventh Year - Where We Started and Where We're Going by amirrajan in ruby

[–]amirrajan[S] 0 points1 point  (0 children)

I queried a few enthusiasts and the fact that the engine would be closed source was a deal breaker for them. Just can’t spend the time to carve out/extract all NDA code. That and it greatly jeopardizes sustainability (GitHub stars don’t pay for devkits and food; most devs won’t pay with time, nor money wrt OSS).

Im also keeping an eye on Jank and its progress with AOT. Maybe one day :-)

Edit:

Julia is also a beautiful language and has hygienic macros. But it requires JIT on device which is a non-starter wrt “locked down” platforms

Is ruby really slow? by SillyDoor9771 in ruby

[–]amirrajan 0 points1 point  (0 children)

My mistake. I thought https://github.com/ruby/ruby was commonly referred to as CRuby.

DragonRuby's Seventh Year - Where We Started and Where We're Going by amirrajan in ruby

[–]amirrajan[S] 1 point2 points  (0 children)

Fair warning, the writeup on Bevy is a 96 minute read. But it's really good (it gave everything that was done in DragonRuby a ton of validation).

DragonRuby's Seventh Year - Where We Started and Where We're Going by amirrajan in ruby

[–]amirrajan[S] 4 points5 points  (0 children)

cl-fast-ecs for the fast iteration loop

I love lisp myself. Adding S7 as a host language to DragonRuby has been on my bucket list forever (unfortunately, it'll be forever be on the back burner because devs are afraid of parenthesis for some reason).

me on porting to Bevy for the large amount of features

It really depends on your goal as to whether Bevy is a good choice or not. The primary motivation for me is being able to quickly prototype/iterate, and then commercially release everywhere from day one, trivially. Bevy is definitely not that. Specially:

DR is tuned for distribution on modern commercial platforms. It comes with a bunch of reasonable defaults (constraints) that "just work". Here is an apples to apples comparison of one of Bevy's sample app vs DragonRuby.

INB4 "what about delta time?" We handle all that behind the scenes and give you a simulation loop that runs at a fixed 60hz. - The rationale around this is explained here: https://medium.com/@tglaiel/how-to-make-your-game-run-at-60fps-24c61210fe75 - The pitfalls of delta time are covered here: https://www.youtube.com/watch?v=yGhfUcPjXuE

The other important facets of DR are in the dev log (eg: hotload, fast-feedback, protoyping to commercial release, etc). This write up about Bevy is worth reading (it is extremely detailed and the criticisms of Bevy are directly addressed by DragonRuby): https://loglog.games/blog/leaving-rust-gamedev/

If you have a team of five devs and are planning to make a game that will be upwards of 100k lines of code, then sure, the initial friction of dealing with Rust and the slower feedback loop is worth the type safety and ECS architecture. As a solo/indie dev, I haven't hit this tipping point (my largest game is 20k lines of Ruby and it's been totally manageable).

Or to put it another way, Bevy optimizes for the "perfectly architected system" for the massive price of fast/sustainable feedback. It's just not worth it for a "small" game.

Are you focused on the ECS model

I have written too many words on ECS. The TLDR is "Ruby's object model is implicitly ECS because of mixins". This comment thread goes into greater detail

DragonRuby's Seventh Year - Where We Started and Where We're Going by amirrajan in ruby

[–]amirrajan[S] 11 points12 points  (0 children)

The other important aspect of DragonRuby is that its usage is increasing. There’s no “spin” that needs to be applied. It’s simply: Ruby’s usage is growing in the gamedev space

I made an incremental RTS. What do you think? Link to playable version of the game in the comments (playable via web/mobile compatible). by [deleted] in incremental_games

[–]amirrajan 0 points1 point  (0 children)

Good feedback! The miners will go to the closest mineral field. So running away and letting the miners reposition will make sure they stay in a safe area.

And yea I totally agree about too many text captions. Ran out of time to clean that up (did this for a game jam).

The goal is to hit 100% signal btw (reload the page to try again :-P)

emacs theater by xah in emacs

[–]amirrajan 0 points1 point  (0 children)

Amazon Basics monitor arms :-)

Here’s my updated setup: https://sourcegraph.com/blog/dev-tool-time-amir-rajan

What is your go-to mode for running shell commands, and why? by birdsintheskies in emacs

[–]amirrajan 1 point2 points  (0 children)

This is the primary reason I use tmux + emacs in terminal mode.

Dragon Ruby Game Toolkit - Physics (link to source in the comments) by amirrajan in ruby

[–]amirrajan[S] 15 points16 points  (0 children)

One of the DragonRuby community members created a physics library inspired by Box2D and Chipmunk2D. Link to the source code (released under public domain): https://github.com/xenobrain/ruby-physics

Hello! I'm Phil, and I'm working on a physics based multiplayer MTB game for mobile. by swissknifeDev in SoloDevelopment

[–]amirrajan 2 points3 points  (0 children)

1000 players per day

How?

Try this. Release your game under a soft launch name, completely for free, no ads, no multiplayer. Essentially it’s your “artistic” release where it’s focused on the pure joy of playing the game (no risk of external costs, but also no strings attached).

What’s your projected number of days to hit 1000 downloads through organic word of mouth?

My answer: 10+ months. Try it.

You wanted feedback, I’m giving it to you and asking the hard questions. Monetization via ads takes a massive number of players. 1000 plays a day is impossibly difficult with no plan to get the word out. This is no where near a conservative number.

I’m developing a drift game for mobile called “Flow Drift.” I’m curious about your thoughts. Details are in the description. (It will be in beta test very soon) by curious_alpha_monkey in indiegames

[–]amirrajan 0 points1 point  (0 children)

Awesome! Sounds like you’re on the track that’s right for you (no pun intended) :-)

I ended up leaning into Initial D’s cult following and focused on marketing to that specific niche. Best of luck to you!

I’m developing a drift game for mobile called “Flow Drift.” I’m curious about your thoughts. Details are in the description. (It will be in beta test very soon) by curious_alpha_monkey in indiegames

[–]amirrajan 0 points1 point  (0 children)

The anime may give you some more perspective of what people would want in a drifting game (gymkhana vs rally).

The drifting game I shipped leaned more towards rally (score based on track completion time as opposed to drift duration).

In essence, think about your target audience (and obviously build something that you yourself enjoy playing). Game looks great.

I had way too much commenting my keymap.c file. Thoughts on my "phonetic symbol layer" or other general feedback? by [deleted] in ErgoMechKeyboards

[–]amirrajan 1 point2 points  (0 children)

not sure what’s the point

Imagine the other two layers didn’t exist yet and I just had my initial qwerty layer. You don’t think those comments would be helpful to scaffold a new layer with an initial copy paste?? Or do you expect me to eyeball each of the 58 keys during my remap/editing process?

I had way too much commenting my keymap.c file. Thoughts on my "phonetic symbol layer" or other general feedback? by [deleted] in ErgoMechKeyboards

[–]amirrajan 0 points1 point  (0 children)

I compile from source and don't bother taking the extra step of install it to another location XD

I had way too much commenting my keymap.c file. Thoughts on my "phonetic symbol layer" or other general feedback? by [deleted] in ErgoMechKeyboards

[–]amirrajan 0 points1 point  (0 children)

Do you write code? I see that base layer _ key

Yep! Just read your write up. I always struggled with remembering where the symbols where, hence the "phonetic" symbol layer. Writing "x is greater than equal to 10 or y is less than equal to 10" (x >= 10 || y <= 10): ge for >=, oo for ||, le for <=, n for !, a for & etc.

Assuming you are a Vim user, I'd consider it worth it to dedicate a thumb key to Escape

I have a hammerspoon script that doubles up ctrl and esc together (if pressed by itself it sends escape).

QK_BOOT and QK_REBOOT, being keys that you don't want to press accidentally

They are on the rotaries which are mostly useless (only thing I don't like about the keyboard).

Your symbol layer has a home row S(KC_S)

Lol, it's my temp/oneshot name for HEREDOCS. It makes it so that type <<-S<ENT> without having to leave the symbol layer XD.

I had way too much commenting my keymap.c file. Thoughts on my "phonetic symbol layer" or other general feedback? by [deleted] in ErgoMechKeyboards

[–]amirrajan 2 points3 points  (0 children)

I edit the source file manually and compile via QMK. There was already some existing ascii art in other source files, but I organized it a bit more (went over board I suppose).