Jump to content

Kerbal Space Yard


ManOnMunAction

Recommended Posts

That also sounds like a good idea! Thanks for all of the suggestions, guys. :D

Now, onto the semi exciting/depressing news: The backend for KSP Yard isn\'t the best, and it seems to be causing some issues. I\'m starting on a significant rewrite now to fix these issues permanently, and also allow for a transition to cheaper/faster hosting in the near future.

The site will continue to be up, and it\'s still worth uploading your addons. Once the new version is out, I will move them over to it without losing any important data.

There are quite a few big changes that will happen, but really I\'m fixing the things that I kind of hastily added to the site right now. Things like the Disqus comment system will probably get thrown out for a better solution, for example. All of the suggestions here will be included as well. In fact, they\'re why I have to rewrite it, really.

I\'m hoping to get through most of this in a week, since my classes are really starting to ramp up now.

Link to comment
Share on other sites

So, the rewrite is taking quite a bit longer than I expected. Who knew doing it right the first time was such a good policy!

I am still working on it, and it will incorporate all of your suggestions as best as I am able to. The site should also be quite a bit faster, and downloads will be done from a CDN so that should be very fast.

Link to comment
Share on other sites

So, for the rewrite, I have to figure out all over again what parameters to actually store and make searchable. The first version stored 56 parameters, but my DB didn\'t like that so I rewrote it in a trickier way so that all of those parameters were readable, but impossible to search over. Now, I have the opportunity to store all of those parameters again, but I\'d like to check which ones are important.

Right now I have the list of parameters below. I\'ve bolded the ones that I think are important, but I wanted to check with you fine people to see if I have it right. Are there any that are important that I\'m missing, or are any of the ones I think are important not really that worthwhile? Please help me out! :)

Main:

crashTolerance, specPower, title, texture, name, module, cost, category, scale, attachRules, subcategory, manufacturer, alphaCutoff, rimFalloff, maxTemp, dragModelType, author, description, mesh, angularDrag, mass

RCSModule:

maximum_drag, thrustVector0, thrustVector1, thrustVector2, thrustVector3, minimum_drag, fuelConsumption

Winglet:

deflectionLiftCoeff, maximum_drag, explosionPotential, minimum_drag, dragCoeff

FuelTank:

emptyExplosionPotential, maximum_drag, fuelCrossFeed, minimum_drag, breakingTorque, fuel, dryMass, fullExplosionPotential, breakingForce

SolidRocket:

emptyExplosionPotential, ActivatesEvenIfDisconnected, maximum_drag, heatProduction, fuelCrossFeed, minimum_drag, thrustVector, dryMass, breakingTorque, fuelConsumption, thrustCenter, thrust, fullExplosionPotential, internalFuel, breakingForce, stageAfter, stageBefore

Decoupler:

maximum_drag, fuelCrossFeed, minimum_drag, ejectionForce, childStageOffset, stageOffset, breakingTorque, breakingForce, stageAfter, stageBefore

FuelLine:

angularStrength, maximum_drag, explosionPotential, linearStrength, minimum_drag, maxLength

Parachutes:

autoDeployDelay, useAGL, semiDeployedDrag, minAirPressureToOpen, fullyDeployedDrag, deployAltitude, closedDrag, stageOffset

Strut:

emptyExplosionPotential, maximum_drag, explosionPotential, minimum_drag, dryMass, stackSymmetry, fuel, fullExplosionPotential, fuelCrossFeed, breakingTorque, breakingForce

CommandPod:

impactTolerance, rotPower, maximum_drag, minimum_drag, Kd, linPower, Kp

RCSFuelTank:

emptyExplosionPotential, maximum_drag, minimum_drag, fuel, dryMass, fullExplosionPotential, fuelCrossFeed, breakingTorque, breakingForce

StrutConnector:

angularStrength, maximum_drag, explosionPotential, linearStrength, minimum_drag, maxLength, breakingTorque, breakingForce

ControlSurface:

deflectionLiftCoeff, maximum_drag, explosionPotential, minimum_drag, dragCoeff, ctrlSurfaceRange, ctrlSurfaceArea

RadialDecoupler:

maximum_drag, minimum_drag, ejectionForce, childStageOffset, breakingTorque, fuelCrossFeed, stageOffset, breakingForce, stageAfter, stageBefore

SASModule:

maximum_drag, minimum_drag, breakingTorque, Kd, Ki, maxTorque, Kp, breakingForce

LiquidEngine:

maximum_drag, thrustVectoringCapable, heatProduction, minimum_drag, minThrust, maxThrust, thrustVector, dryMass, gimbalRange, fuelConsumption, thrustCenter, breakingTorque, breakingForce

AdvSASModule:

maximum_drag, minimum_drag, Kd, Ki, Kp

Link to comment
Share on other sites

Yeah buddy, there\'s a couple missing that I saw from a quick glance (supposed to be working!). RCS Modules have 6 vectors (ThrustVector0-ThrustVector5).

Download the KSP Factory and load up a parts folder. Flick through each of the parts and the module tab will populate with the part specific parameter fields. In return, if you could tell me any that I have missed, that\'d be swell....

