Jump to content

Kerbal Space Program 2 (not dying and getting a new owner) Hype Train.


AtomicTech

Recommended Posts

24 minutes ago, PDCWolf said:

TL;DR

 

  • For toggling graphics settings, the most you can hope for is the toggle already comes in the game engine you're using, meaning the work is just a couple hours to get the UI to have the option, and then some small overhead of testing on every version, a bit bigger when you change unity versions.
  • If the setting involves changing to different shaders, or changing to different qualities of textures or meshes, then you're looking at days of work, days of design making the lower resolution assets, and you've basically at least duplicated your testing load by having to test scenes in multiple settings. You're also now testing performance, which requires a ton of probing, measuring, and tracking of data to see if the option is having the expected impact.
  • If your setting requires different rendering techniques (volumetric to static for example, as you can't outright remove clouds or fog), or LODding of meshes, or anything that requires multiple versions of assets, you're looking at months of production work to create the assets and effects, and then you're looking at rigorous testing that has to take place in different hardware configurations, driver versions, and so on.

If the gains overweight the costs, this is exactly the way to go.

It used to work in the past - there was a time in which most people didn't had a GPU card, so most games had to provide a software rendering pipeline and an OpenGL/Glide/whatever. It may sounds silly compared to nowadays technology, but at that time they had to do exactly what you described above.

Link to comment
Share on other sites

1 hour ago, Lisias said:

If the gains overweight the costs, this is exactly the way to go.

I think the fact this isn't done more often is the evidence needed to support the theory that the 'gains' in fact do not overweight all the extra costs.

1 hour ago, Lisias said:

 It may sounds silly

Because it is. There's zero business comparing a time back in the day where off-the-shelf engines where not a thing, to nowadays where not only are they impervious, but so is pre-packaged physics/graphics/UI middleware. Even RE-Engine on MHWilds has all the hallmark artifacts and quirks of pre-packaged upscaling and frame generation suites (and looks horrible with or without, like most gen 9 games).

Back in the day, you'd work your way up implementing something like volumetric clouds, having to do it all yourself. We could probably assume the testing overhead is the same in both cases, sure, but what'll never be the same is that nowadays you'd have to work your way down into engine/middleware (normally a black box) code to see how deep the implementation of volumetrics is to see what can even be toggled off without breaking the whole thing. It's not the same workload and the capacity to work it into the code in a modular way is not a thing unless you want to, again, dive down to disable as much as you can, and then redo it all yourself which is still more work.

When you consider that modern engines are black boxes (you need paid versions to be able to enter the source code and even then you can't just do whatever), then you'll realize the workload is completely different, and massive, and also limited by the black box scenario and that you really don't know if it's possible. Even for the two most popular engines, there's gonna be -very- little people diving into the engine source code, or worse, middleware source code to help you... both of which make the cost of development for the graphic setting and the testing overhead bigger and bigger.

 

Edited by PDCWolf
Link to comment
Share on other sites

53 minutes ago, PDCWolf said:

I think the fact this isn't done more often is the evidence needed to support the theory that the 'gains' in fact do not overweight all the extra costs.

As a matter of fact, my point of view is that it's exactly the other way around.

The Industry is crumbling with people losing jobs everywhere exactly because they didn't it when they had the workforce to do that.

I want to quote a previous post of mine:

23 hours ago, Lisias said:

Had anyone, at least once, wondered why the average age of the games played by 47% of Steam users is 7 years old? For 37% of them, it's even older.

https://www.cbr.com/players-spend-15-percent-steam-time-games-from-2024/

Dude, from all the time people have to play games, only 15% of them was spent in new games. 85% of the user's time was spent on games with an average age of 7 years. It's not a surprise that 4GB GPU cards are still used in such numbers nowadays, why buy new hardware if what you have already allows you to max out the games you play?

Game Developers are rubbing users the wrong way, it's simple like that.

Edited by Lisias
Tyop! Surprised?
Link to comment
Share on other sites

19 minutes ago, Lisias said:

I want to quote a previous post of mine:

Dude, from all the time people have to play games, only 15% of them was spent in new games. 85% of the user's time was spent on games with an average age of 7 years.

Because games stopped being fun around 7 years ago. We all here play KSP1 because KSP2 is garbage, and tKSP1 is like 13 years old at least from release. No competitive shooter has beaten CS, No moba has beaten Dota and LoL. No BattleRoyale has beaten Fortnite and PUBG. No live service has beaten Destiny 2 or Warframe. No vehicle combat game has beaten War Thunder/World Of ---. No farming game has beaten Stardew Valley. No workplace sim has beaten Farming Simulator... GTA remains unbeaten too, Baldur's Gate 3 is probably the newest thing that got some traction... Civ VII failed to beat VI, Cities Skylines 2 failed to beat one. And so on and so forth but new offerings for those exist...

However, the Steam survey clearly shows It's not hardware. 70% of people have computers that can absolutely run everything that's come out, even the RT obligatory Indiana Jones game (which was garbage). You'll probably see this picture painted more clearly when Doom TDA comes out and it's not as drowned in controversy as most modern titles, and actually gets played by a large playerbase.

It's not hardware at all, it's absolute garbage games making people stick to previous releases and classics. And to further prove that, I'm pretty sure that Avowed, the new Assassin's Creed, MHWilds, KF3 and others fail one on top of the other even though 80% of the entire steam userbase can run them.

Link to comment
Share on other sites

6 hours ago, PDCWolf said:

Because games stopped being fun around 7 years ago. <....>

Yep. And unless the user would be willing to play just a little bit some of the newer ones, why in hell he will waste money on new hardware? At very least, the user will buy a second hand one, the minimum needed to maxout the games they want to play.

This is not too different from a egg and chicken situation, kinda what we had in early 80s and 90s with sound cards.

Sound cards were hellish expensive on my country, besides not being a novelty. There're soundcards already for the Apple II, but... hell, who had the money to buy them? Everybody was trying to do anything they could to avoid them, from COVOX thingies plugged into a printer port to special device drivers to transform the crappy PC-AT's internal speaker into a PCM player. Heck, I played wave files this way my whole Windows 3.11 era.

When the PCs got powerful enough to render Amiga's MOD musics at runtime, a lot of DOS games started to use it and with the PCM driver for the PC's internal speaker, heck, I soldered a cap and a resistor and pulled a wire into my stereo from the Speaker's connector. :D What I had done previously on my Apple ii, by the way.

I just bought myself a Gravis Ultrasound way into the 90's, when finally a Killer Application for SoundCards became popular enough: Doom. I don't remember who authored that MIDI music, but, boy... That Soundtrack on a Gravis Ultrasound was simply something out of this world. It took me 15 years from my first computer (that already had SoundCards available) until I finally bought my first.

And the reason was Doom. :D

I think that we have a similar Modus Operandi nowadays. Hardware is not so cheap as people used to remember, we have way more expenses nowadays, rendering the tag price of the product not meaningful by itself to evaluate the real life cost of the thing. It's no joke, my electrical bill is two times the value I used to pay before the Pandemonium even by my consumption had dropped by half - so electrical bills are, well, four times the price I was paying a few years ago.

And so it goes. I'm not alone on this boat.

 

6 hours ago, PDCWolf said:

However, the Steam survey clearly shows It's not hardware. 70% of people have computers that can absolutely run everything that's come out <...>

But they are preferring playing games that would run fine on older hardware, and since there are the other 30% still around, targeting such hardware will increase your target audience significantly, allowing you to expend more money on eye candies for that 70%, that so will show it off for that 30%, and since they already bough the game, perhaps would consider upgrading their hardware and so, in a few years, a slightly beefier hardware will be the new normal.

Rinse, repeat.

Keep your decisions around the Bell Curve, and your chances of improving your incoming will be probably better than otherwise. Sell games for your users of today, and let your future you worry about the users of tomorrow.

 

6 hours ago, PDCWolf said:

It's not hardware at all, it's absolute garbage games making people stick to previous releases and classics. And to further prove that, I'm pretty sure that Avowed, the new Assassin's Creed, MHWilds, KF3 and others fail one on top of the other even though 80% of the entire steam userbase can run them.

It's about money. It's always about money. Most users see hardware as a way to accomplish something, not as a goal.

Unless a new killer application pushes them into buying new hardware, they will stick with whatever they have until it breaks - and probably will try a second hand slightly better hardware before considering something really new.

Draw a curve on games sales versus hardware sales - they are going opposite directions. Why? How?

Well, one possible explanation follows: everybody and the kitchen's sink upgraded their hardware in 2020 due Pandemonium, since a lot of people had to work from home. So they ditched whatever they had and bought something reasonably good at that time. At somewhat premium prices, by the way, as the supply chain was collapsing at the same time the demand was rising.

From that point, most people are facing higher costs of living, really higher costs of living (like me), and very, really very few of them (me included) are inclined to spend money on fixing what's not broken - or updating hardware that are still cutting it perfectly, even with some compromises.

Last year my older MacCrap gone belly up - the fan died when I was sleeping while the machine was munching some numbers, the thing overheated and fried. Total loss.

My options at that time:

  1. Buy a brand new Mac Mini. R$ 7900,00 (local currency)
  2. Buy a brand new generic but reasonably contemporary i7 16GB Mini PC. About R$ 2700,00 (no mass storage included)
    1. And expend days rebuilding all my workflow from scratch, as 80% of all I do is relying on MacOS.
  3. Buy a refurbished Mac Mini 2014 i5 16GB. R$ 3000,00 (hard disk included) - the shop was going out of business. :/
    1. And essentially duplicate the older HD into the new, and I would be working next day.
  4. Buy a refurbished MacMini 5.2 motherboard from China for R$ 700,00.

Since I'm expending some really serious money fixing my home (and my son), what did you think I did?

Spoiler

First, I bought the motherboard, but my customs had confiscated it due some new red tape I wasn't aware of (a problem with a thingy called "Remessa Conforme", Devil take the <piiiii> that invented this <piiiii>).

This is happening more or less regularly around here, by the way - so now I'm sending goods to USA, and then paying shipping again to Brazil. Don't ask, but it works this way, so...

Obviously, I then bought the refurbished MacMini - only marginally pricier than the other MiniPC (pero no mucho, brand new 1TB hard disks costs R$ 250,00 around here, R$ 430 if NVME).

People around the World are facing choices pretty similar to mine. This is the new norm.

 

Edited by Lisias
Kraken damned autocompletes...
Link to comment
Share on other sites

18 minutes ago, Lisias said:

Yep. And unless the user would be willing to play just a little bit some of the newer ones, why in hell he will waste money on new hardware? At very least, the user will buy a second hand one, the minimum needed to maxout the games they want to play.

This is not too different from a egg and chicken situation, kinda what we had in early 80s and 90s with sound cards.

Sound cards were hellish expensive on my country, besides not being a novelty. There're soundcards already for the Apple II, but... hell, who had the money to buy them? Everybody was trying to do anything they could to avoid them, from COVOX thingies plugged into a printer port to special device drivers to transform the crappy PC-AT's internal speaker into a PCM player. Heck, I played wave files this way my whole Windows 3.11 era.

I kinda was there, as an infant having to watch my dad deal with his soundblasters as his FM stations (he owned like 3, some of the first in the country, let alone the town) had him jump aboard the PC era very early for automating multiple aspects of them.

However as you talk about buying new hardware, remember we're starting from a minimum of what should be a 3060, that's a 3 years old card, and people with 2070s are still in the fight too with their 7 years old hardware. If you further discount obligatory raytracing, people with 1080ti are going on even stronger with their 8 years old cards. That's not new hardware at all, even the most recent of those is 2 generations old now. It's really not about buying new hardware, as most games really do support the 2070 or 3060 at their lowest levels (rip those who got scammed with a 4060)

31 minutes ago, Lisias said:

 as 80% of all I do is relying on MacOS.

My deepest condolences.

Remember we're neighbors and at some point our presidents were aligned in their red-tape. We still 'enjoy' having to pay up to 50% tax on purchases made to foreign sources, no matter what is bought, even books. Still... most people that upgraded during the pandemic are -just fine-, and will be fine for a good chunk of the upcoming unreal engine spam era. In fact, thanks to this and thanks to the economic conditions, the fact that new hardware isn't pushing the envelope as hard as it was back at the turn of the millennium, it's not hard to see we're about to live one of the longest generations of hardware as people are incapable of upgrading or refuse to because generational uplifts are gone whilst prices keep climbing.

Still, my point stands, we're not talking about RTX 5XXX series and RX 9XXX series, we're talking about hardware from 7 years ago still having a really good chance at not just being compatible, but being able to push games properly beyond playability. Volumetric clouds and other things talked about in this thread are nowhere near requiring current gen stuff, and it's clear the biggest majority of gamers have that hardware... which is why I don't really buy that games are failing because people don't have the hardware.

But at this point, I have two suggestions:

  1. Let's not keep hogging this thread.
  2. Let's wait for less controversial games people are actually looking forward to to see if it's really hardware or games being garbage or some mix or both.
Link to comment
Share on other sites

On 2/11/2025 at 3:16 AM, Grenartia said:


Its clouds. Its just friggin clouds. Its just fancy visuals that add no gameplay features and negatively impacts performance.

If the game doesn't natively have a way to have visual objects floating in the sky, generated algorithmically, then a modder can't add them by just adding a skin file or an XML config file or a model, which is what the vast majority of modding is for vehicle sim games.  And visuals matter to most people, which is why there are so many visual mods for so many games.  

Making it as easy as possible for modders who just want to add parts or skins will be a huge part of the success of any KSP successor.  Being able to mod in a new solar system and new rocket parts is "replayability" for many.

 

On 2/11/2025 at 7:09 AM, Bej Kerman said:

Oh how I have the perfect game for you.

BBC_Micro_Elite_screenshot.png

I spent way to much time on that game.  One of these days I need to actually play Elite Dangerous,.

On 2/12/2025 at 3:01 AM, Dakitess said:

It became some kind of "gameplay is what matters the most" trend, for every game, like, "we don't care" : of course we do, it's mandatory ! You would not have the nowadays game with the incremental evolution of graphics and physics ! And at a time, it was all about water realism, then texture, tesselation, fake relief, lightning, resolution, vertices, optimization, etc etc etc : without those "I don't care about that game being more aesthetic" we would be stuck with damned ugly game.

I think the genre is very important to that discussion.  There are many kinds of games where I barely care about graphics at all, but a vehicle simulator needs some amount of fidelity.  It can be low-poly if the art is good enough, but there's needs to be something visual to make the game immersive.  And for a KSP-like in particular, there are gas giants to explore!  Jool in vanilla KSP isn't really something to explore beyond checking a box, but with the right mods you can have a probe drift between cloud layers with lightning going around you and it gives a sense of wonder, it turns Jool into a destination all its own.  Mods that add interesting terrain scatters are similarly important to give a sense of "being there" on the surface of exotic planets.

If Tylo and Dres and the Mun look the same from the surface, then the game devolves into "build a rocket with X delta-V, then do it again".  Much less compelling.

On 2/12/2025 at 8:46 AM, PDCWolf said:

For toggling graphics settings, the most you can hope for is the toggle already comes in the game engine you're using, meaning the work is just a couple hours to get the UI to have the option, and then some small overhead of testing on every version, a bit bigger when you change unity versions.

This is a real worry for KSA, with their custom engine,  The built in stuff for Unity and Unreal has been good for many years.  Sadly, optimizing games at any setting seems to be a lost art right now, with some recent releases struggling to render at 540p / 30 FPS and letting AI slop make it 1080p/60, which means there's no viable lower setting to degrade to in the first place.  It makes me worry for any new game.  But for a game that will last a while, today's ridiculous suggested specs that no one can afford are tomorrows CPU graphics, so it will eventually be fine.

Edited by Skorj
Link to comment
Share on other sites

16 hours ago, Skorj said:

This is a real worry for KSA, with their custom engine,  The built in stuff for Unity and Unreal has been good for many years.

Yes and no... in KSP2 we were still facing the same middleware bugs for example (orientation of arrows for gizmos in the VAB being the most obvious). Unity itself... still has the same limitations it had long ago, they've just pushed the limits some but really many iterations of rigidbodies are still difficult to handle, much more multithread consistently (the whole unity physics thing is really bad and unoptimized at scale), serialization sucks when you need to save tons of data, video playback tech is really poor, compilation for other platforms is shoddy as hell, and so on, and the answer to that for Unity only is "buy the license so you can dive into the source and fix it yourself".

16 hours ago, Skorj said:

 Sadly, optimizing games at any setting seems to be a lost art right now, with some recent releases struggling to render at 540p / 30 FPS and letting AI slop make it 1080p/60, which means there's no viable lower setting to degrade to in the first place.

No tech is upscaling from that low a resolution, you'd lose too much detail to upscale from. You'd at least upscale from 720p like previous-gen consoles and that'd still look hideous, like previous-gen consoles. Framegen also doesn't work great if you don't have 60+ FPS as a base, it just makes input latency shot up the roof. The minimum for good-looking upscaling is like 1440p from 1080p... and for framegen, you'd want to use it to bump say from 90fps to 144fps for a high refresh rate monitor, not for 30 to 60.

The problem with "optimizing" the current graphical tech implanted in off-the-shelf engines is that you'd really be paying just buy the license for source access and then you'd still need to do the work yourself. So you'll see most lowish budget titles either run with what's default (discounting any extra misuse of tech) or implement pre-packaged alternatives, which also won't be optimized by them (either by license impossibilities or because there's no time and resources to do the work). But don't worry, this will get worse, as most studios have already shifted to Unreal Engine 5 to cut down dev time and costs so the garbage games they put out at least become cheaper and faster to make and it's easier to break even. So when I say we're about to face a generation of absolute slop, I'm not lying, being a cynic or a doomer.

Even studios which are supposed to run their own engines (RE Engine for example) have clearly pre-packaged solutions "motivated" by money under the table from Nvidia, so even games not made in UE5 will still enjoy the crutch that is just throwing whatever garbage you have at DLSS and hoping it passes 60fps. MHWilds looks HIDEOUS, and it barely runs in a justifiable way for how garbage it looks, even if you were to somehow think the looks are similar.

16 hours ago, Skorj said:

 But for a game that will last a while, today's ridiculous suggested specs that no one can afford are tomorrows CPU graphics, so it will eventually be fine.

Meanwhile we're 4 generations into "RTX" hardware and real time raytracing is -barely- playable without fake frames and upscaling. We're not in the 90s anymore, Moore's law is dead, and we're also slowly walking out of the generalized rendering era back into the wild west early videocards used to be (remember when you had to pick a rendering mode before starting a game?)

 

Link to comment
Share on other sites

5 hours ago, PDCWolf said:

No tech is upscaling from that low a resolution, you'd lose too much detail to upscale from. You'd at least upscale from 720p like previous-gen consoles and that'd still look hideous, like previous-gen consoles. Framegen also doesn't work great if you don't have 60+ FPS as a base, it just makes input latency shot up the roof. The minimum for good-looking upscaling is like 1440p from 1080p... and for framegen, you'd want to use it to bump say from 90fps to 144fps for a high refresh rate monitor, not for 30 to 60.

... So when I say we're about to face a generation of absolute slop, I'm not lying, being a cynic or a doomer.

But of course recent AAA releases look really quite bad, for all the reasons you just called out.  People have been diving into why recent games just look like mush, and it's exactly what you say here.  It's a sorry state of affairs, and sadly KSP2 really wasn't that much of an outlier.  And with NVidia's 5000 cards we can look forward to 3 AI slop frames for every real frame. 

5 hours ago, PDCWolf said:

Meanwhile we're 4 generations into "RTX" hardware and real time raytracing is -barely- playable without fake frames and upscaling. We're not in the 90s anymore, Moore's law is dead, and we're also slowly walking out of the generalized rendering era back into the wild west early videocards used to be (remember when you had to pick a rendering mode before starting a game?

Hardware performance does gradually improve though; even if it's only 10% a year now that does add up over 10 years.  I remember when the dynamic lighting for Diablo2 was amazing when you had the right video card hardware/mode, something that was lost on modern systems (even with D2R, if it's not my nostalgia goggles talking). 

Really though the best optimization is to lean on good art over poly count or the latest rendering gimmick.  At least some indie studios have figured that out, so maybe there's hope yet.

 

 

Link to comment
Share on other sites

On 2/14/2025 at 11:04 PM, Skorj said:

This is a real worry for KSA, with their custom engine,  The built in stuff for Unity and Unreal has been good for many years.

A game like Kerbal Space Program has a feature that needs custom extensions with ANY engine: The vast range of length scales, from under a metre to millions and more kilometres.  This feature is always present and the stock engines just don't handle it at all.

There's a lot of devs with a great depth of experience coding for KSP and similar games working on KSA.  That they obviously support going with a custom engine is one way to deal with the vast range of length scales.

Link to comment
Share on other sites

7 hours ago, Jacke said:

A game like Kerbal Space Program has a feature that needs custom extensions with ANY engine: The vast range of length scales, from under a metre to millions and more kilometres.  This feature is always present and the stock engines just don't handle it at all.

There's a lot of devs with a great depth of experience coding for KSP and similar games working on KSA.  That they obviously support going with a custom engine is one way to deal with the vast range of length scales.

So far that's been handled by the scaled space planetarium method, no asset is actively (for realsies) at more than 2.5km from the player (I've seen a number like 1/600000 claimed), at least as far as I know. I however claim 0 knowledge about how they do this in KSA.

 

