Jump to content

[PLUGIN+PARTS][0.23] SCANsat terrain mapping


damny

Recommended Posts

Notice: SCANsat mod updates are now presented and discussed in this thread.

Download build 5 here.

Source code for the plugin lives on github.

Changelog post for build 5.

Changelog post for build 4.

Changelog post for build 3.

Changelog post for build 2.

Note for new users: This is a work in progress, and the current state of the plugin is different from the initial description. Please refer to the changelogs linked above to see what's changed so far. This mod is usable, but not finished.

Original first post:

I've been working on a mapping mod for a bit, and I'm now at a point where I'd say it's definitely not ready for release, but maybe ready for some feedback.

The main aim of this mod is that mapping should work as a game. Meaning, you should be able to put a mapping satellite in an orbit and get a reasonably useful map by playing normally, without long waits. It should be fun to watch how your satellite uncovers the map, but you should still have to work for it a bit if you want the map to be perfect. At the same time, all data is pulled from the game - "faking it" by just showing you parts of an existing map isn't acceptable. I also wanted to be able to have several different sensors that show you different things under different conditions, which is something I'm getting close to now. Unfortunately, if you haven't already guessed, all this meant realism has had a somewhat low priority so far...

So what does this do?

XVuAHf8.png

This is what the main UI looks like right now. Every part in this mod opens this UI if you enable it via the right-click menu or action groups.

In this particular example, you can see that I have three scanning vessels active. Number 3 is the active vessel, which is why it's green, and the abbreviations below the map tell me that it has both low- and high-resolution altimetry sensors active as well as a slope detecting sensor. Because they're green; you're probably noticing a pattern here. It doesn't have a biome sensor active, it doesn't have an anomaly sensor active, and it also doesn't have a BTDT sensor, which is another anomaly sensor that can also identify (as in, name) anomalies, but has to be very close to do that (i.e. on a lander or a rover, not a satellite). Oh, and if any of these tags were orange, that'd tell me I'm at the wrong altitude.

You can also see that these sensors cover a fairly large area of land - although the high resolution altimetry sensor covers a smaller area than the other sensors, which is why there are greyscale bands around my active satellite's track. The other satellite in orbit around Kerbin in this game only has a low resolution sensor, which is why its track is only greyscale. And lastly, the vessel named "Anomaly Scanner" is really a rover sitting near the KSC that has a BTDT sensor equipped, so it doesn't leave a visible track at all because this window currently only shows elevation.

Oh, and that red line shows update progress, because this map is continuously rebuilt line by line. It's not as slow as it sounds, I promise. I could probably make it update completely live too, but this way should give more constant performance (and I liked the look of it...).

Obviously there are two buttons here that you can click. The one that says "Forget Map" will reset all mapping data for this system. I mean it. It'll forget everything about whatever you're orbiting at the time.

The other one opens a larger map window. This is a part of that window showing a map of Eve:

cTbNjiN.png

No surprise here. It's a larger map with more detail than the smaller map. It takes a few seconds to render, because this is when the mod actually scans the terrain. It uses the same coverage data as the small map, meaning you'll see tracks of your satellites here too. But since that coverage data is recorded at a much lower resolution than this map, edges will be jaggy.

The small square that looks like a magnified view of the two craters to the left of it is in fact a magnified view of those craters; you get it by right-clicking somewhere. If you right-click inside the magnified view, it'll magnify it even more, too. Good thing that satellite had a high resolution altimetry sensor on it, because otherwise this zoom would not be so useful.

The text at the bottom refers to the mouse position within the map (or the magnified bit). Green means there's data of that particular type, grey means there's no data of that type, and red means there would be data if the game had that kind of data (Eve does not have biomes, but if it ever gets biomes, then I would be able to see the biome in this location). The number is terrain height under the mouse cursor, again good thing that I had a high resolution sensor, because otherwise this number would be rounded to the nearest multiple of 500.

The buttons are pretty self explanatory, they switch display modes. You can also use them to refresh the map if your satellites have scanned some more land. The greyscale button actually affects all maps, or at least I hope it does.

I need to say something about biomes here - you've no doubt seen the biome map of Kerbin in that blog post that introduced biomes. That map is exactly what I can get from the game, too. I didn't really like the colour scheme, so biome maps rendered by this mod look different. Here's one showing Mun:

rRsV7oN.png

The actual biome map from the game is very colourful, with lots of brightly coloured blobs of biome. Unfortunately, there is a small problem: There is a function in the API that seems to be made for finding the biome at a given location, but I couldn't figure out how to use it without printing debug messages to the screen. So I implemented my own interpretation of "closest map color", meaning biome edges can be inaccurate on these maps.

