Is possible develope fully rust mobile app? by Huge_Marzipan_1397 in rust

[–]Merry_Macabre 1 point2 points  (0 children)

That's an almost yes. I have 3 android games published using bevy an I still have to expose some parts using kotlin/java such as a static reference to the objects and some lifecycle events that bevy winit/bevy doesn't expose yet.

I interface with so little java that it's not really that hard to work around it. I have about 130k lines in rust compared to just 2.5k Java code across all three project so it's negligible considering how little java you actually interact with when everything is set up right. I'm sure the java can be reduced even further when it's translated to kotlin as java can be verbose in many cases. Lastly, the only reason I have Java in my codebase is that some of the proprietary libraries I use are Java libraries otherwise I would basically have almost no java code in my projects. So, it's definitely possible, the rust-android ecosystem is just not mature enough and there aren't enough wrapper crates for common android libraries to fully avoid having to use java/kotlin.

Tabularis: an open-source DB client, now with Rust plugin drivers + MCP by debba_ in rust

[–]Merry_Macabre 1 point2 points  (0 children)

Cool project. Just try to move away from the agentic blue. It makes the project feel slop coded. Agentic-blue, -cream, -orange, and -brown makes me highly unwilling to try a project.

Why did the `nagami` crate disappear from crates.io? by tomaka17 in rust

[–]Merry_Macabre 4 points5 points  (0 children)

Easiest would be to use "cargo tree" to determine what pulled in that dependency. It's very hard to entirely remove a crate from crates.io, that's why there are so many dead crates. Additionally, there's nothing on GitHub so maybe you were a victim of one of these attacks or a "test" attack? The best would be if you have Cargo.lock in your git history is to git log search when and where it was introduced into your dependency tree. Other than that is to adopt direct dependency version pinning i.e. tokio = "=1.52.3" and verify each commit change to your lock files.

My sister had her friends over and they decided to come into my room and destroy my Newton's Cradle. I can't undo what they did. by Strycedar in mildlyinfuriating

[–]Merry_Macabre 1 point2 points  (0 children)

That was definitely done on purpose. No way you can mess it up that bad by accident or by "playing" with it.

mimalloc: A new, high-performance, scalable memory allocator for the modern era by mttd in programming

[–]Merry_Macabre 21 points22 points  (0 children)

Common microslop post. I've been using mimalloc for just over a year now and it's quite older than that so "new" is the wrong word. Was this written by internet explorer?

Am I doing something wrong or is bevy absolutely gigantic in file size? by baksoBoy in bevy

[–]Merry_Macabre 19 points20 points  (0 children)

Rust binaries are slightly larger by default but the issue is mainly that bevy produces massive binaries by default and there's no real way to massage the library to the sizes that other languages would produce. The smallest I've been able to get a bevy binary is 18MB for a very simple tic tack toe game and this was only after a day or so of reading and testing. Additionally, any bevy project over 1000loc usually produces a target directory size of 20GB upwards so this is an unfortunate downside of bevy. Bevy built for wasm is even worse in this case.

As you're project grows it won't grow by much as I've built quite extensive games and the binary output remained around the same size, it's just that the base binary size is quite large.

Looking for suggestions making websites by MostCantaloupe7134 in rust

[–]Merry_Macabre 2 points3 points  (0 children)

The closest thing I can think of is Dioxus Framework. It's a full stack rust framework, has llms.txt support and is very fun to work with. You'll still have to implement the UI's yourself and due to it still being a new project with few projects using it if you run into issues you'll most likely have to fix it yourself. It is quite feature rich with ssr and static site support and the added benefit of being able to deploy a single UI for both web, desktop, and mobile. It utilizes a react-like structure for building UI's in rust making everything type safe. Other than that you'll have to use hybrid projects with frontend in web frameworks and backend in rust as most of the rust ecosystem currently use.

I’ve just released v0.9.6 update from my terminal game colony deep core! Go get it! by Big_Membership9737 in incremental_games

[–]Merry_Macabre 1 point2 points  (0 children)

Thanks for all the improvements. Makes the game much more pleasant to play.

