Jump to content
Matt516

The leveling and XP curve. What's wrong and the only way to fix it.

Recommended Posts

I think that this is completely a matter of groupthink.  You have a bunch of people beating their chests about how good they are and how easy the game is.  And this is the current shiny object that is trotted out as an excuse.  If this was slashed I *guarantee you* that it will take less than a day for the same people to be back here complaining about the same thing with a different target. There's just no end to it. 

 

The basic reason is simple: this is an open world game (which allows you to control what level you do things at).  You can take advantage of terrain, which is a huge edge.  And you have both a ton of "burst" capacity in the form of per rest spells /abilities and health vs/ endurance - remember that in BG every "unconscious" player would be a dead player.  You can also create imbalanced parties and characters, which is basically impossible to avoid in a complex game like this.  And you can withdraw and rest (no respawning monsters).  None of these things are impacted, at all, by experience gain.

 

The bottom line is that experienced players will always be able to trivialize normal encounters; if you want more dificulty the only place to get it is in boss encounters where you can balance them around the players throwing everything at the wall and you can control terrain.

 

Any "fix" should be restricted to the highest difficulty level (and possibily target bounties, which really do seem to have too rich of an exp reward for their level.  Conversely, I'd pump up the gold rewards - as, after all, they are bounties, and the fights are tough.  And, no, you can't buy "every magic item in the game", or even close to it, with the cash available!)

  • Like 1

Share this post


Link to post
Share on other sites

I think that this is completely a matter of groupthink.  You have a bunch of people beating their chests about how good they are and how easy the game is.  And this is the current shiny object that is trotted out as an excuse.  If this was slashed I *guarantee you* that it will take less than a day for the same people to be back here complaining about the same thing with a different target. There's just no end to it. 

 

The basic reason is simple: this is an open world game (which allows you to control what level you do things at).  You can take advantage of terrain, which is a huge edge.  And you have both a ton of "burst" capacity in the form of per rest spells /abilities and health vs/ endurance - remember that in BG every "unconscious" player would be a dead player.  You can also create imbalanced parties and characters, which is basically impossible to avoid in a complex game like this.  And you can withdraw and rest (no respawning monsters).  None of these things are impacted, at all, by experience gain.

 

The bottom line is that experienced players will always be able to trivialize normal encounters; if you want more dificulty the only place to get it is in boss encounters where you can balance them around the players throwing everything at the wall and you can control terrain.

 

Any "fix" should be restricted to the highest difficulty level (and possibily target bounties, which really do seem to have too rich of an exp reward for their level.  Conversely, I'd pump up the gold rewards - as, after all, they are bounties, and the fights are tough.  And, no, you can't buy "every magic item in the game", or even close to it, with the cash available!)

 

I'm sorry but I was an early defender of the way things are, but then I did all the bounties and realized there was a genuine issue with xp availability in the game.  Difficulty is much more subjective, but hitting the xp cap with huge amounts of content untouched?  That's a quantifiable problem.

  • Like 3

Share this post


Link to post
Share on other sites

I do think you have a point, Matt, but there's another issue to keep in mind, IMO.

 

I think it bears remembering that each level provides fairly dramatic improvement, probably more so than for most classes in the IE games. Compare BG2 - you could easily end up tackling De'Arnise hold at anywhere between 8th and 13th level, without the difficulty changing tremendously until the very end of that progression (although it would change quite a bit, don't get me wrong).

 

In PoE, each level matters a lot more imminently. I like that, but it doesn't play nice with the open-world aspect of the game, because content has to be balanced for a party at the lowest likely level. Heritage Hill needs to be doable for a party of 4-5th level characters, because the player may get to it at that point. But they might also get to it as late as 9th, by which point they are dramatically overpowered for the area.

 

It's not a problem with an easy solution.

  • Like 2

If I'm typing in red, it means I'm being sarcastic. But not this time.

Dark green, on the other hand, is for jokes and irony in general.

Share this post


Link to post
Share on other sites

I think that this is completely a matter of groupthink.  You have a bunch of people beating their chests about how good they are and how easy the game is.  And this is the current shiny object that is trotted out as an excuse.  If this was slashed I *guarantee you* that it will take less than a day for the same people to be back here complaining about the same thing with a different target. There's just no end to it. 

 

 

 

