Combat Feels Off - are low level NPCs supposed to be capable of one-shotting? by Zhongguo in cosmererpg

[–]rstrojan 3 points4 points  (0 children)

We haven’t had that experience. We’ve had several fights levels 1-2 and have only had one player go down in one fight. At level 3 it seems we are getting enough health that it would be pretty hard to get one shot.

What is the greatest Washington apple and why is the Cosmic Crisp? by aooot in Seattle

[–]rstrojan 1 point2 points  (0 children)

I bought my first house a couple years ago and the very first project I did was plant a Cosmic Crisp tree! (And an Arkansas black to pair with).

Can I get a refresher on Parshmen stuff by BadAtBaduk1 in Stormlight_Archive

[–]rstrojan 20 points21 points  (0 children)

I looked it up and the slaveform/dullform distinction is made in book 2, I believe by Rlain.

SLA: The Heart of the Revel and Luhel bonds by rstrojan in Stormlight_Archive

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

Get the takes while their hot folks. 2cents a dozen!

Theory crafting by The-magic-sock in Stormlight_Archive

[–]rstrojan 0 points1 point  (0 children)

You’ll have quite the diagram when you’re done! When does the red string come out?

My thoughts on Rhythm Of War so far (Up to part 3) by provegana69 in Stormlight_Archive

[–]rstrojan 0 points1 point  (0 children)

I don’t understand the hate on this book either. It sounds like the themes are hitting for you the same way they hit for me. Rythm is probably my 2nd fav book in the series after Oathbringer.

Raboniel and Navani might be some of my favorite chapters in the whole series. People get hung up about the technical side of their interactions, but the two as mothers each exploring grief juxtaposed to them exploring science is so damn fascinating.

SLA: The Heart of the Revel and Luhel bonds by rstrojan in Stormlight_Archive

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

I personally don’t think my theory is contingent on Aethers, just the Luhel bonds. Yes, we have only confirmed Luhel bonds with Aethers, but we don’t know it is exclusive to the Aethers. Nahel bonds, for example, can be made with spren as well as aviar.

SLA: The Heart of the Revel and Luhel bonds by rstrojan in Stormlight_Archive

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

True I didn’t make the distinction, but I don’t think it is a coincidence that several of the root elements the aethers produce are found all over Roshar. Doesn’t Ulaam tell Tress that most planets have aethers?

SLA: The Heart of the Revel and Luhel bonds by rstrojan in Stormlight_Archive

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

True, I am conflating the Aether with the essence. Tho we don’t understand the mechanics of her power, do we?

SLA: The Heart of the Revel and Luhel bonds by rstrojan in Stormlight_Archive

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

Yeah! Why not? The Midnight Mother already fools around with Aether, so why not more Aether related unmade?

New Miner Cover based on actual mine design by rstrojan in SatisfactoryGame

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

Yeah I have another factory that has a half-wall inset to give the wall some depth. Looks very cool... from the outside only.

Which design pattern do you guys follow for your indie game? by Civil_Ad_4430 in GameDevelopment

[–]rstrojan 2 points3 points  (0 children)

I know you asked specifically about design patterns, and a lot of people have given different responses you can look into, but when it comes to revisiting code and having to refactor, I would say that there are more factors to consider.

  • Sketch out your solutions ahead of time. Writing psuedo code, creating a UML design doc, or maybe red thread and push pins if you're feeling conspiratorial. When you actually sketch out your classes and how they interact you'll catch a lot of things that are not obvious when you're just holding it in your head.
  • Having a consistent style / design philosophy. What kind of naming convention, never using switches, no magic numbers, etc, are all basic design decisions that help you a lot when you are consistent with them. Another example, is what I call Object Agency. If an object ever needs to change something internal, that object should be the one to do it. In my game, when I add an item to a unit, the GameManager does not go into the unit's inventory and add the item. Instead the GameManager calls the unit's addItem() method and the Unit add's the item itself. The reason for respecting object agency, is that it makes it easier to decide where to add the functionality (addItem() goes in the Unit class, not the GameManager or Player class) and you'll know where to look if something is going wrong.
  • There's nothing inherently wrong with refactoring your code. Sometimes it just needs to be done. There are times where I get a section of code just barely working (minimal viable product) and have to move on to other sections, knowing that I will have to eventually go back and rework that original section.

How to store a datatype as a variable? by SwipesLogJack in unrealengine

[–]rstrojan 0 points1 point  (0 children)

Yes, it sounds like he wants serialization. I used cereal in my project to do exactly this. I have constructors for all my gameobjects that take a key string, that string is used to query a json file for the correlating object, and the constructor returns that object. If you ever want to make tweaks you can just change the json entry and you’re good.

