Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Post
  • Reply
leper khan
Dec 28, 2010
Honest to god thinks Half Life 2 is a bad game. But at least he likes Monster Hunter.

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.

It's not a bad thing by any means; I play a ton of roguelikes. But I don't believe it will work well for a Metroidvania. My first attempts at procgen Metroidvania built the map first and then attempted to apply structure to it post-hoc; that proved ultimately unworkable. I've also tried an approach where I built up the abstract graph alongside the reified map, but it was highly failure-prone (it could easily dead-end itself or create very gangly-looking maps with excessive amounts of backtracking). And slow, for that matter.


Thanks...but that article looks like it has similar issues as most procgen map generation algorithms, viz. the maps are only locally-structured, and I need a global structure. Which isn't to say that I can't learn things from it; using rigidbodies to adjust room positions seems like a good idea, for example.


...fantastic.

Check out oblige for ideas maybe? It makes procedural DOOM levels.

Adbot
ADBOT LOVES YOU

The Fool
Oct 16, 2003


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

TooMuchAbstraction
Oct 14, 2012

I spent four years making
Waves of Steel
Hell yes I'm going to turn my avatar into an ad for it.
Fun Shoe

The Fool posted:

If you haven't already you should check out dead cells
http://store.steampowered.com/app/588650/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. :v:

onionradish
Jul 6, 2006

That's spicy.

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.

As you would expect, questions about the quality of our procedural generation pop up very regularly, with both players and other devs. After recent high profile procedural generation controversies, we can't blame people for being sceptical. This is particularly obvious when talking about a genre that relies on meticulous level design at its core. So we’d like to acknowledge these concerns and take a deep dive into how we're planning to bring rogue-lite re-playability to a metroidvania.

Red and Black
Sep 5, 2011

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?

TooMuchAbstraction
Oct 14, 2012

I spent four years making
Waves of Steel
Hell yes I'm going to turn my avatar into an ad for it.
Fun Shoe

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.

The Fool
Oct 16, 2003


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.

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?

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.

Red and Black
Sep 5, 2011

The Fool posted:

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.

By "setup exactly the same way" you mean it uses VBA?

The Fool
Oct 16, 2003


Chomskyan posted:

By "setup exactly the same way" you mean it uses VBA?

Vba and msxml2 both

mystes
May 31, 2006

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.

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?
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.

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

raminasi
Jan 25, 2005

a last drink with no ice
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."

Red and Black
Sep 5, 2011

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.

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.

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

mystes
May 31, 2006

Chomskyan posted:

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?
The documentation isn't perfect, but you should be able to figure out what you need to do looking at the examples. I think they specifically have examples for your use case (pulling in data from an API). It normally just would come down to writing a normal function in c#, but in this specific case you might have to do a small trick to resize the output array size if you don't know how much data there will be when you call the function in the case where you're trying to directly use it as an array formula (I only called the functions I wrote in VBA so I didn't have this specific issue). I believe there is documentation/examples that show how to do this, though.

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

Linear Zoetrope
Nov 28, 2011

A hero must cook

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.

Pilchenstein
May 17, 2012

So your plan is for half of us to die?

Hot Rope Guy
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?

JawnV6
Jul 4, 2004

So hot ...
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.

TooMuchAbstraction
Oct 14, 2012

I spent four years making
Waves of Steel
Hell yes I'm going to turn my avatar into an ad for it.
Fun Shoe

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.

JawnV6
Jul 4, 2004

So hot ...

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.

reversefungi
Nov 27, 2003

Master of the high hat!

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

Pilchenstein
May 17, 2012

So your plan is for half of us to die?

Hot Rope Guy

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.

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.
That sounds like enough to get me started, I'll check out the webdev thread too. Thanks mate. :)

Maluco Marinero
Jan 18, 2001

Damn that's a
fine elephant.
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.

TooMuchAbstraction
Oct 14, 2012

I spent four years making
Waves of Steel
Hell yes I'm going to turn my avatar into an ad for it.
Fun Shoe
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.

Walh Hara
May 11, 2012

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).

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.

Reminds me of unexplored
https://www.rockpapershotgun.com/2017/03/10/how-unexplored-generates-great-roguelike-dungeons/

TooMuchAbstraction
Oct 14, 2012

I spent four years making
Waves of Steel
Hell yes I'm going to turn my avatar into an ad for it.
Fun Shoe

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. :)

Pollyanna
Mar 5, 2005

Milk's on them.


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.

lunar detritus
May 6, 2009


Pollyanna posted:

Really stupid, probably Google-able question: what is Elasticsearch used for?

For searching. :v:

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.

The Fool
Oct 16, 2003


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.

Pollyanna
Mar 5, 2005

Milk's on them.


gmq posted:

For searching. :v:

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.

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.

Janitor Prime
Jan 22, 2004

PC LOAD LETTER

What da fuck does that mean

Fun Shoe
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

pokeyman
Nov 26, 2006

That elephant ate my entire platoon.
Pretty sure SA's search uses Elasticsearch, as a straightforward example.

The Fool
Oct 16, 2003


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.

Pollyanna
Mar 5, 2005

Milk's on them.


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.

baka kaba
Jul 19, 2003

PLEASE ASK ME, THE SELF-PROFESSED NO #1 PAUL CATTERMOLE FAN IN THE SOMETHING AWFUL S-CLUB 7 MEGATHREAD, TO NAME A SINGLE SONG BY HIS EXCELLENT NU-METAL SIDE PROJECT, SKUA, AND IF I CAN'T PLEASE TELL ME TO
EAT SHIT


pokeyman posted:

straightforward example

:raise:

pokeyman
Nov 26, 2006

That elephant ate my entire platoon.

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.

raminasi
Jan 25, 2005

a last drink with no ice

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?"

TooMuchAbstraction
Oct 14, 2012

I spent four years making
Waves of Steel
Hell yes I'm going to turn my avatar into an ad for it.
Fun Shoe
I tend to think of events as having handlers or subscribers, while logs are just records of things happening.

Mr Shiny Pants
Nov 12, 2012

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?

dougdrums
Feb 25, 2005
CLIENT REQUESTED ELECTRONIC FUNDING RECEIPT (FUNDS NOW)

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.

Munkeymon
Aug 14, 2003

Motherfucker's got an
armor-piercing crowbar! Rigoddamndicu𝜆ous.



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

Adbot
ADBOT LOVES YOU

TooMuchAbstraction
Oct 14, 2012

I spent four years making
Waves of Steel
Hell yes I'm going to turn my avatar into an ad for it.
Fun Shoe

Mr Shiny Pants posted:

Depends on the context right?

Sure, and in a context-free situation like this one, that's my thinking.

  • 1
  • 2
  • 3
  • 4
  • 5
  • Post
  • Reply