This is way off. Some people like a challenging experience when they play video games and it has nothing to do with chest beating or stroking their own ego. The way I see it is people are concerned with a legitimate issue - not beating their own chest.

  • Like 1

Share this post


Link to post
Share on other sites

It would be nice to get some information regarding how individual experience requirements are stored. Maybe that way, a mod could be created to mess around with the experience requirements with minimal effort on Obsidian's part. Honestly, this would be the first thing I would try for myself.

Edited by View619

Share this post


Link to post
Share on other sites

I think getting xp requirements to grow exponentially, while making it so that getting the 12th level requires completion of 99% of the quests is a good idea. Obviously totally rebalancing all the xp rewards so that both "completionists" and "modern gamers" were happy would be better, but are we completely sure Obsidian is up for that? Might be a waste of effort too, since most people that were happy with the xp rewards probably already completed the game and forgot about it. 

Imo just put normal xp, and reduced xp options into expert mode, just in case, and problem solved(the xp related part at least).

P.S. Apologies if you read the this post of mine in every related thread. :)


It would be nice to get some information regarding how individual experience requirements are stored. Maybe that way, a mod could be created to mess around with the experience requirements with minimal effort on Obsidian's part. Honestly, this would be the first thing I would try for myself.

If you mean xp requirements for each level, see here. https://forums.obsidian.net/topic/75906-seems-like-xp-balance-is-out-of-whack/page-7?do=findComment&comment=1648191

  • Like 1

Share this post


Link to post
Share on other sites

Another solution would be to just do away with XP entirely and hand out levels at appropriate intervals.

 

That is a great approach for TTRPGs, but terribly constraining and uncomfortable for CRPGs.

 

(So I'm surprised Sawyer hasn't done it already.)


If I'm typing in red, it means I'm being sarcastic. But not this time.

Dark green, on the other hand, is for jokes and irony in general.

Share this post


Link to post
Share on other sites

Yep.  I've been suggesting significantly reduced sidequest xp as the solution because I do sidequests for the story and any item rewards, so them not having a major impact on my levelling is not a problem for me.  But this would certainly be another way to ensure that the devs are better able to predict where people end up and balance the game reasonably for different playstyles.  That said, whatever the solution, it needs to be coupled with straight-up difficulty tuning of the encounters in some parts of the game.

 

 

It's a single-player game.  Why does it need to be "balanced"?

 

My only comment on this "problem" is "I don't care, and it doesn't matter".

 

Yet another mindless "the game needs to forcibly prevent people from playing a certain way because I imagine that way as somehow being 'less fun' or 'suboptimal'" complaint.

  • Like 2

Grand Rhetorist of the Obsidian Order

If you appeal to "realism" about a video game feature, you are wrong. Go back and try again.

Share this post


Link to post
Share on other sites

 

Another solution would be to just do away with XP entirely and hand out levels at appropriate intervals.

 

That is a great approach for TTRPGs, but terribly constraining and uncomfortable for CRPGs.

 

(So I'm surprised Sawyer hasn't done it already.)

 

