Putting the 'role' back in role-playing games since 2002.
Donate to Codex
Good Old Games
  • Welcome to rpgcodex.net, a site dedicated to discussing computer based role-playing games in a free and open fashion. We're less strict than other forums, but please refer to the rules.

    "This message is awaiting moderator approval": All new users must pass through our moderation queue before they will be able to post normally. Until your account has "passed" your posts will only be visible to yourself (and moderators) until they are approved. Give us a week to get around to approving / deleting / ignoring your mundane opinion on crap before hassling us about it. Once you have passed the moderation period (think of it as a test), you will be able to post normally, just like all the other retards.

Factorio - a factory building game

Damned Registrations

Furry Weeaboo Nazi Nihilist
Joined
Feb 24, 2007
Messages
14,978
Bullets are pretty useful due to their hitscan properties, by the time your slow ass laser beam has moved out to a bug it might already be firing back at you.
The combat is dumb as shit and pointless and you know it.

Install Rampart AI and say that again :) But yeah vanilla combat is dumb and not interesting.

Googled it, still sounds bad:
https://www.reddit.com/r/factorio/comments/871ps3/experiences_with_rampant_ai_and_no_other_combat/

My main problem with the combat is that it isn't balanced in any way. At default it is stupidly easy and pointless. On max settings it is impossible. So there is no way to get a good setup. You could trial and error the settings but it takes so long to get through a game to the point where you know if the settings are good, it is just far too much of a chore and a waste of time. This the job of the devs and they don't bother because the community is full of fucking tools like Blaine that want to suck their dick for making a lego game and rage if anyone with standards wants something more. Devs don't need to spend the time balancing this stuff if 2 million people buy it anyway. If there was some mod that could make combat challenging but doable, I would be really happy with this game. But there isn't.
What is impossible for you is going to be trivially easy for someone else. Expecting the devs to have balanced combat (and by extension, every other part of the game) specifically for your current level of skill is retarded.
 

Perkel

Arcane
Joined
Mar 28, 2014
Messages
15,801
Yeah if you want to fight with something then it needs to be hard and you need to understand that you can't win most of the time.

I play Rampart AI + full bobsangels so i know what struggle is. IT is really fun to come up with ways to counter bugs where in normal game i wouldn't care about that at all. Building megabase in one place with proper enemies may not be brightest idea much like creating defense on other wall instead of hectoring your factory into defensive bits.

Same with research and expansion. What you research first is super crucial because you can actually run out of resources. How you build also is super important because with Rampart AI it is really hard to clear bug bases, so instead you might just as well go extra mile to find other spot or instead of creating huge mining pit just place few drillers and slowly dig out stuff over time not trying to cause waves of bugs. How about securing supply lines ? Suddenly creating turret factory starts to make sense when you need to place 100 turrets on way to your nearest mining site. Hey ! Why would i need 100 turrent on the way ? Why can't i just use trains ? Well you are playing bobsangles and that stuff will come to you much later mate, etc etc etc.

After year of playing in such setup i think i found my golden ratio of difficulty for bobsangelsaai+rampart :

- no evolution. Rampart AI bugs even small ones are so aggressive and roam in such huge packs that you don't need to artificially increase bugs toughness. As you base will expand it will gather waaaaaay more bugs coming to you than in vanilla and soon you will have hordes of them attacking you.
- no expansion. Rampart AI bugs can roam world, once they find target they can build waves, probe defenses to look for weak spot etc. bug expansion is just primitive way of what Rampart AI does at default.
- lower bug base frequency to 25%. At this level you can actually slip by bugs bases. At higher level you are essentially land locked.
- walls stop spitters attacks. makes no sense why they won't.

With such setup you can expand with bobsangels up to around train age where you need to hit those further resources. Once you hit that age your base will generate enough pollution that quickly you will get ton of response and since rampart AI is not stupid you will have ton of work managing defenses properly and solving defense problems while you design factories.
 

