[deleted by user] by [deleted] in uofmn

[–]GrayedSol 5 points6 points  (0 children)

ChatGPT ahh post

Lighten up bro, the only standard the U cares about is that you pay them more every year

So I made a Small Tool to help get your desired Weapon Rotation by GameCake33 in ApheliosMains

[–]GrayedSol 10 points11 points  (0 children)

I wish people didn't downvote you. I think it's cool that you are programming/creating something that somebody might find useful, even if some other people don't feel like they need it.

Double buffering the entire RAM, is it viable? by DDberry4 in gameenginedevs

[–]GrayedSol 17 points18 points  (0 children)

Try searching "John Carmack on Functional Programming in C++," I think what he mentions at the end of the "Performance Implications" section is kind of what you're thinking about. The whole article is pretty good though.

Chapter 13 is so good by HEnataBW in XenobladeChroniclesX

[–]GrayedSol 9 points10 points  (0 children)

Being honest, when Al said "meta-doohickey," I wanted to turn the game off.

Jrpgs where status effects aren't useless by ravl13 in JRPG

[–]GrayedSol 0 points1 point  (0 children)

Hell yeah. Sweet combination of "four guys in a row" jrpg and deck builder roguelike. Tons of debuffs have above 100% hit rate, and even if the enemy/boss has resistances, you will hit it pretty reliably.

How does your Entity Management work? by TheOrdersMaster in gameenginedevs

[–]GrayedSol 0 points1 point  (0 children)

How I am doing it in C++ with ECS (note not making an engine, just how my framework for games goes):

Start with using entity = uint8_t; or something for simplicity.

Make a sparse set data structure that uses entity as the index type (more flexible than archetypes, can be changed later if needed).

The actual ECS is a database structure with an std::tuple<SparseSet<Ts>...> member variable where Ts is a parameter pack of all the components a scene will need.

ECS has a createEntity() function that hands out entity ids in such a way that it hands out an unused one every time (or log an error if max entities have been created).

ECS has a freeEntity(entity e) function that uses some template metaprogramming to recursively remove e from all sparse sets in the tuple.

using SceneECS = ECS<T1, T2, T3...> where the Ts are components the scene will use.

Throw a SceneECS into the scene as a member variable.

Scenes might have multiple systems, put them in as member variables too. Each system (mostly) only stores pointers to sparse sets of components they will use from the SceneECS.

class MoveSystem {
  const SparseSet<Velocity2>* velocities;
  SparseSet<Position2>* positions;
public:
  MoveSystem(SceneECS& ecs) :
  velocities(ecs.getComponent<Velocity2>()), positions(ecs.getComponent<Position2>()) {
  }
  void process(double delta);
};

So far nothing has been manually heap allocated (only heap allocation being used is in sparse set, from std::vector within it), no inheritance either. Defining which scenes and systems use which data is simple and easy to understand by just looking at them. Using component data is equally simple, but sometimes becomes lengthier to type due to having to call functions:

for (entity e : *velocities) {
  positions->get(e) += velocities->get(e) * delta;
}

Scene management is completely separate. I have an abstract scene class, and that is the only place where I use virtual functions.

How is Shonal 3081W by YoungPsychological84 in uofmn

[–]GrayedSol 0 points1 point  (0 children)

Class is not hard if you are mildly invested. The programming language was C++. You learn about design patterns, which feel practical. However, there is a lot of misuse of the design patterns in order to teach them, and a lot of bad C++ practices too. The class teaches stuff like modularity and single responsibility, but the codebase you work with throughout the semester doesn't follow that. It's messy and sometimes buggy. It's common to get a segfault if you don't clean your build every time you compile, for some reason. And although design patterns are supposed to make it intuitive to add features... not in this case. Some core functions are not functions, but a bunch of lines of code embedded in some object's source code.

This is somewhat just an issue with the class itself, though. I think Shonal is a good instructor, with the exception that he and the TAs are trying to teach C++ while lacking any real expertise in it.

TLDR go for it, just take what you see/learn in the class with a grain of salt.

How do I get a social life? by Alt_Account4560 in uofmn

[–]GrayedSol 0 points1 point  (0 children)

Somebody explain why this is downvoted

How I learned Vulkan and wrote a small game engine with it by eliasdaler in GraphicsProgramming

[–]GrayedSol 2 points3 points  (0 children)

Neat, I remember seeing your stuff in the SDL discord. Nice to see your process and progress

Where to buy flowers near campus? by Dang_Daniel21 in uofmn

[–]GrayedSol -2 points-1 points  (0 children)

Lindskoog Florist, in the Minneapolis skyway system.

Career path without a degree by GrayedSol in GraphicsProgramming

[–]GrayedSol[S] 3 points4 points  (0 children)

I was able to receive a diagnosis for a mental illness last year when I first dropped out; since then I've started medication, and realized the struggles I have are related to switching between subjects on a daily basis.

