Eternal X 1.2

Discuss and unveil current Marathon projects.

Re: Eternal X 1.2

Post Jul 23rd '19, 01:36

Maybe just use like a vegetation texture rather than modelling vegetation?
User avatar

ravenshining
Hawai'i

Post Jul 23rd '19, 05:16

I was hesitant to rely on flat textures, because it they cant portray large plants at extreme angles and on the crests of hills. That being said, they are the best option for ground cover like grass or moss (which can't be feasibly done any other way).

So, I've come up with a combination of flat textures, hair tools, and janky photoshop brushes that produce passible distant foliage. I hope it meets expectations, because it's as good as I can do for now.

full res link:
https://drive.google.com/open?id=1-rVv5 ... Vyo-J8eMKv

Lh'owon background small.png
Small 2048 by uh something pixels


If there are no more urgent changes, I will try to knock out the night version next. Am I correctly remembering that the night sky is only used post pfhor invasion? If so I have an infinity style pfhor carrier model from my hd jjaro plugin lying around, plus a corvette based on art from the m2 manual, If you want to liven things up a little. [MLaugh]
User avatar

General Tacticus

Post Jul 23rd '19, 06:22

Looking good! The mountains appear devoid of life, but that's probably fine. The marshes look great!

I miss the bright yellow band in the sky from the old one, but I respect your artistic decisions, and I suppose having a darker sky along with the darker ground will make it easier to match level design to these new landscapes.

Speaking of which, we'll have to seriously decrease the level fog - which I have no problem with - in order to use these in game.

Here's the original:
lanscape-original.jpeg


And here's the one you just posted:
landscape-prototype.jpeg


Reducing fog will be well worth having that gorgeous backdrop!
User avatar

ravenshining
Hawai'i

Post Jul 23rd '19, 06:39

I quickly tried darkening the fog for S'pht'ia to <color red="0.56" green="0.52" blue="0.51"/> - the average colour of the middle 2/3rds of the new landscape - and increasing the depth. Results:

depth="48"
fogtest-48.jpeg


depth="64"
fogtest-64.jpeg


on="false"
fogtest-none.jpeg
User avatar

ravenshining
Hawai'i

Post Jul 23rd '19, 07:34

The landscape itself is looking pretty great, thanks! But I wonder if rather than adjusting the fog to better match the landscape, if it wouldn't be better to add a layer of fog to the landscape to match the level fog instead? That's basically the approach that I took with all of my old low-res landscapes, adding clouds and fog in front of whatever was in the background of them until they looked good with the level fog.
User avatar

Pfhorrest
California

Post Jul 23rd '19, 07:42

I'm sure there is a middle ground. On S'pht'ia, the current fog is so intense it completely obscures stuff you see in the distance - but, S'pht'ia didn't have these long views when y'all put in the fog :-)
User avatar

ravenshining
Hawai'i

Post Jul 23rd '19, 19:37

I can try to add some fog over the landscape, it shouldn't be too hard to do that in photoshop.

*edit*
this should work if you adjust the fog color to a slightly colder tone, and lower the maximum opacity a touch.

https://drive.google.com/open?id=14ap23 ... HCVYUyzBcq
User avatar

General Tacticus

Post Jul 25th '19, 11:07

While making vacuum scripts for M1R, I came up with a way to add breathing sounds like you wanted for Eternal's partial vacuum levels.

First before you go and draining a player's oxygen that tick, you make a note of how much oxygen they started with. Then, after you've drained their oxygen, we can set up the breathing noise as an alternative to suffocation - because you don't want them both playing at the same time, right? Dividing both the starting and ending oxygen by a fraction of the player's total capacity (here, 1/10th), take the largest integer smaller than each result, and subtract to see if one is larger, indicating that that fraction of your capacity has been expended.

The absolute simplest expression (as I use it for a trap on Blaspheme Quarantine) looks like this:

Code: Select all
  for p in Players() do
    if p.polygon.media and p.dead == false then
      p._o2start = p.oxygen
      p.oxygen = p.oxygen - 2
      if p.oxygen <= 0 then
        p:damage(451, "suffocation")
      elseif math.floor(p._o2start / 1080) - math.floor(p.oxygen / 1080) > 0 then
        p:play_sound("breathing", 1)
      end
    end
  end


I imagine there may be more efficient means than using math.floor, probably involving a modulus, but that works anyway.
User avatar

ravenshining
Hawai'i

Post Jul 26th '19, 03:30

The Lh'owon night background is done, I tested it in "second to last of the mohicans" and it seems fine. If you want other stuff in the sky, or some different colors I can change it
https://drive.google.com/open?id=1P7PAq ... ZydSRxEvyp

I will do the pfhor planet landscape next, so are there any things that need to be there?
User avatar

General Tacticus

Post Jul 26th '19, 16:11

Night Lh'owon looks awesome!

The Pfhorscape should have some Pfhor ships hovering in the sky, probably, and feel free to add moons or whatever looks neat, there's nothing in particular that needs to be there, just whatever looks cool and Pfhorish.
User avatar

Pfhorrest
California

Post Jul 26th '19, 18:10

That Lua is hard to read. What is it even doing?
User avatar

treellama
Pittsburgh

Post Jul 26th '19, 20:16

Agreed, that is one gorgeous nighttime Lh'owon! Perfect.

treellama wrote:That Lua is hard to read. What is it even doing?


Sorry. I know the proper thing to do would be for me to integrate it into Eternal's vacuum scripts, but I'm really focused on a goal right now and hoped maybe Aaron or someone would enjoy doing that. Here, I'll commentate it

Code: Select all
-- iterate thought all players

  for p in Players() do

--we use media to mark out where we have vacuum on the map
--and don't want to bother damaging corpses.
--in a complicated maps with airlocks this line would get exploded
--into a bunch of if statements depending on platform status

    if p.polygon.media and p.dead == false then

--taking note of how much oxygen the player has before we apply vacuum

      p._o2start = p.oxygen

--draining oxygen because we're in vacuum.
--this might need to happen faster than this in Eternal because of auto-recharge

      p.oxygen = p.oxygen - 2

--killing the player if they have no oxygen in a vacuum.
--more robust than A1's internal vacuum code as it will kill
--players that happen to be invincible when their oxygen hit 0

      if p.oxygen <= 0 then
        p:damage(451, "suffocation")

--checking to see whether we've passed an increment of
--1/10th of the player's O2 capacity since draining O2*

      elseif math.floor(p._o2start / 1080) - math.floor(p.oxygen / 1080) > 0 then

--making breathing noises

        p:play_sound("breathing", 1)

      end
    end
  end


*I expect this might be the confusing part, so here's an example:

if the player has 9721 oxygen at the beginning, and has 9719 after we drain it, then
9721 / 1080 = 9.0009259
math.floor(9.0009259) = 9
9719 / 1080 = 8.9990741
math.floor(8.9990741) = 8
9 - 8 = 1
1 > 0
the breathing noise is triggered

if the player has 9999 oxygen at the beginning, and has 9997 after we drain it, then
9721 / 1080 = 9.2583333
math.floor(9.2583333) = 9
9719 / 1080 = 9.2564815
math.floor(9.2564815) = 9
9 - 9 = 0
0 is not > 0
the breathing is NOT triggered
User avatar

ravenshining
Hawai'i

Post Jul 27th '19, 00:02

So...you just want to play the breathing sound 10 times before the player dies?

Side note: “p.dead == false” is the same as “not p.dead” just less readable :)
User avatar