Blaine

Cis-Het Oppressor
Patron
Joined
Oct 6, 2012
Messages
1,874,662
Location
Roanoke, VA
Grab the Codex by the pussy
Factorio isn't a combat game. Resident genius anvi insists that it was marketed as a tower defense game—which, like almost everything he posts, is wrong and stupid. Shitters are pests to be managed, just another logistical consideration.

The difficulty of vanilla shitters has actually ramped up recently, but if you're already experienced with the game, then you'll probably need mods in order for shitters to be challenging again.
 

anvi

Prophet
Village Idiot
Joined
Oct 12, 2016
Messages
7,530
Location
Kelethin
Bullshit excuse ^

They have a tower defense mode, and in the main survival mode you get attacked by enemies who are all over the map in bases and you defend with towers and walls. You build guns and a tank and grenades and artillery. They made it a game with combat, your excuse is shit.
 

anvi

Prophet
Village Idiot
Joined
Oct 12, 2016
Messages
7,530
Location
Kelethin
Bullets are pretty useful due to their hitscan properties, by the time your slow ass laser beam has moved out to a bug it might already be firing back at you.
The combat is dumb as shit and pointless and you know it.

Install Rampart AI and say that again :) But yeah vanilla combat is dumb and not interesting.

Googled it, still sounds bad:
https://www.reddit.com/r/factorio/comments/871ps3/experiences_with_rampant_ai_and_no_other_combat/

My main problem with the combat is that it isn't balanced in any way. At default it is stupidly easy and pointless. On max settings it is impossible. So there is no way to get a good setup. You could trial and error the settings but it takes so long to get through a game to the point where you know if the settings are good, it is just far too much of a chore and a waste of time. This the job of the devs and they don't bother because the community is full of fucking tools like Blaine that want to suck their dick for making a lego game and rage if anyone with standards wants something more. Devs don't need to spend the time balancing this stuff if 2 million people buy it anyway. If there was some mod that could make combat challenging but doable, I would be really happy with this game. But there isn't.
What is impossible for you is going to be trivially easy for someone else. Expecting the devs to have balanced combat (and by extension, every other part of the game) specifically for your current level of skill is retarded.
Another bullshit excuse. Every game comes with difficulty levels that are really good and really well balanced. This game has none.
 

Zarniwoop

TESTOSTERONIC As Fuck™
Patron
Joined
Nov 29, 2010
Messages
18,646
Shadorwun: Hong Kong
Factorio isn't a combat game. Resident genius anvi insists that it was marketed as a tower defense game—

WHAT?

Lol, where is that post, I must rate it shit immediately.

What kind of retard thinks Factorio is, or is marketed as, a tower defense game?
 

DDZ

Red blood, white skin, blue collar
Patron
Joined
Dec 17, 2012
Messages
1,829
Location
Under the Gods
Codex 2013 Codex 2014 PC RPG Website of the Year, 2015
Every game comes with difficulty levels that are really good and really well balanced. This game has none.

Yeah.. Take a long walk of a short pier you goddamn faggy idiot.
Face it, you are playing glorified Lego for babies and you are mad at someone that wants more.

No, I am not mad at someone because she wants more. I am 'mad' because you are a dumb fucking idiot.
 

anvi

Prophet
Village Idiot
Joined
Oct 12, 2016
Messages
7,530
Location
Kelethin
Great argument, I totally believe you, it's not because you are a moron playing a kids game and butthurt at the realization.
 

Blaine

Cis-Het Oppressor
Patron
Joined
Oct 6, 2012
Messages
1,874,662
Location
Roanoke, VA
Grab the Codex by the pussy
Factorio isn't a combat game. Resident genius anvi insists that it was marketed as a tower defense game—

WHAT?

Lol, where is that post, I must rate it shit immediately.

What kind of retard thinks Factorio is, or is marketed as, a tower defense game?

Well, he posted another one. Shit like this makes me genuinely wonder if he's legitimately autistic:

