Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Post
  • Reply
Zaphod42
Sep 13, 2012

If there's anything more important than my ego around, I want it caught and shot now.

The Titanic posted:

I would say the ability for a player to walk around an object moving at a high speed.

In many games when you do this the place you are in is usually some separate map, and there are creative render to texture windows that allow a user to look outside and appear to be part of the area they believe they are in. Or the world starts to move around the map to signifying movement.

The major problem with this method though is your math for the players and the objects inside the ship all need to inherit the vectors of the ship itself. Any mistakes there and obviously you have clipped outside of the bounds of the ship.

Getting all of this to work in an arena game is interesting as well (it's not an MMO, sorry).

I'm sure there is a tremendous amount of logic and calculations for this to even kind-of work in SC, but even then it is error prone and causes a lot of issues. I'm not sure how they'll keep this working if they ever try to actually build an MMO, just keeping up with ship data and shooting at each other is probably more than enough for servers to handle, trying to keep it a twitch based shooter MMO... no idea. :dukedoge:

You may be right that this is novel to SC (I'm not sure it is though... I have a feeling some indie tech demo has done this long before SC but I can't think of an exact example)

The problem though is that CIG didn't develop new technology to tackle this problem. They just kludged things together. Hence everything running like rear end and people falling through the stairs half the time.

As such... I don't think you can count it as novel tech? Its not really tech. Its a novel.... pile of half-working game scripts. Which were poorly architected and will never scale. Is that tech?

E: Oh, Halo is one example, the Scarab. It was a bit of a mess in Halo but that is an example of players in a multiplayer game moving on an object which it itself moving, and they inherit its movement velocities, and you stick inside the scarab and it works. Its not a spaceship but hey. The Halo Scarab doesn't use the render to texture trick that most games do AFAIK.

Adbot
ADBOT LOVES YOU

TheDeadlyShoe
Feb 14, 2014

x4 uses a sort of layered simulation where events near the player are run at high fidelity but events far away our outside the current area are updated less frequently and in less detail. Most obviously, actual physics are only calculated relatively near the player or the camera, and certain static objects such asteroids literally do not even exist unless the player is nearby. Instead they are abstracted into fields which NPCs can interact with at low fidelity without having to actually engage in high-fidelity mining behavior.

The difference between this and Star Citizen is that everything in X4 exists in the same simulation layer. You can look at your map and see a ship mining ore or pirates attacking a freighter on the other side of the universe, while Star Citizen's "agents" exist only in the background simulation and can only be interacted with as dynamically generated events. That is, if that whole thing worked, which I don't think it does.

TheDeadlyShoe fucked around with this message at 18:32 on Jan 18, 2021

Zaphod42
Sep 13, 2012

If there's anything more important than my ego around, I want it caught and shot now.

The Titanic posted:

It is. Though I believe in those games you have "hot spots" where your player can attach to, rather than freedom of movement. I could be wrong though.

This is like saying Mass Effect was bad because your ship was a map and you didn't move around in it as it flew around.

I would not have wasted 10 years of making a game to get some tiny feature that doesn't actually add gameplay to the game to work, and even after 10 years it's still very very buggy, and probably contributes to server crashes.

Methods like how Subnautica did it are perfectly acceptable and still very real and fidelity-filled.

I feel like what they've done is essentially ensure their original goal can never be achieved (an MMO space game with fleet size battles, etc etc).

yeah games like that you effectively "become" the car, its not quite the same thing as being able to walk around inside the decks of the ship while it flies.

Just Cause has greater performance than SC ever will though because they thought about the game's requirements BEFORE picking an engine lmao.

Zaphod42
Sep 13, 2012

If there's anything more important than my ego around, I want it caught and shot now.

The Titanic posted:

Also on a smaller level of "inside a ship", X4 has already done this. You can move around inside your ship, watch some npc pilot your ship for you, talk to npcs, and even go EVA and do stuff. You can also land and take off from your space carriers.

I guess it must suck for CIG to be one-upped by Egosoft but they did in that circle.

Yeah but are they using render to texture? They probably are? Or does the ship's movement mean you can be thrown around inside the ship?

(Even if it does, there's ways to achieve that with render-to-texture, which is why nobody does it the hard way like this, CIG always does things as difficult as possible)


Yeah but you don't know how that's implemented.

(But then, that's the thing Chris never understood. As long as the game works and has the right features, nobody cares if there's actual atoms or not)

peter gabriel
Nov 8, 2011

Hello Commandos
Zaphod42 makes a great point, let's not confuse things that have 'never been done before' with things CI¬G has tried and failed to do

Baby Proof
May 16, 2009

Scruffpuff
Dec 23, 2015

Fidelity. Wait, was I'm working on again?

The Titanic posted:

Another bit of technology I would say CIG is trying is to use the actual location of a player for math instead of retargetting the world around the player as they move to some set distance.

This may because they don't know how to retarget in a multiplayer game yet, or if that can even be done.

The reason you want to retarget is because your "level" can only be so big, and as you get to the outer edges your math starts to get bad faster because the engine is crunching much higher and more sensitive numbers.

So ultimately you have multiple levels in a big game, and the world revolves around the player, and they can freely enter or exit these levels as they move without going hugely beyond what the engine can calculate for math. In really huge games, I would imagine they've obscured these level locations to just being math themselves. So instead of actually having Alpha Aqua 3 in some level editor, some table says it is at XYZ, and as the player gets close to this master XYZ, Alpha Aqua 3 spawns in.

Another method around this is to have a difference between "big picture" and "level" sizing, so when you are moving between levels you're actually on a totally different map, and when you come out you are at whatever tiny part of the map you may be in, but the macro and micro never really mix too much.

Somebody with better knowledge here can chime in. I'm not a super expert on solar-system spanning kinds of games.

Some space games don't use a map at all. They just keep a single set of coordinates that represent "you." Then there is a library of objects out in space, they all have their own coordinates, and when your coordinates are close enough to theirs, they are rendered appropriate to your relative position. The illusion is effective.

That's how games like Elite fit on diskettes back in the day. There was literally no "map" per se, just some X, Y, and Z coordinates (and a few others for your directional facing and roll) and stars that animated if your coordinates were actively changing.

Taintrunner
Apr 10, 2017

by Jeffrey of YOSPOS
New space game everspace 2 now available in early access, gonna check it out

https://www.youtube.com/watch?v=fuygGFteHpY

Makes Star citizen look pretty dated!

The Titanic
Sep 15, 2016

Unsinkable

peter gabriel posted:

Zaphod42 makes a great point, let's not confuse things that have 'never been done before' with things CI¬G has tried and failed to do

That's probably a whole other level of discussion that's been the ongoing onslaught. :)

Just because CIG has *tried* to do these things, none of them have been implemented in a way that actually works without error or user confusion / interruption /dissatisfaction.

This is kind of CIGs brand of "name it claim it" almost where they claim to have done these things but really all they have is some scripts in an old CryEngine version that is more or less a tech demo or proof of concept rather than a working implementation.

And if they were following design patterns, with the failing POC you would be changing direction, not ploughing forwards despite the failure.

But the actual end goal of SC has never been shared. Is it some kind of drop-in-drop out party game with a single player focus or arena style matching? Is it supposed to be some kind of Eve MMO with twitch style Planetside action? Is it a Sims game where you just tend meters and advance by just existing in time?

Don't know. :iiam:

Had CIG ever done a design document, we might know what it was/is supposed to be and what the game was supposed to be.

At this point, I feel like it's just a bunch of Skyrim modders throwing all their mods together and wondering why their 4K strawberry textures are causing problems with the other guys' 8K parallax tree mod and the girl trying to make fidelitous cum stains is just crying in the corner over her loverslab account because the physics engine doesn't do what it was supposed to do according to Eltons update last week and she had built it to the newest version in git which was actually old because they were all working on another branch they merged in yesterday.

Zaphod42
Sep 13, 2012

If there's anything more important than my ego around, I want it caught and shot now.

The Titanic posted:

Just because CIG has *tried* to do these things, none of them have been implemented in a way that actually works without error or user confusion / interruption /dissatisfaction.

This is kind of CIGs brand of "name it claim it" almost where they claim to have done these things but really all they have is some scripts in an old CryEngine version that is more or less a tech demo or proof of concept rather than a working implementation.

And if they were following design patterns, with the failing POC you would be changing direction, not ploughing forwards despite the failure.

Exactly. All they've really innovated is how not to solve these problems.

Even the things they want to implement, like server meshing, are things which were solved literal decades ago. I consulted with IBM about best practices on MMO server architecture in ~2008 and these were established concepts back then.

Just because there's no space sim in the industry with 1,000+ players in one space doesn't mean nobody in the industry has yet worked out how it would be done. They just didn't get funding.

DarkDobe
Jul 11, 2008

Things are looking up...

Taintrunner posted:

New space game everspace 2 now available in early access, gonna check it out

https://www.youtube.com/watch?v=fuygGFteHpY

Makes Star citizen look pretty dated!

To be fair the original Everspace made SC look dated.

Antigravitas
Dec 8, 2019

Die Rettung fuer die Landwirte:

The Titanic posted:

If I had to guess it's a lot of assumption programming mixed with an agent system.

Like an agent goes into the mines, every X seconds they have a Y chance of taking some kind of damage.

I don't mean the abstraction of the simulation away from the player's position, that's been a staple of the series for ages.

There's a sector that has the answer to "how do you use mines in space": A gigantic fuckoff cloud of mines, just unfathomably large. You can fly your own ship into the mine field. As you get closer your entire view is filled with thousands of tiny little blips. If you get too close, individual mines will start homing in on you and explode if you don't shoot them down.

They are not simulating billions of mines so there must be a trick. I just can't figure out how they transition from the abstract ("here be a cloud of mines in a volume of 500km * 500km * 500km, each mine spaced ~200m apart") to actual objects that can be interacted with, seamlessly, as the player gets close enough.

The Titanic
Sep 15, 2016

Unsinkable

Scruffpuff posted:

Some space games don't use a map at all. They just keep a single set of coordinates that represent "you." Then there is a library of objects out in space, they all have their own coordinates, and when your coordinates are close enough to theirs, they are rendered appropriate to your relative position. The illusion is effective.

That's how games like Elite fit on diskettes back in the day. There was literally no "map" per se, just some X, Y, and Z coordinates (and a few others for your directional facing and roll) and stars that animated if your coordinates were actively changing.

This is correct. :)

