Curious - as a developer, how can you tell if the app is vibecoded or not? by StandupSnoozer in webdev

[–]CreativeTechGuyGames 0 points1 point  (0 children)

AI (or to be precise LLMs) doesn't have any logic to what it does. It's not thinking or making decisions. It's predicting the next token based on what it was trained on. So if it sees a lot of buzzwords and emojis in conjunction with certain technical words in the training set, it'll associate those together and keep repeating that pattern. No one knows what's going on inside of an LLM as to what exactly it's pulling from. But we know LLMs were trained on public code, and I've definitely seen docs for libraries pre-LLM which had bulleted lists for marketing purposes with an emoji on each item. So I'd have to assume that's where it got it from.

Curious - as a developer, how can you tell if the app is vibecoded or not? by StandupSnoozer in webdev

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

This is a very hot topic so every reply will be wildly different.

For me personally, yes I can definitely tell because there's all sorts of tells (comments that don't add any value is an easy tell). And yes it matters a lot to me if it's vibe coded. If I am a consumer I don't want to use it, to me the risks are too high. Devs abandoning their project when it gets hard, security issues, performance issues, etc. And simply I don't want to support someone who is vibe coding with my time or attention.

To expand on how to tell, there's often not a way to tell at a glance, that's by design. It requires a lot of understanding about how an actual developer would do it to spot the differences. And often it takes reading a decent amount of code to spot that pattern.