Bullshit excuse ^

They have a tower defense mode, and in the main survival mode you get attacked by enemies who are all over the map in bases and you defend with towers and walls. You build guns and a tank and grenades and artillery. They made it a game with combat, your excuse is shit.

In case it's not entirely clear, he's equating turrets with towers... and yes, he wants the game to be all about combat and to have a big boss fight in space as the grand finale. He should probably play Terraria instead.
 

anvi

Prophet
Village Idiot
Joined
Oct 12, 2016
Messages
7,530
Location
Kelethin
Why do you deny something so obvious? It has a tower defense mode as part of the vanilla game... Why even post if you have to lie and make up stupid shit?
 

Nutria

Arcane
Patron
Joined
Mar 12, 2017
Messages
2,252
Location
한양
Strap Yourselves In
IIRC in a recent changelog or blogpost or something they said that some players were criticizing them for having too much combat in a game that's about production, and they replied that in Factorio, combat is all about production. It reminds me of how non-tarded people during WWII understood it, that victory would go to the side that made more stuff and was more efficient at delivering it where it needs to go.
 

anvi

Prophet
Village Idiot
Joined
Oct 12, 2016
Messages
7,530
Location
Kelethin
That makes no sense though, you can just turn combat off easily. Your ww2 analogy is one of the most idiotic things I've ever read, even by internet standards.
 

Tweed

Professional Kobold
Patron
Joined
Sep 27, 2018
Messages
2,838
Location
harsh circumstances
Pathfinder: Wrath
Removing the natives takes too much fun out of all that micromanaging, what else were you going to do besides meticulously balance your bus and improve efficiency? Someone, or something needs to be there to crack the whip and make you work harder, become even more efficient.
 

anvi

Prophet
Village Idiot
Joined
Oct 12, 2016
Messages
7,530
Location
Kelethin
^ The problem is dumb people and aspies are happy to do nothing but "meticulously balance your bus". Anyone else wants some interactivity and depth. Sadly the public are mostly the former now games like this can sell a million copies without even trying.
 

Zarniwoop

TESTOSTERONIC As Fuck™
Patron
Joined
Nov 29, 2010
Messages
18,646
Shadorwun: Hong Kong


[AUTISM INTENSIFIES][AUTISM INTENSIFIES][AUTISM INTENSIFIES][AUTISM INTENSIFIES][AUTISM INTENSIFIES][AUTISM INTENSIFIES][AUTISM INTENSIFIES][AUTISM INTENSIFIES][AUTISM INTENSIFIES][AUTISM INTENSIFIES][AUTISM INTENSIFIES][AUTISM INTENSIFIES][AUTISM INTENSIFIES][AUTISM INTENSIFIES][AUTISM INTENSIFIES][AUTISM INTENSIFIES][AUTISM INTENSIFIES][AUTISM INTENSIFIES][AUTISM INTENSIFIES][AUTISM INTENSIFIES][AUTISM INTENSIFIES][AUTISM INTENSIFIES][AUTISM INTENSIFIES][AUTISM INTENSIFIES][AUTISM INTENSIFIES][AUTISM INTENSIFIES][AUTISM INTENSIFIES][AUTISM INTENSIFIES][AUTISM INTENSIFIES][AUTISM INTENSIFIES][AUTISM INTENSIFIES][AUTISM INTENSIFIES][AUTISM INTENSIFIES][AUTISM INTENSIFIES][AUTISM INTENSIFIES][AUTISM INTENSIFIES][AUTISM INTENSIFIES][AUTISM INTENSIFIES][AUTISM INTENSIFIES][AUTISM INTENSIFIES][AUTISM INTENSIFIES][AUTISM INTENSIFIES][AUTISM INTENSIFIES][AUTISM INTENSIFIES][AUTISM INTENSIFIES][AUTISM INTENSIFIES][AUTISM INTENSIFIES][AUTISM INTENSIFIES][AUTISM INTENSIFIES][AUTISM INTENSIFIES][AUTISM INTENSIFIES][AUTISM INTENSIFIES][AUTISM INTENSIFIES][AUTISM INTENSIFIES][AUTISM INTENSIFIES][AUTISM INTENSIFIES][AUTISM INTENSIFIES][AUTISM INTENSIFIES][AUTISM INTENSIFIES][AUTISM INTENSIFIES][AUTISM INTENSIFIES][AUTISM INTENSIFIES][AUTISM INTENSIFIES][AUTISM INTENSIFIES][AUTISM INTENSIFIES][AUTISM INTENSIFIES][AUTISM INTENSIFIES][AUTISM INTENSIFIES][AUTISM INTENSIFIES]
 