This was, I feel, some of the creativity that was also killed when computers became more powerful.

People like CR, instead of trying to be creative with how to get around a limitation, just announced the limitation as "not my fault, guess technology just isn't up to where *I* am as a developer because I'm just that advanced!"

When the reality is the opposite is true.

Creative developers make things work on existing technology in ways you never thought possible.

Others don't. These guys are not actually breaking any new ground, they are just too dumb to figure out creative solutions and have given up. Wait for computers to be strong enough to brute force their ineptly and poorly designed method.

Zaphod42
Sep 13, 2012

If there's anything more important than my ego around, I want it caught and shot now.

Antigravitas posted:

One effect I haven't been able to figure out yet is how they manage to have clouds of billions of homing mines in the game. It's not hard to render billions of mines, but having them actually move and explode, and being able to carve a corridor through them? No idea how they're doing that without the game melting to slag.

Antigravitas posted:

I don't mean the abstraction of the simulation away from the player's position, that's been a staple of the series for ages.

There's a sector that has the answer to "how do you use mines in space": A gigantic fuckoff cloud of mines, just unfathomably large. You can fly your own ship into the mine field. As you get closer your entire view is filled with thousands of tiny little blips. If you get too close, individual mines will start homing in on you and explode if you don't shoot them down.

They are not simulating billions of mines so there must be a trick. I just can't figure out how they transition from the abstract ("here be a cloud of mines in a volume of 500km * 500km * 500km, each mine spaced ~200m apart") to actual objects that can be interacted with, seamlessly, as the player gets close enough.

