Friday Facts #259 - Scan-codes, Prototype IDs, HR worm

Regular reports on Factorio development.
Hannu
Filter Inserter
Filter Inserter
Posts: 850
Joined: Thu Apr 28, 2016 6:27 am
Contact:

Re: Friday Facts #259 - Scan-codes, Prototype IDs, HR worm

Post by Hannu »

T-A-R wrote:The claws are used for digging to the surface i guess. It might grab you too if it can reach you. But we've had more surprises.....
That kind of worm should kill the player in contact with an animation when the worm grabs player, shake him to death and swallow. Maybe there could be a new version of (not so) good old electric discharge weapon, which would force worm to release player and get much damage and nice electric bolt animation.

Now I understand what kind of mouth structure low res worm try to show. However, worm's inward curved claws are clearly intended to grab and hold prey. Like many animal claws. Tunnel boring head should have claws pointing out from head. But who cares, that graphics looks great. I would not want to face that kind of worm with diameter of 3 m in real life, especially if I had forgotten my portable nuclear bomb launcher at home.

Anson
Fast Inserter
Fast Inserter
Posts: 249
Joined: Sun May 22, 2016 4:41 pm
Contact:

Re: Friday Facts #259 - Scan-codes, Prototype IDs, HR worm

Post by Anson »

until now, and on my keyboard, i have to remap several keys, even for vanilla. i can't use several default settings since those keys are not available for me, eg "/" is shift-7: how do i press shift-/ (would be shift-"shift-7" ???). similar applies to several mods which use shift-W or ctrl-D as default (probably some french, russian or whatever programmer who doesn't use WASD for walking?).

*any* method of reading the keyboard won't work for *everybody* at the same time. someone always will have to adjust something to make it work, and even more people will adjust some settings because they like something else better. using scancodes should at least make every vanilla setting accessible without rebinding.