Also, since I mentioned anomaly detection before, here's the difference between the anomaly sensor you put on a satellite and the BTDT sensor:

mEsje76.png

As you can see, the BTDT sensor on my rover I mentioned earlier has correctly identified the KSC, while the Island Airstrip nearby still shows up as a generic "Anomaly". (Note, these names are pulled from the game too, if you don't like the lack of spaces or the extra zeroes in some, that's not my fault :P).

Oh, and another thing about this window: Every time a map is fully rendered, it's exported as a PNG image to the PluginData folder inside the mod's folder. Existing images get overwritten, so if you want to keep anything you should probably copy it somewhere safe.

Some other things that I think are nice about this

  • Scanning a planet can be completed in a few minutes if you set up a good orbit, or throw enough satellites at the problem, and time warp for a bit. This mod doesn't actually interpolate positions during time warp, but with the current field of view sizes, I've had good results from up to 1000x time warp around planets like Kerbin. Faster time warp works too, it just doesn't paint recognizable tracks anymore.
  • All active scanners scan at the same time, including those on vessels in different SoIs. You don't have to keep your satellite as the active vessel until you're done, as long as your other vessel also has a part from this mod that can open the mapping interface. (The non-scanning one counts.)
  • Watching your satellites make pretty tracks doesn't use too much processing power and shouldn't slow anything down.
  • Works on Macs, too! At least on mine, anyway.

So, what's the catch?

Well, near as I can tell, this mod is actually working as described, and usable even on my Macbook that struggles with running KSP in the first place. But there are some things that are just unfinished or bad:

  • All the parts in this mod currently use the same terrible mesh that I made to find out how to get a mesh into a mod, with a texture I made to find out how painting textures works in blender. I don't know how soon I can make the actual models. At least it looks vaguely like a sensor array. But it's not pretty, and it's not animated.
  • It's not properly integrated with career mode yet. Currently, the parts should be hooked into "Science Tech". Obviously, the plan is that the better sensors should come much later. But those sensors didn't even exist two complete refactorings ago.
  • Parts don't use electrical charge yet. This is never going to be perfect, as I can't drain charge on inactive vessels. But I still want it at least for the active one.
  • I'm also hoping that eventually, scanning planets and in particular, discovering anomalies, can generate science, but I don't even know where to look for that yet.
  • Map sizes aren't configurable yet.
  • The small updating map still needs a way to show progress for sensors other than altimetry.
  • Only scanning vessels (and the active vessel) are currently displayed on maps.
  • All the map markers are basically text labels that start with an x or an o, which means they're all potentially off by a few pixels.
  • Scanning isn't very realistic, and I don't know if I can ever change this because it's really important to me that this works as part of a game. One thing I'd like to do at some point is make the field of view dependant on the altitude of the scanning vessel. But the fairly low resolution coverage map limits this somewhat. And the amount I'm willing to blow up persistence files limits the resolution of that coverage map.
  • Scanning (basically) only happens while the mapping interface is open. It wouldn't be too hard to make it go on while you're doing something completely unrelated on a different vessel, but I haven't gotten around to it yet.
  • There are probably a bunch of bugs in the code too, since I haven't touched C# in about ten years. (You can probably tell...)
  • There's even at least one bug visible on one of the pictures in this post... doh. :D

What I'm looking for here is primarily feedback on whether I'm on the right track with my ideas on making this a "gamey" feature. Also, I haven't been finding too many NullReferenceExceptions lately, so that probably means it wouldn't hurt if more people could try to use it. :)

To anyone brave enough to try this, thank you, and I hope it's not entirely useless.

Edited by diomedea
Notice added about SCANsat continuation thread
Link to comment
Share on other sites

Nice work! It looks like you handily beat me to the prototype phase. :wink: It's great to see someone get a mapper working with deferred terrain queries without using a prebuilt map outright.

Don't get too hung up on some of the scanning challenges like interpolating through timewarp or draining electricity while unfocused. Depending on how picky you are, the solutions to those problems can be straightforward but unsatisfying or just incredibly difficult.

I also suggest you not stay in the development forum for too long. Fix up a few issues, and go for a release. Too many good plugins get lost in this forum for fear of releasing. (You can always continue development after release!)

Link to comment
Share on other sites

OK stupid question what is BTDT? Secondly good work.

Feeback,

To make it fun what about a satelite or vehicle icon instead of the X. What about an orbital map showing the satelites track aswell.

http://forum.kerbalspaceprogram.com/threads/52122-Ground-track-maps-of-spacecraft-orbits-in-tracking-center

An idea,

when you spot an anomoly could it be possible to give a lat long position in ° ' '' (deg min sec) rather than decimal?

