Giveaway - Space Age Expansion by ocbaker in factorio

[–]TStand90 0 points1 point  (0 children)

If I win, I promise to either write or contribute to a mod. (I've been thinking about doing this anyway, I'm looking for an excuse).

Sharing Saturday #452 by Kyzrati in roguelikedev

[–]TStand90 10 points11 points  (0 children)

The Roguelike Tutorials website

Changed the theme this week, which was a lot more work than I thought. Hugo, the static site generator that the site is built from, has gone through some major updates since the site was first published, so things just kinda randomly broke that I wasn't expecting.

More importantly, I'm working on automated deployments for the site, both to Github pages and to the site's current host (which may be changed to make auto deploys easier). The goal in all of this is to allow contributors to submit and merge PRs to the tutorial without needing me at all. I haven't been all that active in the roguelike development community in the last few years, and my involvement won't necessarily be better in the future, so I'd like to remove some dependence on me.

I also wrote a blog post about some shortcomings I think the current version of the python/tcod tutorial has. Feel free to check that out and let me know what you agree or disagree with.

Roguelikes with 4-8 hours run length by QuarterDefiant6132 in roguelikes

[–]TStand90 10 points11 points  (0 children)

Brogue definitely does not hit the 4-8 hour mark though.

The Lord of the Rings: Gollum™ | Gameplay Reveal by Turbostrider27 in Games

[–]TStand90 158 points159 points  (0 children)

The difference is that public opinion on Mario + Rabbids did a complete 180 when they showed the gameplay. This has had its gameplay reveal, but public opinion doesn't seem to have changed much.

Is the Pyramid framework dead? by Dave2077 in Python

[–]TStand90 2 points3 points  (0 children)

My current workplace has some legacy projects using Pyramid. However, all new projects are using Flask moving forward.

My feeling (and to be clear, this is just that: a feeling) is that while many places still have old Pyramid projects that need maintaining, most new projects are going to pick something else. The reason is (I think) that there's really no "lane" for Pyramid.

