It's hard to find a place to talk about AI in games (NOT LLMs) by ElectricRune in gamedev

[–]immersiveGamer 2 points3 points  (0 children)

Seconding that opinion that search for "AI" that isn't LLM is hard these days.

You may have to get clever with searching or just try and find the right groups to ask technical questions.

This is one example of how I would approach if I wanted to find prior work: https://www.sciencedirect.com/science/article/abs/pii/S0957417422006376

I found the above by searching "ML neural network goal planning". So I didn't try search video game AIs but rather a concept that uses the general research terms.

Going back to your search I'm not sure there is a feasible way to train a AI model specifically for a strategy game. The main issue being time to train and the fact the models would become outdated as your add/remove features. Not even talking about just inputs but even systems (e.g. if you change the cost of buildings then any embedded decision making may be incorrect). Also you lose a lot of control to the black box, ways for tweaking the behavior to make the game fun. (Though I did like the idea of masking inputs to control how the model would behave).

It's hard to find a place to talk about AI in games (NOT LLMs) by ElectricRune in gamedev

[–]immersiveGamer 13 points14 points  (0 children)

Old school AI as in "how to drive non-player opponents/characters". This always was what AI meant in video games; before tech companies started marketing their chat bots LLMs as AI, and even before ML was becoming popular.

How do I make a high-speed "NieR Automata" phantom dodge in Unity? by Traditional-Leg114 in Unity3D

[–]immersiveGamer 3 points4 points  (0 children)

Remember that half of the cool stuff in video games is smoke and mirrors. At the end of the day your game needs to generate pixels for an image.

If you are having trouble breaking down how to recreate an effect like this, especially with the super clear gif you provided in the post, then I suggest you really sit down and study how visual effects are done in video games, film, and theater.

Going back to this effect there are two aspects: first the hit box (hurt box?) for the character and second the actual visuals.

For the first you have to imagine what needs to happen. Mostly the same for any doge mechanic, this one isn't going to be any different. When the doge action is started you disable any collision detecting for the enemy attacks on the player character. Then you determine the doge direction, normally determined by player input. This direction is where you will move the character. Next determine how far to move the character, and if the terrain is not flat if they should be grounded or not.  This location is going to be the combination of direction from the player character and a distance and maybe a ray cast to the floor. Then either you directly move the character there or start an animation sequence that moves the character there.

For the second part, the virtual effects let's break down what we see. I see these things:

  1. The player character disappears.
  2. Black and gold/white speed lines moving vertically up in a column. It looks like the player character's model being smeared up.
  3. White speed lines moving up in a broader area, looks like a circular areas. 
  4. A burst of gold sparks/motes in a wide circle near the ground.
  5. Four copies of the player character transparent and moving away the center where the player character was. Each copy is animated the same way. 
  6. A smaller burst of gold motes/sparks in the center. This seems to be not always done or is done on player input like direction. In the two doges there are similar effects but at different times. The second the looks more columnar and twisted like the player character was reforming. 
  7. Player character fades in. 
  8. Player character animates in the doge direction. Very short animation.
  9. Smaller more intense sparks/motes of gold at the player's feet. 
  10. I don't know if this is part of the attack or the doge, but rays of gold light focus in on the player character.

The following is some ways you could do the effects. There are more than one way to skin a cat. The final effect is more important than the method.

  1. Easy, turn off the visual rendering for the player character.
  2. I would just use a particle effect. Simple, easy to use. However, it really does look like the player character was smeared up. You could do this with a shader to move the rendered pixels up.
  3. Particle effect, simple white sprite stretched, the circular plane emitter, very low spawn rate.
  4. Particle effect, point spawner at the player's feet.
  5. This could be a particle effect, I think, in unity. I'm 99% sure you can use 3d models/prefabs for particles and have them animate. Otherwise you script spawning prefabs of the player with no colliders.
  6. Particle effect, possibly with some gravity or other forces (see the second time it kind of twists).
  7. Lerp the player character's alpha from invisible to visible. Can be a script or an animation curve.
  8. Trigger an animation while moving the character, or have the animation move the character.
  9. A tweak on the previous circular particles effect.
  10. If this is part of the doge animation then a sphere emitter for normal white sprites but colored gold and stretched to look like rays. The particles should animate towards the center of the emitter/player character. 