The answer is basically what NMS does. A sort of procgen. You do it algorithmically in a way that's deterministic.

You don't have billions of mines at all. You have a big cube (very cheap) that says "inside me there's mines at a density of x per y feet cubed". There are no real mines at all. Its empty space. If you need to, you render a fake mine cloud using a sprite, or using particles, or some custom shader effect, but its just dots for visuals.

When you actually get inside the cube space, the client starts creating mines all around you, because it knows you're inside the cube. They don't exist until you get close enough to the cube that they have a chance to interact with you. You continue to use the billboarded sprite or particles to fake that there are many more mines in the distance, but really there aren't. There's just a small localized cloud of mines being spawned around your ship, and if you go further into the cube it keeps spawning further mines around you as you go, and cull mines that fall far enough behind you.

The hard part would be making it look really seamless but depending upon how you implement the fake billboards you can either delete a sprite and pop a mine there, or delete a particle and pop a mine there, etc.

The Titanic
Sep 15, 2016

Unsinkable

Antigravitas posted:

I don't mean the abstraction of the simulation away from the player's position, that's been a staple of the series for ages.

There's a sector that has the answer to "how do you use mines in space": A gigantic fuckoff cloud of mines, just unfathomably large. You can fly your own ship into the mine field. As you get closer your entire view is filled with thousands of tiny little blips. If you get too close, individual mines will start homing in on you and explode if you don't shoot them down.

They are not simulating billions of mines so there must be a trick. I just can't figure out how they transition from the abstract ("here be a cloud of mines in a volume of 500km * 500km * 500km, each mine spaced ~200m apart") to actual objects that can be interacted with, seamlessly, as the player gets close enough.

A lot of this could be handled with boundaries. Object A is inactive until you cross this boundary.

There are also lots of ways of grouping objects together and such too. Look up hierarchical lod and such and there's lots of information on how to make lots and lots of objects be super performant in modern game engines. :)

Zaphod42
Sep 13, 2012

If there's anything more important than my ego around, I want it caught and shot now.

Scruffpuff posted:

Some space games don't use a map at all. They just keep a single set of coordinates that represent "you." Then there is a library of objects out in space, they all have their own coordinates, and when your coordinates are close enough to theirs, they are rendered appropriate to your relative position. The illusion is effective.

That's how games like Elite fit on diskettes back in the day. There was literally no "map" per se, just some X, Y, and Z coordinates (and a few others for your directional facing and roll) and stars that animated if your coordinates were actively changing.

Uh, as opposed to what? That's how all game engines work. That's what a map is. A counter-strike map is just a series of objects and coordinates saying "there is a trash bin at x,y,z, there is a door at x,y,z" and your rendering engine handles the rest.

Not sure what you're referring to here as the "map" that you would go without having. Physical space?

Or do you just mean a star-chart of the places you can go?

Zaphod42
Sep 13, 2012

If there's anything more important than my ego around, I want it caught and shot now.

The Titanic posted:

This is correct. :)

This was, I feel, some of the creativity that was also killed when computers became more powerful.

People like CR, instead of trying to be creative with how to get around a limitation, just announced the limitation as "not my fault, guess technology just isn't up to where *I* am as a developer because I'm just that advanced!"

When the reality is the opposite is true.

Creative developers make things work on existing technology in ways you never thought possible.

Others don't. These guys are not actually breaking any new ground, they are just too dumb to figure out creative solutions and have given up. Wait for computers to be strong enough to brute force their ineptly and poorly designed method.

