Dear FD: How To Code Realistic Spawns, Sincerely: Another Game Developer.

@askavir, @wstephenson

How about if local GalNet and/or station announcers in High Sec systems gave warnings about, say, "increased pirate activity in [neighboring Low Sec system]. Pilots are advised to avoid"?

Then the information is available and flagged for new Cmdrs without being totally 'in your face'.

+1

That would cover it provided they made it REAL and not just a matter of "stroll in there harmless and get a few harmless NPCs to practice on" but "wander in competent or better and get swarmed with engineered elites" - scaling spawns to player rank really did throw a huge wrench in making the system security levels and states mean anything. All that they change now is the rate, not what you're likely to get. If nothing else it needs to have the relative weight of the two factors substantially readjusted.
 
@askavir, @wstephenson

How about if local GalNet and/or station announcers in High Sec systems gave warnings about, say, "increased pirate activity in [neighboring Low Sec system]. Pilots are advised to avoid"?

Then the information is available and flagged for new Cmdrs without being totally 'in your face'.

That kind of stuff would be great, it makes the world feel much more alive (I loved the introduction of the ATC). Even the station's news could have such kind of things.
 
Part of me wants to see a dev drop by and post 20 pages of code in a spoiler tag, with the comment to the affect of:

"Here you go, fix it!"

Z...
 
@askavir, @wstephenson

How about if local GalNet and/or station announcers in High Sec systems gave warnings about, say, "increased pirate activity in [neighboring Low Sec system]. Pilots are advised to avoid"?

Then the information is available and flagged for new Cmdrs without being totally 'in your face'.

As much as I do like the idea, Frontier would have to record the station announcers reading of every single star system in the bubble and Colonia; plus a single system could have dozen systems around it with increased pirate activity; which means that poor ATC would be waffling on in your ear as you tried to land. :D

Perhaps modify the HUD instead? Like, the target reticle could change colour depending on the state. Green = High, Blue = Medium, Orange = Low, Red = Anarchy.
Or maybe the reticle could expand with additional information written beside it if the Cmdr hits a "show more info" hotkey; or maybe even display a popup (as part of the hud) with system information that the Cmdr can use to make informed decisions.
 
As much as I do like the idea, Frontier would have to record the station announcers reading of every single star system in the bubble and Colonia; plus a single system could have dozen systems around it with increased pirate activity; which means that poor ATC would be waffling on in your ear as you tried to land. :D

Good point.
Maybe the announcer could just say "Pirate activity in neighboring systems presents a significant threat. See Station News for details."
That way it's just a generic message, but it points you towards where the details are.

It could be even be extended to be state dependent - assuming that states affected the NPC spawn too - so you wouldn't need to use 3rd party tools or complicated Galmap filters to find the systems you want to farm mats in.
 
Good point.
Maybe the announcer could just say "Pirate activity in neighboring systems presents a significant threat. See Station News for details."
That way it's just a generic message, but it points you towards where the details are.

It could be even be extended to be state dependent - assuming that states affected the NPC spawn too - so you wouldn't need to use 3rd party tools or complicated Galmap filters to find the systems you want to farm mats in.

GalNet would need a face-lift to enable users to find the information easily, but I'm good with that. It's brief, it highlights the point, and then directs the player where to look. [up]
A section of the Galnet could be labeled "Current System // {SYSTEM_NAME}" and show you all the information for that system; including the neighbouring systems currently being gank...er... harassed by pirates. :D
 
Last edited:
Where are you?
What are you doing?
What is your rank?
What is your ship?
Are you in Open or in Solo?
How many people are in your instance?

And you also need some variety so the pattern doesn't become obvious.

PS
No offence OP, but you just described how to spawn or not spawn a harmless sidewinder pilot who doesn't know what he wants. It's not that easy, or if you want it to be that easy the game would be actually worse. ;)

For what I know, three of those questions don't matter as the game doesn't consider them and a PRNG doesn't have a recognizable pattern unless you know the seed and it's function.
 
@askavir, @wstephenson
How about if local GalNet and/or station announcers in High Sec systems gave warnings about, say, "increased pirate activity in [neighboring Low Sec system]. Pilots are advised to avoid"?

Inbox messages could be used to push this to new/Harmless players, in-universe.

If I was really serious about it, generate a Ship Loss Register for this and neighbouring systems, that would indicate local danger hotspots, and also be a source of salvage missions.

More generally, I'd like us to have something like the NOTAM (NOTice to AirMen) system for Nav Beacons to squawk important system-wide warnings to the inbox on arrival. Only for big and exciting stuff like station attacks from Thargoids, exclusion zones for systems in a state of war, Outbreaks with quarantine, or if player ship losses in a system exceed a percentage of player visits, for 'exceptional criminal activity' ;).
 
Part of me wants to see a dev drop by and post 20 pages of code in a spoiler tag, with the comment to the affect of:

"Here you go, fix it!"

Z...

It would, in seriousness, hopefully not be code. It looks like encounter behaviour is being capped for me and other players at some sort of maximum value, which guarantees a wing of 1 or more ships to always be spawned within the current "hazardous" instance with the specific intent of harassing the instance owner's ship. The fix as has been stated, is likely to involve creating a more varied series of spawn and npc behaviours.
 

Rafe Zetter

Banned
You know, everyone loves it when you tell them how to do their job. Especially when done in public.