Link to comment
Share on other sites

On 2/16/2025 at 2:39 AM, Jacke said:

A game like Kerbal Space Program has a feature that needs custom extensions with ANY engine: The vast range of length scales, from under a metre to millions and more kilometres.  This feature is always present and the stock engines just don't handle it at all.

There's a lot of devs with a great depth of experience coding for KSP and similar games working on KSA.  That they obviously support going with a custom engine is one way to deal with the vast range of length scales.

Nothing to do with the physics engine, the context here was "can KSP and similar games degrade their graphics setting to render well on low-end graphics cards like KSP2 doesn't".  Thousands of games show Unreal is good at this out of the box, and Unity is workable, because the approaches are common across all 3D games with just minor tweaking (KSP2 was just so unoptimized at its heart that all the low graphics settings still didn't get you there).  BRUTAL doesn't have the benefit of being tuned for decades to provide a built-in solution to the common problem of "what's the best trade-off between graphical fidelity and render speed".  

Unreal just does amazingly well at rendering very high counts of the same small set of objects, which has been a big step forward for indie games.  Not sure how much that would help KSP, except for enabling a surprisingly long view distance for forests or boulder fields (as long as there were only a few tree or rock models), but that alone is nice.

As far as the actual physics engine and vast range of length scales, the problem is only hard if you don't want a loading pause between SOIs,  Thing is, a typical "hidden loading screen" like most games have these days would be fine for interstellar travel, there's really no need to try to put multiple systems in the same scene.  KSP did have some issues even in the stock system though, so I'm sympathetic to the KSA team.   Personally, I'd go the other route of having one scene per planet and optimizing the transitions, but KSA has smart people working on it and I'm betting their physics engine will work great.

On 2/16/2025 at 10:31 AM, PDCWolf said:

So far that's been handled by the scaled space planetarium method, no asset is actively (for realsies) at more than 2.5km from the player (I've seen a number like 1/600000 claimed), at least as far as I know. I however claim 0 knowledge about how they do this in KSA.

