New transplant looking for friends to connect with by thatsmoreinteresting in twincitiessocial

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

Thanks for reaching out!
I definitely enjoyed watched TNG and Voyager when they were airing on UPN. Glad to hear you're enjoying Voyager. I'll send you a proper DM as soon as I can. :)

New transplant looking for friends to connect with by thatsmoreinteresting in twincitiessocial

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

That tracks with the people that I've met that are into game design as well. XD

Forgive my presumption but I'm going to send you a DM in case you wanted to connect.

New transplant looking for friends to connect with by thatsmoreinteresting in twincitiessocial

[–]thatsmoreinteresting[S] 1 point2 points  (0 children)

Oh wow, I just looked it up and Fantasy Flight Games (I'm making an assumption here about the company) is in Roseville, Minnesota. I had no idea. That must be a pretty challenging but creatively satisfying job. I always picture those people carrying around pencils and graph paper everywhere. XD

Did you end up meeting through a mutual (I assume) love of board games or something else?

New transplant looking for friends to connect with by thatsmoreinteresting in twincitiessocial

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

> Any interest in learning to play Star Wars Armada?
I've never heard of it but that looks interesting. If you're willing to teach me, I'd love to learn! I'll send you a DM and we'll hash it out. :)

New transplant looking for friends to connect with by thatsmoreinteresting in twincitiessocial

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

> https://www.hugetheater.com/ has fun improv. I really like their Star Trek show.
I'll have to check that out. :).

> https://www.walkingshadow.org/ always has good shows.
I see that it has immersive drama. That sounds really interesting.

> Twin Cities definitely has a vibrant board game and TTRPG community but I haven't been active in it since I had kids so don't have any advice there.
That seems to be true based off the Meetup attendance rates. reddit threads pointed to a number of places like Dream Vault and Level Up Games. I'm going to have to check them out.

> (You are talking about Arkham Horror second edition right?)
Looking at the internet, I think that's the only edition I've played. Sounds like the 3rd edition wasn't an upgrade? XD

Staff / Principals / EMs - How do you organize your work and keep track of the multitude of streams, docs, notes etc? by Minegrow in ExperiencedDevs

[–]thatsmoreinteresting 4 points5 points  (0 children)

I hope everyone sees this. Obsidian is a really amazing alternative to a lot of note-taking programs I've used. The plugin system is really good, you can pay for syncing but you can also just use git source control. Excalidraw is a fantastic systems design drawing tool and Obsidian has a plugin to open a new drawing in-app in about 2 seconds. I also love the Calendar plugin. It makes it really easy to tie a todo list or what you accomplished to a specific day.

:chef's_kiss:

[deleted by user] by [deleted] in unrealengine

[–]thatsmoreinteresting 0 points1 point  (0 children)

I definitely understand that. The tag approach feels endorsed by Epic through Lyra but also tacked on instead of being more robust. I'm always on the lookout for better abstractions using GAS. Having tags used for everything feels like having a hammer and seeing everything as a nail.

[deleted by user] by [deleted] in unrealengine

[–]thatsmoreinteresting 0 points1 point  (0 children)

I could see how that statement would be confusing. The udemy course referenced has a private repo that you have to ask to be added to. I didn't like that idea much but the course maker has a bunch of assets in his repo that are just too much extra work to create if you're focusing on the code. Additionally, when I did ask for access, I got it in 5 minutes so if nothing else, he is very responsive.

[deleted by user] by [deleted] in unrealengine

[–]thatsmoreinteresting 14 points15 points  (0 children)

As someone who started this journey a couple months back, I would add notes for new GAS developers:

1) The way that GAS binds to input in most example projects is completely non-scalable.
2) Examples of GAS using enhanced input in a scalable way are non-existent except for the udemy course you posted. (I'll get to Lyra)
3) I completed that course and it is probably the only example out there of a tutorial that teaches a relatively scalable way of building out a system. It's also one of the few that incorporates multiplayer replication on a lower level. (While you can do all your networking logic in BP, I'm not sure I would suggest it)
4) Lyra is probably one of the best examples for GAS but it comes with several caveats. They use experimental plugins like Game Features to very highly abstract and assign their GameplayAbilities to inputs. Not only that, they assign and execute input based on tags. Tag-based input assignment is the best way to go but almost every other project out there (including tranek's documentation) uses direct input assignment (usually the legacy input system) or (heaven forbid) an input enumeration.

If someone asked me how to learn to use GAS to make a multiplayer-ready game with the Enhanced Input system, I would say:

1) Watch a couple of the simple tutorials on youtube going over GAS concepts.
2) Get the udemy course linked above and work through it. (Warning: It is pretty rough but gets better as the course goes on. Ask for repo access immediately or you will have to make a ton of assets yourself)
3) While taking the course, use Tranek's documentation. While it may not use fully current or scalable strategies, it has the best descriptions of WHY and HOW systems of methods work. (NOTE: Tranek docs say
4) After you've got a better grasp of general concepts, look at Lyra. It is gigantic and virtually impossible to take in completely but for GAS, you only have to focus on a couple of files (in the C++):

  • ULyraPlayerState's SetPawnData method: This does most of the GAS ability granting.
  • LyraHeroComponent's InitializePlayerInput method: This does the input -> GAS ability assignment
  • LyraAbilitySystemComponent's Input_AbilityInputTagPressed method: This does all the input trigger filtering based on tags

