BGMC 27 | Generic Survival Game

This project was born out of rage against “ARK: Survival Evolved” for being so addictive yet horribly optimized. I’m making a stripped-down ripoff with “black and white minimalism” which I suspect will require less time than it takes to download the dev kit.

Uses 2.79 from blender.org (at least for now)

Day 1
The most ambitious day and so far on schedule. Basic controls, HUD, map, and more trees than you’ll ever need (~540k). The map is 4KM x 4KM which is probably too big.



I may lower the density depending on how things run on lesser hardware. The goal is stable 30 fps with Intel HD Graphics 4000 and 1 GB available RAM. Until the player starts filling the world with junk, anyway.

Day 2
Inventory, harvesting, some optimization.

Day 3
AI, meat collection, decreased world size. We’re now running 2KM x 2KM which is probably still too big. It’s less about optimization and more about having to spend 30 minutes searching for the boss fight. Maybe there should be a clue…

Day 4
Reduced world size to 1KM x 1KM, simplified the generator, basic crafting, various improvements.


Day 5
Ignored today’s goals and took a nap instead. It felt good.

Day 6
D&D night. We’ll see what happens tomorrow.

Day 7(ish)

Sleep? What is sleep? WHY DIDN’T I SLEEP?
Total wipeout dudes. I’ll put up a link next time my dev PC is up, but there’s no way I’m entering this thing in the voting. It’s missing 3 very important features that need a well-rested brain to create.

Had a blast making it though. And there might be some nice code for people to learn from, although the inventory stuff is total garbage.

P.S.
60 FPS on the Intel HD4000, even during intense moments

Here she is, 57.1% complete

Until the player starts filling the world with junk, anyway.

Hey, that’s not junk that’s my masterpiece.

Sounds interesting and ARK is a good inspiration to have, good luck!

Looks good already.
Look forward to playing it.

around 540,000 trees??? that’s just crazy…my budget(estimated) is about 15K trees :slight_smile:

Admittedly I cheated a little. It’s loading in behind fog using deterministic “randomgen” (er, yeahhhh) that only keeps the delta memory. So I guess there’s only about 3K at any given time. But the player doesn’t need to know that… The important thing is that we can technically cut down half a million trees and completely destroy the island’s ecosystem.

my budget is also generating them :slight_smile: but I think I only have about 50 at any time visible…my budget is based on predictions f how many I will have due to the basic world layout…they are largely unnecessary but who would play in a world without trees?

I’m really curious to see how this works out for you…keep us posted! :slight_smile:

Added download link to post #1. Still missing critical gameplay elements so I won’t be submitting. Hope it helps someone!

I was really looking forward to this…if for nothing else than picking apart your game(code etc) for learning purposes…and I was just kinda looking forward to it…oh well :slight_smile:

D&D night…:slight_smile: I bet that was ALL night…I still have my dice…don’t play anymore though…no time.

here is his game link dude

The thing you probably want to see got scrapped after I reduced tree density and scaled the world to 1x1km. But most of the performance came from a physics optimization where trees far from the player would have their simple hitboxes removed.

The script maintained a list of active tree objects and cycled through 10 per frame, adding or removing the hitbox based on distance. But in my case it conflicted with AI that were still moving outside the LOD range. If the poor helpless AI was in just the right place when a tree popped in… bad stuff happened. That was the main reason I removed it & chose to lower the tree density instead.

It would have been better to join chunks into a single triangle mesh (both for rendering and physics) but in my case that couldn’t work because cutting down trees was a critical gameplay element. I didn’t think to try creating a single compound physics mesh for the trees. That might have worked even better. Although BGE is a bit quirky when dealing with compound physics…

The forest-delta stuff got nuked too. Wasn’t worth complicating the codebase after I scaled down the world.

EDIT
Oh yeah, D&D night. These days we can only squeeze one out ~once/month. People gotta drive so far. Not to mention the screaming babies. Can’t do online 'cause the DM is like… the only person in the modern world that still doesn’t have internet. Which is weird because he works as a programmer…

hey, m8

register obstacles using

obstructDict = { (increment(pos.x,scale),incriment(pos.y,scale)) : (vertexOrNode,Bool) }

and have the agents path using flood fill etc local checking the points using

key =( agentGridPos.x+offset.x,agentGridPos.y+offset.y)
node = dict[key]

Good idea! But alas, there was no room in the budget for a custom pathfinding solution. My super advanced & complicated obstacle avoidance system was “If I’m stuck: Try moving a little to the right” lol

Perhaps in a future incarnation. Thanks for the tip!

wkk showed me a technique using an executor, and ‘jobs’ that use executor await,

this means you can control how much time the agent uses per frame and they can think over x frames,

it’s super useful for all sorts of things(pathfinding especially*)

I will try and dig it up*