anvi

Prophet
Village Idiot
Joined
Oct 12, 2016
Messages
7,530
Location
Kelethin
Nothing wrong with the teletubbies either, but if you enjoy it as an adult you are retarded.
 

Perkel

Arcane
Joined
Mar 28, 2014
Messages
15,801
Looks like new overhaul looks pretty fucking great:

https://mods.factorio.com/mod/IndustrialRevolution

7FPDh50.gif


DQp6cdA.gif


2MlomHn.gif
 

Blaine

Cis-Het Oppressor
Patron
Joined
Oct 6, 2012
Messages
1,874,662
Location
Roanoke, VA
Grab the Codex by the pussy
The art assets are obviously top-notch, but in addition to being overly theme-y and arbitrary, the concept is rather nonsensical because the engineer(s) hail from an advanced interstellar civilization.

That said, if it genuinely spices up the vanilla gameplay (and adds new logistical puzzles to solve) for experienced players, I have nothing against it.
 

Infinitron

I post news
Staff Member
Joined
Jan 28, 2011
Messages
97,225
Codex Year of the Donut Serpent in the Staglands Dead State Divinity: Original Sin Project: Eternity Torment: Tides of Numenera Wasteland 2 Shadorwun: Hong Kong Divinity: Original Sin 2 A Beautifully Desolate Campaign Pillars of Eternity 2: Deadfire Pathfinder: Kingmaker Pathfinder: Wrath I'm very into cock and ball torture I helped put crap in Monomyth
:necro:

https://factorio.com/blog/post/fff-349

Friday Facts #349 - The 1.0 plan


Hello, today we have some big news.

The 1.0 plan Klonan
In FFF-321 we announced a release date for version 1.0. Given recent events we have decided to make an amendment to the date of 1.0. The new date we are aiming for is Friday August 14th 2020, which is 5 weeks earlier than the original date.

The main reason to change the release date is the release of Cyberpunk 2077. In January this year, CD Projekt Red announced a delay to the release of Cyberpunk 2077, to September 17th, 1 week before our Factorio 1.0 launch. We think any release close to such a monumental game is going to feel some negative effects, such as everybody playing and covering Cyberpunk and taking attention away from other games.

So we thought it was best to try release either before Cyberpunk or quite a while after it. Given the two choices, we opted to bring the release date forward. There are several reasons why we are choosing to release earlier:

Descoped goal
When we announced the date (FFF-321), we had plans for many things to be in the final release. The main topics were the new campaign, fluid algorithm improvements, and the full GUI rewrite. Due to independent reasons, we have cancelled the new campaign (FFF-331), postponed the fluid improvements, and cut a lot of the aspects of the GUI rewrite (FFF-348).

Staying on schedule
Apart from descoping some features, the other work we've been doing has been progressing at a good pace. The 0.18 experimental release structure (FFF-314) is really helping to keep things on track. The original estimate was made with some concession for delays, that "things always take longer than expected". Well for the last 6 months, most things haven't been taking longer than expected, and we've been finishing topics quite effectively.

The sooner the better
The general feeling in the office is that the game is pretty much done, and that we want to get it released as soon as possible. The sooner we get some closure on version 1.0, the sooner we can start thinking about fun and exciting new things.