How so? If you want players to be in the level range a-b at point x in the game, then you just make sure that % completion of the content up till that point lands them somewhere in that range. I don't see how there's any practical difference (from the player's perspective) between doing it that way and perfectly tuning XP gain and level curves.

Share this post


Link to post
Share on other sites

I think it must be mostly Caed Nua stuff that's putting things really off.  I ended up at 11 after getting bored of the Endless paths fairly quickly and not bothering with the other stronghold things.

 

But rapidly increasing XP might well be a good idea.  They could also/alternatively look at scaling rewards based on what level you are compared to your "expected" level.

Edited by Wulfram

Share this post


Link to post
Share on other sites

 

Another solution would be to just do away with XP entirely and hand out levels at appropriate intervals.

 

That is a great approach for TTRPGs, but terribly constraining and uncomfortable for CRPGs.

 

(So I'm surprised Sawyer hasn't done it already.)

 

 

 

Personally, I find the entire "leveling" ethos to be kind of silly unless the game is intentionally meant to be a sort of "coming of age" variety of story.  It's regularly attended by ridiculous nonsense like people heralding you as some kind of Hero of the Ages when you have a bent pin for a weapon and know 2 spells or, conversely, people laughing about how weaksauce you are when you just hacked your way through an entire mountain of Evil Dudes.

 

The only excuse for it is that building your complete character before you know how any of the mechanics work would kind of suck.  A lot.


Grand Rhetorist of the Obsidian Order

If you appeal to "realism" about a video game feature, you are wrong. Go back and try again.

Share this post


Link to post
Share on other sites

 

It's a single-player game.  Why does it need to be "balanced"?

 

My only comment on this "problem" is "I don't care, and it doesn't matter".

 

Yet another mindless "the game needs to forcibly prevent people from playing a certain way because I imagine that way as somehow being 'less fun' or 'suboptimal'" complaint.

 

Currently the game "forcibly prevents" players that want to do side quests from enjoying combat because apparently "the optimal" way is to rush main quest, finish the game ASAP and buy the next game.

Share this post


Link to post
Share on other sites

 

Yep.  I've been suggesting significantly reduced sidequest xp as the solution because I do sidequests for the story and any item rewards, so them not having a major impact on my levelling is not a problem for me.  But this would certainly be another way to ensure that the devs are better able to predict where people end up and balance the game reasonably for different playstyles.  That said, whatever the solution, it needs to be coupled with straight-up difficulty tuning of the encounters in some parts of the game.

 

 

It's a single-player game.  Why does it need to be "balanced"?

 

My only comment on this "problem" is "I don't care, and it doesn't matter".

 

Yet another mindless "the game needs to forcibly prevent people from playing a certain way because I imagine that way as somehow being 'less fun' or 'suboptimal'" complaint.

 

Well, I know I found your contribution on this matter to be very valuable.

 

 

Share this post


Link to post
Share on other sites

It's a single-player game.  Why does it need to be "balanced"?

 

My only comment on this "problem" is "I don't care, and it doesn't matter".

 

Yet another mindless "the game needs to forcibly prevent people from playing a certain way because I imagine that way as somehow being 'less fun' or 'suboptimal'" complaint.

 

For many things, I'd agree with your comment. But when you can hit the level cap by the middle to two thirds of the way through the game (without even going out of your way to do so) and thus be overpowered to the extent that the rest of the game becomes trivial, that's an issue.

  • Like 2

Share this post


Link to post
Share on other sites

I think getting xp requirements to grow exponentially, while making it so that getting the 12th level requires completion of 99% of the quests is a good idea. Obviously totally rebalancing all the xp rewards so that both "completionists" and "modern gamers" were happy would be better, but are we completely sure Obsidian is up for that? Might be a waste of effort too, since most people that were happy with the xp rewards probably already completed the game and forgot about it. 

Imo just put normal xp, and reduced xp options into expert mode, just in case, and problem solved(the xp related part at least).

P.S. Apologies if you read the this post of mine in every related thread. :)

It would be nice to get some information regarding how individual experience requirements are stored. Maybe that way, a mod could be created to mess around with the experience requirements with minimal effort on Obsidian's part. Honestly, this would be the first thing I would try for myself.

If you mean xp requirements for each level, see here. https://forums.obsidian.net/topic/75906-seems-like-xp-balance-is-out-of-whack/page-7?do=findComment&comment=1648191

 

Many thanks, I'll start looking into that.

Edited by View619

Share this post


Link to post
Share on other sites

@Atheosis - I want to apologize. I came on a little strong earlier. It's a bad habit I have where I know something to be true with certainty (usually something mathematical as those are often the only things you can know with certainty) and I project that certainty onto stuff that is not, in fact, certain or universal. Let me start over (sorta).

 

@Everyone (including Atheosis):

When tuning an RPG with an IE-esque XP system (finite amount of XP available in the game, levels are significantly important, etc.), there are three design variables to play with that are mathematically constrained to each other - that is, if you set any two, the third one must be a certain value.

 

These three variables are: The ratio of "optional" XP to "mandatory" XP, the level difference between a "completionist" and a "non-completionist" player as a function of how far in the game they are, and the level curve formula (how much XP it takes to get to any given level).

 

