- 7 Posts
- 56 Comments
zolax@programming.devOPto
Programming@programming.dev•training a neural network to play a bullet hell game
3·2 years agocurrently, yes, but this is more an investigation into how well a neural network could play a bullet hell game
very few bullet hell AI programs rely on machine learning and virtually all of the popular ones use algorithms.
but it is interesting to see how it mimics human behaviour, skills and strategies and how different methods of machine learning perform and why
(plus I understand machine learning more than the theory behind those bullet hell bots.)
zolax@programming.devOPto
Programming@programming.dev•training a neural network to play a bullet hell game
1·2 years agothe training environment is pretty basic right now so all bullets shoot from the top of the screen with no enemy to destroy.
additionally, the program I’m using to get player and bullet data (twinject) doesn’t support enemy detection so the neural network wouldn’t be able to see enemies in an existing bullet hell game. the character used has a wide bullet spread and honing bullets so the neural network inadvertently destroys the enemies on screen.
the time spent in each training session is constant rather than dependent on survival time because the scoring system is based on the total bullet distance only.
zolax@programming.devOPto
Programming@programming.dev•training a neural network to play a bullet hell game
1·2 years agodefinitely. usually algorithms are used to calculate the difficulty of a game (eg. in osu!, a rhythm game) so there’s definitely a practical application there
zolax@programming.devOPto
Programming@programming.dev•training a neural network to play a bullet hell game
3·2 years agoone problem ive seen with these game ai projects is that you have to constantly tweak it and reset training because it eventually ends up in a loop of bad habits and doesnt progress
you’re correct that this is a recurring problem with a lot of machine learning projects, but this is more a problem with some evolutionary algorithms (simulating evolution to create better-performing neural networks) where the randomness of evolution usually leads to unintended behaviour and an eventual lack of progression, while this project instead uses deep Q-learning.
the neural network is scored based on its total distance between every bullet. so while the neural network doesn’t perform well in-game, it does actually score very good (better than me in most attempts).
so is it even possible to complete such a project with this kind of approach as it seems to take too much time to get anywhere without insane server farms?
the vast majority of these kind of projects - including mine - aren’t created to solve a problem. they just investigate the potential of such an algorithm as a learning experience and for others to learn off of.
the only practical applications for this project would be to replace the “CPU” in 2 player bullet hell games and maybe to automatically gauge a game’s difficulty and programs already exist to play bullet hell games automatically so the application is quite limited.
the body of the post has the ringtone attached. I might need to edit it to make it viewable through Photon but you can also view it on a browser
zolax@programming.devOPto
Programming@programming.dev•training a neural network to play a bullet hell game
7·2 years agoI always find it interesting to see how optimization algorithms play games and to see how their habits can change how we would approach the game.
me too! there aren’t many attempts at machine learning in this type of game so I wasn’t really sure what to expect.
Humans would usually try to find the safest area on the screen and leave generous amounts of space in their dodges, whereas the AI here seems happy to make minimal motions and cut dodges as closely as possible.
yeah, the NN did this as well in the training environment. most likely it just doesn’t understand these tactics as well as it could so it’s less aware of (and therefore more comfortable) to make smaller, more riskier dodges.
I also wonder if the AI has any concept of time or ability to predict the future.
this was one of its main weaknesses. the timespan of the input and output data are both 0.1 seconds - meaning it sees 0.1 seconds into the past to perform moves for 0.1 seconds into the future - and that amount of time is only really suitable for quick, last-minute dodges, not complex sequences of moves to dodge several bullets at a time.
If not, I imagine it could get cornered easily if it dodges into an area where all of its escape routes are about to get closed off.
the method used to input data meant it couldn’t see the bounds of the game window so it does frequently corner itself. I am working on a different method that prevents this issue, luckily.
zolax@programming.devOPto
Programming@programming.dev•training a neural network to play a bullet hell game
3·2 years agoI did create a music NN and started coding an UNO NN, but apart from that, no
zolax@programming.devOPto
Programming@programming.dev•training a neural network to play a bullet hell game
8·2 years agoyeah, the training environment was a basic bullet hell “game” (really just bullets being fired at the player and at random directions) to teach the neural network basic bullet dodging skills