Link to comment
Share on other sites

Well, I have to say, I'm throughly impressed. I'm not running into memory leakages, I have it scanning WITH Kethane and all of the scanners simultaneously, without incident. The map renders well enough, and so far, I think you are your best critic. It's running on my Macbook without a hiccup.

I honestly have zero issues other than what you've already pointed out.

EDIT: When using Greyscale the text should change from black to either cyan or orange.

PICTURES!

Javascript is disabled. View full album
Edited by sharpspoonful
Link to comment
Share on other sites

*Kneels down, kisses floor*

Concrats on the WIP (beta?) release of SCANsat damny!

  • Multi-vessel scan is awesome, I wonder how you got it to work without the game loading the parts (how does the game know what vessels can scan, and what sensors they have? MAGIC!)
  • Map shows only scan-enabled vessels: I don't see the problem there. I find it logical that only vessels with SCANsat-tech show up on SCANsat maps, other vessels are not hooked up to the network.
  • Is there a 'view map only' part? (for landers or basic orientation) (Maybe adding a list of all parts with their specs in the first post would be an idea?)
  • If scanning continuous while doing completely unrelated stuff, that would be dream come true.
  • When you get around generating science, may I suggest it delivers based upon the percentage of mapped terrain? A few points for every 10% for example, slowly increasing since 0->10% isn't as much of an achievement than 70->80 is (I think)

Edited by OrtwinS
Link to comment
Share on other sites

Oh man, this looks great. Even more upfront utility than ISA, and support for multiple scanners is pretty much the best thing for making the task less tedious. If I may make a suggestion though, the 'forget map' is a little bit too large and prominent for my taste. Hope it has a confirmation.

Also, as far as science goes, beyond unlocking different sensors have you considered gaining science based on map completeness? Each body has some arbitrary value for being completely mapped, maybe use whatever method Interstellar uses to deposit science but based on how much more you've mapped since the last check.

Link to comment
Share on other sites

Out - standing!

Yes, you are definitely on the right track. Multiple scanner types, multiple vessels active, that's all good.

I especially like the slope scanner - the first thing I do when trying to find a new LZ is look at the slope map on kerbalmaps.com for a flat area.

It will be great to be able to do that in-game.

I take it you are detecting anomolies, not just looking them up from a static list? So new anomolies will be detected without a patch?

Can we get a table/list of detected anomalies? That would be excellent, even if it's only from a text file in the data directory.

Also - how about a small non-scanning part that allows a vessel to open the map window and show up on the maps - like a GPS/beacon type part.

Going to download and have a play.

Damn, I'm going to have to send out a new fleet of science recon probes and my old network's not built yet :-)

Link to comment
Share on other sites

Been looking forward to this ever since you mentioned it in the requests forum and it looks great so far :)

Havn't had a chance to test it extensively yet but I've already had a few ideas.

Firstly, I imagine that spamming satellites will eventually start to have a hit on performance, so I think it would be great to be able to turn each scanner on and off individually.

Parts don't use electrical charge yet. This is never going to be perfect, as I can't drain charge on inactive vessels. But I still want it at least for the active one.

Think I've got a work around for this too - when a vessel becomes inactive you read and store its current charge. Then it is a simple case of calculating the time it can run for under its current drain and deactivating scanning when this time is up. When the vessel next becomes active you calculate the charge that should be drained and take it off then. By no means a priority but think it should work :)

Link to comment
Share on other sites

