by spondylosaurus on 6/1/2025, 4:44:49 PM
by rickcarlino on 6/1/2025, 4:23:18 PM
This is strange - this post is on the front page right now. It says that I submitted it eight hours ago. I was asleep eight hours ago. I submitted this last week and it did not get any points hardly but now it is on the front page with an incorrect timestamp but still attributed to my user account.
by anthk on 6/2/2025, 9:58:10 AM
I would love an ncurses battle simulator where you would choose the monsters with perfect EV and IV's (maxed stats) with any attack the monster supports (either by level or TM's) and you would just fight against a series of trainers a la Battle Tower or similar.
You would get the actual fun of Pokémon battles without grinding. And, yes, I know emulators with fast forward and so on, but even Pokémon Radical Red has mechanics on purpose to send grinding to /dev/null with dumb battles against Audinos in order to get EXP like craze.
BTW, Pokémon Unbound might be the best hackrom ever because of the environment and features, but when you just want to fight, an straight offline simulator would be much better.
by zzo38computer on 6/1/2025, 11:47:20 PM
I like that it has a C API (although it uses opaque data without any real way to initialize it other than just storing it in the program, which doesn't seems like very good to me), and had wanted that before, although I would have preferred one that is written fully in C rather than Zig. (Actually, I did start to write some ideas (including some parts of a .h file) about the structures and functions that the C API should use (although they can be changed if at any time during the design, they are found to be not good). My design is different from that one in many ways.)
I would also want support for some variants (including custom rules) as well as for standard rules, and for team validation (including custom team validation). (I did have ideas also about the rule sets formats, with many options; for some kind of custom rules, it would be necessary to modify the program, but that is OK; some kinds will not require such a modification.)
I also wanted to support Unown's letter in generation II only, and Spinda's spots in some generations (probably III, IV, and V; they would result in some of the data being revealed to the opponent), and the ability to change the number of PP Up (as far as I know, Pokemon Showdown always has the number of PP Up set to 3 and it cannot be changed; it is probably uncommon that you would want to change it anyways but it does have some uses).
Another consideration to be made is: In a double battle, if your second pokemon is prohibited from switching out due to an opponent's ability that you are unaware of (e.g. since it is a pokemon that can have multiple possible abilities, or if it is actually Zoroark), but your first pokemon is immune to that effect (e.g. due to being Ghost type), then it is possible, if the commands are selected for the first pokemon and then for the second pokemon in that order, that you will not be aware of this right away. If your second pokemon tries to switch out, then you will receive an error message and both of your pokemons can reselect their commands, but if your second pokemon tries to switch out and it is actually allowed, then you cannot reselect your commands for either pokemon. (I don't know if this rule is specific to some generations.)
by weberer on 6/1/2025, 2:21:50 PM
Looks interesting. It appears to just support Generation 1 mechanics at the moment.
by deadbabe on 6/1/2025, 4:15:46 PM
When you’re creating a turn based battling game do you inevitably start off with engines like this to help balance out what various stats and variables should be, to avoid dominant strategies from emerging?
by Areibman on 6/1/2025, 6:27:52 PM
There are actually a handful of great libraries to help with RL/LLM agents in Pokemon Showdown.
I did a solo hackathon project [0] using poke-env[1] and found it to be pretty easy to get started with. Hoping for an easy-to-use API with this as well.
[0] https://x.com/ditzikow/status/1922004651790000521 [1] https://github.com/hsahovic/poke-env
by jeroenhd on 6/1/2025, 3:56:04 PM
Combining Zig and TypeScript sure seems like a funky way of developing software, but on the other hand it does expose the API to a wide variety of FFIs (with browsers being a major one here). I wonder if the performance numbers stay up like that as the project matures and actual game logic gets implemented.
I'm a bit surprised to see a patch for the Zig compiler itself in the source tree, though. I thought manually patching Zig bugs was no longer necessary?
by glimshe on 6/1/2025, 10:36:57 AM
THANK YOU for including a C API and licensing MIT instead of GPL.
Edit: clarified comment on C usage. I wanted to praise the API not the underlying language.
by BrawnyBadger53 on 6/2/2025, 7:14:42 AM
I had been working on a type combo strength calculation and made my own rudimentary simulator in the process. If only I'd seen this project earlier lol. Not that I need this level of accuracy for my case.
by littlestymaar on 6/1/2025, 6:16:54 PM
> Note that due to a bug in the Zig compiler, compiling with a version of Zig before 0.12.0-dev.876+aaf46187a is recommended
Zig development experience in a nutshell.
As an avid Pokemon Showdown player, this caught my eye:
> In the case of Pokémon Showdown, only bugs which stem from a misimplementation of specific effects are reproduced in the engine, bugs which are the result of a misunderstanding of the fundamental mechanics of Pokémon or which simply arise due to specific Pokémon Showdown implementation details that aren't replicable without making the same (incorrect) architectural choices aren't.
Very curious what "incorrect architecture choices" refers to but I assume the post-Dexit NatDex clusterfuck is a major part of it, lol. I do think "Assist can call any move it's not explicitly forbidden from calling, even moves that were never present in the same game as Assist" was the wrong choice, for example, and we saw how that played out with ReviveCats :P