kaynSD
Technical Designer & Game Developer. [he/him/his]
Procedural Generator Generator.
RPG Layout Typesetter
Backup for [@kaynSD@peoplemaking.games]
- buncha little freaks for maleghast
- [Not loaded yet]
- It's gonna be called Motorhead. Isn't it? :)
- [Not loaded yet]
- As one of the ergonomic keyboard people you refer to as a sicko in your article, know that I too know the pain of losing a keyboard that others world deem bare-minimum office-supply-grade that you nevertheless feel is perfect for you and yet can't be directly replaced. You have my sympathies.
- Artists, quote with your red art! I have a lot more red art than I thought, but that might just be due to how many times I've drawn the Monarch for Lancer.
- Darn but I want the Tokugawa Vs Monarch as an A2 poster...
- Goregrinders just straight up fielding a Sunzi now, huh?
- [Not loaded yet]
- Presumably, one of the old bastards up top go "but what if I have the LLM trained on my text take over?"
- [Not loaded yet]
- This owns~~~
- [Not loaded yet]
- Excellent
- [Not loaded yet]
- Trick question. The correct answer is Skaven, catgirlthing! [out of the two options though, Empire]
- [Not loaded yet]
- Treasure Planet's soundtrack, naturally
- It's all fun and games until it has to be fun and a game
- It's all fun and games unless you're still trying to get back into working in fun and games.
- Happy birthday to me 🥳🎉 Please check out our gay fox girl Mario 3 game people like it a lot and you might too
- tomorrow's my bday and as such kitsune tails in 25% off only on itch itch.io/s/152818/kit... not only that but if you pay a single extra dollar for the bundle you also get the prequel, kitsune zero!
- Happy Enikoday!
- [Not loaded yet]
- Is... Is it mad at the Brexit?
- man i guess you really can make amazingly successful indie games if you work hard enough, make a really good game, and *checks notes* benefit tremendously from papa's money and clout 🙄 another L for the "just make good games" crowd
- There's also a takeaway here that a good government arts budget also helps a game grow (even if it will be one of those things that only the already wealthy will be in a position to learn about)
- [Not loaded yet]
- Tiltr
- [Not loaded yet]
- Learn C# they said. Specialise in Unity they said.
- [Not loaded yet]
- Now listen... I've told you once.
- [Not loaded yet]
- [Not loaded yet]
- This is this year's Eric Sparrow for you, huh? :)
- [Not loaded yet]
- [Not loaded yet]
- The modern equivalent of nailing your thesis to the door seems to lose some of the gravitas when it's in the form of ninety five tweets.
- Alright. It's time for some #Lancer RPG Actual Play shenanigans. Downtime session for CAM-DELTA as they celebrate their liberation of the planet Aramis and skip from license level one to three. One down, six to go? www.twitch.tv/kaynsd
- I forgot rule one of doing procgen screenshots... ... make everything rainbow coloured as soon as you can. #procgen #citygeneration #procedural
- [Not loaded yet]
- Oh yeah. Very familiar with this one. Thanks for the link to it anyway; always good to share the papers around as this field really likes to spread itself around all disciplines and thus all over the net in weird places :D
- [Not loaded yet]
- [Not loaded yet]
- I'll try to post more stuff in future then. Although sometimes it flickers back into miniatures painting or RPGs :D
- [Not loaded yet]
- C#. Doing this in Godot. Which means I've got a little bit more of an uphill struggle, not getting a lot of the built in power from Unreal. But I know C# and don't know enough C++ to feel comfy with this (and probably not doing this in Blueprints any time soon)
- [Not loaded yet]
- Both would be wildly different in terms of what would trigger what or even the range of combat, or even their use of grids... but abstracted enough, this kind of combat system sees potential use in both.
- [Not loaded yet]
- "I'm about to take this damage... hey it's a fire damage area effect spell! reaction! I move eight spaces and gain fire resistance!... -> I'm taking this damage ... reaction that kicks me into Rage -> I've taken this damage" "REACTION instaheal to you for 20HP" "HEY NO REACTION Attack against you!"
- That makes sense, you would pretty much have to. How many discrete steps are there for taking damage, would you say?
- Not even started there yet. But fortunately these are all very customisable as each thing that can be done in the game is a chain of commands executed in order that check for if they can execute.
- So that even moving isn't "I move from 0,0 to 4,0", or even "I am about to start moving... I am finishing moving"... no it's "I am about to start a movement action -> I am about to move from 0,0 to 1,1 -> I am moving from 0,0 to 1,1 -> I have finished moving from 0,0 to 1,1"
- And then repeat until it eventually gets to 4,4, and then announcing it's finishing a movement action. Yes, exhausting... but hey it covers every potential "Ah you're about to move! I trigger my trap card! Wait this only happens if you're about to START moving? Oh... never mind" eventuality
- This is a good thread. I've played both 4E and Lancer and while those effects are complex, I'm used to them and even want them because they provide interesting decision trees. I'm less of a coder so this is a useful alternate perspective about the number of atomized steps they take to resolve.
- The way I ultimately write a system like this is to split everything into as small a singular effect as possible, that can all potentially trigger reactions which are their own chain of steps. As the thread concluded this is even splitting things like "taking damage" into multiple separate steps
- [Not loaded yet]
- Make your debug drawings look better with this one neat trick!!!11!! Color.FromHSV(Random, 1,1);
- [Not loaded yet]
- Maybe. But yours is done and looks phenomenal :D
- 😍 gorgeous
- Thanks Olive~~ :D
- Take that lovely diagram, boolean intersect the landmasses you generated earlier... you've got the diagram of a somewhat American Grid city plan with a little more European twistiness to it without sacrificing safe looking junctions.
- Of course the next step after that is to use this plan as the guide for putting your ACTUAL city atop of; filling in the blocks with buildings, expanding roads (currently everything is only a _potential_ road, not a real one), plotting where bridges go, adding trains and highways. Lotta fun stuff.
- Those steps are somewhat important; without them entire thing becomes concentric rings and you never get any long run on roads. Relaxing everything tends the map over to hexagons, and the cutting hexs into quads means there'll be longer run on roads, especially as the next step is to subdivide again
- Now the fun part is that the vertices that were just made? Those are your intersections and straightways. They all connect up to each other along your new roads, and now they've all got nice blocks made entirely out of quads and everything is at crossroad or roundabout intersections.
- But one thing you can guarantee about Voronoi diagrams is that they give you convex shapes. And one thing you can always do to a convex shape to get quads is to run a basic subdivision over it, splitting all edges and connecting them to the middle as a polygon fan. Now everything is kite-like quads.
- There's one or two steps extra I do though. First, the initial points are Lloyd Relaxed to make everything a little less haphazard. Secondly, for any shapes that were hexagons, instead of the above step I just cut them into two trapezoidal quads.
- Nothing as complicated. After the steps for building a landmass out of rivers and coasts (see the replies I did to Loren for the rough explanation there) I've simply got a Voronoi map over it based on a Poisson Distribution of one every 200m or so (about twice the size of a city block)
- The problem of course with a Voronoi Diagram is that blocks don't tend to be chaotic shapes, they tend to be squares, and the intersections between them in cities tend to be quads, certainly in American or Canadian or modern increasingly in European and Asian cities.
- Here's the latest episode of Better Offline. I'm joined by Steve Burke of @gamersnexus.bsky.social to talk about how tariffs are throwing the PC gaming industry into disarray, and how the era of affordable computing is coming to an end. podcasts.apple.com/us/podcast/b... Linktr.ee/betteroffline
- Good grief indeed.
- this approach to rivers is really interesting to me because it starts with independent pieces of geometry and then 'finds' a riverlike structure in them. i like that a lot. it seems like it works really well!
- I think a lot about how to do procgen and think that, in theory, it should be doable by hand. This is kinda how I draw a fake city map anyway... doodle a river, fill it in... now I can't put houses there. Procgen to me is teaching the computer how to do that kind of thing, so that's how I did it :D
- this is really interesting, thank you for sharing! i like that this is all made of geometry and interactions between geometry. it's been great seeing this grow. clipper sounds like it's for slicing / performing boolean operations on geometry? it looks neat to work with for procedural generation!
- Yep. That's the one. Since I'm just working with the 2D side of things for now it seemed that instead of trying to build my own path intersecting and outlining toolset for doing rivers, I should probably use a mature library that already does that kind of thing.
- I also have coastlines the rivers immediately stop at and the last few nodes multiply in strength to represent a river mouth reaching the sea. After some massaging to inflate the shapes a little, Clipper carves it all out of my landmasses, and the city blocks eventually get plotted atop those
- (the coastlines are also neat... they're also a midpoint displacement, but along a really long wavelength sawtooth so that it looks like longshore drift. They cut out everything between them and the side of the map they're a coast for)
- To make it more apparent a river merged, the stronger river also inherits the strength of the weaker river at that intersection and passes them all down the chain, so rivers get nice and bulky the more tributaries that flow into them
- Then once all intersecting rivers are found, from each node put a point representing the bank at that point on each side, as far out as their strength. Then that forms the path of the river that gets carved out of the map.
- This continues until each of their segments is (at the moment) about 10 meters long, and the nodes are assigned their current strength, lerping along the river from the start to the end. At the moment everything is just lines.
- After all the rivers have their ideal paths drawn, they're all checked for intersections Any river that intersects is checked from the closest nodes; the stronger river gets a new node at that intersection that has two parents and continues down the stronger path. The rest of the weaker one is culld