Thank;s for that link!  Very cool talk. "These textbook-type physics are very much what you'd find in a physics textbook, so when you're trying to teach about physics ..." is such a great quote about the mindset that made KSP so good.

Link to comment
Share on other sites

14 hours ago, Skorj said:

Thank;s for that link!  Very cool talk. "These textbook-type physics are very much what you'd find in a physics textbook, so when you're trying to teach about physics ..." is such a great quote about the mindset that made KSP so good.

The whole video is gold, specially because some solutions were being applied -at least on a title soon to be popular- for the first time.  Also there's some clearly lost art of the kraken, early versions, and so on. It's an absolute treasure trove.

Compared to this...https://www.youtube.com/watch?v=kvytgzvqlgQ which now is fired people central talking about things they copied from KSP1, things they never got to put on the game, and planet tech that was completely mangled by their bad art-style (and for the convention they show in a more neutral art style). They also talk about interplanetary lighting... on a game where they never cracked eclipses because 'interplanetary lighting' was clearly a fickle fabrication.

Still, that second video also showcases the scaled-space trick. Funnily enough KSP1 uses(d?) a scene up to 6km big for vehicular operations, think driving rovers, meanwhile KSP2 never managed to properly work the origin shift at their much smaller 2.5km.

 

 

Link to comment
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.

×
×
  • Create New...