That's not the fault of technology changing over time. The same is as true now as it was 40 years ago; smart people find ways to engineer solutions, ..... not-smart people don't.

The problem here isn't that technology has changed and allowed Chris to be naive. The problem is that Star Citizens have given Chris more money than he has any right to deserve in order to go hang himself with.

Go back 40 years and give young Chris Roberts $500M and say "you don't owe any publisher, do whatever you want" and you'll get EXACTLY the same results.

The Titanic
Sep 15, 2016

Unsinkable

Zaphod42 posted:

The answer is basically what NMS does. A sort of procgen. You do it algorithmically in a way that's deterministic.

You don't have billions of mines at all. You have a big cube (very cheap) that says "inside me there's mines at a density of x per y feet cubed". There are no real mines at all. Its empty space. If you need to, you render a fake mine cloud using a sprite, or using particles, or some custom shader effect, but its just dots for visuals.

When you actually get inside the cube space, the client starts creating mines all around you, because it knows you're inside the cube. They don't exist until you get close enough to the cube that they have a chance to interact with you. You continue to use the billboarded sprite or particles to fake that there are many more mines in the distance, but really there aren't. There's just a small localized cloud of mines being spawned around your ship, and if you go further into the cube it keeps spawning further mines around you as you go, and cull mines that fall far enough behind you.

The hard part would be making it look really seamless but depending upon how you implement the fake billboards you can either delete a sprite and pop a mine there, or delete a particle and pop a mine there, etc.

I would imagine it's basically like a 3D volumetric foliage system where the foliage can be actors that can activate within X distance from them; if you are there.

If you're not there and it's the math war, it's ship/pilot will do a mine check every Y seconds to see if they took damage from being inside the minefield volume.

The Titanic
Sep 15, 2016

Unsinkable

Zaphod42 posted:

Uh, as opposed to what? That's how all game engines work. That's what a map is. A counter-strike map is just a series of objects and coordinates saying "there is a trash bin at x,y,z, there is a door at x,y,z" and your rendering engine handles the rest.

Not sure what you're referring to here as the "map" that you would go without having. Physical space?

Or do you just mean a star-chart of the places you can go?

I think he's referring to the concept of having a map editor, where these things are placed by some person at that spot, vs the system being driven by just some list of arbitrary data and the "map" doesn't exist outside of you actually playing the game and interacting with the functions that create those items at those places.

BumbleOne
Jul 1, 2018

by Fluffdaddy

Popete posted:

I was hoping to see some actual footage of this race

this should be close enough

Zaphod42
Sep 13, 2012

If there's anything more important than my ego around, I want it caught and shot now.

The Titanic posted:

The reason you want to retarget is because your "level" can only be so big, and as you get to the outer edges your math starts to get bad faster because the engine is crunching much higher and more sensitive numbers.

The Titanic posted:

I think he's referring to the concept of having a map editor, where these things are placed by some person at that spot, vs the system being driven by just some list of arbitrary data and the "map" doesn't exist outside of you actually playing the game and interacting with the functions that create those items at those places.

But the problem that you mentioned about having to have multiple levels because the "level" gets too big...

That still applies to the case where objects are "just X,Y,Z positions on a disk" like in Elite. If the X values get too large, you can't store them in a single register and you get performance problems. So then you get into the issues of either using floats, scaling everything, or using multiple "level" spaces to chunk things.

There is no "map". That issue exists period, and has to be solved. Storing "just x,y,z positions" doesn't really solve this issue in itself. You still need some solution to those co-ordinates being possibly insanely large. There's lots of ways to skin that cat, but "no map" isn't really one of them.

Is the data of where the editor placed an object not itself arbitrary data? Either I'm missing something here or you guys have confused some concepts. I don't see why having an editor changes anything. And if you don't have an editor then your objects are just randomly placed? That seems pretty weak, but doesn't actually solve any problems whatsoever related to space co-ordinate scale.

quote:

So instead of actually having Alpha Aqua 3 in some level editor, some table says it is at XYZ, and as the player gets close to this master XYZ, Alpha Aqua 3 spawns in.

This doesn't help your game performance whatsoever. The only reason to do this would be if your level editor... sucked. The level editor is just a program that lets you drag things around in space and then when you're done and hit save, it writes to disk "Alpha Aqua 3 is at XYZ". That's what it does.

I guess you're saying "don't have multiple levels" but you can't have a video game without any "level" at all. You can't have 0 levels. You can have 1 level or you can have multiple. But that "this is at XYZ" has to be written somewhere and loaded by the game, and that thing that is loaded, that's a "level" no matter how you slice it.

The only alternative to that is a purely procgen system like NMS where nothing is outright stated as "at XYZ" but instead you just have algorithms that are constantly crunched and always return the same random data, which "01 02 04 05" would become "one planet at 2,4,5" so it isn't actually written, its generated randomly. That's the only way you can avoid writing positions to disk. But if you have a file with positions on the disk, that's a level.

Zaphod42 fucked around with this message at 20:43 on Jan 18, 2021

The Titanic
Sep 15, 2016

Unsinkable

Zaphod42 posted:

That's not the fault of technology changing over time. The same is as true now as it was 40 years ago; smart people find ways to engineer solutions, ..... not-smart people don't.