So due to the co-incidence of cancelling several major features, we can afford to bring the release date forward. To be clear, we didn't cancel or postpone any features due to the Cyberpunk release date.

This new release date gives us 10 weeks, and from this point until Friday August 14th, the main focus for the team is on finalising the game, updating the trailer, and preparing marketing materials.


Click to view full resolution

Locale plan and Locale freeze Klonan
One part of finalising the game comes in finalising the community translations of the game. For a long time we have used Crowdin for sourcing all the translations. Crowding has worked really well, and is deeply integrated into our workflow (FFF-48).

However some languages are not 100% covered, and there has not been any overall proofreading. For this reason we chose to look for a professional translation company to help fill in the gaps and proofread everything. We specifically needed a company that will work through Crowdin, as the community there has years of experience with the game, and the system won't need any management on our side.

After consultation with many companies and many other game developers for their thoughts, we have decided to partner with Altagram, based in Berlin, Germany.

With the final GUI update finished, we have frozen the locale, which means no more additions or changes (as much as is reasonable). There will be a proofreading of the English source texts, and after that a proofreading of all the target languages.

For absolute clarity, Altagram has detailed the plan and the process from their perspective:


  • Once we get the greenlight that the community has completed their contributions to the translations in Crowdin, we’ll start proofreading the English source text to offer any grammar or stylistic improvements, as needed. Once the English is polished, we’ll get started on proofreading for the secondary languages.

    The linguists, who are all gamers themselves, and experts in game localization, will work their magic to ensure that the target language is as true to the source text as possible, to ensure that all players of Factorio, regardless of the language they play in, will have the same experience.

    Some things that the linguists will check for when proofreading the target language are: Ensuring that the text itself, especially all in-game terms, is consistent throughout; that spelling and grammar is correct; and that the translations carry the same meaning and emotion as intended.

    After we offer our suggestions, the texts will be sent back to the community for their final approval before implementation into the game.
From now until 1.0 release, Locale freeze mainly means that we'll only be working on topics that don't require new strings, such as bugfixes, new graphics, sound design, etc.

Prototype Explorer GUI/Prototypes GUI Rseding
Inspiration
Factorio has a lot of debug features and tools built into it over the years. Some of them are used extensively (show FPS/UPS) and others we wonder how we ever did without (GUI style inspection tooltip). Every one of them was added for a purpose and then ended up providing far more utility than its original purpose. With that in mind, and because they also end up being a lot fun (to me); I was working on fixing an issue I found with the GUI style inspection tooltip logic and thought to myself: wouldn't it be nice to have something like this for all the prototypes in the game? Is that even something I could do realistically? How would it look, how would it handle all the nesting that happens... but it sounded fun.

And so I decided to see what utility such a thing could have:

  • Figure out if a mod has tweaked or changed something - or if it was supposed to and didn't (common in modded bug reports and during mod development)
  • Provide a place to extract information that the game doesn't show anywhere else (not everything is exposed through the mod API, and it's unrealistic to expect anyone to remember the entire API)
  • Link from game concepts to the wiki explaining more about them.
The list of benefits seemed worth at least tinkering with the idea.


fff-349-prototype-explorer.png


Technical design
The first part I needed to figure out was - how was I going to get everything shunted into a GUI. Factorio is written in C++ and C++ does not have reflection. There's no easy way to say "for all of the variables this thing has, do this". Really the only way to get everything covered is to send each thing to the GUI. It's not pretty, but we also don't make changes to prototypes frequently at this stage in development. Additionally, if something is "wrong" it doesn't cause crashing/errors; it's an easy fix that anyone can do. A lot of boring typing later that part was covered.