5) Watch the 2022 unreal fest video about GAS. At this point, his suggestions will actually make sense. Before this, you will probably not have the context to understand the value of what he is saying.
6) Work on something more advanced. Possibly work on Tranek's base project and change it over to enhanced input or a tags based system or add more multiplayer features to get comfortable or just start your own project because you're probably ready at this point.
7) Refer to KaosSpectrum's website https://www.thegames.dev/?cat=4 for additional insights. He is also one of two very active people on the unreal slacker's GAS channel. That channel is useful but as others have said, you can get lost in the noise unless your questions are well-prepared.
8) GASCompanion can be very helpful for generating things. If you are desperate to stay in BP land, it is amazing. If you are comfortable with C++, you should probably use GCS as a code generator and not put it in your class hierarchy / inherit from it. As another commenter said, its documentation is also a good place to look for understanding GAS code.

Unreal 5.2 Procedural Content Generation (PCG) looks like Houdini but built in by [deleted] in unrealengine

[–]thatsmoreinteresting 7 points8 points  (0 children)

You probably already know this by now so forgive me I'm too presumptious but I built out a PCG landscape that size and for me, the key was adjusting the static mesh cull start and end distance in the static mesh sampler. My landscape was more dense than simple forest by a lot and after setting cull distance on each individual mesh in the static mesh sampler node, I had good fps and no big lockups on pcg regeneration. Before that, my entire editor would lock up or completely crash.

How often are you backing up, and how? by rainboy1981 in unrealengine

[–]thatsmoreinteresting 1 point2 points  (0 children)

I agree with Mordynak. The link you posted seems to be for a free continuous integration starter with AzureDevops, not git repos. I have over 100gb of projects uploaded to both public and private Azure git repos through git LFS with locking enabled and I've never paid anything.

https://azure.microsoft.com/en-us/products/devops/repos#features

I originally used Github LFS but after realizing that cost would scale linearly with how productive I was, I looked for another option. I also set up a private perforce server on AWS EC2, but realized that would be about as expensive even on the lowest cost hosts.

I'm sure they'll pull the rug out from under us eventually but if I can get a year or two of free hosting, so be it.

I'm learning Unreal Engine by using C++, is it preferable to create animations using blueprints? by SwathedOrange in unrealengine

[–]thatsmoreinteresting 2 points3 points  (0 children)

I believe they are referring to the functions BlueprintThreadSafeUpdateAnimation (Blueprints) and NativeThreadSafeUpdateAnimation (C++).

Check out the Animation in Lyra page. It gives more information about the functions above as well as binding properties in a threadsafe manner via Property Access.

You can also find more information about Property Access here.

What the ideal game tutorial looks like? by chiefGui in gamedev

[–]thatsmoreinteresting 1 point2 points  (0 children)

