Git Product home page Git Product logo

exile's People

Contributors

atgnat avatar berengma avatar ceeee avatar dans-user avatar dokimicu avatar ensayia avatar izzyb1234 avatar jeremyshannon avatar kromka-chleba avatar netsysfire avatar nicolasvcr avatar ocrenkist avatar ozcodex avatar rollerozxa avatar torstenschenk avatar unargent avatar wizardofgcc avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

exile's Issues

Some new biomes

It's me again...

I was getting bored of the map and ended up making some new biomes:

https://github.com/DokimiCU/exile_experiments

This squeezes more variety out of existing content, plus adds a few things to make it work aesthetically. Makes easy places a bit easier, and adds very hostile barren lands for advanced players.

I would turn this into a proper pull request but have already spent more time on it than I intended (follow the instructions, it's an easy copy past job)

(I haven't been following forums etc as you might have guessed, and will now likely disappear again! I might occassionally drop some stuff into this experiments repo, but you wont likely be seeing much of me. Such is life! Good to see this project still going.)

Add the ability to retarget a transporter without breaking and re-keying

Transporter pads cannot have their destinations changed, even if the destination no longer exists. You have to break the pad, wipe the key, then re-name it and re-link all other pads that point at it.
It should be possible to wipe the destination of a placed pad. Perhaps by clicking with the defunct destination key? That would prevent accidental erasure.

Unable to bar a double door

Double doors are created in the doors mod by turning the door 90 degrees and setting it to its closed state when you open it, and uses the open state for closed. In other words, when you open both sides of a double door, the right one may be in the open state, but the left one is technically closed, codewise. This makes barring the second door impossible as is.

Possible solutions include flipping the door upside down instead, or adding a second door type that opens in the other direction. Either will need new handling code to bar correctly.

Fire Sticks Item Breaking Sound Playing on all clients

When you use fire sticks all the way to breaking and they make that breaking sound, everyone in the server (on a server) can hear it. I didn't know what it was until now, and I though somebody kept breaking a bone XD.

Cave drips don't vanish if they land on bones

Cave drips are supposed to disappear when they hit the ground, but I've noticed them collecting on top of people's bones, leading to the weird outcome that you can drop bones in a cave to make a crude water collection system, and then just lick the water up off the bones. (Ewww!)

This needs fixing, and the code should probably be examined to see if any other nodes might prevent the drips disappearing.

Multiplayer lag causes the hud to stop updating

In multiplayer, lag sometimes mounts and the hud will stop updating your condition. This can lead to sudden death when it suddenly updates and you find out you've been unknowingly freezing and exhausted for a while.
A telltale sign that this is happening is when you switch between items in your hotbar and the name of the item doesn't appear, the workaround being to get someplace warm and lay down until lag subsides.

Reducing lag would help alleviate the problem, but a proper fix would likely be to move some of the code to client-side.

climate.heat_transfer() only checks nodes below, prevents horizontal heat transfer between heatable nodes

While digging through heat transfer stuff I noticed that mods/climate/temperature.lua:381 in climate.heat_transfer() causes heatable nodes to only check the y-coords below them for heat transfer, preventing heat exchange between nodes of the same height. This leads to odd behaviour like a 2-deep, 1-high kiln not heating the rear nodes at all (too far away for the fire to heat via climate.air_temp_source()) whereas a 2-deep, 2-high kiln can heat the rear ones due to having heatable nodes on different y-coords.

Changing the - to a + on that line so it checks a 3x3x3 area matches the logic in climate.air_temp_source() and makes both kilns behave the same so it seems to be a typo.

Adzes and softwood/hardwood confusion

Adzes are an important stone-age tool, but new players can be confused if they try to cut a maraka tree and the adze does nothing.
Add one or both of A) a tooltip that explains the adze is used to cut softwood trees B) differing sound effects for a hardwood vs softwood tree

An adze should probably have a different sound than an axe, as it's used to essentially peel away bits of the tree at a time, rather than cut a chunk out:
https://www.youtube.com/watch?v=ZXUsItu74LU

Doors don't toggle temp_pass

Hatches allow temperature to flow through when they're open, but doors do not.
They'll have to be rewritten into separate open/closed objects to allow them to have different groups.

Storyteller/Events

This is another major area of game play that needs adding.