Nothing is ever easy or simple
For each thing to show: show the name, show the value, show the type. It sounded simple but it never is.

  • The type can be incredibly verbose and or just useless to a human: what does this even mean? "class std::basic_string,class std::allocator >" (it's a string...)
  • The value can be huge - so collapsing needed to be created
  • The value can be an array of something, so "empty" should be shown for empty arrays
  • Arrays of things with 1 value really should just show the 1 value
  • Optional things should show "empty" when not set
  • Some things will link to another thing so linking needed to be create
  • All of this has to work at any nesting level
But that's Factorio, and the polish is what makes it nice to use. I don't regret any of it.


Wiki linking
Near the early stages of development I decided that the easiest way to convey to anyone using this what some "type" is and how it's supposed to be used is to show the wiki page about it. The wiki has very detailed information about a lot of what this was going to be showing and it seemed only logical to utilize it. But I didn't want to hard-code links... that never ends well.

My idea: a page on the wiki that provides a mapping of game type -> wiki URL. The game would download the mapping and as it filled in the GUI if it found a type that existed in the mapping it would link it to the wiki. Bilka got the wiki side of it quickly setup. The game side... "nothing is ever easy or simple".

  • I didn't want to download the wiki page every time the GUI opened - that would be a waste
  • I didn't want to download the wiki page every time the game launched - the page wouldn't change frequently and so would be a waste
  • But the page still needed to be re-downloaded when it changed
  • I didn't want the game to pause while the download ran
  • It needed to be fault tolerant (not everyone has an internet connection, or can even say the page will download correctly)
And so, a simple "link the type to the wiki" turned into:
  • It remembers the last time it downloaded the wiki page and what the revision ID was
  • It only tries to download the revision ID the first time one of the GUIs is opened
  • If the revision ID changed, or it didn't have the mapping locally, it tries to download the latest wiki mapping
  • If the download succeeds, it saves it for next time and populates the GUIs links
  • If any of this fails it logs what went and silently continues running (this is a the internet after all, random failure is expected)
  • It all happens in a background thread so the game doesn't pause while this logic works
And it all works perfectly.


fff-349-prototype-details.png


Native Lua serialisation Boskid
Last week I was requested by Rseding to look how could we implement a stateful Lua table iterator since we often iterate over Lua tables from C++ side, and this operation is slow. This forced me to learn some internals of Lua and how it stores tables. Up to this point, when a map was saved and the Lua state had to be serialised, we used serpent.dump (from serpent library) to convert the variable called global into a string on the Lua side and then take it out and store it within the save.

Since going through Lua tables from the C++ side happened to be quite easy, I have decided to implement, for an experiment - a native Lua serialiser. This allowed us to completely skip using serpent.dump and instead save them directly. My primary goal was to reduce the loading time since in the old format the saved data was a string that Lua had to parse and execute.

As was noticed later (not by me), the save speed improved a lot due to fact that no Lua operations are executed during save, just pure traversal over data to save in a linear time.

For measurements I was using one save file that has quite a lot of script data in it (script.dat is around 60MB), the result is the average over 3 test runs.

  • Saving:
    • Old = 285.429s
    • New = 2.847s
  • Loading:
    • Old = 47.034s
    • New = 22.755s


This values also includes some optimisations implemented by Rseding.

Changing the serialiser however has its costs. serpent.dump was doing serialisation of Lua functions stored in globals. They were officially unsupported by us anyway but some mods were using them "since they seem to work". With the new serialiser I have decided to not implement it at all due to its complexity and inherent limitations (closures were broken anyway). This broke some mods (even some base game scenarios) but it is rather easy to fix.

An additional consideration we had was if it should fail to save when there are Lua functions in global during save, or should it silently delete them (as happens with metatables). The first approach was considered to be the best to quickly catch all non conforming mods but later we have decided that deleting them on save (and providing some info into log file) was better because a migration was almost impossible due to a base game migration for 0.18.28 that requests to reload all script, that as a side effect: saves the Lua state which would abort saving immediately due to Lua functions still in globals.
 

As an Amazon Associate, rpgcodex.net earns from qualifying purchases.
Back
Top Bottom