I've assumed two design goals in my argument that may not be universally agreed upon as good goals. If you agree with these two goals, then what I'm saying (that is, the functional form I am proposing for the XP curve) is mathematically and fundamentally correct, and the current system will never work, no matter how perfectly it's balanced. If you don't agree, there's ample room for disagreement but we just disagree on fundamental design goals so we'd end up agreeing to disagree (which is fine).

 

----------------------------------------------------------------------------------------------------

 

Here are the two premises, the two design goals, upon which I based my OP. The argument I am making depends on these two things being agreed upon:

 

1) The ratio of optional XP to mandatory XP should be roughly the same no matter where in the game (or eventual series) one is... that is, if in Act I there is 10,000 critical path XP and 10,000 optional XP, and in Act III there is 50,000 critical path XP, there should be about 50,000 optional XP in Act III. If in Act VII (assuming PoE 2) there is 10,000,000 critical path XP, there should be about 10,000,000 optional XP. Specific numbers aren't important, just the concept.

 

2) The level difference between a completionist and non-completionist player should not grow significantly (if at all) with time. That is, if I do every single sidequest and Bobby only does the story quests, and I end up 2 levels ahead of Bobby at the end of PoE, I shouldn't be.. say.. 6 levels ahead of Bobby at the end of PoE 2 if we both follow the same pattern.

 

These are the two premises I am assuming are true. My reasoning for 1 is that it just wouldn't make sense for sidequests to become more or less valuable relative to story quests as the series progresses. My reasoning for 2 is that the game is much easier to balance that way. If you agree with me in these two statements, my conclusion (what the leveling curve should be) is mathematically, ironclad, the only solution. Barring major changes like scaling XP rewards to current level, handing out levels instead of XP, that sort of thing. Either of which would work - but I'm arguing within the framework we have (the three variables outlined in the above paragraphs).

 

----------------------------------------------------------------------------------------------------

 

Here's the thing. If you agree with those two statements, then two of our three design variables are fixed. The third is absolutely and fundamentally specified by the math (and is a function of the form "XP_for_level_N = C*A^n"). The coefficient A is easily worked out by what actual values we set the first two variables at (for a 50/50 split between story/optional XP and 1 level difference, A is equal to 2 for example - I'd argue for something more like 50/50 and 2.5 levels difference, so the coefficient A would be closer to 0.758), and C doesn't matter as it's a scaling constant.

 

So that's my amended argument. If you agree that sidequests should have the same relative XP value to story quests (overall) as the series progresses, and if you agree that the level difference between a completionist and a non-completionist should not grow (or shrink) as the series progresses... then my proposed change to the XP curve is the only solution. I'm not being arrogant here (I was earlier before I qualified my assumptions, but not here) - that's the math.

 

From what you've said (Atheosis), it sounds like you'd maybe be ok with sidequest XP growing less and less valuable relative to story XP as the series progresses, or maybe with completionists getting progressively further ahead of non-completionists in levels as the series goes on. If so, that's fine. We can agree to disagree. But if you agree with my statements 1 and 2, you cannot argue for the current leveling curve to remain - or anything other than the exponential function I proposed (or another function that also fulfills conditions 1 and 2 - of which I can think of none).

 

I cannot stress enough that that's not my opinion or a pet idea that I like because its mine - it's a mathematical truth on par with 2+2=4. The current leveling curve is fundamentally incompatible with design goals 1 and 2. Maybe the devs do not share one or both of those - I can't see why they wouldn't, though.

 

 

EDIT: I wish I could link this post to the OP. It says what I was trying to say a bit better than I did in the OP. Stupid forum edit timer rules... :p

Edited by Matt516

Share this post


Link to post
Share on other sites

 

I think getting xp requirements to grow exponentially, while making it so that getting the 12th level requires completion of 99% of the quests is a good idea. Obviously totally rebalancing all the xp rewards so that both "completionists" and "modern gamers" were happy would be better, but are we completely sure Obsidian is up for that? Might be a waste of effort too, since most people that were happy with the xp rewards probably already completed the game and forgot about it. 

Imo just put normal xp, and reduced xp options into expert mode, just in case, and problem solved(the xp related part at least).

P.S. Apologies if you read the this post of mine in every related thread. :)

It would be nice to get some information regarding how individual experience requirements are stored. Maybe that way, a mod could be created to mess around with the experience requirements with minimal effort on Obsidian's part. Honestly, this would be the first thing I would try for myself.