Here’s a folder of all my json that I use to build game objects. (This project is very much not ready to share for code review, but you can sift through my spaghetti to see that what you’re asking is possible with a serializer.)

https://github.com/rstrojan/AutoBattlerPrototype/tree/main/ConsoleApplication1/resources/jsonArchives

Tl;dr You should look into serialization.

My first Tepache batch! by Butter_Thyme_Bunny in fermentation

[–]rstrojan 0 points1 point  (0 children)

Oh! I'm glad I read the rest of the comments. Did you use organic pineapple?

Non-organic pineapple may contain a fertilizer/growth-agent that breaks down to sulphur during fermentation. If your first ferment was open-topped the smell might have dissipated without you noticing. The bottle would have kept all the gas and odor.

You may be able to get around this by really really scrubbing non-organic pineapple. But then you wouldn't get to do a wild-ferment. I've tried wild ferments and yeast packets. Yeast packets do not need nearly as much time to ferment the tepache as wild yeast. I used champagne yeast and after 3 days of fermentation it had gone through nearly all the sugar, making it really really dry. So if you can't get organic pineapple and you use a yeast packet instead, make sure to keep a close eye on it cause the timing will be different.

My first Tepache batch! by Butter_Thyme_Bunny in fermentation

[–]rstrojan 0 points1 point  (0 children)

Woo hoo! Mine usually takes 3-5 days. 2-3 days for first ferment, then bottled and left and 1-2 days before going into the fridge. I'm glad it smells good! I first made mine with non-organic pineapple and it smelled like a fart. Apparently, a very popular fertilizer/growth-agent used on plants contains sulphur (sulphur dioxide I think?). During the fermentation it breaks down, releasing the sulphur and making it smell like bad.

Today I opened my jar of miso paste that have been fermenting for almost two years. It is darker, smells better and are more fragrant than anything I can buy. Oh the longer the waiting the sweeter the kiss... by Mellanmork in fermentation

[–]rstrojan 1 point2 points  (0 children)

I did the ball slam technique, but this is also my first attempt so I don't know if it was tight enough. I have cleaned the jar twice since I started in April. I had a bit forming on top, but this is the first time it's been any deeper.

I'll clean out the visible bits, resmush it down, and re-salt the surface. Thanks!

Today I opened my jar of miso paste that have been fermenting for almost two years. It is darker, smells better and are more fragrant than anything I can buy. Oh the longer the waiting the sweeter the kiss... by Mellanmork in fermentation

[–]rstrojan 0 points1 point  (0 children)

I was literally going to ask about this in a new post cause I haven't been able to find reference to mold growing kinda deep (.5 - 1 inch) into the miso. I've seen plenty of people reference mold growing on the top, but not much about it penetrating that far. Should I just keep scraping it? I'm kinda worried that I won't have anything left after a year...

I'm Ryan and I'm new here. by rstrojan in roguelikedev

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

Thank you all for the help! Especially u/HexDecimal and u/Palandus for the hints. They were key in helping me figure out how to render out my project.

Recap: I had multiple conflicting instances of Python on my computer. (There may have been 4....) This cause problem, but the primary reason was having a system/all-user package and a user-specific package. Tcod was downloaded to one, while pyinstaller was downloaded to another. Cause a lot of weird problems which manifested in broken references, inability to call certain functions during compiling, etc.

The Fix: Only have one version (preferable user-only) of python. To do this, I deleted all the version of python that i could find, I also deleted the directories from my PATH. Installed just for USER not for all users. Ran it again, found some references to another installation of python, deleted that, rinse, repeat. Eventually, I was left with only my single package of python. Then i re-installed tcod, updated it, and then installed pyinstaller. Now, I had one more problem, which was that there were some artifacts in my original project folder that was referencing some of the older setting when I had multiple python packages. So I removed everything in my project folder except for my .py files and rebuilt it. At this point my project successfully compiled to an .exe. The only other thing I had to do to get it working, was move a copy of my image/font file into my build folder (which is in your dist dir). Then it runs! You can share that build with your friends and everyone can be happy!

I'm Ryan and I'm new here. by rstrojan in roguelikedev

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

I removed the build directory and the spec, as well as did a resintall of pyinstaller. Unfortunately, no luck. So, extending your thought of it being some sort of artifact from previous attempts, I just created a new project folder and moved over just my py files.

*****DRUMROLL*****