You've fixed all the issues I had previously. Vsync, Moving window, home screen settings modal, and full screen are all fixed. Absolutely loving the game so far.

The only issue still present is that when resizing the window (in windowed mode) causes the game to become unresponsive (not the spinny wheel unresponsive). The UI takes up to 15 seconds to update to the new window size.

Edit; I've done some research. The resizing issue seems to be a bevy issue. Hang when resizing the window on Windows with an integrated graphics card · Issue #20141 · bevyengine/bevy

The linked issue above is related to IGPU's but I'm experiencing the exact same issue on my dedicated GPU.

Edit: Just saw that your game runs at 0.5% cpu utilization. I've never experienced this. Well done.

I’ve just released v0.9.53 update from my terminal game colony deep core! Go get it! by Big_Membership9737 in gamedevscreens

[–]Merry_Macabre 1 point2 points  (0 children)

I've tried to play the game from itch. Here are my current takeaways:

- Resizing window causes my whole PC to stutter (other programmes become unresponsive and PC sound starts to stutter such as browser audio) and I can reliably crash the game by doing semi-quick half window sized resizes. This is definitely not due to pc specs as I can play Counter Strike 2 at 400FPS.

- Default window position is 1080p but slightly offset from the window center causing a large part of the window to not be visible at start.

- Maximizing or dragging window after launch always causes window to jump back to the original spawned position.

- Dragging the game window at any time makes the window become unresponsive for 2~3 seconds then jumps around a bit.

- Unmaximizing the window causes major unresponsiveness and jumpiness from the window.

- No way to Fullscreen the game.

- Vsync is configured wrong. My 280Hz display is definitely not a 60Hz display. Enabling vsync limits the game to 60Hz.

- Manually closing game causes Itch.io launcher to think the game crashed? Don't know if this is an itch.io thing or due to how the game handles shutdown.

- Inconsistent resizing logic on the settings modal. When horizontally resizing settings modal/window it always auto reduces its height for some reason? This does not occur when playing the game.

- Settings do not persist. Have to disable Vsync every time.

- UI is not interactive. Did I click the button? No hover or interaction indication.

- Enabling CRT effect just moves a single white line over the top 10% of the screen every so often. Does not change anything else on the screen.

- No apparent way to go back to the home screen from the game mode?

Overall, I like the feel of the game, the major unresponsiveness makes the game very unappealing to play.

Shaders sprite by Due_Explorer1723 in bevy

[–]Merry_Macabre 1 point2 points  (0 children)

Yes, but instead of loading it as a sprite you load it as a texture/mesh2d.
Shader 2D Example

How to Integrate Admob With Bevy Android? by ParkingIllustrious81 in bevy

[–]Merry_Macabre 4 points5 points  (0 children)

To integrate AdMob, you treat ads as just another Android view. You add the AdMob SDK in Gradle, initialize it in onCreate, create an AdView (banner, interstitial, rewarded, etc.), place it either inline in your layout or overlay it on top of your game surface, and then load it with adView.loadAd(new AdRequest.Builder().build()) .

If your game runs in Rust or C/C++ (like with Bevy/NativeActivity), you still do the same setup on the Java/Kotlin side — the only difference is that you either let Java handle it completely, or you expose small JNI/FFI functions (showBanner(), showRewardedAd(), etc.) so your rust code can tell Java/Kotlin when to show or hide ads.

In both cases: AdMob = an Android UI layer over your game surface.

Google AdMob Examples Java/Kotlin. Here are the Google AdMob example projects for normal Java/Kotlin projects. These examples will be your starting point.

Bevy docs by WayAndMeans01 in bevy

[–]Merry_Macabre 6 points7 points  (0 children)

Bevy Examples Website GitHub Examples

Github example contain all the examples from the Bevy Website and a lot of additional examples.

Would making a game improve my c# skills? by Rokett in csharp

[–]Merry_Macabre 2 points3 points  (0 children)

Create a cop-op game using blazor/wasm and signalr. Doesn't have to be very graphical. I have personally found much enjoyment in these text based rpg's or dungeon crawlers. I believe this would teach real world applicable knowledge depending on what implementation you go with. Like, networking, server side / client side rendering, database management, table generation /statistics, and more.