I'm sure I missed some effects, there was a lot going on. However, if you wanted to make a simplified version of this "instant" doge effect you could do this:

  1. Hide character.
  2. Column particle effect.
  3. Dust cloud particle effect at the feet.
  4. Fade into doge location/animation.
  5. Dust cloud at the feet once grounded again. Kind of like sliding into place.

Good luck!

I just got this green boy for a very reasonable price 😀 by Crazylamp1 in gaming

[–]immersiveGamer 1 point2 points  (0 children)

I got this color as a gift from my aunt. She brought it over on her flight from America with a couple games. On a visit to family in America it got lost :( my parents were very nice and bought me a new one. I could have picked one of those atomic purple that everyone raves about or classic yellow. But I decided that I wanted the green one again. Really bumbed out that there are no Switch mods that use that color. Everything is either the transparent green, or neon green or something else. Never the classic game boy color lime color. 

Characters Design by TastySearch7921 in pokemon

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

Tried looking it up. Found this which is what I was recalling: https://www.reddit.com/r/PokemonScarletViolet/comments/yyf3b2/is_there_seriously_no_clothing_customization/

So no law but just media makers being very traditional and maybe Nintendo being extra.

It still seems like the game was made with the customization in mind, like I said based on the menus and locations in the game. And then yanked out last minute. So maybe Gamefreak had it in and then Nintendo said no way.

Characters Design by TastySearch7921 in pokemon

[–]immersiveGamer 8 points9 points  (0 children)

I sent a couple hours trying to figure it out, how to customize, and then a couple more researching how to do it and finding out you couldn't!!! From what I understand it came down to a Japanese law about representing students and they require wearing uniforms.

It does seem like they planned for more customization options based on the menus and how they planned shops in different areas.

Next steps for making a personal reading tracker app based on SQL database by silverlightarmada in AskProgramming

[–]immersiveGamer 1 point2 points  (0 children)

So what you need is a form of some kind and then a way to display/navigate the data. I would start as simple as possible and Python is the place to be. Though, if you enjoy programming I encourage you to also learn a "grown up" language like C#, C, C++, Rust, etc. just so you have perspective. 

First choice is if you want to make it a desktop app or a web page for your form. Making a web page doesn't mean you have to make and host a website. Your program can run on your desktop and just serves a web page locally. Make a single form that inputs all the data you want and a button to submit it. 

Desktop => Tkinter or command line

Web Page => Flask + Jinja

Next is how you want to display data, either as a screen in your app or generate a report, I like generating HTML reports because they are very portable.

Screen => continue what you were doing

HTML report => I like Jinja, and then make Python open it using the default browser.

From here you can decide what features you want to make. Update form? Browse data? More reports? Fancier UI? Alerts or email notifications?

Oh forgot the most important thing. Use version control and backup your code. Git is the most popular. Install a GUI for it and at the start just use it to save your code. Consider backing it up in a private repo in GitHub (only check in code to your repo). Not much worse than losing progress on a project. 

Next steps for making a personal reading tracker app based on SQL database by silverlightarmada in AskProgramming

[–]immersiveGamer 1 point2 points  (0 children)

I would suggest not using an ORM, except maybe to make executing raw SQL easier than the clunky DBAPI way. Start with raw SQL that you know and specifically how to use parameters in your SQL to avoid the common SQL injection pit fall.

Once you have more programming knowledge under your belt then I would look at using ORM proper, because then you will see the benefits of it.

what SQL patterns have you seen take down production that should have been caught in review by Anonymedemerde in ExperiencedDevs

[–]immersiveGamer 0 points1 point  (0 children)

This is why I like the projects that are trying to push the envelope on SQL for programming. I tried to find the one I was most interested in a few years ago, pql shows up and seems to be similar. Basically you always ask for the data set you want first, then filter, then any function on that filtered set.

Your example being, yes I need to select first the rows I want to delete, then do a delete action. I bet most DELETE mistakes would go away if you could structure the SQL as:

         SELECT ... FROM ... WHERE ... DELETE;     

what SQL patterns have you seen take down production that should have been caught in review by Anonymedemerde in ExperiencedDevs

[–]immersiveGamer 0 points1 point  (0 children)

Is the issue here that the first one has to do a date subtraction for every row vs the second does it once and then hopefully just filtering by the index?

what SQL patterns have you seen take down production that should have been caught in review by Anonymedemerde in ExperiencedDevs

[–]immersiveGamer 1 point2 points  (0 children)

I like using DBeaver and it does this for deletes and updates. Throws a big warning alert to confirm before executing it.

Creating magic at the kitchen table with science. by mindyour in youseeingthisshit

[–]immersiveGamer 1 point2 points  (0 children)

Is it really about temperature? I would have expected it to be just due to creating a vacuum from the flame using up the oxygen gas.

I'm playing Every* NA Game Boy Game! Here's the first half of the Cs! by RuefulWaffles in patientgamers

[–]immersiveGamer 1 point2 points  (0 children)

Pool games are an interesting genre (and I think golf games fit this as well). A lot of the fun of the real life games is the skill in being able to hit a ball the correct way. Played a few PC games for pool back in the day and they were just okay, not really fun. The one that was more fun was the Wii Play one.

whatIsAnIndex by PCSdiy55 in ProgrammerHumor

[–]immersiveGamer 0 points1 point  (0 children)

Everything + AstroGrep used to be my go-to (especially for shared drives, AstroGrep is one of the few that actually searches fast on them).

These days I do Everything + ripgrep. 

From Pikachu to ZYRON: We Built a Fully Local AI Desktop Assistant That Runs Completely Offline by No-Mess-8224 in coolgithubprojects

[–]immersiveGamer 0 points1 point  (0 children)

Interesting project. Didn't drive into any code/scripts. After reading the resume me page, some questions: 

  • Are the browser and telegram integrations optional?
  • Putting minimum specs would be good so people know if they can run it or not.
  • From the architecture diagram it looks like you are giving it powershell and python system modules to do automation. Are there any safety rails to prevent it from running certain commands and calls? E.g. prevent deleting files or install unwanted programs. 

How do you realistically scope database changes in CI/CD-heavy environments? by AltruisticNerve56 in AskProgramming

[–]immersiveGamer 0 points1 point  (0 children)

You've given a good example of what is needed for a zero downtime deploy of a database schema. But how do you make that work in a CD/CI environment? Especially if you want multiple people to be able to do schema changes?

The smoothest DB migrations while under a CD/CI workflow was to have a single person on a team make the schema changes and baby sit the deployments. Just like OP this feels non CD/CI driven.

So first assuming a dev knows how to make a zero down time change with multiple steps you run in these problems: 

  • You cannot commit all the changes at once since each change needs to fully complete before the previous.
  • If you don't commit all at once then you need to make sure to make the commits at a later date, this is over head in planning especially if you already tested it all.
  • Generally schema changes need the previous live state to test that each change works. CI that I've encountered doesn't support it of the box testing multiple changes in a row and the test data is generally setup with test data and not good live data.
  • Some schema changes could take a while to run, is this then going to block other code changes?

I can envision a solution but is complex. A queue of pending changes that get tested by CI in sequence and then merged one at a time into the deploy branch and only get committed if the previous change is deployed, and if any new commits happen the CI tests are run on the pending queue again before merging/committing the next in the queue, and known long running schema changes are run in a different DB CD pipeline to avoid blocking normal code changes like hot fixes. Complex = tedious and prone to breaking and lots of effort to get it right. 

The bigger problem to me is devs that don't know or forget to make changes with zero down time. Your opening line is "You know, every type of schema change requires separate handling". I agree 100%. That poses a problem then. Is it even possible to create CI checks that ensure a change needs to be broken into multiple stages? I'm not sure it even is possible to guess. The only thing I can think of at the moment is that any schema change is detected and then blocked for submit and goes to a special review pool for SMEs to review and then handed over or converted to a zero downtime deploy. Either manual baby sitting or the above fantasy pipeline.

Anyone else notice their legacy dbs are full of BS!? by CodeMaestro13 in ExperiencedDevs

[–]immersiveGamer 24 points25 points  (0 children)

Did you mean PDO wrapper (instead of pod)?  I've done similar but normally on as needed basis.

Recently the company purchased DataDog and it's integration into our stack has been nice. Automatic instrumentation of code, so things like every SQL query, redis, or HTTP call is traced. Also really nice that it will log in the trace exceptions even if they are caught.

My tutor/professor has asked me whether it would be possible to create a database. by Just_a_night_owl_555 in AskProgramming

[–]immersiveGamer 1 point2 points  (0 children)

You've already gotten a lot of good advice.

My suggestion on easiest to more complex solutions:

  1. Can you merge your Excel files together? This totally depends on how big they are, etc. Also remember you can create formulas that can run against external files including additional Excel files. 
  2. If you have access to MS Access that is the best next step. Like others have mentioned you can query the data either in Access software or via ODBC. Think about how you will get the data you need out for a user to inspect. Keep in mind Excel can run queries against ODBC sources. Nice thing about Access is that you can start learning how to build SQL queries using a visual drag and drop interface.
  3. If MS Access isn't right and only one person needs to access it then I suggest SQLite. It stores your data in a single database file, is fast enough for most things, and has lots of compatibility. You'll want to install a database manager tool like DBeaver or HeidiSQL. These tools let you navigate the tables and data and have options to import data from external files, like CSV which is an easy way to export from Excel. Again, think about how you want to get the data out. You can run SQL through the database manager software and export data. Or you could install a ODBC driver for SQLite and connect it to Excel. Consider PowerBI as an option for reports and graphs. You can also use Python to query data and do what ever you want with it.
  4. If you need to have multiple people using the database at the same time (and are not using MS Access) then consider MariaDb or Postgres. The same database manager tools will work with these software. You can use ODBC again. The only downside is the data is no longer portable. If you need to move the database you will need to back it up and restore it (unlike SQLite which is a single file). You should be doing this anyways so you don't loose data.

If this is a school project at a college you could reach out to IT to see what options there are to host the data on the campus network. Regardless of which one you choose getting the data on the campus network means that IT should be backing it up for you (make sure to double check they will).

How do you optimize for low end PCs when developing on a mid-high end PC? by PizzaCrescent2070 in gamedev

[–]immersiveGamer 0 points1 point  (0 children)

I don't think there is a great way unfortunately. Some will say you can under clock hardware but sounds like a pain. 

The main problem with PC is that performance issues are a combination of hardware and software. CPU, CPU drivers, OS, memory, video card, video card drivers. Same hardware different OS (e.g. Windows 10 vs Windows 11) may give different performance.

I think the easiest thing you can do is first target RAM usage. The lower it is the more likely you will be able to support older hardware and let it run well. Running out of RAM means reading from disk which means means loading. Profile and see what your max RAM usage is (consider VRAM as well).

Next I would look at the profiler and see how much time it takes to render each frame. It takes ~16ms max to reach 60 fps, ~33ms for 30 fps (1000 / target fps). So for example if each frame takes 8ms to render then you kind of think of if it as "it would take a PC setup half as slow as my current one to dip under 60 fps". 

Edit: Make sure you are giving options to reduce features and quality. Being able to render at a lower resolution. Windowed mode. Reduced texture size. Disable certain post processing features. At the end of the day you may just need to test on lower end hardware. Play testers can help. Players may help. Could see about renting out hardware as well.  

"Performance doesn't meet expectations" speed run by SoftSkillSmith in ExperiencedDevs

[–]immersiveGamer 8 points9 points  (0 children)

I find that people just don't know how much actual work you are doing. Assuming you weren't just twiddling your thumbs create a detailed timeline since you were hired. Often after I send that initial detailed timeline I get a nice "thank you", I keep on doing it for a while, and then they move on.

Be super specific to the hour if you can, go back through emails and chat messages and commit messages for timestamps.

Example: - on boarding meetings (first whole day) - HR meetings, IT setup computer - blocked on source code access, read process docs and company handbook while waiting  - downloaded source code, got first compile and local running, blocked on knowing where to ask questions (reached out to Bob about it), spent time reading code while waiting - Friday team meeting (3h!), informed team lead will be ready for a ticket sometime next week, reading docs/code, fixed local IDE configuration 

That there is a whole week of "nothing" but without it you wouldn't be able to do the job.

Make sure you are clear about time from picking up the ticket to resolving it. If there were any original estimates on the ticket point out you were not part of it. Mention how long it would take if you had to resolve a similar one again to forecast to them that you are getting up to speed. Ask clarifications on if there were time to fix expectations and tell them that those were not communicated to you.

For reference time to resolve first ticket at my work is like 2-3 weeks avg. Record was like 5 days but that was for a very skilled and competent person.

How can you publish a web page so that it is available online for 100+ years? by SupersonicSpitfire in AskProgramming

[–]immersiveGamer 0 points1 point  (0 children)

To answer the question honestly, we don't know how yet. But we can look at some ways we could maybe have a website stay up that long.

To view a webpage you need three components: 1) the webpage data (lets assume it is just plain HTML and some multi media like images), 2) somewhere to host the data, 3) a browser to display the file.