Anyone else having issues with the download link? Was so happy to see this, and still very excited to test it out...but can get the page to load =(

edit: I got it...it didnt like Firefox for some reason...got it to download with IE though...go figure lol

Edited by KhaosCorp
Link to comment
Share on other sites

Absolutely amazing. It seems to work just fine and my first low resolution alt map and biome map of Kerbin and the mun was a resounding success.

I didn't find any bugs during the scanning itself, but after I deorbited my scanning probe and crashed it into the surface the KSP interface became unresponsive. I couldn't click anything in the esc menu, the space center or the start scene. I am uncertain this was caused by SCANsat however, since I run a lot of mods and this bug is pretty common.

Also, while building it was pretty hard to keep the different scanners apart. I would suggest giving them at least some differing colors until you have time to implement some proper models.

Another thing, in the big map I was seemingly unable to get rid of the zoom box. I don't know if I just missed something or if that's actually impossible. The second zoom level also doesn't give much magnification compared to the first zoom, don't know if that's intended.

Other than that, Great work! The fact it shows biomes will no doubt make it immeasurably useful in career mode. It gives you the ability to identify landing sites where 2 or 3 biomes meet for maximum science with minimal walking/driving. That alone is more than enough incentive for me to make this a must have mod.

Link to comment
Share on other sites

Anyone else having issues with the download link? Was so happy to see this, and still very excited to test it out...but can get the page to load =(

edit: I got it...it didnt like Firefox for some reason...got it to download with IE though...go figure lol

The download link has a temper, it didn't work for me the first 2 tries, it did on the third and fourth, not on the fifth, and did work again on the sixth time I clicked it (yes, I downloaded the zip 3 times, FOR SCIENCE).

Absolutely amazing. It seems to work just fine and my first low resolution alt map and biome map of Kerbin and the mun was a resounding success.

I didn't find any bugs during the scanning itself, but after I deorbited my scanning probe and crashed it into the surface the KSP interface became unresponsive. I couldn't click anything in the esc menu, the space center or the start scene. I am uncertain this was caused by SCANsat however, since I run a lot of mods and this bug is pretty common.

Also, while building it was pretty hard to keep the different scanners apart. I would suggest giving them at least some differing colors until you have time to implement some proper models.

-snip-

I second the 'different colors' idea. It is an easy fix to keep them apart without having to invest in complicated new models or textures.

About the interface becoming unresponsive, I have that every hour, and had that before trying SCANsat. I don't think it is related.

Link to comment
Share on other sites

Wow, this is working really great so far. I have a single craft with all six parts running without any real problems. I can only see a few issues:

- The dark anomaly text is hard to read against the greyscale as has been mentioned above. Some way to change the color would be nice, it might also be nice to be able to toggle the anomaly text on/off.

- What is the distance for the BTDT detector? I can see the anomaly names for the KSC, Island Airfield, the Pyramids and two monoliths from a satellite in a 160*180 km orbit. I didn't have any scanners running until I reached orbit. I also have two unnamed anomalies.

- The only real bug that I can see is that the craft indicator on the small map is off. The "x" is displayed about 20o to the east of the actual position. It's correct on the big map and can be confirmed by looking down at the surface.

The latitude is correct in both maps, but the longitude indicator on the small map doesn't match the ship's position on the big map, found by holding the cursor over the "x" on the big map (also, the order of the lat/long and alt values are switched on the two maps, I assume that's what you were referring to in the first post).

- Is there any way to clear the zoom in window? Once I right-click somewhere I can't remove the zoom in window, I can move it to somewhere else, but it's always there.

- The "Forget Map" button is usefull for testing, but I imagine it will be better to shrink it or hide it somewhere for later versions. It's pretty easy to accidently click it and erase your map.

- As for the suggestion to add a map-only part, I assume that's what the MapTraq will be.

Otherwise this is looking really good, nice work. I'll get around to testing multiple crafts later.

Link to comment
Share on other sites

This looks awesome... I'm gonna try in now... Well... As soon as I have time for KSP at least...

I would love seeing SCIENCE! being implemented into this and even have a few ideas for Cabana Corp.'s own "Expanded SCIENCE!" Project...

Here's a suggestion-

Hooking up "passive" SCIENCE! generation with the satellites, giving you X amount of SCIENCE! per area scanned (bonus if scanned by multiple methods and faster yield for more satellites) with extra SCIENCE! for uncovering anomalies and even more SCIENCE! for identifying them. All SCIENCE! gathered in this way would be stored on-board the satellites' equipment (or maybe Cabana Corp.'s Data Drives, if those ever get anywhere) to then be transmitted using conventional means (or by returning a Cabana Corp. Data Drive to KSC).

As far as feedback goes- You can use stock part models as place-holders for stuff if you feel you don't have "presentable" models of your own... It's how Cabana Corp has done it so far...

Edited by BananaDealer
Link to comment
Share on other sites

Damn, this is awesome. I'd be willing to donate time to model/texture parts if you'd like!

Because I'm a remote sensing analyst by trade, I think it'd be super cool if you could split this into a few parts - perhaps a multispectral scanner that would detect biomes, a visible-band scanner for doing pretty pictures, maybe a SAR scanner for elevation? Again, willing to provide models and textures :P.

Link to comment
Share on other sites

I like where this seems to be going, and I like also what Nertea said. It mades sense to have different parts for different scan types, I like the idea of having to place more specialized satellites... or some franken-sat with a bunch of electricity hungry parts ready to break apart :P

Link to comment
Share on other sites

Damn, this is awesome. I'd be willing to donate time to model/texture parts if you'd like!

Because I'm a remote sensing analyst by trade, I think it'd be super cool if you could split this into a few parts - perhaps a multispectral scanner that would detect biomes, a visible-band scanner for doing pretty pictures, maybe a SAR scanner for elevation? Again, willing to provide models and textures :P.

I think that's already the way he's going...

Link to comment
Share on other sites

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