clickin’ and movin’
Today’s progress report on Cavernoid. I only put in about 30 minutes on the train, but I was able to smartify the map defogging routine.
Previously, it took the unit’s “vision” variable and just revealed a perfect square around the bot, delving deep into the mysterious contents of the rocky outcroppings. This way, using a scout-bot, you could pretty much reveal where all the gems were really easily.
This new method keeps that from happening. It isn’t a pure ray-trace or anything hot like that. It’s just a few nested FOR loops that extend from the bot in question and only reveal the first layer of stone encountered. That way, you don’t instantly know where all the loot’s buried!
Check out the screenie to see it in action:
On the devblog I usually just talk about my pet project, Cavernoid, but I wanted to take a moment today to highlight a goofy project that my friend Dallin and I put together one night. It’s called Super Stork II, and basically you play as Arnold, an overworked baby delivery bird. Drop the babies in the chimneys, avoid the crows, and get a paycheck at the end of the day.
I did the pixel artwork, and I’m building it in Stencyl to see if I like it. Not sure yet.
Check out the video with carpet-bombing babies!
Drillbot! Killbot! Scoutbot!
Here they are folks, the three robots you will control in Cavernoid.
These humble servants really dig minerals. Literally. And then they store them in the rock hopper. Once their hopper is full, they return to your ship to drop off the goods. That’s it. They ain’t too smart, and they ain’t too fast, but they’re the bread and butter of the asteroid mining world.
These brutish buddies are necessary to keep other miners off your turf and kill space snakes. They’re fast, and they’ll automatically kill space snakes. Kill other bots, on the other hand? They’ll have to be manually assigned to such a cruel undertaking.
Round, round, get around. These get around. Yeah? They’re pretty quick, can see for days, and have excellent pathfinding abilities. They’re also weaker than the weakest sauce, so keep them away from unsavory space snakes and malicious miners.
Some asteroids on the edges of the belt are inhabited by nasty dudes called space snakes. These indigenous bad-boys survive by eating the 3 essential minerals found in the Belt. They also roam around and try to kill your bots for dinner and for sport. So you want to get rid of them for two reasons. They eat all the minerals before you can mine them, and they want to eat your bots.
Your killbots can dispatch them without too much effort. Scoutbots and drillbots are highly vulnerable. If you hear a hissing sound, it might already be too late.
A space snake may multiply rapidly when threatened. It will split in two, and quickly become space snakeS. Plural.
Whatever you do, don’t let the snakes get on your plane. I mean, ship.
Haven’t decided which ASCII character to use. I am leaning toward the one on the left because it looks like it could easily split into two snake when feeling threatened. Cast your vote in the comments!
I decided on procedural generation for generating maps.
- because then each playthrough is unique!But the real reason was:
- I don’t want to manually draw 100 maps.
Thus Generoid was born. A routine that creates an Asteroid Belt (the beltmap) with 3 outposts and x number of asteroids, sprinkled randomly throughout. And then generates maps for each of those x asteroids. (Outposts have a standard map that I drew. I’ll have to do a post on Outposts. An out-post.)
So I am using some very basic proc gen to build these 2D array maps that are basically just cellular automata caves. I used the method detailed here but with a few small tweaks to get things looking like I wanted.
Then I added a proprietary function called Mineral-Gro(tm). This basically plants “seeds” of certain minerals, the concentration based on what part of the Belt they are located in. Then for a few steps, each mineral spreads like a virus through existing rock formations that were built during the cellular automata phase. Kind of how rock formations actually form. Kind of.
Anyway, that’s about it for this post, but check out some videos I made during the process.
v1, basic cellular automata:
v2, had to change to pixels so the maps would fit on screen. this shows patented Mineral-Gro technology at work:
“Making the world
a better place through procedural generation.”
My current project is an ASCII game called Cavernoid.
Current extant features:
- Outpost, asteroid belt, and asteroid maps are all viewable
- Can select and move drill, kill, and scout bots
- Drillbots can collect minerals
- Procedurally generated belt and asteroid maps
- Arcade asteroid blaster game – not sure if I should make this something you play as an arcade game in the outpost, or make it require to travel around the belt
This is just a progress log. I’ll put up a post soon with more info on Cavernoid’s story and concept and art and stuff.