The problem here isn't that technology has changed and allowed Chris to be naive. The problem is that Star Citizens have given Chris more money than he has any right to deserve in order to go hang himself with.

Go back 40 years and give young Chris Roberts $500M and say "you don't owe any publisher, do whatever you want" and you'll get EXACTLY the same results.

Well, for the industry I feel that people rely on the power of modern computing to hammer their way through code that is terrible, basically relying on brute force methods to handle things, instead of coming up with hugely performant and elegant solutions that run better and faster.

Computers are pretty strong and can really make terrible code still work.

Until you fill up a whole game with terrible code, this usually isn't a problem; until it is. Then you're too far down the rabbit hole at that point.

I don't believe CR was ever really the programming wonder kind, or if he was, it was for a very brief period before he adopted into cinematic sequences and stories.


It's just disappointing that Elite or Starflight could hold an entire universe that in some cases you could get on planets and explore, on like an old floppy disk or two; and Star Citizen with millions of gigs can't have near the depth.

But at this point point though I don't think Star Citizen is about making a game any more, it's just about kicking the money can down the road. So a most of these conversations are just pointless anyhow.

"Will it make money or appear that we are further along than we are to attract new money? Yes? Do it."

Doesn't matter how buggy or broken it is, or that it will ever even be fully implemented. There's always the next thing to attract more money with. :homebrew:

BumbleOne
Jul 1, 2018

by Fluffdaddy

peter gabriel posted:

Instead of normal 0's and 1's for bits we could use 8's and call them Octas, it's very clever you see as you get 8 times as much data.
If you need to use 1 bit? Well, erm, I dunno, but it's better!

you sir are on the right track, i have another idea. so humanking invented the decimal system, because we have 10 fingers, so naturally our math is based around the number 10.

if we created mutants with lets say 50 fingers on each hand...imagine what they could achieve! they could use superior math.
theyd reach andromeda in no time.

The Titanic
Sep 15, 2016

Unsinkable

Zaphod42 posted:

But the problem that you mentioned about having to have multiple levels because the "level" gets too big...

That still applies to the case where objects are "just X,Y,Z positions on a disk" like in Elite. If the X values get too large, you can't store them in a single register and you get performance problems. So then you get into the issues of either using floats, scaling everything, or using multiple "level" spaces to chunk things.

There is no "map". That issue exists period, and has to be solved. Storing "just x,y,z positions" doesn't really solve this issue in itself. You still need some solution to those co-ordinates being possibly insanely large. There's lots of ways to skin that cat, but "no map" isn't really one of them.

Is the data of where the editor placed an object not itself arbitrary data? Either I'm missing something here or you guys have confused some concepts. I don't see why having an editor changes anything. And if you don't have an editor then your objects are just randomly placed? That seems pretty weak, but doesn't actually solve any problems whatsoever related to space co-ordinate scale.


This doesn't help your game performance whatsoever. The only reason to do this would be if your level editor... sucked. The level editor is just a program that lets you drag things around in space and then when you're done and hit save, it writes to disk "Alpha Aqua 3 is at XYZ". That's what it does.

I guess you're saying "don't have multiple levels" but you can't have a video game without any "level" at all. You can't have 0 levels. You can have 1 level or you can have multiple. But that "this is at XYZ" has to be written somewhere and loaded by the game, and that thing that is loaded, that's a "level" no matter how you slice it.

The only alternative to that is a purely procgen system like NMS where nothing is outright stated as "at XYZ" but instead you just have algorithms that are constantly crunched and always return the same random data, which "01 02 04 05" would become "one planet at 2,4,5" so it isn't actually written, its generated randomly. That's the only way you can avoid writing positions to disk. But if you have a file with positions on the disk, that's a level.

:same:

Antigravitas
Dec 8, 2019

Die Rettung fuer die Landwirte:

Zaphod42 posted:

There's just a small localized cloud of mines being spawned around your ship, and if you go further into the cube it keeps spawning further mines around you as you go, and cull mines that fall far enough behind you.

The hard part would be making it look really seamless but depending upon how you implement the fake billboards you can either delete a sprite and pop a mine there, or delete a particle and pop a mine there, etc.

The fun thing there is that they must keep a list of destroyed mines in memory for quite a while. You can fly quite far, clearing mines on the way, and then fly back through the tunnel you've created. So each time they create a physical mine they must also look up whether a mine had previously been generated there and subsequently moved or was destroyed.

All that work for a fairly minor effect, though it's really impressive seeing it the first time.

I suspect they reused a lot of it for asteroid fields. Or vice versa.

dieselfruit
Feb 21, 2013

Mirificus posted:

quote:

quote:
Bit precision.

32 bit: 1032

64 bit: 1064

If you can get either of those to fit on a calculator, you can see that there is many more possible positions for something to be.

You know when you take a very small jpeg and expand it to be a really large image and it stretches? ‘Cause the bigger something is, the more “pixels” you’d need to keep resolution? Well, you want the ability to animate (move from one frame to the next) in a large area to not be once every few feet. You still want that fractions of inch resolution, even when in a giant system that’s millions of km high, wide, and deep.
Imagine 64 bits on the edge of a cliff