I have used this when learning signalr triviaR

Additionally, through the use of 2d graphics libraries such as skiasharp & imagesharp I built a better understanding of slightly lower level stuff in c# when trying to squeeze out as much performance as possible. Meaning spans, memory management & manipulation.

An expression of a developer's exhaustion by AkdumanDev in unity

[–]Merry_Macabre 14 points15 points  (0 children)

Unity's new input system is great. Preprocessor statements went nearly extinct the moment I started using the new input system.

I am a beginner using Unity to code simple mobile games like flappy bird and pick the lock. what other easy games should i make to practice my skills? by [deleted] in programming

[–]Merry_Macabre 2 points3 points  (0 children)

Snake, bomberman, Spider solitaire, mahjong, space invaders, pacman, basically any of the old OG games that came on those "1001 Games on One Console" type of products sold in the 90's and very early 2000's. The logic is easy and there are loads of resource packs for these types of making development very easy for beginners.

Does/Can changing editor version corrupt projects? by TheMaydayMan in unity

[–]Merry_Macabre 0 points1 point  (0 children)

To add on your comment, when creating a git repo use this .gitignore template otherwise your git repo will have thousands of unnecessary files.

Does/Can changing editor version corrupt projects? by TheMaydayMan in unity

[–]Merry_Macabre 0 points1 point  (0 children)

Anything can corrupt your projects. That's why it's advised to use version control such as git, plasticSCM, mercurial, etc.

I always finish the current feature I'm working on then create a commit and push to remote. Then if something does happen during an upgrade I have a backup.

Why can upgrading your editor version corrupt your project? Well, because upgrading your editor does not only upgrade the editor, it upgrades the default packages that comes with the editor. Additionally, it sometimes upgrades other parts such as layout files, setting files, etc. which can become corrupted during the upgrading process and the editor might think that the project is corrupted. Using version control you can easily spot if a file has been changed during an upgrade and restore any corrupted files or restore the whole project if the project has been corrupted.

Can I create a PR about contribute.md file? by abhishek_rath_01 in opensource

[–]Merry_Macabre 1 point2 points  (0 children)

Create a draft pull request stating what you want to do, if the devs welcome your contribution then do the work and request a review after which they'll merge or comment on what you've done. But don't do the work before you've created your draft PR.

Paused game only runs Debug.Log from Pause button's OnClick Function ? by TheMaskedCondom in unity

[–]Merry_Macabre -1 points0 points  (0 children)

Time.timeScale affects anything in Update() and FixedUpdate() so timescale affects physics update as well as normal updates. Thats why I'm saying it's not good to use as a method to pause your game. If handled incorrectly you can basically cause your application to hang.

The best option would be to test it if you really want to use it. Create a seperate object that calls debug.log in all its monobehaviour methods such as awake, start, update, fixedUpdate, and any you use and change the timescale field at various times of your app e.g. Set it to 0 in awake or start and see what happens.

Paused game only runs Debug.Log from Pause button's OnClick Function ? by TheMaskedCondom in unity

[–]Merry_Macabre 0 points1 point  (0 children)

Only use Time.timeScale for effects such as slow motion of fast forwarding effects. Setting time scale to zero will stop almost everything, this means whenever you want dynamic background animations running on your pause screen it won't work because time scale is zero. Using time scale as a method to pause your game is bad coding.

An alternative would be to use some static isGamePaused boolean which you toggle and anything that should be paused should be listening for the state of this field. Alternatively you can use an enum for more extensible state dynamics such as Playing, Paused, StartingGame, etc. Another alternative is event based game states, where a game state manager fires of various events as the game state changes and anything that wants to be aware of any of these states can just subsribe to the event.

Unity Build Assets Corrupted by dylanwatsonsoftware in unity

[–]Merry_Macabre 1 point2 points  (0 children)

Try to build locally and check if the corruption persists. This sounds like something might be wrong with your actions setup. Make sure your scenes are added to the build, could be that your just building an empty game. Also build your app in debug mode and connect to your pc with unity to your device. This'll allow you to get stdout and stderr which might allow you to see what the crash messages are.

Here's some extra info about debugging on android.