Was the OP supposed to travel to FDev's offices and do it in person, or somehow manage to get a personal email for the person(s) in question responsible for the NPC spawning system and do it that way?

OR should he use the forum as it's intended.

Technically you might argue that he should put his suggestion in the "suggestions" section of the forum, but we all know how much attention FDev pays to that after the DDF fiasco.
 

Jex =TE=

Banned
Hi Friends!

You know what grinds my gears? Terrible enemy spawn mechanics! You know the kind I mean - the sort where poor programming leads to a very obvious maintenance of the same number(s) of enemies no matter what you, the player, try to do. For example, Ngalia. Oooh Ngalia. You would think that a Compromised Nav Beacon wouldn't spawn police, but you would be wrong! They are called bounty hunters, and for the last two hours they have spawned consistently and relentlessly - always one wing, always close to my ship, always scanning me first. This mechanic is not exclusive to compromised nav beacons, it's pretty much a staple throughout encounters in Elite. In asteroid fields for example, you will always have at least one ship coming to harass you. Near certain bases marked as "impossible to beat solo", you will *always* have at least one fighter hanging around. It seems to me, that someone at Frontier forgot to code some decent spawn mechanics. So without further ado ladies and gentlemen, I, a fellow game developer, present to you and Frontier - a nicer way to spawn enemies!

spawnCountDown = minSpawnTime + rand() % (maxSpawnTime - minSpawnTime);

There you go! Easy isn't it? Obviously, timing is in milliseconds.

You are welcome.

In Cambridge, eye-brows were raised and gasps of realisation heard for miles...
 
I am always curious how games generate their pseudo random numbers and how/if they seed and how they seed the prng. Do game programmers ever use code like the Mersenne Twister or some newer block of code with an innovative method to seed instead of using the built-in rand functions of C++, C# or whatever is used.

Interesting reading .
 
Last edited:
If someone's PC crashed that often...they should give up or git gud.

Well my gameplay suffers from regular network disconnects, in bad periods it can be every 5 mins or so.
After being thrown back to the main menu, it can take as little as 2-3 seconds before everything re-connects so I've not yet managed to tracert to find out where the offending disconnect occurs.

So please tell me how you are going to distinguish my ISPs service issues from other activity?
 
I am so incredibly curious as to which game the OP has helped being developed.........

Some insight in this would realy help his credibility imho.
 
I am always curious how games generate their pseudo random numbers and how/if they seed and how they seed the prng. Do game programmers ever use code like the Mersenne Twister or some newer block of code with an innovative method to seed instead of using the built-in rand functions of C++, C# or whatever is used.

Interesting reading .

Personally I use whatever the API I'm using gives me, as I'm not generating numbers at a high enough frequency to see obvious repetition. I once built a large terrain generator that used a noise texture filtered at different resolutions to create a natural looking terrain. The texture was small but the number of lookups per vertex was enourmous.

At work we use a very wacky and proprietary solution which I wouldn't be able to discuss here. Suffice to say that you want to find a source of information that is as unpredictable as possible to base your algorithm off of. Weather data is a popular one for this, or even network traffic.

I am so incredibly curious as to which game the OP has helped being developed.........

Some insight in this would realy help his credibility imho.

My job requires a high level security clearance. So nope :p
 

Sir.Tj

The Moderator who shall not be Blamed....
Volunteer Moderator
I'd offer to change the code for you, but having checked with the development team this is apparently not something I should do. Probably for the best. If I touch code it'll likely result in all credits being wiped from the game. You probably don't want that, but maybe I'm wrong!

#iblamedale #notmyfault

Hi there,

We're absolutely certain, we tested.

https://imgs.xkcd.com/comics/random_number.png
(https://xkcd.com/221/)

Thanks,
Dom

No comment :D
 

Jex =TE=

Banned
I would like to have NPCs that spawned not according to player's ranks or ships, but according to the environment (BGS, type of location + some degree of randomness).

In fact, having NPCs spawn according to player rank and ships was one of the changes I disliked the most since the game was released. Makes the world feel much more game and much less natural.

Instead of creating NPCs for the player, NPCs should be created for the environment, and those NPCs would then react to the player AND other NPCs in a natural way.

But ED universe doesn't pander to the player.....

One of the big issues with ED AI is that it's tailored exactly to the player and that needs to change. What should then happen is that the AI wil ldecide if it wants to interact with the player based on certain values.

So if a bounty hunter in a cobra comes up against a villain in an Ana, there's a high chance he won't attack. Now if the Cobra pilot was really skillful that might up the chances. The same would work in reverse, a top AI bounty hunter might not bother with a player with a tiny bounty.

You then spawn the AI as would be appropriate for the system it's in and player be damned, which is how the game is marketed.

So ED is tailored right around the player from AI spawning to CG's being manipulated to the players favour.
 
I'm not a programmer but would this piece of code work?

ShipEncounter
SpawnEnemy
IF enemy = moron THEN
DeleteEnemy
Goto ShipEncounter
ELSE continue
END ShipEncounter

I'm getting the hang of things, this programming lark isn't too hard.

:)
 

Jex =TE=

Banned
I'm not a programmer but would this piece of code work?

ShipEncounter
SpawnEnemy
IF enemy = moron THEN
DeleteEnemy
Goto ShipEncounter
ELSE continue
END ShipEncounter

I'm getting the hang of things, this programming lark isn't too hard.

:)

Well, in the end it is all just 1's and 0's :p
 
Back
Top Bottom