right now i see mostly these problems with key bindings:
  • sometimes it's difficult to setup proper bindings without conflicts, and even more so when lots of mods with dozens or maybe hundreds of possible hotkeys are used. there should be options that help with setting up new bindings or exploring existing bindings, eg the ability to sort and/or filter the display of hotkeys by key. it also would be helpful if the program would list the functions (or at least tell how many functions there are) that use the same key. since quite often hotkeys work only in a specific context (eg when hovering over a specific building, having items or not having items on the cursor, etc), it's not as simple as on some other games which allow only one function per key and clear and/or list other functions when assigning a key to a new function.
  • how can i synchronize several maps and/or several installations of factorio on one or more computers, so that i can use the same setup on my PC and on my notebook (shared keyboard setups via steam or my factorio account? :-) and after sharing the basic setup (or even if including them in savefiles), how would i be able to adjust some keys only for one of the devices (eg when missing the numpad on my notebook), or when using a different collection of mods (which might have conflicts with each other)? it might be helpful when the keyboard/hotkey configuration would be saved in config files that easily can be edited (thus textfiles, not binaries) and copied between computers. this could also be used to make a printout of hotkeys for reference, or when wanting to change the setup on a different computer, or when (re)installing some mod that i already had configured once in the past. Another solution might build on having two stages of hotkeys: one global permanent set of hotkeys for a factorio installation, and a second set of hotkeys "per map" that can be cleared/set (like it is possible now) with an additional third option to use "default" (to simply use the global setting).
  • i would like to have a permanent record of all hotkeys that i ever have configured, so that it will be easy to remove and (re)add mods and immediately have the old "perfect" keybinds for it that i carefully had selected once.
  • what will happen to keyboards with unexpected keycodes (eg when using a keyboard with less or more keys, or a completely different physical layout of keys)? and this problem includes lots of additional input options like a second keyboard, external numpads, other gamepads and input devices (I'm using a G13), rebinding mousebuttons to send keys (in the mouse driver), etc.
  • for many functions, i would like to have alternatives, thus it would be nice to have not only one hotkey per function but at least two. this would enable me to bind some key to a function and still be able to also bind eg mousebutton 4 (or keys on my G13) to the same function (instead of having to reconfigure my mouse driver to send the keycode that i have bound to that function), or to walk alternatively with WASD or cursor keys, or to have num+ and num- on my PC and use the same config file on my notepad to use the (finger breaking) alt-shift-ctrl-minus and alt-shift-ctrl-plus without having to reconfigure anything.
some of the above doesn't only apply to hotkey settings, but also to mod settings. currently i have to do many mod settings and mod hotkeys over and over again when i switch back and forth between several maps or even several factorio installations. thus it would also be nice to have some features for mods, eg a permanent global list of settings for all mods ever used, with additional map settings which by default are defaulting to those global settings but allow to change them for specific maps, eg having an additional option on the "per map" settings. and the "reset" button should be split into two options: "reset all" and "reset one mod" so that i can reset all mod settings/hotkeys of one mod without needing to setup everything else too. and of course all those mod settings too should be stored in config files that can be edited with a text editor, easily copyable (partially and/or all settings together) between different installations/maps (or even other texts like forum posts, helpfiles, etc) or even synchronized via steam or my factorio account :-)

User avatar
BlueTemplar
Smart Inserter
Smart Inserter
Posts: 2420
Joined: Fri Jun 08, 2018 2:16 pm
Contact:

Re: Friday Facts #259 - Scan-codes, Prototype IDs, HR worm

Post by BlueTemplar »

Hannu wrote: Collision checks are just geometry. Is point in polygon or do border lines of polygons cross (or respective 3D objects in 3D games). Physics is what happens if collision will occur. Factorio's physics model is extremely simple, target just loses health points but momentum changes are not modeled at all. It is what I expect from physics engine. Physics engine could be 2D, for example train hitting to car or biter could throw it away realistically. But I think such modeling would be quite futile development work in Factorio.
Oh, very good point, but doesn't it kind of happen, since trains/tanks get slowed down when crushing biters/spawners/trees ?
(Or is it an unintended side effect of health point calculations that looks realistic?)
BobDiggity (mod-scenario-pack)

sniderthanyou
Inserter
Inserter
Posts: 20
Joined: Tue Jul 05, 2016 11:43 am
Contact:

Re: Friday Facts #259 - Scan-codes, Prototype IDs, HR worm

Post by sniderthanyou »

This Dvorak user thanks you.

Erik

pleegwat
Filter Inserter
Filter Inserter
Posts: 255
Joined: Fri May 19, 2017 7:31 pm
Contact:

Re: Friday Facts #259 - Scan-codes, Prototype IDs, HR worm

Post by pleegwat »

Oktokolo wrote:I don't think, there is anyone in the "worm attacks should not be dodgeable" camp.
I suspect player position is not kept sufficiently synchronized to allow for dodging attacks.

User avatar
eradicator
Smart Inserter
Smart Inserter
Posts: 5206
Joined: Tue Jul 12, 2016 9:03 am
Contact:

Re: Friday Facts #259 - Scan-codes, Prototype IDs, HR worm

Post by eradicator »

Anson wrote:*any* method of reading the keyboard won't work for *everybody* at the same time.
Can be compensated by offering several default layouts and asking the user what kind of keyboard they have. Either on first start (don't forget the "i don't know"-button) or as an option in the controls menu.
Author of: Belt Planner, Hand Crank Generator, Screenshot Maker, /sudo and more.
Mod support languages: 日本語, Deutsch, English
My code in the post above is dedicated to the public domain under CC0.

User avatar
Oktokolo
Filter Inserter
Filter Inserter
Posts: 883
Joined: Wed Jul 12, 2017 5:45 pm
Contact:

Re: Friday Facts #259 - Scan-codes, Prototype IDs, HR worm

Post by Oktokolo »

pleegwat wrote:I suspect player position is not kept sufficiently synchronized to allow for dodging attacks.
As the mod Rampant already implements that, i suspect position synchronization to be sufficient.

Jap2.0
Smart Inserter
Smart Inserter
Posts: 2339
Joined: Tue Jun 20, 2017 12:02 am
Contact:

Re: Friday Facts #259 - Scan-codes, Prototype IDs, HR worm

Post by Jap2.0 »

pleegwat wrote:
Oktokolo wrote:I don't think, there is anyone in the "worm attacks should not be dodgeable" camp.
I suspect player position is not kept sufficiently synchronized to allow for dodging attacks.
What exactly do you mean by synchronized? If you're referring to multiplayer, then it's always kept perfectly synchronized.
There are 10 types of people: those who get this joke and those who don't.

User avatar
BlueTemplar
Smart Inserter
Smart Inserter
Posts: 2420
Joined: Fri Jun 08, 2018 2:16 pm
Contact:

Re: Friday Facts #259 - Scan-codes, Prototype IDs, HR worm

Post by BlueTemplar »

Yeah, but the latency...
BobDiggity (mod-scenario-pack)

User avatar
Oktokolo
Filter Inserter
Filter Inserter
Posts: 883
Joined: Wed Jul 12, 2017 5:45 pm
Contact:

Re: Friday Facts #259 - Scan-codes, Prototype IDs, HR worm

Post by Oktokolo »

BlueTemplar wrote:
Tue Sep 11, 2018 6:54 am
Yeah, but the latency...
Apart from speed and direction changes, players can also stop or start shooting, eat fish, throw grenades, capsules, mines, place buildings, pick up or drop stuff... There is a lot going on in Factorio multiplayer and the game handles that concurrency and involved latency just fine (based on own experience in multiplayer with ping < 50ms).

Other multiplayer games often just pretend that players are keeping their speed and direction and fix discrepancies due to player actions after the fact. In that games, other players see this: Player moves a straight line, gets hit, loses hitpoints, suddenly teleports a small distance away and has back the lost hitpoints. Not that big a deal and hard to notice while ping is low enough.
I had moments where the scene freezes and then continues much faster for some ticks and i also experienced small teleports myself. So i guess, Factorio servers are just waiting until they received every client's state changes for a tick and then reply with the synchronized updated state for this tick. As a tick is only 16.7ms, i also assume that clients send events for next ticks before actually receiving the resulting state from the server. So they probably do some simulation on their own to let the player experience a less laggy world when ping is > 16ms.

meganothing
Fast Inserter
Fast Inserter
Posts: 238
Joined: Thu Sep 15, 2016 3:04 pm
Contact:

Re: Friday Facts #259 - Scan-codes, Prototype IDs, HR worm

Post by meganothing »

Oktokolo wrote:
Mon Sep 10, 2018 5:54 pm
pleegwat wrote:I suspect player position is not kept sufficiently synchronized to allow for dodging attacks.
As the mod Rampant already implements that, i suspect position synchronization to be sufficient.
No need to guess. FF's 188 and 76 explain how Factory multiplayer and lockstep works. FF 76 still talks about peer-to-peer which was later changed to a client-server model, but the rest should still be in sync with reality.

Hannu
Filter Inserter
Filter Inserter
Posts: 850
Joined: Thu Apr 28, 2016 6:27 am
Contact:

Re: Friday Facts #259 - Scan-codes, Prototype IDs, HR worm

Post by Hannu »

BlueTemplar wrote:
Mon Sep 10, 2018 2:30 pm
Oh, very good point, but doesn't it kind of happen, since trains/tanks get slowed down when crushing biters/spawners/trees ?
(Or is it an unintended side effect of health point calculations that looks realistic?)
Yes, you are right, I just forgot it because I thought complex collision mechanics with impulse forces, momentums, torques and angular velocities. It is actually primitive physics model.

User avatar
dog80
Filter Inserter
Filter Inserter
Posts: 278
Joined: Thu Dec 08, 2016 11:57 pm
Contact:

Re: Friday Facts #259 - Scan-codes, Prototype IDs, HR worm

Post by dog80 »

boooooring

User avatar
cpy
Filter Inserter
Filter Inserter
Posts: 839
Joined: Thu Jul 31, 2014 5:34 am
Contact:

Re: Friday Facts #259 - Scan-codes, Prototype IDs, HR worm

Post by cpy »

Need new version :(

User avatar
KoblerMan
Fast Inserter
Fast Inserter
Posts: 184
Joined: Sat Mar 05, 2016 12:59 am
Contact:

Re: Friday Facts #259 - Scan-codes, Prototype IDs, HR worm

Post by KoblerMan »

Let me tell you guys EXACTLY what I mean, so that we can hopefully come to a consensus about worm/spitter attacks and put this to rest.

Right now, if you load up Factorio, worms and spitters both have mechanically identical attacks (same animation, same projectile sprite, same speed, same curvature) with the only real difference being range and damage, depending on unit type. So, for all intents and purposes, just assume that when I say "worm" or "spitter" attack, the two terms are interchangeable; save for the penultimate paragraph, which you will understand when you read it.

I think it's important that the damage remains consistent. No player should be able to walk into a huge biter nest full of worms and spitters with inferior technology, and be able to dodge damage by running in circles or doing ridiculous dancing back and forth. With the way that worm and spitter projectiles work now, it's a level playing field. Just as biters and spitters cannot effectively dodge machine gun fire (and worms and nests can't dodge flames and tank shells, since they're static structures!), the player -- in my opinion -- should not be able to avoid HARD-TARGET AUTO ATTACKS such as the spit that is currently in the game. The only thing that I ORIGINALLY said about the worm/spitter projectiles is that the homing effect completely ruins the willing suspension of disbelief, as do the lasers from the laser turrets in the current game; although the latter are being updated to shoot continuous beams.

What I personally want to see is either instantaneous projectile speed from the worms and spitters, just like the player's gun turrets, pistol and SMG now, OR something more like what the new laser turrets will have; i.e.: a continuous stream of vomit that deals damage over time, rather than homing "dumb" projectiles (that should fly straight and not curve toward their target from a realism standpoint).

Now, what I noticed is that the conversation I started got derailed and the lot of us ended up arguing about whether projectiles should be dodgeable. My concern is this: Auto-attacks such as worm and spitter spit should remain functionally similar, but the graphics of it should be changed as to keep it believable. There's no reason to turn auto-attacks into hitscan projectiles that the player can dodge. Call it an opinion -- because it is -- but I don't want to see something like that happen just because players want to avoid damage. Damage should be consistent. Always. However, this is a good segue into the next point that I brought up.

If you are a player, and you DO want to be able to avoid damage, my idea is this: Make the changes to *SPITTERS* mentioned above (instant-hit projectile, or a "beam" of acid spray that pinpoints the target). However, *WORMS* can be reworked entirely. Instead of having the same attack as spitters now, they could feasibly lack an auto-attack and simply provide fire support with dodgeable AoE (Area of Effect) projectiles that mark where they will land as well as the blast radius (exactly like the player-built artillery in the game now). As well as making worm attacks slower and harder hitting, this would give players incentive to not get trapped within the enemy nest or surrounded by biters with no escape -- since not having the mobility to avoid an incoming AoE attack would effectively make worms hit their target 100% of the time. On the other hand, however, this would reward skilled players by giving them a way to avoid massive damage if they played their cards right. Worm projectile damage and AoE radius could scale with their tier (small, medium, large) while keeping the projectile speed constant; that way, players aren't unpleasantly surprised by differing projectile flight speeds from worms. In addition to that, it would also favor players with exoskeletons for speed equipped, and give exoskeletons a better combat advantage, giving them more use than just as a utility.

This is my proposal to the developers, as well as everyone else in this thread. I think even (relatively) small changes like this would be of huge benefit to the gameplay and fun factor. Most of us play Factorio to design and build awesome factories, rail networks, and power grids, but we can't leave out the people who just want some weapons and to be pointed in the direction of the nearest biter nest to indulge in a bit of insectoid genecide. I think with a bit more polish, Factorio's combat system can be just as engaging and immersive as the rest of the game.
ImageImage
System Specs
OS: Windows 10 Professional 64 Bit
CPU: AMD Ryzen 5 3600X (@~3.8 gHz)
GPU: Nvidia RTX 2080
RAM: 32GB DDR4 (2400)
DRIVES: 2x 1TB NVMe SSD, 1x 6TB HDD

User avatar
BlueTemplar
Smart Inserter
Smart Inserter
Posts: 2420
Joined: Fri Jun 08, 2018 2:16 pm
Contact:

Re: Friday Facts #259 - Scan-codes, Prototype IDs, HR worm

Post by BlueTemplar »

Yeah, I got that, and it's a great idea !

(But how any AI attack, including worm "artillery" attack would not be an auto-attack ?).

I'd say that it would be nice if higher tiers of worms still got a (slightly) faster projectile - so that exoskeletons don't make them too easily dodgeable !

But *especially*, maybe add a "Behemoth" worm tier, with artillery-like range?
(Also, maybe Big Worms should already be able to outrange turrets / poison capsules ?)
BobDiggity (mod-scenario-pack)

User avatar
KoblerMan
Fast Inserter
Fast Inserter
Posts: 184
Joined: Sat Mar 05, 2016 12:59 am
Contact:

Re: Friday Facts #259 - Scan-codes, Prototype IDs, HR worm

Post by KoblerMan »

BlueTemplar wrote:
Sat Sep 15, 2018 9:34 am
But how any AI attack, including worm "artillery" attack would not be an auto-attack ?
Ok, again, you're just being nit picky and getting into semantics, but I'll clarify and spell it out for you. By auto-attacks, what I mean are attacks SUCH AS ones that get carried out by basic combat units in RTS games, which you're apparently familiar with. For all intents and purposes, I'd say that player SMG's, pistols, gun/laser turrets, and rockets (excluding atomic bombs since they are "dumb" projectiles) fall into this category, as well as the current spitter/worm attacks.

Contrast "spellcasting" attacks, which are an intentional, targeted ability by specific specialty units that may or may not take time to reach their target, deal AoE "splash" damage (typically either in a circular radius, cone, or line), and rather than focusing on a single unit they will target a spot on the ground. Most of the player weapons actually do this, including but not limited to shotguns, flamethrowers, tank shells, artillery, and nukes. Even though flamethrower turrets and artillery target specific units and fire automatically, I consider them under this category because of the flamethrower turret leading its targets, and the artillery shells having a considerable flight time.

All I REALLY want to see are worm projectiles that create splash damage and take time to reach their target (think flamethrower-based weapons now), while spitter projectiles hit instantaneously from the point that they fire to keep the illusion up.
BlueTemplar wrote:
Sat Sep 15, 2018 9:34 am
I'd say that it would be nice if higher tiers of worms still got a (slightly) faster projectile - so that exoskeletons don't make them too easily dodgeable !
I disagree. That level of granularity just seems unnecessary and IMO would be more annoying than anything.
BlueTemplar wrote:
Sat Sep 15, 2018 9:34 am
But *especially*, maybe add a "Behemoth" worm tier, with artillery-like range?
(Also, maybe Big Worms should already be able to outrange turrets / poison capsules ?)
Behemoth worms (as you describe them) would just be a total bitch to deal with. Imagine biters expanding and building a base nearby, and you have your laser turret wall set up, which is suddenly taking huge amounts of damage from something that's so far out of your range that you can't even see it. You'd be forced to clear out that particular nest, or risk losing your entire factory... or at the very least, a decent chunk of it. You could argue that this is what the player does with artillery turrets to wipe out biter nests, but biter AI is incapable of feelings and doesn't put any thought, or extravagant time, effort, and planning into the structures it builds. I could go down the whole philosophical rabbit hole of, "Is it really fair to the biters?" but that's not the topic at hand.

On the contrary, I like your second idea quite a bit. Big worms outranging turrets and poison capsules would be an interesting mechanic, as it would discourage laser turret creep, which as far as I'm concerned is a pretty broken midgame mechanic that just makes any newer advances in combat technology beyond laser turrets pointless. You'd just have to make sure that the player has a reliable enough way of dealing with big worms that it's not a complete chore or impossible to clear them out, without using static defenses (exempting artillery, of course).
ImageImage
System Specs
OS: Windows 10 Professional 64 Bit
CPU: AMD Ryzen 5 3600X (@~3.8 gHz)
GPU: Nvidia RTX 2080
RAM: 32GB DDR4 (2400)
DRIVES: 2x 1TB NVMe SSD, 1x 6TB HDD

EraYaN
Manual Inserter
Manual Inserter
Posts: 4
Joined: Sun Sep 16, 2018 7:16 am
Contact:

Re: Friday Facts #259 - Scan-codes, Prototype IDs, HR worm

Post by EraYaN »

On the shortcuts, please just use the same ones Windows or whatever the OS is (So Cmd+Z on Mac) uses. You can actually just implement an actual clipboard handler, link excel/photoshop and many others do. So when you paste in a different program, you will have to think about do you want a rendered picture or a blueprint string, stuff like that.

ekffie
Manual Inserter
Manual Inserter
Posts: 3
Joined: Thu Jul 05, 2018 4:56 am
Contact:

Re: Friday Facts #259 - Scan-codes, Prototype IDs, HR worm

Post by ekffie »

hm..
how would using scan codes affect other input devices other than keyboard?
I for instance play factorio with steam controller only as I am just not able to get the hang of wasd play.
Does the steam controller even send scancodes or does it rely on key codes only?

Would be a gamebreaker for me if it would not work anymore. And I can imagine that there could be more input devices that send their information differently.

Please consider this and if neccessary give an advanced option to use keycodes instead of scancodes.

User avatar
jamiechi1
Fast Inserter
Fast Inserter
Posts: 196
Joined: Wed Jan 03, 2018 10:12 pm

Re: Friday Facts #259 - Scan-codes, Prototype IDs, HR worm

Post by jamiechi1 »

A quick google search showed that apparently the Steam Controller does send scan codes.
Which does make sense. To maintain maximum compatiblity with pc's that evolved from the original IBM computers, it is best to use scan codes for devices that emulate or replace keyboard functions. So you should not have any issues with using the Steam Controller with the new update.

Post Reply

Return to “News”