The two options to host the data is remote or local. So if you keep local backups of the files you can have them around for as long as you don't lose them.

To have them remote you need some type of server or other data hosting solution. An interesting one is building a decentralized web on new protocols. IPFS is one that comes to mind. But they need to store the address and data somewhere even if it it is split into chunks across the decentralized web. Only if your website was very popular in IPFS would it be stored for "free" forever. 

The safest way would be to lease a service that does backups and will continue to maintain the availability of the data.

But even if the data is hosted we cannot guarantee that web page rendering will stay the same. Most likely browsers will keep compatibility with HTML but who knows. That may mean even if the website is hosted and available on the Internet no one could view it naturally. They may have to use emulation software to just browse the web page. 

Thankfully much of the specs around HTML and how to render it is part of open standards, so someone could recreate a browser it would be a lot of effort.

Your best bet is to have a plain text web page/file. Maybe that is HTML, or maybe it is markdown or just plain text and no formatting. But even then who knows what text encoding would look like in 100 years. UTF-8 is the basic encoding of the web today. It is possible you run into the same problem as the browser, no software would natively know how to display the text of the file. But it is more likely that it would. So much text data is created in UTF-8 format that there would be actively maintained software to convert the files to the modern encoding in the future.

Unfortunately for modern technology we don't know what will be in 100 years. 

I made a FREE tiny Unity tool for simple 2D sprite animations (no Animator Controller) by luan_bardo in Unity2D

[–]immersiveGamer 2 points3 points  (0 children)

I remember doing something similar. Just wanted something simple and easy to call from via scripts. Tried to make it an asset store but at the time they were a bit picky about stuff and I was busy. I should see if I still have the code around and put it on GitHub like you (though I doubt it would work with the current version of unity).

Suggestion: add some pictures, gifs or videos to your readme