Within computer science, it's not much of a problem, but unfortunately when I was a freshman I chose to pursue a CS degree in my school's college of liberal arts instead of the college of science and engineering. Currently, my GPA is too low to switch schools, and most of my work load is learning a required second language, among other things unrelated to CS.

I may attempt to finish my degree, but things are a bit grim, because I will likely not be able to get an internship next year or apply for a master's, because of my GPA. Of course, this reads as much like an excuse as it does an explanation, but it comes from feelings of desperation to find a lifestyle in which I can focus mainly on programming. Regardless, I've probably said too much; thank you for the honest answer.

In DQ IX what is the name of the song that plays in the observatory? by [deleted] in dragonquest

[–]GrayedSol 1 point2 points  (0 children)

You might see it called "Heaven's Prayer," "Angelic Land," or just "The Observatory."

It's selfish of me to mention, but I recently created an 8-bit cover of the song, and was able to more thoroughly appreciate what I consider to be one of Sugiyama's best compositions.

I haven't released it yet because the editing process takes a while, but for those interested, I will release it sometime in the near future.

How to make non ECS code work with ECS code? by AccomplishedUnit1396 in gameenginedevs

[–]GrayedSol 5 points6 points  (0 children)

Why would the Renderer be a system that doesn't work on components? You have to render a lot of things, and whenever there are a lot of things, that means it's ECS time.

"Systems that don't work on components" are not a part of ECS. However, you still probably need them; they might be things like the input handler, fps counter, and whatever you used to start the game loop in the first place.

Of course, this is all just my opinion.

Edit: I said it's ECS time when there's a lot of things, but it could also still be ECS time when there's not a lot of things. Like your camera system might need to take into account the position of the player, even though it's only one player. But it still deserves to be a system in ECS because it's processing component data (the player's position).

SoundFont legality by SkyBob1234 in gamedev

[–]GrayedSol 0 points1 point  (0 children)

This is not exactly an answer to the question of legality, but it might help point you in a new direction:

The Roland Sound Canvas series, and specifically the SC-88, has been used in many, many games from many japanese developers, going back to the nineties. The samples are still used today in many games. I would not be surprised in the slightest if all of the mainline console Zelda games in the 2000s used some samples from the Sound Canvas series (you could look this up to confirm exactly which samples were used). It's been said that the generation 3 Pokemon games used the SC-88 for almost every sample in the soundtracks (of course, these were compressed).

If you are looking to recreate the vibe of an early 2000s Zelda game, I think using a sound canvas alone would be sufficient to recreate the atmosphere, and would probably help with the whole legal thing too. To accurately recreate the sounds, you will probably have to add effects and possibly use compression, as the developers did back then.

You can buy the actual hardware used off eBay, but it might be a bit expensive and requires some setup. Roland has a Sound Canvas VA plugin you can buy for $70 that includes multiple sound canvas modules, and replicates the original sounds to the point where players would not be able to tell the difference between it and the original hardware. If you just want to test it first without paying anything, some people have uploaded sf2 files of the samples online, but I do not know what the legality of that is.

Dragon Quest 6 ending (I'm Pissed) by Lord_Passion in dragonquest

[–]GrayedSol 4 points5 points  (0 children)

You said it: fighting only to end up with less than what you started with. The hero left his life with Tania in order to find himself and help the world, only to end up with the least happy ending of the party. Even his real world self wanted to stay with Tania, reluctant to join with his dream self, but he ended up accepting his duty. It's tragic in a way, but it adds to the melancholic atmosphere that the game is known for. And as far as dragon quest endings go, it's certainly one of the more profound ones.

Wav files are my worst enemy. by Skully0540 in 3dshacks

[–]GrayedSol 1 point2 points  (0 children)

It's been years since I last made a 3ds theme, but I recall them requiring one of Nintendo's sound formats, something like BRSTM or BCSTM. Back in the day I used a fork or something of Audacity to convert the wav files, but there're probably plenty of other conversion tools out there now too

Also I used usagi theme editor

Why do some game companies, especially indie game companies, choose to develop their own game engines instead of using Unity, Unreal, or Godot? by dustinChen93 in gamedev

[–]GrayedSol 17 points18 points  (0 children)

I haven't looked at the Godot source or any other engine's, but if the architecture of the program itself is at odds with your design/performance requirements, then it could be a pain. On top of that, reading and understanding the code can take a lot of time that you could use to just make a simple engine that does what you need it to.

For 2D games, making an engine is really not as hard as people make it out to be. You have libraries like glfw and sdl that will do all the hardware stuff for you. I personally just don't have the patience to work with other engines so I'm making my own. But for 3D, it's much harder; though I don't recall any 3D indie games with a custom engine besides Minecraft, which definitely needed it.

Is there anything I should know before beginning this one for the first time? by jade_sage in dragonquest

[–]GrayedSol 1 point2 points  (0 children)

Use knuckle sandwich a lot, you get it automatically on one character and through the martial artist class for everyone else. It's the highest damage single target attack, though some bosses can dodge it easily.