treellama
Pittsburgh

Post Jul 27th '19, 04:00

Yeah, just replicating the mechanic that the game uses on proper full vacuum levels.

I guess an alternative would be to mark the whole level as vacuum, and then give oxygen to the player each tick they are in an air space, and that would obviate the need for the breathing lua, but I didn't think of that until just now.

If you thought that was messy, you should see the mess of code I'm wrangling with to try and replicate melee damage scaling for non-melee weapons in M1R. Apparently there's no reliable way to get a player's actual total velocity, so my next iteration will rely on calculating it from position deltas each tick >.<
User avatar

ravenshining
Hawai'i

Post Jul 29th '19, 00:53

I'll try to take a look at the Lua code soon and see if I can't make it more elegant. Does someone have a link to the oxygen drain parts of A1's source so I can more closely replicate them? I'm fairly sure the game plays the "breathing" sound more often when the player is lower on oxygen, and of course there's also the "oxygen warning" beep. While I'm at it, I might throw in the "drain oxygen more rapidly when firing on MD/TC" and "drain oxygen more rapidly when running on TC" mechanics as well (or is it the other way around?).

The new landscapes look really good! I might even add them for Chronicles at some point if that's OK - they'd probably only show up in dream levels, since most of the scenario wouldn't be likely to take place that far in Lhowon's past, but the finished scenario is liable to have a lot of dream levels. If I do use those landscapes, I might also want a "dusk" render for one of the effects I use in some of my levels.