If you mean xp requirements for each level, see here. https://forums.obsidian.net/topic/75906-seems-like-xp-balance-is-out-of-whack/page-7?do=findComment&comment=1648191

 

Many thanks, I'll start looking into that.

 

If you figure out 1) how to mod that function and 2) how much total XP (both critical path and non-critical path) is actually in the game, I can tell you exactly what function to use and what coefficients to use to enforce any level difference between completionists and non-completionists you want. As well as scaling it so that completionists just barely get to 12 (if that's what you want). Hell, I can (probably?) give you pseudocode for a function that calculates all that on its own, given those parameters (so people using this mod can tune it to their liking).

 

I probably wouldn't use it - for all my obsession over mechanics and math, I prefer to play the game (mostly) the way the devs intended it if possible - even if its silly at the moment.

Share this post


Link to post
Share on other sites

So, a better formula for experience limits when compared to : ((currentLevel * (currentLevel + 1)) * 500)  would be what in your opinion Matt? You do seem to be the Matthematician. :p

 

 

Edit

 

Beat me to the response. Yeah, it's really just curiosity at the moment, looking at how different things work, etc. I'll let you know, though.

Edited by View619
  • Like 1

Share this post


Link to post
Share on other sites

Regarding the BG comparison made at the beginning of the topic, I think it's apt, although perhaps not as originally intended.  At least on my first playthrough, I maxed out the possible levels before the final fight with Sarevok, and was not trying to be a completist.  The TotSC expansion pack welcome level expansion extras / xp cap relief (which I expect will also be the case for PoE).  BG2 started the party at the mid-levels and therefore had much more content/scaling flexibility from the beginning.

 

In the context of putting out the first installment of a new epic world/game series, believe the XP gain / scaling issues raised above are both valid and, unfortunately, more or less inevitable given different playstyles and balance issues.  The best fix would be to simply have the extra content available at start, but this is not really viable from a commercial perspective.  It would also require that much more dev time, which people don't have the patience for either.

 

I haven't started PoE yet and at this point I'm tempted to defer gaming gratification until the release of the expansion pack, for the fully enhanced experience.  We'll see.  There seems to be plenty of replayability, both in terms of content and difficulty level, so people of differing styles (or those who like to change them up) can still have a good experience.

Share this post


Link to post
Share on other sites

So, a better formula for experience limits when compared to : ((currentLevel * (currentLevel + 1)) * 500)  would be what in your opinion Matt? You do seem to be the Matthematician. :p

 

 

We'd need to know the actual maximum amount of exp attainable in the game (sans sources of infinite exp).

 

That being said, changing:

 

((currentLevel * (currentLevel + 1)) * 500)

 

to:

 

((currentLevel * (currentLevel + something_else)) * 500)

 

and/or:

 

((currentLevel * (currentLevel + 1)) * something_else)

 

... would be relatively simple because it wouldn't require changing the code size, so no optimization necessary to make room.

 

I probably could just guess the assembly code for the existing formula, convert it to hex, do a hex search in the dll, and make the change.

 

EDIT: There's not many instances (30ish) of little-endian 32-bit integer 500 (F4 01 00 00)  in Assembly-CSharp.dll

Edited by Daemonjax

Share this post


Link to post
Share on other sites

This problem is exacerbated by Od Nua.  I was level 8 or 9 before I finished the first chapter.  Od Nua felt like a whole separate game inside the main thing, and its actually pretty fun as a dungeon runner.  You could rely on heavy handed solutions, or just accept that there's a huge amount of sidequests and some players will be overleveled by the middle.  Hell, it definitely happened in BG2, where I hit max somewhere around underdark, and earlier than that with Watcher's keep.

 

Durlag's Tower did similar things to BG, where I was maxed by the end of the Third chapter.

Edited by anameforobsidian

Share this post


Link to post
Share on other sites

So, a better formula for experience limits when compared to : ((currentLevel * (currentLevel + 1)) * 500)  would be what in your opinion Matt? You do seem to be the Matthematician. :p

 

I'd be happy to provide the info, but I would caution you against doing this. Implementing an exponential XP function without changing how the XP offered by various stuff in the game scales as you go through it... would actually make things worse. Because you'd get very very close to the level cap very early in the game and then take forever to get the final level. You can get around this by making creatures and quests and such award progressively more XP as the game progresses (which is what BG did), but currently PoE is not set up for that. So... although I'll give you the equations if you want it, just changing that formula won't fix things and will actually make them worse. The XP offered by the game has to scale up as you go in a similarly exponential way or the whole thing is borked.

 

What it comes down to, looking at a quadratic (current system) vs exponential (BG, also my suggested system) curve, here are the tradeoffs:

 

Pros of Exponential over Quadratic:

  • It is possible to maintain the same ratio of optional to story XP at any arbitrarily high level without causing the level gap between completionists and non-completionists to widen over time (as in, through PoE 1 and 2 and 3). This makes balancing encounters for both groups of players (and everyone in between, which is where most of us fall) much easier.
  • Underleveled Companions are quickly brought up to your level since the amount of XP it takes you to get to your next level is equal to the amount of XP it takes them to get up to your level (starting from lvl 1 and using the BG formula of 2^n). Would be slightly different if different coefficients were used, but it would be close. In the current  (quadratic) system, if you were to pick up a low level adventurer it would take ages for them to be within a level of you. Like - a very long time. That's why they autoscale to your level and why non-active companions get some XP in the stronghold - otherwise they'd become obsolete very quickly.

 

Pros of Quadratic over Exponential:

  • In an exponential system, quests and creatures from late in the game are worth incredibly high amounts of XP compared to early game quests and creatures. This leads to issues with rapid accidental (or intentional) leveling if people complete content "out of order", as with Durlag's tower or the basilisks in BG1. They still end up at the same level by the end of the game, but it's a little easier to exploit sequence breaking.
  • Maybe a bit more intuitive for some people??

 

Exponential isn't absolutely better - it does have the serious downside of making early game quests worth a pittance lategame and allowing potentially exploitable sequence breaking. If I had to guess, I'd say that's why they chose quadratic over exponential (if that much thought was put into it - hopefully there was... :p). But as we're seeing, quadratic has a similar issue of overleveling in the midgame. This is band-aid-able for one game, but will lead to either an increasing level gap or less valuable sidequests as the series progresses. I'm interested to see what Obsidian does. The downsides of the quadratic system can be somewhat mitigated by just enforcing a strict level cap in each installment of the series, but that doesn't solve the problem entirely. I would love  to hear a dev talk about why they decided to go with a quadratic curve instead of an exponential. Because this issue of balancing encounters for both completionists and non-completionists (the primary reason why this is even a problem) is not going to get better as the series progresses. It will get worse and worse (or they'll have to make sidequests nearly worthless late game - either way).

 

EDIT - You asked for the formula... it's "Experience for level n = C*A^n" (or "Experience for next level after level n = C*A^(n+1)", to use their terminology - same thing). A is determined by what you want the maximum level gap between completionists and non-completionists to be, as well as what your average ratio of optional XP to story XP is. C is just a scaling constant. You can set it as needed to make sure the experience needed for level 12 is whatever you want it to be. But as I said - the game's XP rewards don't scale with this in mind, so you'd probably end up leveling extremely quickly at the beginning of the game. Could come up with a hybrid function, I guess - quadratic up to a point and then exponential. That'd be the thing to do for PoE if trying to mod in your own solution to overleveling. That'd be quite hard to do right, though.

Edited by Matt516

Share this post


Link to post
Share on other sites

This problem is exacerbated by Od Nua.  I was level 8 or 9 before I finished the first chapter.  Od Nua felt like a whole separate game inside the main thing, and its actually pretty fun as a dungeon runner.  You could rely on heavy handed solutions, or just accept that there's a huge amount of sidequests and some players will be overleveled by the middle.  Hell, it definitely happened in BG2, where I hit max somewhere around underdark, and earlier than that with Watcher's keep.

 

Durlag's Tower did similar things to BG, where I was maxed by the end of the Third chapter.

 

Matt's point is that fixing any individual instance of one source of xp or another - the Endless Paths, the bounties, whatever - won't fix the underlying problem, and it's only going to get worse as we progress beyond this first game.

 

 

eta: as he just said 2 minutes ago!

Edited by sparklecat

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

×
×
  • Create New...