Taintrunner
Apr 10, 2017

by Jeffrey of YOSPOS

DarkDobe posted:

To be fair the original Everspace made SC look dated.

The fun thing is that EV1 was a roguelike, and the sequel is a full on Freelancer-like.

Zaphod42
Sep 13, 2012

If there's anything more important than my ego around, I want it caught and shot now.

The Titanic posted:

Well, for the industry I feel that people rely on the power of modern computing to hammer their way through code that is terrible, basically relying on brute force methods to handle things, instead of coming up with hugely performant and elegant solutions that run better and faster.

Computers are pretty strong and can really make terrible code still work.

Until you fill up a whole game with terrible code, this usually isn't a problem; until it is. Then you're too far down the rabbit hole at that point.

I mean... yes and no. Every video game ever released has really inefficient code. If it only runs one time in one level, nobody loving cares. It doesn't matter.

Donald Knuth famously said “Premature optimization is the root of all evil”, and I assure you he knows more about CompSci than you or I ever will in our lifetimes. :cheeky:

Young programmers are all about that "elegant" code, but the reality is life isn't that black and white. Many times "inelegant code" is actually preferable because the alternative isn't a perfect game, its missing deadlines and cancelling the project.

If you want all elegant code you have to move to business software where people spend a whole year just maintaining a couple of basic algorithms for calculating the cost of your online store purchase. Videogames just don't really do that, fundamentally.

Which isn't to say videogames don't have some elegant code, but the thing is you only do it where you really need it. Bottlenecks. Your hot spots. You do profiling. You think about what your game engine needs to be really performant on, and what doesn't. This is why things like rendering and physics have common industry solutions that are really well designed, but the rest of the game can be thrown together on top. Its not that its necessarily "lazy". You could call it "time efficient" or "salary efficient".

I don't know, I think just saying "terrible code" is massively oversimplifying the realities of game development.

CIG's problem isn't just that they're using powerful computers to be less efficient. If SC was everything it claimed to be, but ran at 20fps on a 3080 and needs a future computer to run at 60fps, that'd be one thing. But they haven't even implemented 10% of the promised features of the game. Their issues are much bigger than anything like that. They aren't even trying to design features, much less code them. Even inefficient code would be a huge improvement on what they have, which is a model viewer.

The Titanic posted:

I don't believe CR was ever really the programming wonder kind, or if he was, it was for a very brief period before he adopted into cinematic sequences and stories.

Nah he definitely never was.

Zaphod42
Sep 13, 2012

If there's anything more important than my ego around, I want it caught and shot now.

Antigravitas posted:

The fun thing there is that they must keep a list of destroyed mines in memory for quite a while. You can fly quite far, clearing mines on the way, and then fly back through the tunnel you've created. So each time they create a physical mine they must also look up whether a mine had previously been generated there and subsequently moved or was destroyed.

All that work for a fairly minor effect, though it's really impressive seeing it the first time.

I suspect they reused a lot of it for asteroid fields. Or vice versa.

That is pretty impressive. You can still fake it in a number of ways other than recording every exploded mine in memory, you could record where the player has been for the last X minutes and then if they go within Y distance of those points, just don't calculate mines and assume that the player already dealt with them in that area. Would the player really notice if a *specific* mine spawned again or not if you're flying around space with thousands of mines in a cloud? You can fudge it and get away with it. But they may actually be remembering all the mines, I can't say.

Its all tradeoffs of performance vs fidelity. There's a lot of ways you can approach things like that. Like someone said earlier, they could just do damage over time if you fly through the mine cube, but then you don't actually see individual mines chasing you and blowing up on your ship hull. Its just like, how much detail do you need and what are the best shortcuts to getting all those things but nothing else.

Like, is it possible to trigger a mine to follow you but then escape it without ever having it blow up? If so then the simple "has the player passed through here" logic doesn't work anymore... etc. etc.

commando in tophat
Sep 5, 2019

Bumble He posted:

you sir are on the right track, i have another idea. so humanking invented the decimal system, because we have 10 fingers, so naturally our math is based around the number 10.

if we created mutants with lets say 50 fingers on each hand...imagine what they could achieve! they could use superior math.
theyd reach andromeda in no time.

Well, Sumerians used base 60 and it did gently caress all to help them :colbert:

Beluga Snail
Jul 26, 2013

Random question - anyone have the source for the quote by the ex-Microsoft head that said the Digital Anvil acquisition had to be regarded as a failure? I'm compiling a bunch of Freelancer related sources illustrating the parallels and that's one I can't track down for some reason so I may have hallucinated it while enjoying my daily electroshock therapy that triples every second.

The Titanic
Sep 15, 2016

Unsinkable

Zaphod42 posted:

I mean... yes and no. Every video game ever released has really inefficient code. If it only runs one time in one level, nobody loving cares. It doesn't matter.

Donald Knuth famously said “Premature optimization is the root of all evil”, and I assure you he knows more about CompSci than you or I ever will in our lifetimes. :cheeky:

Young programmers are all about that "elegant" code, but the reality is life isn't that black and white. Many times "inelegant code" is actually preferable because the alternative isn't a perfect game, its missing deadlines and cancelling the project.