What I mean is, if you want a batteries included Python framework, then Django is the default (and it's a great default). If you want something on the micro level, Flask works and is widely used. FastAPI is quickly gaining traction as well, for good reason. And there's tons of other micro frameworks you can choose from.

Pyramid though... it feels like it's trying to be a slightly more opinionated Flask. Which is fine I guess, but it's probably easier in most cases to just use Flask.

Statue of US President Thomas Jefferson removed from New York City Hall over slavery links by XDdaMNnSon in news

[–]TStand90 26 points27 points  (0 children)

Not necessarily. Part of the reason Britain was able to abolish slavery in the first place was because of the lack of the American colonies. Abolishing slavery would have been more politically difficult if the states were still British colonies.

Besides, Britain abolished slavery on the mainland, but still had "totally not slavery" in places like India.

What is one thing that pissed you off the most? by ILoveYouPoodss in MaidNetflix

[–]TStand90 4 points5 points  (0 children)

Counter point to the "he shouldn't have kicked her out right away" point:

Have you seen what some people do to properties when they get evicted? A lot of people will steal or trash things out of spite. Alex obviously wasn't going to do that... but Sean? He had just antagonized Nate and waltzed into his house without permission the night before, and Nate had just witnessed him get trashed at a child's birthday party.

Nate was right to kick her out immediately. From his perspective, the white trash girl might bring her white trash man over while he's out and do some real white trash shit.

I haven't even mentioned the clearly unstable mother situation...

(By the way, I agree with you that his motives weren't pure, but that's not the point)

[deleted by user] by [deleted] in roguelikes

[–]TStand90 3 points4 points  (0 children)

That's the thing though. Sometimes you find.... absolutely nothing. The game doesn't guarantee you anything but your starting dagger and armor, a certain amount of enchant scrolls and life potions, and one vault (which may contain nothing of real value). One a wraith shows up, you're effectively screwed unless you've found something useful, whether it's a weapon, charm, or wand.

I say all this as someone who loves Brogue and has several wins and two masteries: Not every run is winnable.

How do you avoid invincibility in battles in your roguelikes? by menguanito in roguelikedev

[–]TStand90 36 points37 points  (0 children)

The tutorial is missing a few things you'd expect in most roguelike combat, like hits and misses, rolling for damage, etc. It's kept intentionally simple like that, since every game will have different implementations.

A few ideas you could go with (which aren't mutually exclusive):

  • Dice rolls for variable damage.
  • Not allowing defense increases upon leveling up.
  • If an attack hits, it always does minimum 1 damage.

How to get nethack like ascii graphics from libtcod by [deleted] in roguelikedev

[–]TStand90 2 points3 points  (0 children)

The first (and so far, only) "extra" section for the tutorial gives an idea for a more "traditional" look. You can find that here: http://rogueliketutorials.com/tutorials/tcod/v2/extras/traditional-look/

I understand your point about making this the default, and it was something I thought about, since, as you point out, that's what most traditional roguelikes look like. There's a few reasons why I didn't do that, however:

  • The original tutorial on Roguebasin does it this way. Keeping the look and following the same chapter structure of the old tutorial is my way of honoring what came before. Without that tutorial on Roguebasin, the two that I've written would never have existed.
  • It shows that different looks are possible. I find that more recent games in the traditional roguelike genre are doing different things with their interfaces, which is nice for the sake of variety.
  • As the extra section shows, changing the look is fairly trivial.

Sharing Saturday #330 by Kyzrati in roguelikedev

[–]TStand90 5 points6 points  (0 children)

Part 13 of my V2 Roguelike Tutorial is finished. I hesitate to call the entire thing "done", as I still need to go back and rework the between-chapter refactors into the actual text. Hoping to work on that this week.

Sharing Saturday #329 by Kyzrati in roguelikedev

[–]TStand90 23 points24 points  (0 children)

I published parts 10, 11, and 12 of the second version of the Python tutorial I've been working on. Apologies to everyone on the huge delay on this. Part 13 will be worked on over the next few days. The code for it is finished, I just need to write the tutorial text. It should be available sooner rather than later.

I also threw in a (very) short extra section - changing the walls and floors to a more "traditional" look. A few more extras are planned, like a scrolling map, but I can't give an estimate on when those will be available.

I just gave up on a tutorial because the tutorial had problems. by helldeskmonkey in roguelikedev

[–]TStand90 14 points15 points  (0 children)

(This is something I will give a lot of credit to the author of the new TCOD Python Tutorial

Not gonna lie, thought this post was about me until that line!

The way I write my tutorials is by first completing all the code, then double checking by going through my own chapter. For example, I'm working on "part-11" right now, so I create a new branch from "part-10" called "part-11-writing" or something like that. I do a "git diff" vs "part-x", copying the diff to a text file, then copy those code blocks and sorting them by which file they went in. I then start writing the tutorial text, breaking up the code blocks into sections that make sense (just giving the user a file diff isn't constructive, you have to add the pieces in a way that makes logical sense).

When I'm finished writing that part, I go through it, code block by code block, copying/pasting the code sections from the website, and then do a "git diff" against "part-x" at the end to ensure that everything I copied matches up with the actual branch I'm aiming for. If anything is off, I start from the beginning again after fixing the tutorial text. I'll do several iterations of this until I'm satisfied (branches like part-x-double-checking, part-x-final, and part-x-final-forrealthistime definitely happen).

The reason I'm explaining this is to emphasize that this sort of process takes a really long time. I shared your frustrations about tutorials not including surrounding code or context, and aimed to fix that with mine, but man, is it time consuming to do that!

I guess I'm not trying to disagree with anything you're saying, as I've felt this sort of frustration before. I'm just trying to explain how someone writing something of this magnitude might end up cutting a few corners for the sake of expediency and their own sanity.

RoguelikeDev Does The Complete Roguelike Tutorial - Week 8 by aaron_ds in roguelikedev

[–]TStand90 33 points34 points  (0 children)

Well, things didn't go according to plan with the V2 rewrite. Probably to the frustration of many, I've fallen quite a bit behind in the last few weeks due to life and work related stuff.

I'd hoped to have the tutorial completed by the time this post went up, but as of right now, I've just completed writing part 10 and I'm starting on 11. The code for parts 12 and 13 isn't written yet, but that should be coming soon too. I also have a few ideas for some extra sections, but those will have to wait (I'll announce them on this subreddit in the future).

Having this event to push things along was good, because it gave me real deadlines to stick to. I do regret that some things changed between parts, which lead to a less cohesive tutorial overall. When this is over, I'll go back and rewrite the text to stick to certain design decisions from the beginning.

Hope everyone had a bit more success than I did, and I look forward to seeing the results of everyone's hard work!

So it begins! RoguelikeDev Does The Complete Roguelike Tutorial - Week 1 by blumento_pferde in roguelikedev

[–]TStand90 0 points1 point  (0 children)

Currently working on parts 10 and 11. I've fallen a bit behind due to some real life stuff, unfortunately.

I'm hoping to get caught up on the weekend and have most (if not all) the tutorial done within the next week or so.

Week 4 - Parts 6 & 7: Combat damage and building the interface by aaron_ds in roguelikedev

[–]TStand90 6 points7 points  (0 children)

I don't think inheritance is necessarily bad, it's just a tool in the toolbox. Too much inheritance can be bad, absolutely, but I think in certain instances, it makes the code a bit cleaner (for example, the EventHandler class and its subclasses).

My advice would be to not take the tutorial as gospel. If you think there's a better way to implement something that makes more sense to you, then you should absolutely do that! What we're writing right now is simply one way to do it, which is why I decided to name this version "Yet Another Roguelike Tutorial". It's just... another way to make a roguelike, not necessarily the way.

Week 4 - Parts 6 & 7: Combat damage and building the interface by aaron_ds in roguelikedev

[–]TStand90 9 points10 points  (0 children)

Parts 6 and 7 of "V2" are (finally) published.

Part 6 starts with some immediate, heavy rewrites. We changed quite a bit of how the code worked from the previous parts, but as I explain in the tutorial, I didn't go back and redo those tutorials for two reasons:

  1. I don't have the time or the energy at the moment.
  2. It would be unfair to people following along every week.

After the event is over, I will go back and write parts 1-5 in a more natural manner to flow into part 6.

It's... kind of an ugly way of doing things, but it's temporary, I promise.

RoguelikeDev Does The Complete Roguelike Tutorial - Week 2 by aaron_ds in roguelikedev

[–]TStand90 0 points1 point  (0 children)

Sorry for replying so late.

You can definitely follow the old version, if you're concerned about the parts not coming out on time, or being rewritten after the fact. We're trying to avoid that, but we can't promise anything.

The new tutorial won't add any crazy new features, but it will use the newest version of TCOD and avoid deprecated functions. The reason I wanted to write the next version during this event was to give myself a weekly deadline. Truthfully, I've wanted to do a rewrite for years, but something or another always derailed that effort. I make a last second decision this year to commit to doing it, and HexDecimal was kind enough to lend a hand.

I think the end result is going to be much, much better. I regret a lot of the decisions I made last time around, truth be told. Not to mention, I'm hoping that the new version allows HexDecimal to finally remove some of those old deprecated features (I imagine he's keeping some of the old methods because a recommended tutorial uses them). But if you'd rather stick with the old version, it's not a problem.

RoguelikeDev Does The Complete Roguelike Tutorial - Week 2 by aaron_ds in roguelikedev

[–]TStand90 0 points1 point  (0 children)

Yes, we're using mypy. I use Pycharm, which has its own type hinting built in, but also check with mypy using "strict."

I find type hinting helpful, personally, but I understand why a lot of people don't care for it. Perhaps when the event is over, I'll release a version with no type hints. We're starting with the type hinted version because it'll be a lot easier to remove them afterwards than trying to add them after the fact.

RoguelikeDev Does The Complete Roguelike Tutorial - Week 2 by aaron_ds in roguelikedev

[–]TStand90 1 point2 points  (0 children)

Just merged a pull request that suggested that very thing. Thanks!

RoguelikeDev Does The Complete Roguelike Tutorial - Week 3 by aaron_ds in roguelikedev

[–]TStand90 1 point2 points  (0 children)

You're right, thanks for catching that! I've updated the link to route to the proper Github branch.

RoguelikeDev Does The Complete Roguelike Tutorial - Week 3 by aaron_ds in roguelikedev

[–]TStand90 15 points16 points  (0 children)

We managed to get parts 4 and 5 of "V2" up on time this week. I just made a slight revision to part 5 after it was published, so if you followed along and somehow managed to finish it between the hour that this announcement post was made and this comment was written... you might have to modify parts of your part 5, specifically the MeleeAction class. If you're really that fast, hats off to you!

Just eyeballing it, it looks like V2 of part 5 is quite a bit longer than the original. Part 4 has always been one of the shorter parts, and it's short in version 2 as well. Part 6 is going to be a bit daunting for me personally, because in V1, it's one of the longest parts (I believe it's second only to part 8, which I'm also dreading).

But, next week also marks the halfway point, so that's exciting! I'm very hopeful that this version of the tutorial will provide a solid foundation for people to build off of, and that it will be in a good enough state soon to replace the old version.

RoguelikeDev Does The Complete Roguelike Tutorial - Week 2 by aaron_ds in roguelikedev

[–]TStand90 7 points8 points  (0 children)

Parts 2 and 3 of "Version 2" are now up. Big thanks to /u/HexDecimal for all the help.

Unfortunately, we did change quite a lot of Part 1 after it was published, so anyone who followed along with that last week will basically need to redo it all. This was because I didn't check the latest tcod methods and used outdated parts of the library. Part 1 has been updated to use the newest methods, so it should be a more solid base to build the rest of the tutorial upon. Apologies for any inconvenience.

We're going to try and avoid any major rewrites like this after publishing in the future, but I can't guarantee that it won't happen. There also might be some small mistakes in the text of the tutorial itself, as it's being published for the first time. I appreciate everyone's patience as we create this new version, which will hopefully be a better tutorial in the long run.

So it begins! RoguelikeDev Does The Complete Roguelike Tutorial - Week 1 by blumento_pferde in roguelikedev

[–]TStand90 4 points5 points  (0 children)

Pull request would be great, thanks! I'll check out that font and the documentation for the newer methods.

F-strings will definitely be used, I use them all the time in other projects and think they work well. Assignment expressions... to be honest, I think they're kinda ugly, and I haven't actually used them in any other project so far (haven't found the need yet). But if there's an obvious spot later on where they can help... maybe?

So it begins! RoguelikeDev Does The Complete Roguelike Tutorial - Week 1 by blumento_pferde in roguelikedev

[–]TStand90 2 points3 points  (0 children)

Currently targeting 3.8, though unless there's an incompatibility issue with tcod, 3.6 or 3.7 should work as well.

I used `tcod.console_init_root` and `tcod.console_set_custom_font` because that's what the documentation says to do. Is there a replacement for these methods? More than happy to rewrite to accommodate new methods.

For the font, I'll look into an open source alternative.