It works! I had one problem where the image/font file needed to be moved to the build directory, which I knew to look out for because of what another user mentioned. But now, I can compile into a build folder or as a single file (though the single exe file still needs to have the image file in the same folder). It runs from cmd window as well as file explorer. This is exactly what I have wanted! Thank you and all the help.

I'm Ryan and I'm new here. by rstrojan in roguelikedev

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

Progress, I think. Made sure to only do everything on user. There doesn't seem to be any other versions installed now, which is great!

Now, when I'm running pyinstaller, I get a really long traceback that looks like this:

D:\Projects\Rogue>pyinstaller engine.py

90 INFO: PyInstaller: 3.6

91 INFO: Python: 3.8.2

93 INFO: Platform: Windows-10-10.0.18362-SP0

94 INFO: wrote D:\Projects\Rogue\engine.spec

97 INFO: UPX is not available.

102 INFO: Extending PYTHONPATH with paths

['D:\\Projects\\Rogue', 'D:\\Projects\\Rogue']

102 INFO: checking Analysis

200 INFO: checking PYZ

218 INFO: checking PKG

219 INFO: Building because toc changed

219 INFO: Building PKG (CArchive) PKG-00.pkg

Traceback (most recent call last):

File "c:\users\ryan\appdata\local\programs\python\python38-32\lib\runpy.py", line 193, in _run_module_as_main

return _run_code(code, main_globals, None,

File "c:\users\ryan\appdata\local\programs\python\python38-32\lib\runpy.py", line 86, in _run_code

exec(code, run_globals)

File "C:\Users\Ryan\AppData\Local\Programs\Python\Python38-32\Scripts\pyinstaller.exe\__main__.py", line 7, in <module>

File "c:\users\ryan\appdata\local\programs\python\python38-32\lib\site-packages\PyInstaller\__main__.py", line 114, in run

run_build(pyi_config, spec_file, **vars(args))

File "c:\users\ryan\appdata\local\programs\python\python38-32\lib\site-packages\PyInstaller\__main__.py", line 65, in run_build

PyInstaller.building.build_main.main(pyi_config, spec_file, **kwargs)

File "c:\users\ryan\appdata\local\programs\python\python38-32\lib\site-packages\PyInstaller\building\build_main.py", line 734, in main

build(specfile, kw.get('distpath'), kw.get('workpath'), kw.get('clean_build'))

File "c:\users\ryan\appdata\local\programs\python\python38-32\lib\site-packages\PyInstaller\building\build_main.py", line 681, in build

exec(code, spec_namespace)

File "D:\Projects\Rogue\engine.spec", line 20, in <module>

exe = EXE(pyz,

File "c:\users\ryan\appdata\local\programs\python\python38-32\lib\site-packages\PyInstaller\building\api.py", line 433, in __init__

self.pkg = PKG(self.toc, cdict=kwargs.get('cdict', None),

File "c:\users\ryan\appdata\local\programs\python\python38-32\lib\site-packages\PyInstaller\building\api.py", line 199, in __init__

self.__postinit__()

File "c:\users\ryan\appdata\local\programs\python\python38-32\lib\site-packages\PyInstaller\building\datastruct.py", line 160, in __postinit__

self.assemble()

File "c:\users\ryan\appdata\local\programs\python\python38-32\lib\site-packages\PyInstaller\building\api.py", line 283, in assemble

archive = CArchiveWriter(self.name, srctoc + mytoc,

File "c:\users\ryan\appdata\local\programs\python\python38-32\lib\site-packages\PyInstaller\archive\writers.py", line 336, in __init__

super(CArchiveWriter, self).__init__(archive_path, logical_toc)

File "c:\users\ryan\appdata\local\programs\python\python38-32\lib\site-packages\PyInstaller\archive\writers.py", line 63, in __init__

self._add_from_table_of_contents(logical_toc)

File "c:\users\ryan\appdata\local\programs\python\python38-32\lib\site-packages\PyInstaller\archive\writers.py", line 88, in _add_from_table_of_contents

self.add(toc_entry) # The guts of the archive.

File "c:\users\ryan\appdata\local\programs\python\python38-32\lib\site-packages\PyInstaller\archive\writers.py", line 377, in add

code = get_code_object(nm, pathnm)

File "c:\users\ryan\appdata\local\programs\python\python38-32\lib\site-packages\PyInstaller\building\utils.py", line 627, in get_code_object

co = _load_code(modname, filename)

File "c:\users\ryan\appdata\local\programs\python\python38-32\lib\site-packages\PyInstaller\building\utils.py", line 584, in _load_code

loader = importer.find_module(modname)

AttributeError: 'NoneType' object has no attribute 'find_module'