If you want all elegant code you have to move to business software where people spend a whole year just maintaining a couple of basic algorithms for calculating the cost of your online store purchase. Videogames just don't really do that, fundamentally.

Which isn't to say videogames don't have some elegant code, but the thing is you only do it where you really need it. Bottlenecks. Your hot spots. You do profiling. You think about what your game engine needs to be really performant on, and what doesn't. This is why things like rendering and physics have common industry solutions that are really well designed, but the rest of the game can be thrown together on top. Its not that its necessarily "lazy". You could call it "time efficient" or "salary efficient".

I don't know, I think just saying "terrible code" is massively oversimplifying the realities of game development.

CIG's problem isn't just that they're using powerful computers to be less efficient. If SC was everything it claimed to be, but ran at 20fps on a 3080 and needs a future computer to run at 60fps, that'd be one thing. But they haven't even implemented 10% of the promised features of the game. Their issues are much bigger than anything like that. They aren't even trying to design features, much less code them. Even inefficient code would be a huge improvement on what they have, which is a model viewer.


Nah he definitely never was.

I agree. I'm on the same side, friend. :)

I'd wager that SCs goal is to be an MMO with massive fleet battles ala Eve except with twitch based combat and the systems to make it fast and smooth and fun.

If you believe they are 10% of the way there, I'm all for it. My fear though is they have not even started thinking in terms of an MMO yet and those arrays of problems, and have basically extended out CryEngine multiplayer arena game as far as it can possibly go. Which I guess is an achievement, except for the myriads of bugs, crashes, and other nonsensical things.

Pixelate
Jan 6, 2018

"You win by having fun"

Beluga Snail posted:

Random question - anyone have the source for the quote by the ex-Microsoft head that said the Digital Anvil acquisition had to be regarded as a failure? I'm compiling a bunch of Freelancer related sources illustrating the parallels and that's one I can't track down for some reason so I may have hallucinated it while enjoying my daily electroshock therapy that triples every second.

This one in the Forbes piece?

quote:

Stuart Moulder, the Microsoft general manager who oversaw the software giant’s relationship with Digital Anvil, came to believe that Microsoft money intended for game development was instead used for the movie. “[Roberts’] energy and attention and some of the funds were siphoned off for that movie,” Moulder says. “The Digital Anvil investment has to be looked at as largely a failure.”

https://www.forbes.com/sites/mattpe...-ready-to-play/

The Titanic
Sep 15, 2016

Unsinkable
They just don't understand what it takes to be a code whisperer. :sureboat:

I'm sure John Carmack has a history of loving over people he's worked with by stealing their money for his true passion of making movies too.

Beluga Snail
Jul 26, 2013


That's the one, thank you! I don't know why I didn't check there, I was combing through old interviews from 2005-2006 looking for it, right alongside the court summons for CR and Ortwin in the tax fraud.

Beluga Snail fucked around with this message at 22:17 on Jan 18, 2021

Scruffpuff
Dec 23, 2015

Fidelity. Wait, was I'm working on again?

Zaphod42 posted:

Uh, as opposed to what? That's how all game engines work. That's what a map is. A counter-strike map is just a series of objects and coordinates saying "there is a trash bin at x,y,z, there is a door at x,y,z" and your rendering engine handles the rest.

Not sure what you're referring to here as the "map" that you would go without having. Physical space?

Or do you just mean a star-chart of the places you can go?

I'll try to explain. The really old poo poo (I'm talking late 70s early 80s) that did the "first person space game" had no map at all. None. It rendered a black screen and some dots, those were stars. The game kept track of coordinates, let's say you start at 0,0,0. Now you push your joystick forward for a while. While the computer detects input, it moves the little white dots to make it look like you're moving, but you're not. The game increases say the first value - you are at 1,0,0, then 2,0,0, then 3,0,0. You turn right and go forward more. 3,1,0 - 3,2,0 - 3,3,0 - and so on. The ONLY thing happening is a variable changing. You're not "moving" because there's no map. You're just changing numbers invisibly in RAM. You're not even stationary, because there's no map to be stationary in. You're looking at what amounts to a 2D animated screensaver. But the little stars moving creates the visual illusion of moving through space.

Now by itself nothing is happening yet. That's when you add an object to the diskette and say "oh there's a space station at 7,7,0" and if the player is within 2 numbers of each coordinate, put it on the screen. So you push forward and turn a bit until you're at 5,5,0 - now it puts a sprite on your screen where the space station would "be." Since you're 2 clicks out it's just a flat sprite. Push the joystick until your position is 6,6,0 and the sprite is replaced with a bigger one. Note that you didn't move, and the space station didn't move either, but you see a bigger sprite pop in (and they DID "pop" in) and the illusion is that you're getting closer. Match the station's coordinates and maybe you'll get a prompt to "dock."

An effective illusion of moving around a map but there's literally no map to build, render, or consider in any way, shape, or form. The only thing the PC had to do was compare 2 sets of numbers and then show you a sprite.