Sorry I've been absent lately - I've just been trying to work on my mental health the past couple of weeks, with possibly mixed results. I'm probably going to be quite busy for a lot of the month of August, but hopefully will be able to begin contributing in earnest again in September, and hopefully we can get everything polished up and ready for a 1.3 release by the end of the year. There are really only a few levels left that I want to fiddle with in anything approaching significant amounts.
“People should not be afraid of their governments. Governments should be afraid of their people.” —V, V for Vendetta (Alan Moore)

“The trouble is that we have a bad habit, encouraged by pedants and sophisticates, of considering happiness as something rather stupid. Only pain is intellectual, only evil interesting. This is the treason of the artist: a refusal to admit the banality of evil and the terrible boredom of pain. If you can’t lick ’em, join ’em. If it hurts, repeat it. But to praise despair is to condemn delight, to embrace violence is to lose hold of everything else. We have almost lost hold; we can no longer describe happy man, nor make any celebration of joy.” —Ursula K. Le Guin, “The Ones Who Walk Away from Omelas”

“If others had not been foolish, we should be so.” —William Blake, The Marriage of Heaven and Hell

Last.fm · Marathon Chronicles · Marathon Eternal 1.2 · Where Monsters Are in Dreams · YouTube Vidmaster’s Challenge
User avatar

The Man
Sarasota, FL

Post Jul 29th '19, 12:05

The Man wrote:I'm fairly sure the game plays the "breathing" sound more often when the player is lower on oxygen, and of course there's also the "oxygen warning" beep.

Lol. Look for handle_player_in_vacuum in player.cpp. Hopper left the original switch statement in comments, a monument to Bungie code.

(TLDR; the rate depends on how fast the oxygen is draining, not on how much oxygen the player has left.)
User avatar

treellama
Pittsburgh

Post Jul 29th '19, 19:09

Thanks, I’ll give that a look tonight. I wasn’t sure if I was just imagining the “breathing more often” thing. It would make sense that I’d run and fire more when I’m closer to running out of oxygen in order to get myself to a recharge faster. Now I’m curious whether it’s actually more prudent to avoid running at that point on TC in order to make the oxygen last longer – of course, you don’t move as quickly, so it’s a trade-off. I wonder if anyone’s run the mathematics on that.

…oh, right. Video of latest “Unwired” revision with commentary in description. There were a couple things I forgot to mention in the description that I brought up in Discord, which I’ll edit into the video description later.
“People should not be afraid of their governments. Governments should be afraid of their people.” —V, V for Vendetta (Alan Moore)

“The trouble is that we have a bad habit, encouraged by pedants and sophisticates, of considering happiness as something rather stupid. Only pain is intellectual, only evil interesting. This is the treason of the artist: a refusal to admit the banality of evil and the terrible boredom of pain. If you can’t lick ’em, join ’em. If it hurts, repeat it. But to praise despair is to condemn delight, to embrace violence is to lose hold of everything else. We have almost lost hold; we can no longer describe happy man, nor make any celebration of joy.” —Ursula K. Le Guin, “The Ones Who Walk Away from Omelas”

“If others had not been foolish, we should be so.” —William Blake, The Marriage of Heaven and Hell

Last.fm · Marathon Chronicles · Marathon Eternal 1.2 · Where Monsters Are in Dreams · YouTube Vidmaster’s Challenge
User avatar

The Man
Sarasota, FL

Post Jul 29th '19, 21:15

Hah, I guess I was pretty close! I was basing my math for the breathing sound on experience, rather than actual understanding of the code. Looks like my divisor should have been 900, not 1080, but I have the principle down.

As I suspected, a modulus would indeed clean it up and that's how A1 does it, so all my math.floor mess could be reduced to:

elseif not p.oxygen % 900 then p:play_sound("breathing", 1)

I don't know if that will work if we drain 2 at a time or not though, we might have to drain one, ask to breathe, drain again, ask again

Warnings appear to happen when oxygen = 1500, 1050, 600, and 150; making for a "breathe - warning - warning - breathe - warning - warning - die" sequence. I always thought there were just two warnings, but that perception must be influenced by panic.

To answer your question, Aaron, on Total Carnage it preserves oxygen to walk rather than to run, because while running drains your oxygen twice as fast, it does not move you twice as fast. An exception might be briefly running towards a ledge and then releasing the run key while flying through the - uh, not air - vacuum.

What weapon to use on Major Damage and above is waaay too situational, but in general, fusion pistol primary = good, pistol = bad. Might want to fire the shotgun and fusion pistol as if they were not automatic.
User avatar

ravenshining
Hawai'i

Post Jul 29th '19, 22:00

Thanks for the clarification. Next time I attempt Acme I’ll have to remember that, if I get to a segment where there are no enemies around me, it’s probably better to walk. Of course, the flechette is probably also really good for vacuum levels, given how quickly it fires. Just take your finger off the trigger key while it reloads.

I’ll look into rewriting some of that code to make it mimic the game’s usual vacuum-level behaviour more closely. I agree with draining oxygen one at a time just to be on the safe side; there’s a good chance you’ll end up with odd oxygen values, and that’s not even getting into draining 3 at a time if players are pressing both the run and weapon triggers on TC. I think your suggested approach is the best choice. There are probably other ways to counteract that, but the main one I can think of would be even less elegant.
“People should not be afraid of their governments. Governments should be afraid of their people.” —V, V for Vendetta (Alan Moore)

“The trouble is that we have a bad habit, encouraged by pedants and sophisticates, of considering happiness as something rather stupid. Only pain is intellectual, only evil interesting. This is the treason of the artist: a refusal to admit the banality of evil and the terrible boredom of pain. If you can’t lick ’em, join ’em. If it hurts, repeat it. But to praise despair is to condemn delight, to embrace violence is to lose hold of everything else. We have almost lost hold; we can no longer describe happy man, nor make any celebration of joy.” —Ursula K. Le Guin, “The Ones Who Walk Away from Omelas”

“If others had not been foolish, we should be so.” —William Blake, The Marriage of Heaven and Hell

Last.fm · Marathon Chronicles · Marathon Eternal 1.2 · Where Monsters Are in Dreams · YouTube Vidmaster’s Challenge
User avatar

The Man
Sarasota, FL

Post Jul 29th '19, 22:23

I think you should have a modal dialog box that pops up every 5 seconds letting the person know their oxygen is draining, with some tips on how they can improve their breathing efficiency.
User avatar

Wrkncacnter

Post Jul 29th '19, 22:24

That sounds much better. I'll get to coding that right away. [1337]
“People should not be afraid of their governments. Governments should be afraid of their people.” —V, V for Vendetta (Alan Moore)

“The trouble is that we have a bad habit, encouraged by pedants and sophisticates, of considering happiness as something rather stupid. Only pain is intellectual, only evil interesting. This is the treason of the artist: a refusal to admit the banality of evil and the terrible boredom of pain. If you can’t lick ’em, join ’em. If it hurts, repeat it. But to praise despair is to condemn delight, to embrace violence is to lose hold of everything else. We have almost lost hold; we can no longer describe happy man, nor make any celebration of joy.” —Ursula K. Le Guin, “The Ones Who Walk Away from Omelas”

“If others had not been foolish, we should be so.” —William Blake, The Marriage of Heaven and Hell

Last.fm · Marathon Chronicles · Marathon Eternal 1.2 · Where Monsters Are in Dreams · YouTube Vidmaster’s Challenge
User avatar

The Man
Sarasota, FL

Post Jul 30th '19, 11:55

ravenshining wrote:I don't know if that will work if we drain 2 at a time or not though, we might have to drain one, ask to breathe, drain again, ask again

It won't, if you start at an odd amount of oxygen. But you don't have to check twice. The test is really

a % b < c

Where a is the amount of oxygen remaining, b is the breathing interval, and c is the step size. For the special case where c == 1, then "a % b < 1" is the same as "a % b == 0" which is the same as your "not a % b"
User avatar