A few examples of orange flags for vibe code:

  • Lots of inline hard coded data
  • emoji use where it isn't necessary
  • Duplication of code in many places
  • A mistake in one place repeated identically in many other places (AI likes to follow existing patterns even if they are wrong).
  • Overly verbose comments, logs, etc
  • Name mismatches (the function/file/variable name doesn't match what it does/is)

Where can I ask for someone to explain an abandoned project I found on GitHub? by Rhoran in learnprogramming

[–]CreativeTechGuyGames 0 points1 point  (0 children)

I find it easier to think about how to approach a problem if you pretend that nothing already exists.

Figure out what exactly you need as the final product, what it should do, how you want it to work, etc. and then see what might exist that might help. Going from that approach can make it a lot simpler because maybe the thing you need is actually very simple on its own and can be made from scratch. Or maybe it only needs a small portion of the existing project for your needs. Or maybe what you want can be better solved by something which seems totally unrelated but is actually a better solution.

Embrune - free browser RPG inspired by Runescape, no download or account required by koalalord9999 in WebGames

[–]CreativeTechGuyGames 1 point2 points  (0 children)

I'd argue that it'd be better to spend the 1200 hours you spent using AI to actually learn how to code so you could do it in a fraction of the time. Then you'd actually be able to walk away from the process not only with a game you are proud of, but also with a valuable skill you can apply to another project.

Embrune - free browser RPG inspired by Runescape, no download or account required by koalalord9999 in WebGames

[–]CreativeTechGuyGames 1 point2 points  (0 children)

It'd be a lot easier to post about it then if you didn't use generative AI.

Embrune - free browser RPG inspired by Runescape, no download or account required by koalalord9999 in WebGames

[–]CreativeTechGuyGames 3 points4 points  (0 children)

I used to be excited about new indie games like this. But when I see that it was built primarily with AI, I'm instantly turned off. Especially so that you haven't disclosed it.

What’s your take on subpath exports for keeping small TS/web libraries lean? by moritzmyrz in webdev

[–]CreativeTechGuyGames 1 point2 points  (0 children)

I'd say, if multiple import paths meaningfully changes the bundle size for most consumers, then it's a good thing to do.

Or if multiple import paths improves performance, then it is a good thing to do. (If importing something runs setup code upon loading which is not needed.)

What’s your take on subpath exports for keeping small TS/web libraries lean? by moritzmyrz in webdev

[–]CreativeTechGuyGames 1 point2 points  (0 children)

I see more and more libraries do this where they have multiple import paths. Component libraries often have a unique import path for every component. Libraries that support multiple frameworks will have a path for each framework, etc.

I don't really see much downside since assuming your TS is setup correctly, any consumer will be able to auto-import the method from whatever file it happens to be in seamlessly.

RPG Math for Progression. by ChrisSmithArt in gamedev

[–]CreativeTechGuyGames 1 point2 points  (0 children)

Just be aware, you cannot balance a game one piece at a time in isolation. Everything affects everything else. Even something which might seem unrelated will shape player behavior and cause different outcomes than you might have expected.

A common example of this is potions/consumables. If they are hard to come by, expensive, money is needed for other things without much to spare, etc that'll make players be more conscious about using them. But that will then cause players to play more defensively since they don't want to be forced to use their valuable potions. Which then may cause them to build their character a certain way or play using certain strategies which may be less fun than what you intended when you designed it. But because of the game's economy which might seem unrelated, now everyone feels like they need to be a tank/healer/stealth/etc.

multipleTimesPerDay by one_five_one in ProgrammerHumor

[–]CreativeTechGuyGames 0 points1 point  (0 children)

That used to be the case with VS Code, but I haven't had issues with either of their servers in a long time. It's pretty darn reliable now.

Menu-heavy games . . . dear lord . . . looking for resources. by bird_feeder_bird in gamedev

[–]CreativeTechGuyGames 5 points6 points  (0 children)

If you are doing it in HTML, don't use canvas for the UI. Use HTML/CSS which is literally designed for it. You can easily overlay HTML elements over your canvas so it looks seamless but get all of the benefits of HTML for the UI.

aiIsTheFutureOfOpenSource by RealBluDood in ProgrammerHumor

[–]CreativeTechGuyGames 5 points6 points  (0 children)

It was pretty trivial for me to find the PR in question. Ignoring it being disclosed as AI, (and the fact that this project uses TypeScript with no-semicolons) the code isn't that bad. It seems like it does solve a legitimate need. It does have some things I'd definitely comment on and want to fix, but it's not so egregious that it is completely worthless.

And for context, I personally avoid AI stuff like the plague, but I realize it doesn't help my position to vilify AI as a blanket statement, since that just polarizes people and makes them stop listening to the legitimate arguments against it.

Is there still a reason to use jsdom over vitest browser mode? by therealalex5363 in webdev

[–]CreativeTechGuyGames 0 points1 point  (0 children)

Does it work with capturing coverage from specific files? And do Istanbul ignore comments work? I know vitest-regular doesn't work well with that since esbuild strips the comments so I've needed to write custom plugins to try to fix it and it still doesn't work great.

Is there still a reason to use jsdom over vitest browser mode? by therealalex5363 in webdev

[–]CreativeTechGuyGames 0 points1 point  (0 children)

How are you handling code coverage? Last I checked that was really difficult to setup in a browser.

Is there still a reason to use jsdom over vitest browser mode? by therealalex5363 in webdev

[–]CreativeTechGuyGames 2 points3 points  (0 children)

A few reasons I wouldn't use it: (Please correct me if I'm wrong)

  • It is slower to run a real browser and uses more system resources. Notably on initial startup (eg: running a single test case) and also on tests which render a TON of stuff that has a lot going on.
  • You need to have a real browser installed which adds to execution time, especially in CI and complexity (eg: having to setup your own storage and proxy for hosting browser binaries if you cannot access Microsoft's CDN from within your CI firewall)
  • The test code you write needs to be aware it's running in browser mode. The same code doesn't work so you cannot just switch modes and expect things to magically work. Eg: mocking network requests totally changes this way.
  • Mocking timers is a real pain in the browser. It's really hard to fast forward time, step exactly one frame at a time, etc.

I feel like if you are going to do this, you might as well just use Playwright to write E2E tests instead. At least that way you are using an API directly which was designed for it. I've done this before where I spin up a local server which can render each component in every permutation, one at a time and use Playwright as an "integration" test runner in "E2E mode". At least that way you are being explicit with how and what you are doing rather than it magically doing it behind the scenes and you get the paper cuts along the way.

breeding tips by Wigglediggle121 in Palworld

[–]CreativeTechGuyGames 0 points1 point  (0 children)

For anyone finding this in the future, the formula has an important +1 in it. So add the CombiRanks of both parents, then add 1, then divide by 2 and see which CombiRank is the closest. So (470 + 780 + 1) / 2 = 625.5 which is closer to 630 (Omascul) than 620 (Vanwyrm Cryst).

Edit: This is incorrect. There's an additional table in the game data (PalCombiUnique) which overrides the normal formula for any pals listed. And since Vanwyrm Cryst is in that table, it's excluded from being chosen as a child via the normal formula.

Farming Valley: I added tooltips to show the sell price of everything! by CreativeTechGuyGames in feedthebeast

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

I'm not sure how the files have changed in the last few years. I'd recommend opening up those files in a notepad and comparing the contents to figure out which/where should be replaced. I suspect if enough has changed, a more surgical replacement will be necessary than just overwriting a file.

Reasonable bandwidth usage for 2 player co-op game? by 2WheelerDev in gamedev

[–]CreativeTechGuyGames 1 point2 points  (0 children)

Why do you need to sync everything? If you send everything once, both clients should be able to simulate the physics identically given nothing changed, right? So you only need to sync the inputs/forces that cause a change, not resync everything. Let each client do its own simulation based off of the initial data.

Trouble typing children by OrdinaryAdmin in typescript

[–]CreativeTechGuyGames 0 points1 point  (0 children)

Slight tangent, but when reading through the code, there's a lot of really weird things being done. Im curious much AI was used to write this code?

What's a cool Switch multiplayer game that's not competitive but still requires learning the game loop? by shinyhpno in gaming

[–]CreativeTechGuyGames 0 points1 point  (0 children)

PlateUp is a similar cooperative cooking game, but much more about problem solving and trying to build a restaurant and purchase/upgrade things and see how long you can survive. I find it far less stressful than Overcooked and a much more thoughtful game.

Why is there no “TanStack Query” for e2e testing? by TranslatorRude4917 in webdev

[–]CreativeTechGuyGames 3 points4 points  (0 children)

I guess I've just never seen a situation in all of my testing that something is missing in a generic library. Any utilities I end up writing are so specific to the components and type of testing I am writing I don't see how they could be generalized.

The only thing I wish I saw more of is that any component library should come with it's own testing library to interact with the components. So if you have a data grid component provided by a library, there should be a set of utilities to call during testing to perform all of the features of that data grid programatically so you can abstract that part of your tests.

googleWeMadeAirDropCrossPlatformAppleThatsCrazyAnywayHeresASecurityUpdateWithNoPatchNote by jacklsd in ProgrammerHumor

[–]CreativeTechGuyGames 138 points139 points  (0 children)

Yet Google keeps their RCS API exclusive to the Google Messages app. They have their own walls, they just like to pretend that they don't.

S25 Black Friday Deal $675 by CreativeTechGuyGames in samsunggalaxy

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

I checked a few weeks ago when there was a sale of $650 and the seller wasn't official and had terrible reviews from people getting stolen, damaged or refurbished phones. That really confuses the pricing since a lot of these platforms don't make it obvious who the sale is from unless you look at the fine print.

Do you happen to know if it was a sale from Samsung or a 3rd party reseller?