Currently game play turns back into regular build and mine Minetest game once you've solved the basic survival challenges. That's not great.

My inspiration here is Rimworld - something that will throw various challenges at you, and give a sense of narrative. Unfortunately Rimworld (2d limited world) and Exile (3d open world) are so different I could never figure how to do this (plus the coding was beyond me).

So... ideas on what this would look like, how to do it? (this is by far the biggest feature I'd like to see)

Objects can prevent a player from getting out of bed

It was reported that a player with a full inventory can't get out of bed if objects are floating on top of it.
This can be worked around by logging out and back in, but it still would be nice to not trap the player like that.
We could overrride the space bar to add a "jump out of bed" function. Perhaps another option would be that if you try to take an object but your inventory is full, we could knock the object about a node away. That way the trapped player could just shove the objects aside and get up.

Needed: A heat overlay to complement the frost overlay

We currently have code to visually alert the player of dangerously cold temperatures by applying a frost overlay around the edges of his screen, but dangerously hot temperatures have no indicator as yet.
I could find no overlay under a suitable license that would adequately represent heat. A heat haze effect would be best, but would likely require shaders; barring that, perhaps a wet screen around the edges to represent sweating would get the desired idea across.

Design Philosophy

I created the Design Guide document to help give some unity to future development if and when I left the project.
My hope was to avoid any "design by committee" issues, and allow there to be something to refer to in discussions and when making design decisions. A kind of design "Constitution".

Now that I have passed the project on I've noticed other things I would probably add to that list, for the sake of clarity and keeping consistent with a vision that was mostly in my own head:

  • Genre: a hard-scifi core underneath an ambiguous fantasy-sci fi surface. Supernatural elements can exist, but there should be at least the possibility that a scientific explanation exists.
  • Avoid cliches: certain things e.g. zombies, are massively overdone in media. If they're going to be an Exile they need a unique Exile twist.
  • No black and white morality: this not a game for your mass murder genocide fantasies free from moral qualms. Nothing exists purely for you to murder it. Even monstrous things are just trying to live their life, you just happen to be in the way. The focus should be on decision making, that means confronting moral choice.
  • The freedom to do stupid/wrong things: the player must make real choices with real consequences. That can mean adding the ability to do things that some people might have issues with e.g. drug use. Such features should reflect realistic consequences for making such a choice. e.g. yes drugs can be useful, but you can also OD and end up dead in a ditch.

I'm not sure how useful people find this. I'm hoping making these design choices explicit will allow Exile to maintain a unified design even if it passes through several hands.

People might want to suggest other design choices that are important to them that could be added.

Problems with progression and introduction for new players

This issue is a summary of various discussions and my own observations. I hope it would be useful to discuss and document this problem so it can be fixed.

So basically, the main problem here is that survival in Exile is too hard in the beginning, and too easy at the end. This is caused be multiple things, and is partially intentional, since survival becoming easier is part of the focus of the current system of progression. The main problem here lies with the main survival mechanics of hunger and thirst. In the beginning it is very hard to replenish hunger and thirst, unless you already know what you are doing, and figuring out what to do is hard due to these constraints. New players need to be able to randomly stumble into strategies to do that, but due to the fact that they are on a countdown to death each time means that they will probably quit, dying at the beginning with no sign of improvement can be very frustrating. This is true for the tangkal fruits (they are so high up the player might not notice them, and small tress where they are easily accessible are very rare) and for water (digging puddle holes to get it is not intuitive at all to most people). In contrast, at the end once you have a big enough anperla farm set up and more than 10 water pots, you have to never worry about those mechanics ever again. The end of the game switches theme completely, since at that point you can do little other than just build decorative structures or go explore the ancient city, which has similar problems (as a beginner it's too hard to stumble into anything interesting, and once you have everything there is nothing to do). These are the main things that I noticed, feel free to add more.

Possible solutions (obviously more careful thought has to be put into these, this section is just brainstorming):

  • Make anperla less effective as a food source, possibly lower down the number of tubers per plant from 3 to 6, would also motivate farming other plants
  • Make random fallen tangkal fruits below trees. The player is more likely to find those and figure out that they are good food.
  • Plant diseases: add a certain partially controllable threat to the crops. These would make the plant useless and infertile. It adds a motivation of actually tending to the farms (i. e. removing infected crops before infection spreads, that would probably be the only way to fix it, not some way of curing individual plants) Maybe a higher chance of these occurring in better soils? Creates a kind of trolley problem where you have to make a choice of faster harvest with possibility to lose it, or slower harvest and keeping it all.
  • Food spoilage: self explanatory. Food rots over time. Hard to implement, but would enable a whole new part of tech and strategies for it. This is meant to punish mindlessly hoarding every kind of food item, mostly happens at the end of progression.

Enable MisterE's crouching animation when sneaking

Our player model has an animation for crouching down and creeping along when sneaking.
It merely needs to be enabled under the right conditions in player_api.
Bonus points if we can halve the height of the player's collision box so players can creep through single-node holes.

Preparing for new animals

Eventually more animals will get added. Seeing as I done animals in a unique way, this deserves some explanation.

My "ecological" style of running animals was a proof of concept. (That's why there's so few species right now). I've shown it can work, within limits. Now the code needs tidying up. After that the number of species can be expanded.

Things to consider:

  • Balancing is difficult. Animals start following actual ecological principles. Theoretically it should get more stable the more interacting species we add. It does help to understand ecology to balance this (e.g. predator prey cycles, niches, density dependent growth)
  • Population explosions cause performance issues. Currently this addressed by some "density dependent" inhibitors, notably cannibalism.
  • Brainless grubs do excellently. More sophisticated animals would benefit from higher intelligence than the code currently gives them.
  • Herbivores and generalists work great. I suspect larger herbivores will work fine, as long as they can do meaningful travel.
  • Predators don't work well. In reality predators need high intelligence and large territories to survive. Large carnivores might be better spawned and removed by an Event
  • Given that: Kubwakubwa, Sarkamos, and Darkasthaan could be swapped out for more generalist animals, so they can survive when they fail to find prey. We can keep the names, just make them something else.
  • On that note: Consider all existing models as placeholders. I just grabbed what I could find. Pegasuns don't have to be a type of chicken, they might be better like a cassowary. The cliche overuse of spiders was not intended. That's all we had. I suspect the Sneachan model is a Minecraft clone, so should be changed.
  • The core of the animals code mimics real ecology, but we can fudge that. Exile is not an ecology simulator. I just wanted populations that behave in a realistic way. e.g. so you must think about sustainable harvesting etc.
  • Tidying up the code: Being an experiment, it got a bit messy!
  • Functions missing from code: ability to handle multiple textures, size growth of young, seasonal behaviour, inheritance...
  • Bringing health effects in: e.g. venom, zoonotic diseases. Needs a lot of work to do this.
  • I was surprised by how much personality the male pegasun ended up with. I think it's a combo of the "warning before attack" plus "flight or fight". The randomness/contingency in both is what makes him feel alive - the illusion of a mind. Personality like this is something to aim for in all animals.
  • domestication: People will want to do this. So... I dislike the usual Minetest way: punch a horse with an apple ten times and you can ride it like a motorcycle. Real animals have independent minds. A better way: each animal has a per-player trust rating that is gained or diminished by the players actions towards the animal. At high trust the animal will apply it's normal social behaviors to the player (even if humanly inappropriate e.g. like how a dog will lick your face and sniff your butt.)

Player controls are not disabled when lying down

When a player enters a bed, his controls should be disabled and the "lying down" animation played.
The animation starts, but controls are not disabled, allowing players to run in place on top of the bed, and this means most of the time, players instantly stand up when entering a bed.
This bug originates somewhere in our player_api, because replacing it with Runs' player_api resolves it. It may be an obscure interaction with the multiskin model mod, but I have yet to test removing that. We don't use any of its features at the moment, so it's worth looking into whether dropping it will fix this.

Lua crash when baking peeled anperla tuber

2021-09-28 15:52:52: ERROR[Main]: ServerError: AsyncErr: ServerThread::run Lua: Runtime error from mod 'tech' in callback node_on_timer(): ... Support/minetest/games/exile/mods/tech/plant_crafts.lua:167: attempt to compare number with nil
2021-09-28 15:52:52: ERROR[Main]: stack traceback:
2021-09-28 15:52:52: ERROR[Main]: ... Support/minetest/games/exile/mods/tech/plant_crafts.lua:167: in function <... Support/minetest/games/exile/mods/tech/plant_crafts.lua:145>

The reason for this crash seems to be that there is a wrong number of arguments when calling "bake_bread" in the timer function:

minetest.register_node("tech:anperla_tuber_peeled", {
description = "Peeled Anperla Tuber",
...
on_timer = function(pos, elapsed)
--self, finished product, length, heat
return bake_bread(pos, "tech:anperla_tuber_peeled", "tech:anperla_tuber_cooked", 7, 100)
end,
})

Should be:

minetest.register_node("tech:anperla_tuber_peeled", {
description = "Peeled Anperla Tuber",
...
on_timer = function(pos, elapsed)
--self, finished product, length, heat
return bake_bread(pos, "tech:anperla_tuber_peeled", "tech:anperla_tuber_cooked", "tech:anperla_tuber_burned" 7, 100)
end,

Although needs to be a definition for burned anperla tubers

Updated peeled anperla tubers have problems

  1. When a peeled anperla tuber before the name change is placed, it crashes the server, though the tuber is converted after the restart
  2. Pre-change peeled anperla cannot be eaten, generate a "This item is not edible" message

Multiplayer lag causes server/client camera fighting when in bed

Perhaps related to #35, when there's significant lag and you're in bed, moving the camera locally can result in the server trying to put your view back, and then your view begin violently moving between the new and old positions until the lag resolves.
This is happening on MT5.4.0, perhaps a result of the physics changes being done when a player is in bed?

Perhaps it's not related to #35 -- the hud can update well before the camera stops doing the hippy hippy shake-shake with all of its might.

Weather doesn't always restore correctly on restart

Weather is supposed to be saved and reloaded on a restart, but it sometimes changes dramatically when doing so.
I suspect it may be ignoring the loaded weather and just setting up like new each time, but that's just a guess; I haven't pored over the code in detail or anything yet.

Modding support

Various niggly little areas make Exile difficult to mod. Ideally Exile should be easy to mod.

A couple of things I noticed

  • registration of soils, plants, rocks needs to be done in core code
  • need new groups to allow new plants (e.g. oil_seed instead of only vansano, hard_wood instead of only Maraka)
  • animals predators and prey only recognize those in their hard coded lists (they are niave to any new animals added in a mod)

No doubt many more exist!

Rebalancing food

Currently the food meta in Exile is mostly dependent on baking maraka bread and cooking anperla, as these both give you in 24 hunger and 14 energy points a piece while allowing massive batches of them to be harvested.

In comparison, cooked meat from small birds and small fish give 10/2, and Sakramos (which is a gigantic shark-like creatue) only gives 30/6. This makes hunting and animal husbandry vastly inferior and more time-consuming than harvesting or farming. The only 'farm' animal of any value currently is the Gundu as their eggs add 10 thirst and 40 hunger points and they reproduce at a fairly fast rate.

My suggestion is to reduce bread and anperla to 5/1 and add items that would be a combination of the above ingredients such as meat sandwhiches or anperla salads that would have 10/2 or 24/14 or higher values depending on complexity. This would ensure all mechanics of the game are used roughly evenly.

Graffiti pictograms need work

Pictograms were the first form of writing, and each symbol represented a concrete thing which is resembled, and only over time did they come to be more abstract.
Our graffiti has some very good symbols like tree, and sun, and feet, some decent ones like lines and circles, suitable for drawing crude images, but there's no good symbol for fire, or water, or other things players care about, and there's a fair bit of space used up by things like four slightly different variants of a spiral.
Better, less abstract pictograms are needed, and more of them.

Related, i'd like to add chalk, which is basically just soft limestone, and allow players to use that or a split piece of charcoal to make tally marks, 1-5, or maybe four sets per node for 1-20.

Glass bottles don't collect rain

Glass bottles should behave more or less the same as clay water pots, but they don't yet because some functions are not available. Rainwater collection is currently handled by a local function in tech/pottery, of all places.
This should be moved, ideally to liquid_store, made part of the liquid_store namespace, and applied to the glass bottles.

Game crash : temp value revert to nil between "not nil" test and "temp < fire_temp" cooking peeled_anperla_tuber

Hello,

Thank you for keeping this alive :)

I got this error while trying to bake peeled anperla tuber near a fire block on natural gravel (inside a cave)

AsyncErr: ServerThreead::run Lua Runtime error from mod 'tech' in callback node_on_timer(): ....4.1-win64\bin..\games\exile\mods\tech/plant_crafts.lua:169:attempt to compare number with nil
stack traceback:
....4.1-win64\bin..\games\exile\mods\tech/plant_crafts.lua:169: in function <....4.1-[...]/plant_crafts.lua:145>

Looking at the code, it seems "temp" revert to "nil" between the not nil test and the test with temp < fire_temp.
I know nothing about lua, but it looks like temp is updated by another thread between the 2 tests which trigger the error. I assume locking this portion of code would prevent this.

I retried multiple times: come back in the game, letting it run few seconds, planting new peeled anperla and causing new crashes.

Cheers

Sounds cut off abruptly when going below ground

When the player gets below -12, the sound effects for wind, rain, etc. get sharply cut off. Minetest provides a function to fade sound playback, so we could use that to fade out as you go down, and fade in as you go back up.

Character Roleplaying

I consider this the third major area of missing content, alongside a Storyteller and finishing the Underground City. By which I mean, features which will significantly alter the nature of this game.

Role playing...

The core element here is "Soft-perma death". New life = new character.

Currently this is limited to aesthetics ( a narrative snippet) and has no direct gameplay relevance. Many people do seem to naturally build a graveyard for their dead, so even this little snippet is going a long way, but we can expand on this. The role playing can become a major game feature.

The uniqueness of your character could become a significant factor in how you actually play.

Some possibilities:

  • access to unique crafts based on character backstory (e.g. a doctor can make special medicines, an artist can carve sculptures)
  • ability to acquire unique crafts (that are lost when you die)
  • unique traits e.g. a large man who can take more damage but moves slow, a gymnast who is frail but jumps very high.
  • ability to aquire unique traits (that are lost when you die)
  • random respawn. Put them in a new location so they don't just feel like a seamless continuation of whoever just died.
  • events & quests related to the character's backstory

The aesthetics side can also be expanded e.g:

  • unique appearances for each character.
  • ability to give them a nickname

These specific ideas are suggestions only. Basically anything that makes the character meaningfully unique belongs here.
That person's death should matter. They should feel like someone. The game should feel different when played with a different character. I want you to get attached and mourn them when they die, and have you next five characters die building a giant pyramid to honour the greatness of your first character.

New life. New character. Watching them die should hurt.

Character death is also an excellent opportunity to encourage the player to reflect on what just happened. Personally I have learned things about the way I make decisions by playing Exile, but that only happens if I stop and reflect. This should be encouraged.

e.g. on the death screen you could be given a time out. You can save stats about the character who just died, write down their lifestory (e.g. how they died), and have this information saved somewhere you can read it again (or even export it to share with friends.)

Expanding this role-playing element will be a significant improvement to the game.

granite Brick with Mortar cant be cracked

We have list of block with mortar that can't be cracked by iron pickaxe.
bricks_and_mortar.lua

local list = {
	{"limestone", "Limestone", 3},
	{"ironstone", "Ironstone", 3},
  {"granite", "Granite", 1},
	{"basalt", "Basalt", 2},
	{"gneiss", "Gneiss", 1},
	{"jade", "Jade", 1},

}

All values except 2 and 3 can't be cracked ... it look like value 1 shall be most soft but the fact it doesn't work. I didn't understand how work configuration of iron pickaxe so I can't create correct PR.
So it require to be fixed by fix material value or pickaxe settings.

Mushroom: duration nil value

Getting an underground mushroom-related crash. Doesn't look like 'duration' is defined previously. Log:

2021-09-26 19:25:21: ERROR[Main]: ServerError: AsyncErr: ServerThread::run Lua: Runtime error from mod 'nodes_nature' in callback node_on_timer(): ...netest/bin/../games/Exile/mods/nodes_nature/life.lua:138: attempt to perform arithmetic on global 'duration' (a nil value)
2021-09-26 19:25:21: ERROR[Main]: stack traceback:
2021-09-26 19:25:21: ERROR[Main]: ...netest/bin/../games/Exile/mods/nodes_nature/life.lua:138: in function 'grow_seed'
2021-09-26 19:25:21: ERROR[Main]: ...netest/bin/../games/Exile/mods/nodes_nature/life.lua:368: in function <...netest/bin/../games/Exile/mods/nodes_nature/life.lua:361>

growth = growth - ( duration / timer_avg )
else
-- underground plant, but we've got light so give it 50%
growth = growth - ( duration / timer_avg / 2)

Functions are serialized when saving bed_rest data

I happened to look in the mod storage and saw a bunch of binary data. I think this is because the entire bed_rest variable, functions and all, is serialized. The functions do not need to be serialized.

Moisture Evaporations

Hi, in mods/nodes_nature/moisture_spread.lua
at line 48
the game is deleting the node instead of changing
it from wet to dry.
I noticed tiles in my garden are disappearing

left-clicking water with a full water pot drinks it

Drinking should be done with a right click, yet if you're holding a full liquid store (clay water pot with freshwater for example) you will drink a water node when left clicking on it.
Reports also say it can sometimes remove the node without drinking it if thirst is 100%, destroying the water.

Rework point temperature to use param2

Currently hot air nodes interact with each other and their environment by using a "temp =" metadata string.
Metadata access is relatively slow, however, and invisible nodes like hot air have no use for the param2 field. We could set param2type to "none" and use it to store the node's temperature instead of metadata. This should allow much faster performance on air node manipulation and permit us to run more often and/or more widely, improving, for example, temperature leveling inside buildings.
The code would need to be able to deal with "temp" metadata on some things where param2 is used for the node's facing, but those are corner cases.

Make Antiquorium ladders solid, extendable

Antiq ladders are currently a bit unwieldy to use. It's possible to walk through them and fall off, they need a narrow collision box to prevent that.
In addition, they should leverage the code from wooden ladders that allows you to right click on a ladder to build another on top of it, though AQ can build both ways and should probably try to build up first, and then try building down by one if there's a non-empty node above.

Beds don't always clear their markers

Under some circumstances (lag?) a bed's marker will remain after a player gets up, and if the player lays down again he can claim multiple beds.
The code needs to prevent claiming more than one bed, but it's also supposed to remove the marker as soon as you get up.

On a related note, markers should be able to time out and get removed after a configurable delay, perhaps 7 IRL days, lest multiplayer servers get filled with lingering beds of long-gone players. Admins can still remove the beds with protection_bypass privs, but it might be nice to let server owners set up the markers to be taken off automatically.

Unused Map Spaces (High and low altitudes)

So discussion about space stations doesn't derail other threads...

We have two empty areas of the map. Players can reach them, but don't live long (extreme temp ~650oC/-150oC). Currently there's no reason to go there, other than to give yourself an absurd super-challenge.

Possibilities:

  • leave them empty: easy. An out of bounds area. Death keeps people out.
  • Realms: put alternative worlds in them (e.g. outer space). Personally I don't like this because players bump into world boundaries e.g. you can make a stick pole to the bottom of the moon/dig too deep through the moon and you fall out the bottom.
  • Fill them more realistically: find something that could go there, but isn't a separate realm e.g. giant towers, deep underground mines.

naturalslopeslib external dependency causes installation problems

As of v0.3.0 as distributed on Minetest ContentDB, this game requires the naturalslopeslib dependency, but does not include it. Failing to install it causes a broken game (terrain does not generate). This problem has been reported by multiple users on IRC/Discord and they need to be told to install the dependency manually each time to resolve this.

Normally a Game for Minetest should be self-sufficient and include everything necessary to bootstrap the basic experience without any additional mods. There is apparently a weird exception where a mod within a game is allowed to have a hard dependency and if that dependency fails then that mod just doesn't load, to allow games to have effectively optional dependencies. However, this is probably mainly just an obscure footgun for game developers. Minetest's Content Browser clearly does not automatically install the external dependency and can't be relied on for help here at this time.

The sanest way to resolve this is probably to just include naturalslopeslib directly in the game distribution. I haven't been able to find a working git repo for it to use as a submodule, but maybe unzipping the CDB download directly into Exile's mods dir makes the most sense. The mod is licensed as "LGPLv2.1 or later" (https://forum.minetest.net/viewtopic.php?t=18140) so it should be fine to include in an LGPLv3 game (IANAL).

Heavy rain passing through ceilings at altitude

I witnessed this one myself, at DanS' volcano outpost on the LoC server. At an altitude of 450,heavy rain particle effects came right through a solid-node (non-slab) roof as if it wasn't there. Returning to ground level, a solid-node roof stopped the rain entirely from coming through.
Something in particle display is affected by altitude, perhaps?

The Underground City

The city is currently one of the biggest features that needs improvement.
It lacks dynamism (e.g. surface has changing weather).
It's grindy and repetitive.

The main roadblock I faced:
The original code (geomoria etc) had the ability to add decorations. I could never get this to work. Fixing this will allow adding decorations (e.g dead bodies, loot), plus mobs inside structures (spawn eggs), and maybe some stuff to add dynamism??

Lore, and the kind of features that might belong down there:
This is what I had in my head...
The city is an ancient highly advanced civilization that destroyed itself. All the modern cultures of the world trace their ancestry to this city. So the question is... what happened?
I never settled on an answer to that, and like the idea of keeping it ambiguous, but this is where I was heading...
Some kind of failed transhumanist revolution took place. Everyone who didn't join in was massacred by the those who did join. Some people escaped, exiled from the city. Those who joined gained superhuman powers, but ultimately the technology failed - the city was destroyed... perhaps some still remain, husks, lurking in the dark...
Possible features:

  • a remnant population of severely damaged transhuman people
  • long-term effects of using metastim... it will turn you into one of the remnant.
  • a rogue security system, unless you take the metastim it will attack you.

Anyway, that's where I would have taken it.
You all may have other ideas. But this is an area that needs improving.

Pressing arrow keys causes early respawn

When a player is dead and the formspec informing them of it is up, pressing the arrow keys causes them to respawn without closing the formspec.
Stats are reset after closing the formspec, but this is still odd. Is it a bug in our formspec code, or a deeper engine bug?

Moisture_spread defines too many ABMs

ABMs are a significant source of multiplayer lag, and nodes_nature/moisture_spread.lua in particular defines like four or five separate ABMs for water nodes. This should be rewritten to use only one or perhaps two, if we keep source and flowing nodes on separate ABMs.

Cooking animal eggs

This is rather a feature request than an actual issue.
Can we cook or bake the animal eggs?
The raw eggs have rather high chances of getting either food poisoning or parasites
and I was hoping fire exposure might diminish those chances (by a lot, hopefully).
People can still get the health problems if they confuse right click (place to bake) with the left click (eat).
Thank you

Crops can be planted in an occupied space

It's possible to plant seeds in an already planted square, destroying the existing plant. We should probably check and only plant a seed if the node above the soil is air.

Heat transfer has an apparent directional bias

When smelting multiple iron mix nodes, the nodes in the -X and -Z directions (west and south) heat faster and reach higher temperatures than the others. Not if this effect also occurs during cooking or firing pottery but those processes don't last as long so it may just be less obvious.

For a small underpowered smelter (three iron mix nodes and one charcoal block) the effect is most obvious: The node with the lowest X or Z coordinate heats the most, reaching 1800 C and smelting, while the middle node gets to around 1300 C and the opposite node stays at 1100 C. Once the hot node is finished smelting the other two heat up more, though the middle node is still hotter. Here's a screenshot where I extinguished the fires after the first node smelted and removed the top layer, north is up:
exile heat transfer bug

I've reproduced this on 0.3.3 and whatever branch is running on the Land of Catastrophe server currently (I'm m0dus there). I noticed from mods/climate/temperature.lua:482 in climate.air_temp_source(), the function iterates over the nearby heatable or air nodes - from some logging the ordering of the list is consistent with lower-coordinate nodes first so it hits the southwest nodes first. Then at line 510 a passed-in function parameter is modified each time the loop hits a heatable node: "temp_effect" is effectively scaled down with each pass through, starving the later nodes of heat.

A quick hack to lines 510 and 513 to declare and use a new local variable indeed leads to far more even heating, though I'm not familiar enough to know if that gives a reasonable heating rate. I don't have the repo cloned right now so you'll have to forgive the lack of PR, though I'm enjoying the game a lot so I might figure it out c:

Salty wet nodes do not interact with moisture?

Salty wet nodes are created on mapgen, but a report suggested they do not interact correctly with moisture flowing through soil?

Possible improvement; Evaporating salt water should leave salty dry nodes behind, and fresh water should become salty when moving through salty nodes, and remove the salt when they move into a non-salty neighbor.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.