Is this ASP.NET / SQLServer?

Link to comment
Share on other sites

Ah, I left out those vectors since I didn\'t think anyone would be searching for that specifically. I should have been more clear. I\'m trying to figure out what parameters people would look for specifically.

I\'ll definitely check out KSP Factory though!

Also, no, it\'s Python running on Google App Engine. Their NoSQL database counts each field as being several writes, and even uploading a medium sized addon would use up my daily quota then when I stored most of the parameters. It was a mess. I\'m moving to a VPS soon, but I have to remove all of the App Engine specific components. It\'ll be a lot better in the end, but man it kind of sucks redoing everything...

Link to comment
Share on other sites

Got ya!

Python on Google Apps? Good luck with that! If it were .NET, I\'d be able to help if you got stuck, but Python... haven\'t done anything in that since I wrote space invaders under PyGame for one of my second year programming assignments, maybe 8 years ago!

If I logged on looking for parts, I\'d probably go through a thought process like:

- See what\'s new

- See if any of my favourite parts have been updated

- See what my favourite authors have recently released

After that, I\'d start trawling the part libraries, and so long as you have them broken up by module I\'d be a happy man. Having said that, I can definitely appreciate why you\'d like to be able to reorder the result pages on the column headers.

Link to comment
Share on other sites

Alright, I just had a good idea, I think... I\'ll allow any registered used to upload a screenshot, and then the package owner can approve it so that it\'ll be visible to everyone. Seems like a pretty simple, elegant way to solve the image problem...

Link to comment
Share on other sites

If you were really good, you could extract the image from the uploaded archive. Have a set filename like screeshot.png that can be included in the archive and when it\'s uploaded, the code would extract said image, if found, and place it to be used as the screenshot for that part.

Arrr!

Capt\'n Skunky

Link to comment
Share on other sites

Oh it\'s not impossible to do that, it\'s just not a good idea unfortunately. There are just too many ways for it to break everything. There\'s no solution like that that isn\'t really fragile overall.

I could definitely import image files stored with the part files. That is certainly doable and might simplify things quite a bit. I\'ll try to add that feature as well.

As you may have noticed though, my updates haven\'t been as quick lately. So far this week I\'ve been doing a ton of electrodynamics and quantum mechanics homework, and I have to grade 1000 pages worth of papers by Monday... Suffice it to say things are a bit rough.

Still, I am making steady progress on the new version. However, as I said before, any packages uploaded to the current version will be moved to the new version, so it\'s a great idea to add packages now. I\'m hoping to get more people to upload their work. :)

Link to comment
Share on other sites

I dunno man, implementing Skunky\'s idea should be relatively trivial, there appear to be plenty of libraries for dealing with archives under Python.

Just set it up as a service, and have it run over new additions every 5 minutes. If it finds something, then it extracts it and adds a reference to the image (whether that\'s stored in your db as a binary or on your file system), if it doesn\'t, no bother... if it chokes and dies for some reason (archive version or method that it can\'t deal with, that\'s no bother either, it\'s not on the presentation (www) thread, so it won\'t cause any drama. At the insertion point, that\'s when you resize it to suit.

You don\'t have to rebuild everything, just make a table with a foreign key to the part, and a binary field to stash the image data in. When the presentation layer displays a part, it can either find a matching record and displays the image, or can\'t and displays a place holder.

Link to comment
Share on other sites

The main reason for using an author supplied screenshot is it gives them complete control over how the part is presented. An image generated from a 3D projection using the engine can\'t be guaranteed to display the part correctly. Member uploads can be tricky as well as potentially problematic.

Arrr!

Capt\'n Skunky

Link to comment
Share on other sites

That\'s a good point, that\'ll matter to some people. Member uploads should be fine, writing something like photobucket is all trivial stuff (as trivial as ones spare time can ever be of course!). Dealing with outliers is what coding is all about; worst case it falls back to the exception handler. If it\'s a cron job though, the user never needs to know.

What we need is something like this... http://www.andriets.com/en/index.php?option=com_content&task=view&id=115 That would be sweet :)

Link to comment
Share on other sites

That\'s... bizarre. There\'s a whole lot of weirdness with Google accounts going on. I\'m pretty sure that isn\'t an issue with my code. Granted, if it isn\'t, there isn\'t much I can do to fix it. Come Thursday though I should have the new version at least somewhat running, which will completely replace the login system here.

EDIT: It\'ll be done sooner if someone wants to solve the Schrodinger equation with the Hamiltonian p^2/2m + 1/2 mw^2 x^2 + qEx for me! Ugh, grad school takes the fun out of life.

Link to comment
Share on other sites

  • 2 weeks later...

DUDE!!! YOU ARE FREAKING AWESOME!!! I had started to make a little utility display program for myself, with just this kind of functionality, and was like 'I should do up something in php or python that you could put on the web and be this cool resource.' And so that went onto the heap of things to do, and I would have gotten around to it sometime or never. Thank you so much for doing it, and it looks like you\'ve done a great job with it. Thanks!

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...