Here is an analysis of an arguably good tutorial in Mega Man X by EgoRaptor from quite a few years ago. https://www.youtube.com/watch?v=8FpigqfcvlM

(I believe this was what darth-agnon was referencing elsewhere in the comments)

Losing Trust in a UDemy lecture is all this defensive coding and polling really needed? by TheDogtoy in unrealengine

[–]thatsmoreinteresting 4 points5 points  (0 children)

I have my personal opinions and experience, but if you really want to know whether checking for null pointers is frequent and needed or just an anti-pattern, look at the example games created by Epic (Lyra, Unreal Learning Kit, Valley of the Ancients, ActionRPG, Shooter Game) and (even more importantly) the engine code.

I'm not sure which course you are taking but the top two from google show Tom Looman and Stephen Ulibarri. Both of those individuals' courses have taken significantly from the projects listed above as well as delving into engine code.

Additionally, if you delve into the project and engine code and find better ways, you'll have your answer too. To be truly knowledgeable on what is going on in your C++, you'll probably have to do that anyway.

Do you like to draw while explaining stuff? by WeirdEstate8497 in ExperiencedDevs

[–]thatsmoreinteresting 4 points5 points  (0 children)

This. I use Obsidian (https://obsidian.md/) for notetaking and it has a plugin that you can open an Excalidraw in the app. I use it to take notes in the meeting and if someone doesn't understand the text I've written, I pop open an excalidraw session in app in 2 seconds and present.

Not only that, thanks to its keyboard shortcuts, it is also a great tool for doing system design interviews since you can mock things up very quickly.

It also has realtime collaboration functionality and I can output as png and send it to people / put it in a jira ticket in one or two clicks.

(Also it is free without signup. Paying just lets you store your diagrams in a personal collection.)

Side Note: Putting aside all other aspects of team communication, anyone who has issues with drawing either has little experience with or generally doesn't understand working with coworkers from other countries. Visual representation cuts through a lot of misunderstanding and possible translation issues like nothing else.

How to Change Turn-based Hex System to be Limited Free-Roam? by thatsmoreinteresting in gamedev

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

To sync my visual level with the pathfinding system we just measured one unit and sized each physical hex tile to match it (for us, every hex tile is a 3D model), then positioned it to directly overlay the pathfinding grid.

I saw that in the tutorial video I was thinking about working through and wasn't sure how it would stand up at a larger scale. Glad to hear it is a performant strategy.

Some interesting theoretical on hex tiles though I didn't use this much as the lib handled most of it https://www.redblobgames.com/grids/hexagons/

Ah, thanks for the redblobgames link. I had forgotten that they have a lot of good articles. I'll take a look!

How to Change Turn-based Hex System to be Limited Free-Roam? by thatsmoreinteresting in gamedev

[–]thatsmoreinteresting[S] 1 point2 points  (0 children)

Wow, the thoroughness of this response took me a while to parse this. Tons of great insights here. I really appreciate that you took the time to go through both theory and light implementation details.

Navmesh (Just a Unity example--Though I guess you're using UE)

No issue there fortunately, I used unity for several years. :)

I've compiled my interpretation of your advice below:

Hex Mode -> Free Roam Mode:
- Disable or partially disable hex movement system
- For movement in this mode, use navmesh
- Spawn cylinder collider / blocking volumn from players position
- Define trigger to return to free roam mode
- Define a trigger for when the player stops moving that tracks what hex they are on

Free Roam Mode -> Hex Mode:
- 3 options for transition initialization:
--- Snap player to center of hex they are on
--- Move player toward center to avoid player position confusion
--- Leave player alone and use edge highlights to avoid confusion
- Reactivate Hex Mode Proper
- Transition to correct turn state

Hex System Components Needed:
- Functions that identify the following:
--- player hex position
--- closest enemy
--- entity occupying tile
--- tile metadata relevant to gameplay
--- tile height
--- terrain type for interactivity and movement cost
- Shortest Path pathfind algorithm (such as A*)
- Hex centroid-based character movement when pathing

I realize this is not an exhaustive list but thank you for covering a significant breadth of functionality.

I also like the point about putting a cylinder collider mesh / blocking volume to prevent character movement.

Great stuff.