treellama
Pittsburgh

Post Jul 31st '19, 21:13

Thanks for the clarification. Whenever I get around to rewriting the Lua, that will be helpful.

For now, I’ve been thinking about Chapter Five. I think I’m going to spoiler tag this, because it discusses, in depth albeit still in somewhat embryonic form, proposed additions to the story that people who want to wait to play 1.3 as a finished product may not wish to see. Some of this also will concern ideas I also want to work into Chronicles, though I haven’t firmly decided on the direction of the latter’s story yet. You have been warned.

Spoiler:
A lot of this stemmed from a remark on one of my films of Chapter Five from someone saying that they missed the Bobs. I think I do, too. I understand fully why they were removed, and agree with the decision – they aren’t actually good representations of the Jjaro. But it makes the levels feel a bit… well, empty.

I feel like one of the most important parts of the game is the final chapter, but a lot of its applicability is sort of… subtle, and a lot of players will probably miss it. I didn’t pick up on it the first time I played the game, though that might’ve been the fault of the impenetrable swarms of enemies. Players of 1.2 probably won’t have that problem, but still… I wonder if there are ways to illustrate the game’s central themes a bit more powerfully by involving the player more directly in them.

I’ve been reading up on Shoshana Zuboff’s theses on surveillance capitalism and am probably going to check out her book of the same title from the library relatively soon. I feel as though perhaps they could be extremely relevant for the Jjaro in this game. What I’ve gotten from the game – and Pfhorrest can correct me if I’m getting any of this wrong – is that the Jjaro are basically conservatism, in the old-fashioned sense of opposing change rather than how most Americans use it today, taken to an absurd extreme. They are so dogmatic in their refusal to allow history to change that they become a mirror of their own worst enemies, turning their society into a nightmare of surveillance and violations on civil liberties and, ironically, leading to the potential destruction of all organic life in the galaxy.

Most of this isn’t explicitly spelled out, though. I’m not necessarily suggesting to spell it out explicitly, either – I’m a bit wary of works that explicitly tell players what to think. It’s an awful dogmatic imposition on the part of the author. But what I see in Chapter Five seems like, to use a crude metaphor, a connect-the-dots drawing filled in from only about a quarter of the dots. I’m not necessarily suggesting we should connect every last dot, but perhaps we can redraw the outline from a larger number of the dots so that players get a clearer picture.

Some of this is liable to depend on whether Tacticus or someone else will have time to create sprites for the Jjaro. But perhaps, if so, we can throw in some individual Jjaro fighting against the W’rkncacnter, and then sprinkle across Chapter Five various terminals alluding to what a dystopian surveillance state their society has turned into. It might feel a bit ridiculous to add those terminals without actual Jjaro populating the levels, but it could probably be worked in fine if we had them. Perhaps we could even use the structure and writing styles of Infinity’s Pfhor bureaucracy terminals as a guideline, suggesting that there are some continuities to authoritarian societies throughout galactic history.

Obviously all of this is up to Pfhorrest. Some of these ideas also stem from a discussion a week or two back in the Discord about “show, don’t tell” in video games (and Marathon in particular). I feel that some of these suggestions might be a way to show some of the game’s central themes a bit more vividly. Essentially, one of the core components of fascism is people surrendering their individual liberties, particularly privacy; and this may occur voluntarily if people are not careful. Social media seems a particularly insidious and almost invisible case of this (which takes us back to Zuboff), but it’s not as if that’s the only case in recent history where this occurred. The War on Terror, which was a direct inspiration for many of Eternal’s events, was of course another notable case of this.

I will also want to work some of these ideas into Chronicles as well, and if they are in the final release of Eternal, it would be a way to increase continuity between the two games, so I will admit to a bit of a self-interested motivation in making this suggestion. However, it is also, of course, an idea I have come to care deeply about. As an aspiring IT major, it is necessarily an idea that I have given great consideration to, since it is inextricably intertwined with the profession I am studying. If there’s a way to illustrate some of Eternal’s themes more vividly for players, it may be worth considering.