- the white dot with 2 surrounding squares is the player and the red dots are bullets
- the data input from the environment is at the top-left and the confidence levels for each key (green = pressed) are at the bottom-left
- the scoring system is basically the total of all bullet distances

- this was one of the training sessions
- the fitness does improve but stops improving pretty quickly
- the increase in validation error (while training error decreased) is indicated overfitting
- it’s kinda hard to explain here but basically the neural network performs well with the training data it is trained with but doesn’t perform well with training data it isn’t (which it should also be good at)
zolax@programming.devto
Programmer Humor@programming.dev•Free and open source software, for 5 dollars
45·2 years agothis is the ad-free version, which is available with the exact same (if I’m correct) features on F-Droid for free, along with the source code on GitHub.
the versions on the Play Store (paid version and free version with ads) likely just help pay the developer for their work
and as others have said already, free software is free as in freedom, not free beer.
zolax@programming.devOPto
Programming@programming.dev•browse (Old) Reddit with Lemmy style
1·2 years agooh, I forgot about the API not being freely available; so an alternate frontend wouldn’t be a proper solution?
going by the other comments, though, there are client-side options that can avoid API issues entirely by just re-styling the webpage. thanks for the info, though!
zolax@programming.devOPto
Programming@programming.dev•browse (Old) Reddit with Lemmy style
1·2 years agoyeah, that was the main reason I wanted to apply it to old Reddit specifically, because it would have been easier with simpler theming and old Reddit is close to Lemmy’s style too
I installed RES beforehand, but haven’t used any of its features. I’ll try this out first and maybe Stylish if that doesn’t work. thanks!
zolax@programming.devOPto
Programming@programming.dev•browse (Old) Reddit with Lemmy style
1·2 years agookay thanks for the tip! I’m already using Stylish but I couldn’t find a pre-made style for Lemmy.
I figured I could make my own but I didn’t want to waste time doing something that could have been done already or could be done faster. at least I know I’m on the right track!
ah, okay, that’s fair. in terms of short-form social media that tries to engage you, I’d expect little warning and for children especially to take more risks when encountering this type of content.
Folks with rooted android phones have a high chance of having watched a 12 year old tell them how to root their phone on TicTok.
I was more focused on this, though, because this sentence implied that you could successfully root your phone with short-form, likely phone-generic tutorials when the process nowadays is much more difficult and technical
maybe it’s just me, but isn’t it quite hard (at least for people not confident doing technical stuff) to root a phone?
like a decade ago the bootloader may have been unlocked by default and for many phones there were exploits so that they could be rooted with an app, but nowadays you would have to:
- unlock the bootloader by installing ADB and fastboot drivers, booting into download mode and run terminal commands that would reset your phone in the process; and for some phones, you would also need to shorten a test point and for quite a few of them nowadays, unlocking the bootloader is impossible
- boot into download mode and flash a custom recovery with fastboot or potentially with Odin or some other proprietary software (or sometimes you can root from download mode)
- for some newer (including Samsung) phones, you also need to disable dm-verity otherwise your phone wouldn’t be able to boot into Android
- boot into recovery mode and finally flash (probably Magisk) an image to root the system
I guess there are usually detailed instructions for this, but I doubt that most people rooting their phones now would be non-techie people who are just watching generic online tutorials. they would most likely stumble upon XDA or other forums that would have proper instructions. and even then, they are not very beginners friendly as they aren’t usually supposed to be followed by people with little to no experience with using the command-line, drivers, how Android phones work internally, etc.
zolax@programming.devto
linuxmemes@lemmy.world•Who doesn't like the running symbols in the terminal?
3·2 years agoqt as well
zolax@programming.devto
Anime@ani.social•Akira Toriyama, the Creator of Dragon Ball, Dead at 68English
3·2 years agodamn. rest in peace man
zolax@programming.devto
Linux@lemmy.ml•Linux Mobile Distro postmarketOS Adopts systemd to Better Support GNOME, KDE Plasma
56·2 years agoto clarify:
The developers of the Alpine Linux-based postmarketOS mobile distribution today that they’re now supporting the systemd init system alongside OpenRC and other alternative init systems.
and:
postmarketOS currently supports the Sxmo, Phosh, GNOME Shell on Mobile, and KDE Plasma Mobile UIs. While the Sxmo images will stay with OpenRC, the GNOME and KDE Plasma Mobile images will be built on top of systemd






Gentoo