Building the island's elevation uses a blend of a few different techniques:
First, create a heightmap by throwing down a bunch of sorta-centered blobs with a random height and radius. A percentage of the blobs will have negative height and reduce the elevation. Keep throwing blobs until you have enough land. I think this has interesting and island-like coastlines with and good variation of height. It can be weirdly mesmerizing too.
Using the first heightmap, create a second heightmap based on the distance from the water. I think this looks neat on it's own and when there's jagged coastlines it reminds me of what real mountain ranges look like from above.
Using the first heightmap again, create a third heightmap based on simplex noise. Water has zero height and everything else is a noise lookup.
Once you have all three heightmaps, multiply each by a different weight and add them together form a final height map. By changing the multipliers for each, you can adjust the overall look to get the best of each map with few downsides.
Finally, I want the highest parts to really stand out above everything else so I do one last thing: cube each height (that is, set each height to height * height * height). This effectively pushes the lowest parts down and increases the contrast for the higher elevations.
That looks okay. I'm sure it will change more.
An in-game map. |
Much higher elevation to the west, much lower elevation to the east. One level higher to the south and one level lower to the south east. |
I think I can do something like a midpoint displacement algorithm to make it less blocky. Adding up-slopes and down-slopes at elevation boundaries and hiding the interior of the higher elevation should help make it look better too. That should keep me busy for a week.
Edit: It took about three hours. The midpoint displacement wasn't working how I thought it would so I lerp the midpoints and add a bit of noise instead.
Doing all that was almost 350 lines of Clojure so I moved some functionality into separate open source libraries.
super-simple-window: Java Swing windows can have a ton of callbacks and settings that need to be done in a specific order and I always forget how to do it right. This is one function that creates a JFrame with a Canvas that uses all the settings and callbacks you supply: title, width, height, on-render, on-key-press, etc. Even makes a timer if you supply an on-timer callback.
render-terminal: Render terminal-like data to a Java Swing Graphics object. Call render with a map of points to character data. Does a bunch of caching to keep things fast. Supports 9x16, 10x10, and a 12x12 font so far but it's easy to extend.
Great thoughts you got there, believe I may possibly try just some of it throughout my daily life.
ReplyDeleterpa Training in Chennai
rpa Training in bangalore
rpa Training in pune
blueprism Training in Chennai
blueprism Training in bangalore
blueprism Training in pune
rpa online training
I’ve desired to post about something similar to this on one of my blogs and this has given me an idea. Cool Mat.
ReplyDeleteData Science training in marathahalli
Data Science training in btm
Data Science training in rajaji nagar
Data Science training in chennai
Data Science training in kalyan nagar
Data Science training in electronic city
Data Science training in USA
Data science training in pune
Really nice experience you have. Thank you for sharing. It will surely be an experience to someone.
ReplyDeletejava training in chennai | java training in bangalore
java online training | java training in pune
java training in chennai | java training in bangalore
I’ve desired to post about something similar to this on one of my blogs and this has given me an idea. Cool Mat.
ReplyDeletepython training in pune
python online training
python training in OMR
This is most informative and also this post most user friendly and super navigation to all posts... Thank you so much for giving this information to me..
ReplyDeleteDevops training in velachery
Devops training in annanagar
Devops training in sholinganallur
The knowledge of technology you have been sharing thorough this post is very much helpful to develop new idea. here by i also want to share this.
ReplyDeleteBlueprism training institute in Chennai
Blueprism online training
Blue Prism Training Course in Pune
Blue Prism Training Institute in Bangalore
I am definitely enjoying your website. You definitely have some great insight and great stories.
ReplyDeleteangularjs Training in bangalore
angularjs Training in bangalore
angularjs Training in btm
angularjs Training in electronic-city
angularjs online Training
Such an interesting content I have never come across like this.
ReplyDeleteselenium training in tambaram
selenium training in adyar
Selenium Training in Chennai
iOS Training in Chennai
French Classes in Chennai
Big Data Training in Chennai
web designing training in chennai
Loadrunner Training in Chennai
Qtp training in Chennai
Superb blog I visit this blog it's really awesome. The important thing is that in this blog content written clearly and understandable. The content of information is very informative.
ReplyDeleteOracle Fusion HCM Online Training
Oracle Fusion SCM Online Training
Oracle Fusion Financials Online Training
Big Data and Hadoop Training In Hyderabad
oracle fusion financials classroom training
Workday HCM Online Training
Oracle Fusion HCM Classroom Training
Workday HCM Online Training
Superb blog I visit this blog it's really awesome. The important thing is that in this blog content written clearly and understandable. The content of information is very informative.
ReplyDeleteOracle Fusion HCM Online Training
Oracle Fusion SCM Online Training
Oracle Fusion Financials Online Training
Big Data and Hadoop Training In Hyderabad
oracle fusion financials classroom training
Workday HCM Online Training
Oracle Fusion HCM Classroom Training
Workday HCM Online Training
thanks for sharing this information
ReplyDeleteBlue Prism Training in Bangalore
Blue Prism Training in BTM
informatica Training in Bangalore
Android Training in Bangalore
MEAN Stack Training in Bangalore
MEAN Stack Training in BTM
RPA Training in Bangalore
RPATraining in BTM
Thanks for this amazing post its help me a lot to solve my issues click here to download Kinemaster Mod APK
ReplyDeleteHi,
ReplyDeleteGood job & thank you very much for the new information, i learned something new. Very well written. It was sooo good to read and usefull to improve knowledge. Who want to learn this information most helpful. One who wanted to learn this technology IT employees will always suggest you take python training in bangalore. Because python course in Bangalore is one of the best that one can do while choosing the course.
Thanks for this amazing post
ReplyDelete"Sanjary Academy provides excellent training for Piping design course. Best Piping Design Training Institute in Hyderabad,
Telangana. We have offer professional Engineering Course like Piping Design Course,QA / QC Course,document Controller
course,pressure Vessel Design Course, Welding Inspector Course, Quality Management Course, #Safety officer course."
Piping Design Course in India
Piping Design Course in Hyderabad
Piping Design Course in Hyderabad
QA / QC Course
QA / QC Course in india
QA / QC Course in Hyderabad
Document Controller course
Pressure Vessel Design Course
Welding Inspector Course
Quality Management Course
Quality Management Course in india
Safety officer course
Thanks For sharing information
ReplyDeleteYaaron Studios is one of the rapidly growing editing studios in Hyderabad. We are the best Video Editing services in Hyderabad. We provides best graphic works like logo reveals, corporate presentation Etc. And also we gives the best Outdoor/Indoor shoots and Ad Making services.
Best video editing services in Hyderabad,ameerpet
Best Graphic Designing services in Hyderabad,ameerpet
Best Ad Making services in Hyderabad,ameerpet
Good, keep posting..
ReplyDeletefreeinplanttrainingcourseforECEstudents
internship-in-chennai-for-bsc
inplant-training-for-automobile-engineering-students
freeinplanttrainingfor-ECEstudents-in-chennai
internship-for-cse-students-in-bsnl
application-for-industrial-training
Nice
ReplyDeleteinterview-questions/aptitude/permutation-and-combination/how-many-groups-of-6-persons-can-be-formed
tutorials/oracle/oracle-delete
technology/chrome-flags-complete-guide-enhance-browsing-experience/
interview-questions/aptitude/time-and-work/a-alone-can-do-1-4-of-the-work-in-2-days
interview-questions/programming/recursion-and-iteration/integer-a-40-b-35-c-20-d-10-comment-about-the-output-of-the-following-two-statements
nice............
ReplyDeleteinplant training in chennai
inplant training in chennai
inplant training in chennai for it.php
algeeria hosting
angola hostig
shared hosting
bangladesh hosting
botswana hosting
central african republi hosting
shared hosting
excellent blogs
ReplyDeleteinplant training in chennai
inplant training in chennai
inplant training in chennai for it.php
italy web hosting
afghanistan hosting
angola hosting
afghanistan web hosting
bahrain web hosting
belize web hosting
india shared web hosting
Hey, very nice site. I came across this on Google, and I am stoked that I did. I will definitely be coming back here more often. Please feel free to visit our site. Thank you for sharing. Well written article Thank You for Sharing with Us
ReplyDeleteThis article is worthy of recognition and comment.
ReplyDeleteSAP training in Kolkata
Best SAP training in Kolkata
SAP training institute in Kolkata
Thank a lot for this post that was very interesting. Keep posting like those amazing posts, this is really awesome :)
ReplyDeleteLooking for PMP Certification, Visit on:thanks a lot guys.
Ai & Artificial Intelligence Course in Chennai
PHP Training in Chennai
Ethical Hacking Course in Chennai Blue Prism Training in Chennai
UiPath Training in Chennai
weddingbels
ReplyDeleteThank you for sharing such beautiful information. If you want to buy Gift for men" then you can visit Ubiqart. Here we have different range of products.
ReplyDeleteAmazing blog. Great share of information. Very useful
ReplyDeletepython internship | web development internship |internship for mechanical engineering students |mechanical engineering internships |java training in chennai |internship for 1st year engineering students |online internships for cse students |online internship for engineering students |internship for ece students |data science internships
If you're looking for something specific, you can always use the search bar to find exactly what you're looking for. Plus, movies flame is always updating their selection, so you'll never miss a new release.
ReplyDeleteFor a quick and accurate Gali result, Deshawar result, you may visit Satta king Matka, a game that is popular among teenagers.
ReplyDeleteThanks for sharing. BEglobalus offers the Web Development Services in Michigan. You can quickly boost online traffic and attract more customers with proper assistance.
ReplyDeleteThis website is incredibly educational, fascinating, and well-written, in my opinion. Keep up the good, excellent writing. best inventory management software
ReplyDeleteThank you for Information its good research work
ReplyDeleteHere is sharing some data integration and analytics AlterYX concepts may be its helpful to you.
AlterYX Training
Enjoy flexible and affordable monthly car rental options in Bahrain. Choose from a wide range of reliable vehicles, benefit from competitive rates, and receive exceptional customer service. Monthly car rental in Bahrain
ReplyDeleteI trust you post again soon...
ReplyDeleteThis comment has been removed by the author.
ReplyDelete