I should note that I’m not attempting to say Chapter Five is below par at this point – 1.2 was a colossal improvement over every previous version, to the point where it’s now a lot more fun to play. It may actually be my second favourite chapter on that front after Chapter Three. But there might be a way to make it feel more… real, for lack of a better term. The fact that you’re basically fighting just Pathways enemies until the Pfhor show up does seem like a potential area for improvement, and this is one part of the game where it actually would make story sense to have recognisably humanoid characters in the levels. So if Tacticus or someone else has time to create Jjaro sprites, I would greatly welcome the addition, and think it would be possible to use that to bring some of the game’s central themes across more vividly for players.

Just something to think about.
“People should not be afraid of their governments. Governments should be afraid of their people.” —V, V for Vendetta (Alan Moore)

“The trouble is that we have a bad habit, encouraged by pedants and sophisticates, of considering happiness as something rather stupid. Only pain is intellectual, only evil interesting. This is the treason of the artist: a refusal to admit the banality of evil and the terrible boredom of pain. If you can’t lick ’em, join ’em. If it hurts, repeat it. But to praise despair is to condemn delight, to embrace violence is to lose hold of everything else. We have almost lost hold; we can no longer describe happy man, nor make any celebration of joy.” —Ursula K. Le Guin, “The Ones Who Walk Away from Omelas”

“If others had not been foolish, we should be so.” —William Blake, The Marriage of Heaven and Hell

Last.fm · Marathon Chronicles · Marathon Eternal 1.2 · Where Monsters Are in Dreams · YouTube Vidmaster’s Challenge
User avatar

The Man
Sarasota, FL

Post Jul 31st '19, 22:29

If Tacticus were willing to make some Jjaro-Bobs, I would completely welcome their inclusion throughout chapter 5, and I think that would be a huge improvement. I actually had a whole thing planned out for new Bobs and player models throughout the game, designed in relation to each other in a way that would minimize the new modeling needed for all of them, back when CryoS was supposed to be doing the weapons and that stuff, which is why there were a bunch of different Bobs scattered throughout the levels in 1.1: I was expecting to have new sprites for them to wear in "Omega" and just forgot to remove them when I decided to just call it 1.1. instead.

But the terminal stuff you suggest wouldn't fit with the story, because it's not the Stage 1 Jjaro who are running around in chapter 5 that are the totalitarian conservatives hell-bent on preventing anyone from meddling with time; those guys are just humans trying to survive a lovecraftian horror. It's not until they become Stage 3 Jjaro millions of years later, escape the universe and witness firsthand the wars for control of the dawn of the universe that PiD speaks of, that they decide that meddling with time is verboten. And those guys aren't going to be writing terminals anywhere.
User avatar

Pfhorrest
California

Post Jul 31st '19, 22:37

Ah, fair, I hadn’t actually picked up that those were the Stage One Jjaro in Chapter Five. It actually makes much more sense for them to have an appearance closer to human, then.

I think it would probably be possible to use Chapter Five to explore another idea I’ve been turning around in my head, though…

Spoiler:
…namely how democratic systems turn into totalitarian ones. Which the Stage One Jjaro might be a reasonable candidate for turning into such a case study; perhaps the terminals can show some of the original sins that would lead to such an outcome in the first place.

I’ll devote some further thought to the idea and report back when I have more concrete ideas about how I might explore such a thing, should this be an idea that you deem worthy of further exploration in the game.
“People should not be afraid of their governments. Governments should be afraid of their people.” —V, V for Vendetta (Alan Moore)

“The trouble is that we have a bad habit, encouraged by pedants and sophisticates, of considering happiness as something rather stupid. Only pain is intellectual, only evil interesting. This is the treason of the artist: a refusal to admit the banality of evil and the terrible boredom of pain. If you can’t lick ’em, join ’em. If it hurts, repeat it. But to praise despair is to condemn delight, to embrace violence is to lose hold of everything else. We have almost lost hold; we can no longer describe happy man, nor make any celebration of joy.” —Ursula K. Le Guin, “The Ones Who Walk Away from Omelas”

“If others had not been foolish, we should be so.” —William Blake, The Marriage of Heaven and Hell

Last.fm · Marathon Chronicles · Marathon Eternal 1.2 · Where Monsters Are in Dreams · YouTube Vidmaster’s Challenge
User avatar

The Man
Sarasota, FL

PreviousNext

Return to Projects



Who is online

Users browsing this forum: Bing [Bot]