|
TooMuchAbstraction posted:The problem with this approach is that it is unstructured. My ultimate goal here is a procedurally-generated Metroidvania, which is why I need to know the critical path in advance: I have to be able to place "keys" (powerups), "locks" (barriers that powerups let you bypass), and other such things in a structured manner. In other words, I must start with a (procedurally-generated) set of guiding principles for how the map will work at a high level. Most procgen games don't try to do this, which leads to "unfocused" gameplay. Check out oblige for ideas maybe? It makes procedural DOOM levels.
|
# ? Jul 29, 2017 17:45 |
|
|
# ? Jun 3, 2024 23:19 |
|
TooMuchAbstraction posted:My ultimate goal here is a procedurally-generated Metroidvania If you haven't already you should check out dead cells http://store.steampowered.com/app/588650/Dead_Cells/ The Fool fucked around with this message at 21:45 on Jul 29, 2017 |
# ? Jul 29, 2017 21:43 |
|
The Fool posted:If you haven't already you should check out dead cells Yep, it's on my wishlist/backlog, and I've been waiting for Chasm to drop for literally years. I've also played practically every Super Metroid ROM hack there is, as well as a ton of Spelunky and other lesser-known procgen platformers. I'm not short on inspiration, I guess is what I'm saying.
|
# ? Jul 29, 2017 21:59 |
|
TooMuchAbstraction posted:My ultimate goal here is a procedurally-generated Metroidvania, which is why I need to know the critical path in advance: I have to be able to place "keys" (powerups), "locks" (barriers that powerups let you bypass), and other such things in a structured manner. Building the Level Design of a procedurally generated Metroidvania: a hybrid approach. The developer of Dead Cells posted:My name is Sebastien Benard and I'm currently working as the Lead Designer on Dead Cells, a procedurally generated Metroidvania.
|
# ? Jul 30, 2017 00:22 |
|
I'm looking to program an Excel plugin for my company that will give users a custom set of functions that will connect to our SOAP API and pull data from our product strait into Excel. I'm currently doing some prototyping in VBA using MSXML2 objects. But I'm curious how to make a final product as fast and customer friendly as possible, and since VBA is an extremely slow language it might not be appropriate for the final product.. I've heard C# might be usable for programming commercial excel plugins. Can anyone point me to some resources where I could learn how to do that?
|
# ? Jul 30, 2017 01:05 |
|
onionradish posted:[url=http://www.gamasutra.com/blogs/SebastienBENARD/20170329/294642/Building_the_Level_Design_of_a_procedurally_generated_Metroidvania_a_hybrid_approach.php] Pretty cool, but also really high-level, and doesn't really touch on the "lock and key" mechanic of Metroidvanias at all. Still, thanks for the link! I find it interesting that they decided to do the highest-level map structure by hand (in addition of course to having handcrafted-with-variation rooms within biomes of course). I can see the argument for wanting to give the player some kind of feeling of progression, which implies giving them a to-some-extent dependable world to measure themselves against.
|
# ? Jul 30, 2017 01:16 |
|
Chomskyan posted:I'm looking to program an Excel plugin for my company that will give users a custom set of functions that will connect to our SOAP API and pull data from our product strait into Excel. I'm currently doing some prototyping in VBA using MSXML2 objects. I didn't make it, but my finance department uses a tool that is setup exactly the same way. They use it to download and upload ledger data.
|
# ? Jul 30, 2017 01:42 |
|
The Fool posted:I didn't make it, but my finance department uses a tool that is setup exactly the same way. By "setup exactly the same way" you mean it uses VBA?
|
# ? Jul 30, 2017 01:50 |
|
Chomskyan posted:By "setup exactly the same way" you mean it uses VBA? Vba and msxml2 both
|
# ? Jul 30, 2017 01:59 |
|
Chomskyan posted:I'm looking to program an Excel plugin for my company that will give users a custom set of functions that will connect to our SOAP API and pull data from our product strait into Excel. I'm currently doing some prototyping in VBA using MSXML2 objects. Actually if you just want to create a function and don't need any other interface, you can probably even knock it out in like an hour, and it will work way better than VBA ever will. mystes fucked around with this message at 02:28 on Jul 30, 2017 |
# ? Jul 30, 2017 02:22 |
|
Seriously Excel DNA is so good, and it's not even as good as it would be with more developer attention than "a couple of dudes in their spare time, plus whatever GitHub yahoos look at it."
|
# ? Jul 30, 2017 03:28 |
|
mystes posted:Use Excel DNA to make a plugin in c#. It's way better than VBA/com plugins if what you're trying to do is possible in it. Don't bother prototyping in VBA because the c plugin api it's based on is totally different from the COM api, and you can't make ribbons in VBA so you won't even be able to prototype the interface. Awesome! Do you have any recommendations for what to read up on to prepare, other than the official documentation? edit: also will this allow the plugin to be cross platform? Red and Black fucked around with this message at 05:47 on Jul 30, 2017 |
# ? Jul 30, 2017 04:00 |
|
Chomskyan posted:Awesome! Do you have any recommendations for what to read up on to prepare, other than the official documentation? I assume by cross-platform you mean Mac. I don't think Excel DNA will support Excel for OS X. I don't even know what kind of add-in support the Mac version of Excel even has. I don't think it supports either the c api or com add-ins. Apparently it supports some sort of new javascript API in Office 2016 for add-ins you install from the "office store" (lol), so maybe eventually that will be a realistic option. The whole situation is sort of a mess, admittedly. I guess if you really, really need Mac support now you could go back to using VBA (which I don't recommend), but I'm guessing that the com libraries you need to make http requests aren't even available on Mac, because they aren't actually part of office/VBA, they're just com libraries that are installed in Windows by default. Theoretically for mac you could use VBA to run a program written in another language that prints your data to stdout, but this would be really horrible. mystes fucked around with this message at 14:35 on Jul 30, 2017 |
# ? Jul 30, 2017 14:31 |
|
TooMuchAbstraction posted:Pretty cool, but also really high-level, and doesn't really touch on the "lock and key" mechanic of Metroidvanias at all. Still, thanks for the link! I find it interesting that they decided to do the highest-level map structure by hand (in addition of course to having handcrafted-with-variation rooms within biomes of course). I can see the argument for wanting to give the player some kind of feeling of progression, which implies giving them a to-some-extent dependable world to measure themselves against. Dead Cells doesn't actually use "lock and key" design within a single run. The way Dead Cells' progression works is that you progress far enough to fight a miniboss which gives you an ability that serves as your "key" to explore past the "locks" that allow you to take different paths in future runs. So yeah, not entirely applicable to what you're doing.
|
# ? Jul 30, 2017 18:33 |
|
I've got a decent grasp of programming but I've not done any web design stuff since about 2000. I want to throw together a quick web page that lets people select a skill build for an MMO (so it needs to have multiple tabs and the ability to drag and drop icons) - I'm guessing I want html 5 for that, yeah? Can anyone recommend a good place to learn the basics of html 5 and/or something better than notepad to develop with?
|
# ? Jul 30, 2017 21:37 |
|
Why wouldn't growing a map, adding a key, then permitting that lock to be placed in the next map-growing phase work? If the only concern is a player getting stuck that is. You wouldn't get cool one-way traps without the key like Super Metriod's bomb without pre-made setpieces.
|
# ? Jul 30, 2017 21:42 |
|
JawnV6 posted:Why wouldn't growing a map, adding a key, then permitting that lock to be placed in the next map-growing phase work? If the only concern is a player getting stuck that is. You wouldn't get cool one-way traps without the key like Super Metriod's bomb without pre-made setpieces. You could certainly do things that way, yes. The difficulty I ran into with the iterative-growth method is trying to build maps that looked and felt cohesive. The iterative approach (at least, in my attempted implementations) tends to result in linear, meandering maps where you never really return to previous areas. I tried to patch that by encouraging the map generator to try to loop back to previous areas and then bud off of them again, and sometimes that made very nice-looking maps! Most of the time, though, it wasn't able to loop back and the maps looked like crap. Think about things like upper Norfair in Super Metroid. The elevator room has five entrances: one to the Speed Booster lock (leading to the Ice Beam / Grapple Beam), one to the High-Jump Boots, one to the Varia lock (leading to Speed Booster and eastern Norfair in general), one that's the return path from eastern Norfair (and also a Speed Booster lock, incidentally), and one that's the return path from Grapple Beam. Ideally I'd like to be able to achieve similar levels of interconnectedness, if perhaps not quite so densely. ...now I'm wondering how well it would work to build a map fractally: place one large polygon or circle or something, then tangent to that place more shapes, and tangent to those place more. Then turn edges into rooms/corridors and points of contact between the edges into intersection areas like the elevator room. The actual locks I expect to do via premade setpieces, at least for the most part. Some things are easier to do algorithmically than others; for example, all you need for a High Jump lock is a platform more than N tiles above the ground, N = your jump height. But the sneakier locks and especially one-way passages (to lock the player into a smaller area and focus their exploration) are probably better-off handcrafted.
|
# ? Jul 30, 2017 22:23 |
|
TooMuchAbstraction posted:You could certainly do things that way, yes. The difficulty I ran into with the iterative-growth method is trying to build maps that looked and felt cohesive. Ahh, makes sense. Filling in a 2D grid would be hard. I guess I was imagining something more roguelike where rooms with stairs could be locked off, like the Dwarven Mines in nethack. I was thinking about the Metroid Prime series where the jump boots require backtracking to the original room, then there's a door from there only accesisble with them. Tacking on rooms to earlier areas isn't going to make the backtracking any more organic though. Shadow Complex is another good 2d metroidvania with some interesting locks. There are green blocks that get blown up by grenades, but they're also one-way locks without purple foam to 'hold' the grenade up against the ceiling.
|
# ? Jul 30, 2017 22:29 |
|
Pilchenstein posted:I've got a decent grasp of programming but I've not done any web design stuff since about 2000. I want to throw together a quick web page that lets people select a skill build for an MMO (so it needs to have multiple tabs and the ability to drag and drop icons) - I'm guessing I want html 5 for that, yeah? Can anyone recommend a good place to learn the basics of html 5 and/or something better than notepad to develop with? You'll probably get more responses in the Web Design/Development thread, but for what you're doing you probably don't need much more than some jQuery along with Bootstrap for tabs and stuff. Drag and Drop can be a pain, I've only ever used libraries for that kind of stuff that abstracted it all away. Regardless, HTML has a drag and drop API you can spend some time on if you want to implement that. How far deep down the rabbit hole are you planning to go? If you already understand programming other languages, then you probably just need a quick refresher course on HTML/CSS (a youtube video here or there should be fine), read through some of the bootstrap documentation, and then find a YouTube video or something on jQuery. If you want to really go down the rabbit hole, you could pick up a framework like React or Angular, but that's probably more than you're wanting to get into for the moment. For code editors, VS Code seems to be the universally recommended editor around here. There's also Sublime Edit and Atom, and if you want something a bit lighter (and are not on Linux), Brackets works well too. reversefungi fucked around with this message at 22:49 on Jul 30, 2017 |
# ? Jul 30, 2017 22:31 |
|
The Dark Wind posted:You'll probably get more responses in the Web Design/Development thread, but for what you're doing you probably don't need much more than some jQuery along with Bootstrap for tabs and stuff. Drag and Drop can be a pain, I've only ever used libraries for that kind of stuff that abstracted it all away. Regardless, HTML has a drag and drop API you can spend some time on if you want to implement that.
|
# ? Jul 30, 2017 23:08 |
|
I dunno if Dead Cells is a good example to hold up as a procedural Metroidvania, given in singular runs the equipment loadout really doesn't have a 'critical path', the randomness is just for fighting. The major blocking elements of progression I've seen thus far (the big picture), is entirely prebuilt, ie: Level 1 - no upgrade exit, vine path exit, teleport path exit Level 2 no upgrade - contains permanent upgrade that allows you to access vine paths Level 3 no upgrade - no upgrade exit Level 4 no upgrade - same boss every time Level 2 vine path - harder level 3 exit, return to level 3 no upgrade Level 3 harder - contains permanent upgrade that allows access to teleport paths This might be a little confusing if you haven't played the game, but my point is the generation doesn't extend to the 'big picture', it's merely individual stages that are assembled with random and fixed elements & exits.
|
# ? Aug 1, 2017 07:04 |
|
I gave the problem some thought, and I think I've come up with an avenue of approach that doesn't require planarity testing or other complicated graph theory. The basic issue is that I want to make a map that has a high degree of interconnectedness -- that more or less means "the map contains cycles". So why not build the map out of cycles? I should be able to just slap down a bunch of overlapping rectangles, identify edges and intersection points, and convert those into a graph; then I can do a random walk to create the critical path, and place powerups on the unused edges. This will of course create far more loops than I actually want, but it should be trivial to remove extraneous edges (and/or just have the edges not connect to each other in the concretized game world). The biggest drawback I can see to this approach (at least at this early juncture) is that it becomes fairly obvious that the map is made out of a bunch of rectangles. But I suspect that that can be hidden with a little post-processing and/or fuzzing when converting the graph into rooms and corridors.
|
# ? Aug 1, 2017 15:36 |
|
TooMuchAbstraction posted:I gave the problem some thought, and I think I've come up with an avenue of approach that doesn't require planarity testing or other complicated graph theory. The basic issue is that I want to make a map that has a high degree of interconnectedness -- that more or less means "the map contains cycles". So why not build the map out of cycles? I should be able to just slap down a bunch of overlapping rectangles, identify edges and intersection points, and convert those into a graph; then I can do a random walk to create the critical path, and place powerups on the unused edges. This will of course create far more loops than I actually want, but it should be trivial to remove extraneous edges (and/or just have the edges not connect to each other in the concretized game world). Reminds me of unexplored https://www.rockpapershotgun.com/2017/03/10/how-unexplored-generates-great-roguelike-dungeons/
|
# ? Aug 1, 2017 18:44 |
|
Walh Hara posted:Reminds me of unexplored Holy hell, yes, exactly! Thanks for linking that. Again it's a bit light on details, but it's awesome to hear that other people are exploring the same design space.
|
# ? Aug 1, 2017 19:14 |
|
Really stupid, probably Google-able question: what is Elasticsearch used for? I had an interview with a company that's looking for a front-end engineer, and one of their examples for current concerns and future pushes for their product was "we're having an issue where we send a request to the API every time a key is entered, so we're looking to use Elasticsearch to solve it". I don't know much about Elasticsearch, but it seems really really weird to me that they would bring in a complete technology to accomplish what can be done with a simple debounced function. Here's a list of poo poo I see but don't know much about : - Elasticsearch - Kibana - Kubernetes - Random-rear end AWS stuff that I'm sure matters but I just haven't had the opportunity to do anything with I need to get up to date, I've missed out on a lot these past couple years.
|
# ? Aug 2, 2017 22:06 |
Pollyanna posted:Really stupid, probably Google-able question: what is Elasticsearch used for? For searching. Seriously. It's basically a specialized nosql database able to handle enormous amounts of data to search/filter it. I have seen it mostly used to handle logs but you can do whatever. Kibana is an UI for Elasticsearch. Kubernetes is another kind of docker/container tech. And none of these things are really about frontend other than maybe having to create requests in Elasticsearch's annoying json format, so I have no idea why you got asked about them.
|
|
# ? Aug 2, 2017 23:10 |
|
Kibana just happens to be the official ui for elastic search, there are dozens. Kubernetes is a container orchestrator. Basically used to manage and automate large numbers of containers.
|
# ? Aug 2, 2017 23:36 |
|
gmq posted:For searching. Yeah, now that you mention logs, it's coming back to me. I've only ever heard Elasticsearch, Kibana, etc. in the context of logging, error handling, and New Relic-like performance and issue management. It was really, really strange to hear it touted outside of that, and I started second-guessing myself wondering if it ballooned in scope recently. I should have questioned them a little more, considering that the person I spoke with was supposedly head of engineering. Kubernetes I can see a reason for, but I just haven't really been in that position. I'm of the opinion that you should really only bring in tech like that once the situation warrants it, not just stick it on there for the gently caress of it.
|
# ? Aug 2, 2017 23:47 |
|
Stupid question time: What's the difference between a log and event? Both are immutable, timed data that just keeps pouring in. So are there more specialized dbs for each?
Janitor Prime fucked around with this message at 00:14 on Aug 3, 2017 |
# ? Aug 3, 2017 00:03 |
|
Pretty sure SA's search uses Elasticsearch, as a straightforward example.
|
# ? Aug 3, 2017 00:03 |
|
Janitor Prime posted:Stupid question time: What's the difference between a log and event? At a high level, a log should be a collection of events in a list, ordered by time.
|
# ? Aug 3, 2017 00:04 |
|
pokeyman posted:Pretty sure SA's search uses Elasticsearch, as a straightforward example. This, for example, makes sense - cause it's exactly what Elasticsearch is made for. Elasticsearch on the other hand doesn't really have a place as part of a front-end to a loving drive hailing feature. And it most certainly has nothing to do with debouncing calls to an API.
|
# ? Aug 3, 2017 00:15 |
|
pokeyman posted:straightforward example
|
# ? Aug 3, 2017 00:22 |
|
Pollyanna posted:This, for example, makes sense - cause it’s exactly what Elasticsearch is made for. Elasticsearch on the other hand doesn’t really have a place as part of a front-end to a loving drive hailing feature. And it most certainly has nothing to do with debouncing calls to an API. I’m with you. Either they’re looking at the wrong tool for the job or they did a poor job explaining the problem. In concept, if not in execution.
|
# ? Aug 3, 2017 00:40 |
|
Janitor Prime posted:Stupid question time: What's the difference between a log and event? Both are immutable, timed data that just keeps pouring in. So are there more specialized dbs for each? Do you mean event in the context of "event sourcing?"
|
# ? Aug 3, 2017 00:43 |
|
I tend to think of events as having handlers or subscribers, while logs are just records of things happening.
|
# ? Aug 3, 2017 01:18 |
|
TooMuchAbstraction posted:I tend to think of events as having handlers or subscribers, while logs are just records of things happening. Depends on the context right?
|
# ? Aug 3, 2017 05:56 |
|
Janitor Prime posted:Stupid question time: What's the difference between a log and event? Both are immutable, timed data that just keeps pouring in. So are there more specialized dbs for each? I would consider a log to be a list of events ordered by the time they occurred, possibly partitioned by another key. As in, "To log an event." You might be thinking of a case where events could have different types to be partitioned by in a log. "Time-series" is the more general term. On mutability: Events could also happen at a separate time than they are logged. A retail sale that takes place in Beijing could be executed "before" a sale that takes place in New York, but the marketing office in Atlanta may see the New York sale first. Of course the Atlanta office may be on fire, in which case they'll all be stuck in a local queue until the fire is put out. In order to retain lookup performance, you will often need to re-sort parts of this "log" as events come in. So the event records are immutable of course, but not the log itself. Imagine four balls on the edge of a cliff, logging works the same way. I think InfluxDB is the most well known DB for time-series information. They call their engine a time structured merge tree. That page also goes over the nature of time series data in very good detail.
|
# ? Aug 3, 2017 12:42 |
|
pokeyman posted:I’m with you. Either they’re looking at the wrong tool for the job or they did a poor job explaining the problem. They could be using it as a caching layer. "The Russians would just use Redis" though, or something
|
# ? Aug 3, 2017 14:35 |
|
|
# ? Jun 3, 2024 23:19 |
|
Mr Shiny Pants posted:Depends on the context right? Sure, and in a context-free situation like this one, that's my thinking.
|
# ? Aug 3, 2017 14:47 |