Modern game engines actually work like you said - yes there are coordinates, but the map itself is a parent in which everything else is placed. When you move around the map, your coordinates change, and the rendering engine changes what you see based on the coordinates of every object on that map. That's an enormous amount of data, but it's basically a very advanced extrapolation of what I described above. The difference would maybe be that in the old games, you could just lean something against the joystick and leave it running for so long you could eventually overflow the coordinate system and crash the game, or if they coded it for that, "wrap-around" the coordinate system so you suddenly hopped to the opposite "side" of the galaxy. Today there's more focus on what to do when a player bumps into the edge of the map - is there something blocking you? Do you just get stopped? Does it let you fly forever but nothing is ever rendered as you zoom into blackness?

I think one of the reasons space games were so big back in the day was specifically because there's virtually nothing in space, and nothing to render, so you didn't need to build a 3D map or anything, and abstracted coordinate comparison was enough. They were easy to make with the limitations of their time. I remember how big a deal the first FPS shooters were, it felt like we'd NEVER get there, and Doom gave people a further stroke simply by faking a third dimension visually. I don't remember the first true 3D FPS (where you could walk over a bridge for example with another player walking under it) but I also remember that being a crazy high-water mark.

And it all does start from the very first designs; today's engines have their beginnings in that ancient but clever relative coordinate system.

Dr. Honked
Jan 9, 2011

eat it you slaaaaaaag
The opposite of a fudster is a fundster

Thoatse
Feb 29, 2016

Lol said the scorpion, lmao

Flannelette
Jan 17, 2010


Scruffpuff posted:

I'll try to explain. The really old poo poo (I'm talking late 70s early 80s) that did the "first person space game" had no map at all. None. It rendered a black screen and some dots, those were stars. The game kept track of coordinates, let's say you start at 0,0,0. Now you push your joystick forward for a while. While the computer detects input, it moves the little white dots to make it look like you're moving, but you're not. The game increases say the first value - you are at 1,0,0, then 2,0,0, then 3,0,0. You turn right and go forward more. 3,1,0 - 3,2,0 - 3,3,0 - and so on. The ONLY thing happening is a variable changing. You're not "moving" because there's no map. You're just changing numbers invisibly in RAM. You're not even stationary, because there's no map to be stationary in. You're looking at what amounts to a 2D animated screensaver. But the little stars moving creates the visual illusion of moving through space.

Now by itself nothing is happening yet. That's when you add an object to the diskette and say "oh there's a space station at 7,7,0" and if the player is within 2 numbers of each coordinate, put it on the screen. So you push forward and turn a bit until you're at 5,5,0 - now it puts a sprite on your screen where the space station would "be." Since you're 2 clicks out it's just a flat sprite. Push the joystick until your position is 6,6,0 and the sprite is replaced with a bigger one. Note that you didn't move, and the space station didn't move either, but you see a bigger sprite pop in (and they DID "pop" in) and the illusion is that you're getting closer. Match the station's coordinates and maybe you'll get a prompt to "dock."

An effective illusion of moving around a map but there's literally no map to build, render, or consider in any way, shape, or form. The only thing the PC had to do was compare 2 sets of numbers and then show you a sprite.

Modern game engines actually work like you said - yes there are coordinates, but the map itself is a parent in which everything else is placed. When you move around the map, your coordinates change, and the rendering engine changes what you see based on the coordinates of every object on that map. That's an enormous amount of data, but it's basically a very advanced extrapolation of what I described above. The difference would maybe be that in the old games, you could just lean something against the joystick and leave it running for so long you could eventually overflow the coordinate system and crash the game, or if they coded it for that, "wrap-around" the coordinate system so you suddenly hopped to the opposite "side" of the galaxy. Today there's more focus on what to do when a player bumps into the edge of the map - is there something blocking you? Do you just get stopped? Does it let you fly forever but nothing is ever rendered as you zoom into blackness?

I think one of the reasons space games were so big back in the day was specifically because there's virtually nothing in space, and nothing to render, so you didn't need to build a 3D map or anything, and abstracted coordinate comparison was enough. They were easy to make with the limitations of their time. I remember how big a deal the first FPS shooters were, it felt like we'd NEVER get there, and Doom gave people a further stroke simply by faking a third dimension visually. I don't remember the first true 3D FPS (where you could walk over a bridge for example with another player walking under it) but I also remember that being a crazy high-water mark.

And it all does start from the very first designs; today's engines have their beginnings in that ancient but clever relative coordinate system.


Yeah this is how all game engines work, having the player always be at 0,0,0 is something you can still do.

Adbot
ADBOT LOVES YOU

Scruffpuff
Dec 23, 2015

Fidelity. Wait, was I'm working on again?
In the old games I was referring to many objects weren't object in the map either - they were sprites. So you flew around and an enemy ship sprite would just appear - the system didn't store its position because it wasn't there. It just popped up and you shot at it, if you hit it and it blew up you'd get points. Kinda like how the early Final Fantasy games would suddenly suck you from the overworld map into a fight.

Again I don't remember when that changed, but I do know that it did. There was a big difference between the 2600 game Star Raiders that just tossed sprites at you, and Tie Fighter where the enemy ships had coordinates just like you did and were properly rendered according to distance and perspective - not to mention given decent AI on top. If anyone knows the first space game to actually use that system for enemy ships I'd be interested in reading about that.

  • 1
  • 2
  • 3
  • 4
  • 5
  • Post
  • Reply