Join devRant
Do all the things like
++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatar
Sign Up
Pipeless API
From the creators of devRant, Pipeless lets you power real-time personalized recommendations and activity feeds using a simple API
Learn More
Search - "terrain"
-
3 people for developing the prototype including me.
One person knows unity. He started modeling the terrain in that.
Another person knows 3D modelling. He started designing the bots.
I don't know unity or C#. I started implementing the logic :/
It was the worst experience but learned shitloads from it in 2 days.3 -
So, I've been following a tutorial and explanatory series on YouTube about procedural terrain generation.
I dare saying it's going quite well!20 -
Programming Languages are Like Cars:
Assembler: A formula I race car. Very fast but difficult to drive and maintain.
FORTRAN II: A Model T Ford. Once it was the king of the road.
FORTRAN IV: A Model A Ford.
FORTRAN 77: a six-cylinder Ford Fairlane with standard transmission and no seat belts.
COBOL: A delivery van. It's bulky and ugly but it does the work.
BASIC: A second-hand Rambler with a rebuilt engine and patched upholstery. Your dad bought it for you to learn to drive. You'll ditch it as soon as you can afford a new one.
PL/I: A Cadillac convertible with automatic transmission, a two-tone paint job, white-wall tires, chrome exhaust pipes, and fuzzy dice hanging in the windshield.
C++: A black Firebird, the all macho car. Comes with optional seatbelt (lint) and optional fuzz buster (escape to assembler).
ALGOL 60: An Austin Mini. Boy that's a small car.
ALGOL 68: An Aston Martin. An impressive car but not just anyone can drive it.
Pascal: A Volkswagon Beetle. It's small but sturdy. Was once popular with intellectual types.
liSP: An electric car. It's simple but slow. Seat belts are not available.
PROLOG/LUCID: Prototype concept cars.
FORTH: A go-cart.
LOGO: A kiddie's replica of a Rolls Royce. Comes with a real engine and a working horn.
APL: A double-decker bus. It takes rows and columns of passengers to the same place all at the same time but it drives only in reverse and is instrumented in Greek.
Ada: An army-green Mercedes-Benz staff car. Power steering, power brakes, and automatic transmission are standard. No other colors or options are available. If it's good enough for generals, it's good enough for you.
Java: All-terrain very slow vehicle.10 -
For those keeping track of what inwas doing here: https://devrant.com/rants/1641742/...
Inhave been playing around woth fractals and making trees (although it wasnt 3 dementional) i have been taking time to learn things there regardless and had an attempt at making a landscape using Perlin noise procedurally generated by the computer
I am planning on releasing the code as soon as i figure out making these trees geberate at certain points of the land and firstly, make it branch in a 3 dementional space
Update of the land
Although i dont have the most time to so this and had to learn java in the process to move away from the limitations i had in the browser. It is a fun experiance and good break away from my actual job.
Ill see how it goes while working on this
✌6 -
Game dev has never been more amazing. I am playing with different ideas for terrain. I want to modify terrain and build structures as part of game play. I thought about using a structure of my own to represent buildings and other structures. I got to thinking that maybe what I really want is voxels. So I decided to play with the Godot voxel plugin. I am looking at the "examples". Then I see this:
https://github.com/Zylann/...
"This is a 3D space game demo, with procedurally-generated planets." Wait what? I run the demo and I can fly to different planets and deform the terrain on each planet. This is a demo? Isn't this a main feature of NMS as a demo? Shocked but really excited. I can't wait to play with this.
Here is a screenshot from the demo:10 -
On the game front, I see so much conflicting advice. "Start getting feedback" as soon as possible. "Donnt soft launch on steam! The algol will wreck you.", "soft launch on itch to get feedback", "dont soft launch on itch!"
"Start marketing today", "focus on influencers", "get to know communities *before* you advertise", "dont get to know communities beforehand if you're just planning on self prompting", "dont self promote".
"CPM is important.", "CPA is important". Etc.
Sounds a lot like "have a bunch of money upfront." The solution is just to succeed from the start! It's so obvious. Just invent the next gta. The next facebook. Get a small loan of 50,000 dollars, or a million. Donate for a year to other kickstarter projects so people will know you and reciprocate! But also dont ebeg!
How about no. How about fuck all this advice by silver spoon assholes that didnt have to work on shoestring budgets. The advice is the equivalent of having a 300 page tonedeaf book, every page blank except page 150, where the words "fuck you. I got mine." Are printed in times new Roman, 14pt font, neatly in the center of the page.
The truth is most of the "indies" already made it in the software industry proper, before switching over. $5k kickstarter videos, with $15k marketing budgets, no doubt funded in part through their own money funneled through services that provide shell donations, because KS is being used as a glorified advertising service. People buying off steam curators for promotions, youtubers making sponsored videos without disclosing they're sponsored. Fake viralility. Fake campaigns. Predetermined success for those who could *already* afford to develop and go commercial without a publisher. And they came into the market and cannibalized the opportunity, raising the bar for everyone that wasnt them. I guess that's actually a good thing, because we wouldnt have half the amazing games we do, and the pressure to produce quality. But then I see fantastic games utterly ignored or flailing in an attempt to compete for eyeballs in an industry frequently dominated by gatekeeping marketeers and influencers, where human grace determines success or complete oblivion. And I'm just disgusted with it.
Also buy my game. Preorder NOW! And you'll get a REAL canvas bag, I'll go to like the goodwill and buy one and screen print the game logo on it or some shit. Buy the special collectors edition and get pictures of my feet. Buy the game of the year edition and get a real gasmask. Preorder now and I'll fucking suck your di k right now. No lie. Preorder the diamond edition RIGHT NOW in the next six minutes and I will send you one hundred thousand dollars in gold plated bottle caps. Limited supply. one million per customer. Offer expires soon. This is not a scam. I repeat. This is NOT a scam.
In other news I'm soft launching Atom Ranger in six months (assuming the nuclear apocalypse hasn't *actually* started by then). Its state of decay and fallout meets rimworld. Build and manage a sprawling base, resolving conflicts, exploring post apocalyptic Colorado and surrounding territories of no-mans-land. Navigate hazardous weather, radioactive terrain, collapsed bridges, dangerous rivers, and deal with cultists, bandits, slavers, and hungry cannibals. Broker peace between not just the factions outside your settlements, but within your base too. Manage conflicts, settle disputes, avert disasters, barter, scavenge, and survive in a fully dynamic world, where buildings slowly crumble, grass and trees sprout up in the road and vacant lots, fires burn out of control, and factions loot, ruin, and takeover settlements. Watch the world and the survivors in it change and survive. Help them to survive, or become a warlord and rule over the wastes.
Lets be honest. It's basically kenshi but less complicated.
If you want to volunteer to test (instead of paying to be a glorified tester, aka "alpha") let me know in the comments.
I'm currently setting up a discord and mailing list.28 -
When I was in school, people came to me every once in a while, wanting to make a new great MMORPG with destructible terrain and factions.
Then came the guys who wanted to make a new amazing app that will help them fix some minor life inconveniences (like tracking expiry dates on the groceries in your fridge).
And now there are guys who want to make blockchain, IoT and chatbot based startups.
I just want to watch youtube and post shit on the internet. :(1 -
Everyone and their dog is making a game, so why can't I?
1. open world (check)
2. taking inspiration from metro and fallout (check)
3. on a map roughly the size of the u.s. (check)
So I thought what I'd do is pretend to be one of those deaf mutes. While also pretending to be a programmer. Sometimes you make believe
so hard that it comes true apparently.
For the main map I thought I'd automate laying down the base map before hand tweaking it. It's been a bit of a slog. Roughly 1 pixel per mile. (okay, 1973 by 1067). The u.s. is 3.1 million miles, this would work out to 2.1 million miles instead. Eh.
Wrote the script to filter out all the ocean pixels, based on the elevation map, and output the difference. Still had to edit around the shoreline but it sped things up a lot. Just attached the elevation map, because the actual one is an ugly cluster of death magenta to represent the ocean.
Consequence of filtering is, the shoreline is messy and not entirely representative of the u.s.
The preprocessing step also added a lot of in-land 'lakes' that don't exist in some areas, like death valley. Already expected that.
But the plus side is I now have map layers for both elevation and ecology biomes. Aligning them close enough so that the heightmap wasn't displaced, and didn't cut off the shoreline in the ecology layer (at export), was a royal pain, and as super finicky. But thankfully thats done.
Next step is to go through the ecology map, copy each key color, and write down the biome id, courtesy of the 2017 ecoregions project.
From there, I write down the primary landscape features (water, plants, trees, terrain roughness, etc), anything easy to convey.
Main thing I'm interested in is tree types, because those, as tiles, convey a lot more information about the hex terrain than anything else.
Once the biomes are marked, and the tree types are written, the next step is to assign a tile to each tree type, and each density level of mountains (flat, hills, mountains, snowcapped peaks, etc).
The reference ids, colors, and numbers on the map will simplify the process.
After that, I'll write an exporter with python, and dump to csv or another format.
Next steps are laying out the instances in the level editor, that'll act as the tiles in question.
Theres a few naive approaches:
Spawn all the relevant instances at startup, and load the corresponding tiles.
Or setup chunks of instances, enough to cover the camera, and a buffer surrounding the camera. As the camera moves, reconfigure the instances to match the streamed in tile data.
Instances here make sense, because if theres any simulation going on (and I'd like there to be), they can detect in event code, when they are in the invisible buffer around the camera but not yet visible, and be activated by the camera, or deactive themselves after leaving the camera and buffer's area.
The alternative is to let a global controller stream the data in, as a series of tile IDs, corresponding to the various tile sprites, and code global interaction like tile picking into a single event, which seems unwieldy and not at all manageable. I can see it turning into a giant switch case already.
So instances it is.
Actually, if I do 16^2 pixel chunks, it only works out to 124x68 chunks in all. A few thousand, mostly inactive chunks is pretty trivial, and simplifies spawning and serializing/deserializing.
All of this doesn't account for
* putting lakes back in that aren't present
* lots of islands and parts of shores that would typically have bays and parts that jut out, need reworked.
* great lakes need refinement and corrections
* elevation key map too blocky. Need a higher resolution one while reducing color count
This can be solved by introducing some noise into the elevations, varying say, within one standard div.
* mountains will still require refinement to individual state geography. Thats for later on
* shoreline is too smooth, and needs to be less straight-line and less blocky. less corners.
* rivers need added, not just large ones but smaller ones too
* available tree assets need to be matched, as best and fully as possible, to types of trees represented in biome data, so that even if I don't have an exact match, I can still place *something* thats native or looks close enough to what you would expect in a given biome.
Ponderosa pines vs white pines for example.
This also doesn't account for 1. major and minor roads, 2. artificial and natural attractions, 3. other major features people in any given state are familiar with. 4. named places, 5. infrastructure, 6. cities and buildings and towns.
Also I'm pretty sure I cut off part of florida.
Woops, sorry everglades.
Guess I'll just make it a death-zone from nuclear fallout.
Take that gators!5 -
Finally getting off my proverbial ass and doing something about the lack of games I like. Going to focus on making an engine for the kind of games I want to play.
No, I am not starting from scratch. Going to base my engine on Godot and use it for my own titles. I am not insane. Making it from scratch is too much work these days. But the indies are shifting from Unity to other engines right now. So a lot of wanted attention will be placed on better alternatives. This means more content and plugin choices will be available to Godot devs.
I kept making excuses as to how hard it will be or it will take forever. It only ended up taking me further away from what I wanted. I have my wishlist of features and I will focus on modularizing them so they can be used as needed. If it makes sense I will make these modules available to the community at Godot. This will help get feedback on what can be improved and generalized further. It will also reduce development costs in the long run. I want to take the approach that No Man's Sky has taken for content and generate as much as I can. I am fascinated by generating objects using algorithms. This seems to be a trend in games.
The struggle I have with games: I want to build things like structures in game (aka Minecraft), I want to build characters in game (aka RPGs), I also want to deform terrain (aka organic voxels), and I want a mixed genre (guns and dragons). Nothing like this exists in a form I want to pay for. I also want to be able to mod the game and for other people to be able to mod the game. That really narrows the list of games down to nothing. Sure there are few games that hit these bullet points, but not all in the same game.
I am finding I struggle to be engaged intellectually at work. I do what I have to for a paycheck. I think having a side project will help with this. One that is radically different than what I do at work is going to be helpful. I need to be realistic about expectations. I probably shouldn't expect any real progress for at least 2 to 3 years and probably more likely 5 years. I have some experience with the tool chains from other engines I have worked with. I also want something that I own and is mine. Even if it sucks.32 -
Been looking into 2D maps for a game. I am learning how to use tools that do autotiling. I want to have generated worlds for terrain. It is interesting how the scope of what you are learning starts expanding rapidly and can overwhelm you. I started wanting to learn autotiling. This went from that to autogen, to modifying terrain, to how to store generated terrain, to how to store difference between autogen and player modified, to how to separate things into chunks, to how to store a whole world worth of data! Like dude, chill. Just learn how to use autotiling first. Then learn how autogen, then learn how to efficiently chunk things,. Also the 2d data won't be big so just store the data you genned so if modified. The worlds don't have to be ultra huge. Really stop freaking out what it could be and see what it is. JUST FUCKING ITERATE!
It is wild to watch yourself get featuritus without learning how to crawl fist. Just divide and conquer.29 -
Think I am going to try out my first stuff for my game engine in 2D. The games I have the most fond memories of were 2D. Sure I like what has happened on the 3D side. But it would be fun to recreate some of my favorite 2D games. Except with one caveat: procedural generation. Never play the same game twice. For testing purposes I will have a seed system to regenerate the same worlds. I would have played these games so much longer if they had been based on a seed for generation of content.
I also like the idea of weapons and armor never being exactly the same. Sure they can look similar, but on close inspection you could see differences. It will be fun to start with base models and then add imperfections and differences.
Another issue I have with fantasy games is always leveling up the weapon by buying something better. Sure we have improvement systems though smithing and magic, but some weapons are always better than others. I wanted to have a game where weapons could be improved by usage and upgrades. Kill 1000 trolls and the weapon gets imbued with trollbane. Kill a dragon and the blood infuses and it deals fire damage. So a player could start out with the family sword and end up with a god tier weapon at the end of the game. Make weapons become legendary. Not because it has more power, but because trolls recognize the blade and the wielder and are scared shitless.
Terrain in 2D should be a lot easier to generate. Weapons, armor, etc should be easier to modify and generate. This should give me the grounding I need to develop the algorithms for a future 3D system. Godot is currently stronger in 2D than 3D. That will change in the next couple of years as more focus is put on the engine. There is no reason I cannot experiment with mixing 2D and 3D as well.
Holy shit, I was just thinking I cannot imagine the amazing shit they could have done with the games I played as a kid with 2D physics!
Haha, something they had in the older games was actual gambling. You could bet on monster fights and slot machines in game. I wonder if that takes a hard hit with ESRB now?
Currently stuck in tutorial hell. Learning how the engine works and seeing what features are available. I get more excited each video I watch. The engine is packed with goodies and the addons are crazy good.
tldr: First project will be short game in 2D. Will explore procedural content.14 -
Working on random room code in Godot. I am placing 1m * 1m scenes (meshes). Right now its just a square block. I need to work on occlusion of rooms. Then connecting rooms. I am going to try a 3d, but made of 3d tiles inside areas. Still trying to decide on what to use for outside terrain. I did find a terrain library that allows for digging holes in the terrain. This is where I will have players build a base and dig underground.
I am thinking a really casual game that you can crank the difficulty if you want. A relaxed rpgish game with some rts flavor to it. If someone wants to just chill they can turn off the rts side. Allow for multiple bases for resource gathering. Maybe do some automation of resource gathering using slaves...err...minions. Gonna stay single player for this iteration. I don't really want to spend time working on net code for this.
For now I just gen random rooms:12 -
!rant
I've been posting "dev logs", if you can call them that, to YouTube every now and then as I make progress with this funny little app I'm making. They're just videos of me testing something in the app with background music.
But today, someone was interested enough in my terrain generation, to ask for a tutorial, and I got my first subscriber!
Everything's coming up Milhouse! -
Question and Update.
First of all, I would like to thank @ScriptCoded for an idea in the previous post, so then I have beautiful terrain now, and the complete world map generated like plots, and each of them consists of 5x5 different plots defined by neighbors :) Hired a digital artist who is working on much nicer plots as well.
The new issue is regarding the zoom.
The map is saved as JSON with the pixel-perfect location of each generated plot so I am detecting the collision with the mouse based on their location. After I zoom in, the script is still comparing the pixel location of the element, but the real screen is scaled already so the pointer is off (image2). The problem is described in image3 as well. How can I still get the canvas relative value of the mouse instead of the x,y coordinate on the current zoomed screen?11 -
I‘d like to work more on my 2D game.
The idea is to make a mix of "Factorio" and "Knights and Merchants".
I’ve already got a decent basis with infinite terrain generation and units that collect resources and store them in containers as items.2 -
I decided I am going to get full into Minecraft modding. It will be an opportunity to learn Java and Kotlin. I want to explore some game ideas in a well defined sandbox.
Some things I want to explore.
1. AI that helps you build and survive. This fascinates me and seems like it could be a good challenge. I like the idea of learning how to separate structures into chunks. I think I will learn a bit about tree data structures here. Maybe learn something about BSP trees (if applicable).
2. The idea of an RPG quest system tacked onto a sandbox. I want to spawn structures and create non-repetitive story lines. Minecraft can be really desolate if you are not playing on a server. Worlds tend to be empty and devoid of story.
3. Maybe try a hand at terrain gen. This could be fun to explore entropy math. It is fun to draw things with math.
I am sure I will come up with other fun things to explore here.9 -
Looking forward to the day when I'll be building a custom kernel for my "smart shoes" to speed up terrain detection
-
I like to compare OSses to playgrounds
OS x: a grass field with a fence with a watcher that keeps you from doing something possibly dangerous(/fun) . It's safe but not a lot you can do
Windows: a grass field with a fence, you can climb the fence if you want and do dangerous things if you aren't carefull. less safe but you can do more
Linux: a terrain of your choosing, you can do whatever you want, but it can quickly become dangerous if you don't know what your doing.6 -
Data wrangling is messy
I'm doing the vegetation maps for the game today, maybe rivers if it all goes smoothly.
I could probably do it by hand, but theres something like 60-70 ecoregions to chart,
each with their own species, both fauna and flora. And each has an elevation range its
found at in real life, so I want to use the heightmap to dictate that. Who has time for that? It's a lot of manual work.
And the night prior I'm thinking "oh this will be easy."
yeah, no.
(Also why does Devrant have to mangle my line breaks? -_-)
Laid out the requirements, how I could go about it, and the more I look the more involved
it gets.
So what I think I'll do is automate it. I already automated some of the map extraction, so
I don't see why I shouldn't just go the distance.
Also it means, later on, when I have access to better, higher resolution geographic data, updating it will be a smoother process. And even though I'm only interested in flora at the moment, theres no reason I can't reuse the same system to extract fauna information.
Of course in-game design there are some things you'll want to fudge. When the players are exploring outside the rockies in a mountainous area, maybe I still want to spawn the occasional mountain lion as a mid-tier enemy, even though our survivor might be outside the cats natural habitat. This could even be the prelude to a task you have to do, go take care of a dangerous
creature outside its normal hunting range. And who knows why it is there? Wild fire? Hunted by something *more* dangerous? Poaching? Maybe a nuke plant exploded and drove all the wildlife from an adjoining region?
who knows.
Having the extraction mostly automated goes a long way to updating those lists down the road.
But for now, flora.
For deciding plants and other features of the terrain what I can do is:
* rewrite pixeltile to take file names as input,
* along with a series of colors as a key (which are put into a SET to check each pixel against)
* input each region, one at a time, as the key, and the heightmap as the source image
* output only the region in the heightmap that corresponds to the ecoregion in the key.
* write a function to extract the palette from the outputted heightmap. (is this really needed?)
* arrange colors on the bottom or side of the image by hand, along with (in text) the elevation in feet for reference.
For automating this entire process I can go one step further:
* Do this entire process with the key colors I already snagged by hand, outputting region IDs as the file names.
* setup selenium
* selenium opens a link related to each elevation-map of a specific biome, and saves the text links
(so I dont have to hand-open them)
* I'll save the species and text by hand (assuming elevation data isn't listed)
* once I have a list of species and other details, to save them to csv, or json, or another format
* I save the list of species as csv or json or another format.
* then selenium opens this list, opens wikipedia for each, one at a time, and searches the text for elevation
* selenium saves out the species name (or an "unknown") for the species, and elevation, to a text file, along with the biome ID, and maybe the elevation code (from the heightmap) as a number or a color (probably a number, simplifies changing the heightmap later on)
Having done all this, I can start to assign species types, specific world tiles. The outputs for each region act as reference.
The only problem with the existing biome map (you can see it below, its ugly) is that it has a lot of "inbetween" colors. Theres a few things I can do here. I can treat those as a "mixing" between regions, dictating the chance of one biome's plants or the other's spawning. This seems a little complicated and dependent on a scraped together standard rather than actual data. So I'm thinking instead what I'll do is I'll implement biome transitions in code, which makes more sense, and decouples it from relying on the underlaying data. also prevents species and terrain from generating in say, towns on the borders of region, where certain plants or terrain features would be unnatural. Part of what makes an ecoregion unique is that geography has lead to relative isolation and evolutionary development of each region (usually thanks to mountains, rivers, and large impassible expanses like deserts).
Maybe I'll stuff it all into a giant bson file or maybe sqlite. Don't know yet.
As an entry level programmer I may not know what I'm doing, and I may be supposed to be looking for a job, but that won't stop me from procrastinating.
Data wrangling is fun.1 -
We are being run in a simulation. But the simulation is physical. We exist as humans being run on the simulation called Earth. Our brains are designed to interface to a hub. This brain power is used to do calculations for a much larger system. The benefit to using biological systems is they self repair and reproduce. This allows the simulations to scale over time.
Another benefit is we are creating all terrain vehicles (humans) for alien consciousnesses. Big foot is an upgraded atv for high mountain ranges.9 -
So I think I figured out something that may be a huge game changer in the gaming industry. TES VI has taken more than a decade to even be a thing. We got an announcement a few years ago about TES VI, but really nothing since. At that time they said TES VI would be in production after Starfield release. Another odd thing they said was that the technology needed to create TES VI was not quite ready yet. I am unsure as to when they said this last bit. I think before they mentioned Starfield release. What is this tech?
I think to understand what this tech is you have to go back to the roots of TES. One of their early games was called Daggerfall. I think this was TES II. The next one was TES III Morrowind. Then TES IV Oblivion. Finally TES V Skyrim. What has been happening on each release? The world of Daggerfall was huge, it was also generated content. That was the only way to go to that scale at that time. Then Morrowind came along and was big, but no where near Daggerfall big. Oblivion came along and decent size, but I think it was still smaller than Morrowind. I think similar with Skyrim. The worlds were getting more detailed, but due to shear manpower it became expensive to fill these large worlds.
I think you have probably figured out where I was going with this. What is the missing tech TES series wanted for large worlds? I think AI is the next big step for generating large worlds like this. From generating textures, terrain, models, cities, forests, etc. Obviously there will be procedural gen mixed in with this.
People keep wondering why TES VI is taking so long. I think Bethesda wanted to go big again on its worlds. But at the scale they wanted to do it would take way too much manpower to create all the assets for the game under any kind of budget. TES V has made them a shit ton of money. So maybe they have the wiggle room to do something truly groundbreaking with TES VI.
Anyway, that is my guess. They were waiting for the AI tools to be available to go big on their open worlds.9 -
Modt excited about code was three days ago, when I managed to make SpeedTrees (that are painted on Unity terrains and not detectable as different from the terrain while using raycasts) transparent when they appear between the camera and the character :P
-
So would you design an ai that handled a unit by unit move and have the inputs be the range layout ?
What if instead of pathing I had to train an ai to faulty human logic about judging terrain to choose to wander down that could cost extra time if you hit a boundary ?6 -
I have an image of a small terrain in my ciry for google maps, I only have this image but I want to search the city for this terrain
Is there any way I can automate the process? Even on a larger scale
Multiple cities2