Factorio - Klonan
Blog thoughts
As the time goes on, the nature of our weekly FFF post has changed. At the very beginning (FFF-1) it was to let people know that "we're still alive and working on the game", and over time we've grown into covering a range of different topics:
  • Communicating our progress and roadmap of the next releases.
  • Showing new features and gathering community feedback on them.
  • Diving into the technical side of game development and particular challenges we face.
  • 'Meta-posts' about the company and the changes outside of the game.
  • Community spotlights and interesting Factorio related news.

It is always an interesting challenge each week to determine what topics we might be able to cover in the FFF. During the weeks of rapid development the FFF can feel like a triumphant reveal of what we have been working on, and we excitedly await the community response. Other times, such as when most of the team is on bugfixing, we can take the oppourtunity to explore other points of discussion, such as the marketing post last week.

The graph of the FFF readership over the last year is quite informative to look into:



We had a good run back in January and February, we had week after week of really interesting posts and a build-up of excitement for the 0.17 release. Now after the release, the readership has stabilized at around 40-45,000 views a week (note, that the graph does not include people reading the blog post through Steam).

The FFF is close to its 300th post now, with no signs of stopping soon, and the continued audience of dedicated readers each week help to keep us on track and focused on our quest towards 1.0. As we get closer to completion of the game, the general nature of the blog post will no doubt change even further. The good times of showing a new feature each week might be over, but I hope we will be able to provide interesting insights into the game and our development processes. I would also like to thank all the players/readers who share their thoughts with us each week, it is really great to have so much support and care for our project.

Lua API documentation improvements
The Lua API documentation is one of the most valuable resources for modders: It is generated directly from the game's source code, so it completely covers all scripting functionalities. Furthermore, additional pages cover some general concepts such as in what order mod files are loaded or how to store persistent data. However, a big issue with these pages was that they were linked at the very bottom of the main page, below two long lists of classes and events. This means that they were very easy to miss.

To remedy this, all additional pages are now linked at the top of the main page and accompanied by a short description of the structure of the API. To further support getting a quick overview, I added a page about general Lua libraries that Factorio changes. These changes could be frustrating traps where it would take users a very long time to find out that some functions, such as getting the current real time, were not available. The new main page organization should serve well to highlight this new page to make the discovery of these changes much easier.

As always, let us know what you think on our forum.
Factorio - posila87
Changes
  • When a train performs path finding while in a chain signal sequence, the pathfinding will have a constraint to not go through reserved block before exiting the chain sequence. This solves a problem of train intersections being possible to be deadlocked even with proper chain signals usage in cases of using temporary stops or when path is changed because of station is being enabled/disabled by a circuit network. (more) This also allowed us to to let train recalculate path spontaneously even in chain signal sequence, as it shouldn't break anything now.
  • When a temporary blueprint(e.g. blueprint from copy) is placed in the quickbar, the blueprint won't be destroyed when clearing the cursor and instead moved to the inventory. more
  • Separated incompatible mods from dependencies in browse mods GUI.
Bugfixes
  • Fixed a crash when trying to build locomotives near water/edges of the map. more
  • Fixed players getting a new player character when they connect twice to a paused game. more
  • Fixed that entity tooltips did not show negative emissions. more
  • Fluid assembler ghosts now show correct pipe connections.
  • Fixed a crash when trying to write auto trash filters with not-a-table.
  • Fixed possible fluid mixing from reviving fluid assembler ghost by higher version. more
  • Disabled areas of new map GUI are set correctly on exchange string import. more
  • Fixed that script rendering sprites loaded from files would disappear on save/load. more
  • Fixed that LuaForce::reset_technology_effects() wouldn't preserve things in the research queue. more
  • Fixed that using an upgrade planner on a blueprint wouldn't upgrade configured modules. more
  • Fixed cross-platform issues related to the Lua bit library. more
  • Fixed crash when changing controller in multiplayer and changing your selection at the same time.
  • Fixed that blueprint shortcuts in action bar would become magically available when they are destroyed, if they originated from the blueprint library. more
  • Fixed that technology tooltips could sometimes end up behind the technology screen. more
  • Fixed that target leading would not take into account any slowdown modifiers on units. more
  • Fixed that the favorite button for servers wouldn't work correctly if the server was already selected. more
  • Fixed that rocket silos would show an unhelpful status in the tooltip. more
  • Fixed PvP crash when loading save games before "player" -> "character" rename. more
  • Fixed PvP crash when importing old configs. more
  • Fixed that only some parts of the current research info panel would open the technology tree when clicked. more
Scripting
  • Added LuaTechnology::visible_when_disabled read/write.

You can get experimental releases by selecting the '0.17.x' beta branch under Factorio's properties in Steam.
Factorio - wheybags
Bugfixes
  • Fixed acid splashes were blocking placement of buildings. more
  • Fixed that acid splashes would have a burning sound effect.
  • Fixed typo in font name that would cause crash in Cyrillic locales on Linux. more
  • Fixed that script changing train path as a reaction to train created event could break the rolling-stock connection process. more
  • Fixed that scroll panes empty areas of the mod GUI was blocking the mouse interaction with the map. more
  • Fixed that ghost rail building didn't avoid ghost buildings properly. more
  • All unused control inputs are saved in the config file, to preserve mod key bindings even when the mod is disabled and enabled again. more
  • Fixed that zooming in the train preview window didn't respect the zooming key binding settings. more
  • Fixed that train with no path changed from NO_PATH to PATH_LOST and back to NO_PATH every few seconds. more
  • Fixed that train waiting at the signal changed from WAIT_SIGNAL to ARRIVE_SIGNAL and back to WAIT_SIGNAL every few seconds. more
  • Fixed a crash that would sometimes happen when two players were connecting to a server at the same time and one of them quit before the map finished saving. more
  • Fixed a crash related to modded deconstruction item filters. more
  • Fixed performance issues in mipmap generation routines causing the game to freeze or crash at 95% of sprite loading. more
  • Fixed traditional Chinese font being used for simplified Chinese. more
  • Fixed that pollution would not be shown in entity tooltip when using a void energy source. more
  • Fixed PvP re-roll round button not generating a different map with only a single team.
  • Fixed PvP state when playing Last silo standing with only a single team.
  • Fixed PvP DEFCON mode interaction with research queue.
  • Fixed screenshot rendering could crash when using LuaScriptRendering API to draw a sprite from file. more
Modding
  • Added CraftingMachinePrototype::entity_info_icon_shift.
  • Added CraftingMachinePrototype::draw_entity_info_icon_background.
Scripting
  • Included "item" in on_built_entity event when ghost cursor building.

You can get experimental releases by selecting the 'experimental' beta branch under Factorio's properties in Steam.
Factorio - wheybags
Graphics
  • Added new specific remnants for various entities. (Work in progress)
Bugfixes
  • Fixed that ghosts could be built in fog of war.
  • Fixed a stack overflow when merging large electric networks (149'000+ electric poles). more
  • Fixed some achievements not counting their requirements properly. more
  • Changed worm and spitter acid attack so they do not create acid splashes on water. more
  • Changed fonts for Asian languages (Chinese, Japanese, Korean).
  • Fixed that power switch connections weren't restored by undo. more
Modding
  • Added "check_buildability" to "create-fire" trigger effect definition.
  • Added "tile_collision_mask" to "create-entity" and "create-fire" trigger effect definitions as faster alternative to full buildability check.
  • Added "trigger_created_entity" to "create-fire" and "create-sticker" trigger effect definitions.
Scripting
  • Added "item" to the on_built_entity event.

You can get experimental releases by selecting the 'experimental' beta branch under Factorio's properties in Steam.
Factorio - Klonan
Read this post on our website.

More remnants
As for the conclusion of the topic opened in the FFF-288 we finally decided to go for a balanced solution in which the player can recognize what entity was destroyed and also walk through them. The solution of going up in the Z-axis is really attractive for designing the destroyed models, but it gives a lot of headaches to the game designers due its need of a bounding box.

We are planning also a generic set of remnants for the modders who don’t feel like making the destroyed version of their own machines.
Here an example of how a factory can look after a biter attack:



These remnants are still a work in progress, many of them are not yet finished and we are planning more iterations with this subject. By now you'll find a sneak peek in today's release (0.17.36).

Marketing plan for 1.0
The 1.0 will be a one time opportunity to drive the sales of Factorio, and as with the steam release, we don't want to leave its potential untapped.

I want to call myself a "Idealist Capitalist". This means, that I truly believe in capitalism as long as it is done in a fair way. I want to do as much as I can, to give good credit to capitalism by doing the right things myself.

The famous quote of "Do unto others as you would have them do unto you" and also "No bullshit policy" is something we take very seriously all the time during the development since the early days. Things like pricing $30 instead of $29.99, no sales, no micro-transactions, game stability over features, no selling-out to big companies that would use the game as cash grab while destroying the brand (we actually declined to negotiate "investment opportunities" like this several times already, no matter what the price would be), the same would be when it would potentially come to any exclusivity deals, which is its own subject...

We should also be true to this when it comes to marketing. In my eyes, there are good and bad aspects of marketing.

What I truly hate is banners and forced ad-videos, or radio spots that are just screaming at me and trying to get into my head without my consent. The idea, that I would basically pay for the ad that annoys me by buying the product feels deeply humiliating. So you can understand, that I don't want to pay marketing companies to do this to others.

On the other hand, there are a lot of marketing strategies that I'm okay with. I'm okay with media covering a commercial product, as long as I find it interesting. It is a very subjective definition, but it basically means, that it is not about pushing a product into your face, but offering you something that might give you some value even if you never buy that product. Articles about stories of companies, interviews with book/film/game creators are often very interesting, and piqued my interest in products many times before.

There are a lot of interesting themes that could be covered about Factorio, its creation story, its mindset of automation and conscious self-observation of what is the biggest time-stealing thing, the programming/engineering parallels and stories of people who consider their carrier path because of it. It also has a potential appeal to the big crowd of gamers from the past, who think that games are just mindless shooters with lootboxes these days.

This is the kind of content that I would be interested to read about the game if I didn't know about Factorio, and this would be the best advertising for us. So our goal would be to convince as many related media as we can to write about us when the time comes.

I'm talking about the kind of media that covers content related to the themes that Factorio tickles. So anything related to games, technical stuff, engineering, software development, teaching, networking, business, etc. And here comes the moment where I'm turning to you. You could give us pointers, what kind of magazines do you read that could be suitable? Let us know. Do you know anyone related to a media outlet that could cover us? Let us know. Do you have other ideas of what could we do for the release that is still true to our principles? We would like to know.

Another way is to make an interesting story that spreads itself, these are the examples:
Breaking all the mods
We released version 0.17.35 yesterday, and it included a change that broke a lot of mods:
Renaming the entity 'player' to 'character'.

Inside of the game engine, the previous naming scheme was a huge inconsistency, because the terms are generally well defined:
  • Player - The concept of the person controlling the game, doing input, playing the game.
  • Character - The 'real' little dude running around in the world.
A player can exist without a character, such as playing sandbox, and similarly a character (which is an entity) can exist with or without an attached player.

Having the character entity named 'player' led to a massive amount of collective confusion over the years, especially in regards to which methods can be called on the LuaEntity and LuaPlayer objects at runtime.

Another problem is in the naming of some 'defines' (constant values exposed for Lua scripting). If you want to access a characters main inventory, the value was called 'inventory.player_main'. This makes it sound like it gives the main inventory of the player, but no, it gives the main inventory of the character. If you are in sandbox mode, using 'inventory.player_main' will not give the correct inventory, you will need to use 'inventory.god_main'.

Ok, so taking a step back, why are we making these breaking changes now? The short answer is that there is no better option for us:
  • Change it for 0.18 - This would mean waiting months and months to make the changes, and push any bugs it creates further down the line. In the meantime, another major version of Factorio modding will have these inconsistencies.
  • Change it after we have 0.17 stable - We want stable to also be stable for modders. If you write a mod that works with the stable version, you wouldn't expect it to break in another stable version.
  • You should have changed it for 0.17.0 - Well yes probably, that would have been more ideal, but that was several months ago now.
  • Change during 0.17 experimental - This is the option we have chosen, it breaks some mods in the short term, and discourages people from updating, but long term its consequences are small.

We might make some more mod breaking changes in upcoming experimental releases. We'd like to thank all the mod authors and experimental players for their understanding and patience as we work towards the full game.

As always, let us know what you think on our forum.
Factorio - wheybags
Changes
  • Increased the maximal length of station name to 1024, mainly to allow wider usage of multiple tags in the name. more
Bugfixes
  • Fixed that making blueprints of locomotive ghosts wouldn't include the schedules. more
  • Fixed that worms and spitters didn't show attack parameters in description.
  • Fixed that the game would crash if it was closed when Sound Settings was opened. more
  • Limited the manual rail building distance to 3 times the normal building distance.
  • Fixed dangling tooltip bug related to widget reorganization in map generator GUI and possibly other places. more
  • Fixed that the train time condition label wasn't properly set to squashable resulting in wrong layouting in certain languages. more
  • Fixed truncation of labels containing rich text. more
  • Fixed PvP and Wave defense starting base entities wouldn't spawn if a mod added a tile with a certain collision mask and a name which sorted alphabetically above dirt.
  • Fixed PvP production score error when a mod or script adds another force during a round.
  • Fixed PvP error when using DEFCON mode.
  • Fixed that the shortcut bar selection list wasn't scrollable until the window was resized. more
  • Making disabling of features in map generator more clear by adding checkboxes for it. more
  • The wagon door opening animation (that is only available for horizontal/vertical direction) is now chosen based on the drawing sprite of the wagon selected instead of the orientation of the wagon. This means, that orientations really close to horizontal/vertical still use the animation. more
  • Fixed that changing map size didn't mark the map preset as modified. more
  • Fixed label text not updating correctly when cleared and had non-zero minimal width and height. more
  • Improved handling of whitespace characters in technology count formula parsing.
  • Checking that only the l (or L) variable used in the technology formula on startup, to avoid errors later on. more
  • Fixed NPE error at startup that could occur when using mods. more
  • Fixed GUI window of an entity not updating when pasting settings to that entity. more
  • Fixed error in consistency check of ghost connections related to multiple connections to entities only in the undo queue. more
  • Fixed train condition fulfilling indication for artillery wagon. more
  • IDXGIOutput::FindClosestMatchingMode returning an error is not treated as critical failure anymore. more
  • Fixed that the Mods GUI go-to-dependency buttons wouldn't work in some scenarios. more
  • Fixed that ghost building mode works the same as ghost building (with shift) when it comes to rail building. more
  • Fixed that upgrading entities in would leave invalid module requests. more
  • Fixed, that sorting changes were moving the scrolled position in the browse game gui. It is now consistent with the mods gui. more
  • Fixed some achievements being given to players while the save game is loading, not respecting player online time. more
  • Fixed LuaTransportLine::output_line read for right-hand output lines of a lonely splitter. more
  • Fixes to make tabbed pane work properly when it comes to squashing in different situations. more
  • Tweaked the algorithm that is putting trains on rails to work properly in junctions when constrained by the direction caused by blueprint/ghost train building. more
Modding
  • Renamed the character entity type and name from "player" to "character" to make it consistent with how we call/access it in all other places.
  • Renamed the technology personal-roboport-equipment-2 to personal-roboport-mk2-equipment and gave it corresponding icon to be consistent with other technologies of this kind.
  • Renamed the technology power-armor-2 to power-armor-mk2 to be consistent with other technologies of this kind.
  • Added optional storage tank prototype property "scale_info_icons".
  • Added "manual_rail_building_reach_modifier" to the utility-constants.
  • MapGenPresets' advanced_settings.difficulty_settings.research_queue_setting now works. more
Scripting
  • Mod GUI root elements (top/left/center/goal) are now contained in scroll panes, so when there is not enough space, it will become scrollable instead of being cut off. With enough space, it looks the same as before, the only change is, that the mod GUI contents can now not expect to be squashed by the screen, as it will just make a scroll bar instead.
  • Added LuaCircuitNetwork::connected_circuit_count read.
  • Added LuaEntity::time_to_live read/write for highlight box entities.
  • Added LuaEntity::allow_dispatching_robots read/write.
  • Added LuaEntity::toggle_equipment_movement_bonus().
  • Added LuaEquipmentGrid::inhibit_movement_bonus read/write.
  • Added optional 'radius' to LuaSurface 'find_xyz' functions.
  • Added defines.inventory.editor_main, editor_guns, editor_ammo, editor_armor.
  • AutoplaceSpecification::control is always included in property tree, even for non-peak-based autoplace specifications. more
  • Fixed a save corruption problem when using LuaSurface::clone_area(). more
  • Renamed defines.inventory.player_main, player_guns, player_ammo, player_armor, player_vehicle and player_trash to defines.inventory.character_main, character_guns, character_ammo, character_armor, character_vehicle and character_trash.
  • Removed LuaStyle::title_top_padding, title_right_padding, title_bottom_padding and title_left_padding.
You can get experimental releases by selecting the 'experimental' beta branch under Factorio's properties in Steam.
Factorio - wheybags
Changes
  • Improved fluid simulation threading. Decreases CPU usage. Threading available on all operating systems. Simulation performance should remain unchanged.
Bugfixes
  • Fixed a crash when importing blueprint strings with power switch wires.
  • Fixed fluid mixing for fixed recipe assemblers. more
  • Fixed "Not enough rails" message after successful track placement. more
  • Fixed a crash when destroying entities during the on_pre_ghost_deconstructed event. more
  • Fixed that trains with "logistics while moving" disabled would not deploy robots when switched into automatic mode while waiting at a station more

You can get experimental releases by selecting the 'experimental' beta branch under Factorio's properties in Steam.
Factorio - Klonan
Read this post on our website

Inching closer to stable
The last 2 weeks have been less productive than we would like on the bug fixing front. The Easter festivities along with a wave of illness have dampened our efforts. We have still managed to push out 2 more experimental releases, and fixed a few desyncs. We encountered one specific desync in the mass MP stress test last weekend, caused by a characters inventory size changing (such as researching the toolbelt technology) while the player is respawning.

The graph of crashes paints a similar story to how the office atmosphere feels. It is natural though, most of the major crashes affecting most players are resolved, so all that remains are the more difficult issues that only affect a handful of players. This means that each bug fix is less effective at reducing the overall crash count.



This last weekend, we had over 500 total crashes reported, which is a slight improvement over the prior weekend's ~650. One thing that makes our progress hard to evaluate is that we don't know how many people are actually playing experimental. Most people play through Steam, and so far we have found no way of determining how many people are opted-in to the 0.17 experimental through Steam. It could be that the game is more stable, or it could be that less people are playing.

There are still over 250 open bug reports on our forum, so it seems it will be a few more weeks until the first stable 0.17.

Some people have been asking when we will release the new GUI and GFX updates that we promised before 0.17 release. The plan is that after the first 0.17 stable version, some of the team will be moved from fixing bugs to working on features. At the point where we have a meaningful amount of new content ready (A few GUIs, some new GFX, etc.), we will release it as a new experimental 0.17 version. We plan to give some explanation and notice about these 'mini-content releases' in a FFF before they are each released.

Factorio massive multiplayer stress testing (Part 2)
As mentioned last week, we did a stress test of the Factorio multiplayer last Saturday. We didn't have any crashes, but the server was really struggling at around 300 players, kicking players when they got near that mark. We reached a maximum of 350 concurrent players.

The stress testing is also a good way to find and fix desyncs, as the probability of a desync is about 100 times higher with this many players.

We made some more tweaks and minor improvements and we plan to make the test again. Every week the stress tests are more stable and allow more and more players. This will probably be a weekly thing for a couple more weeks until we are happy with the stability and performance of multiplayer.

So, tomorrow (Saturday 27th April) at around 8pm CEST we will be making another stress test. If you want to help out, join the server and play normally when the game starts. Details will be posted in the KatherineOfSky discord in the #mmo_stresstest channel. Or keep an eye out for the Steam announcement (event) notification. The server will probably become unstable or might require some restarts as we test, debug and trace things, so please bear with us.

Community spotlight
Just wow.

https://youtu.be/7lVAFcDX4eM

As always, let us know what you think on our forum.
Factorio - wheybags
Changes
  • Added out of fuel alert icon to flamethrower turrets.
  • UI scale won't be synchronised over Steam Cloud anymore. more
  • Syncing startup settings with a server will automatically join the server on game restart. more
Bugfixes
  • Fixed yet another consistency bug related to ghost connections. more
  • Fixed crash related to changing force of entity marked for deconstruction/upgrade/in undo queue. more
  • Fixed a crash resulting from overlapping underground pipes. more
  • Fixed power grid overlay not showing correctly on map when changing surfaces. more
  • Fixed another instance of furnaces with fluid outputs not working correctly. more
  • Fixed multiplayer paused notification not being cleared when the client is dropped. more
  • Fixed accumulators showing discharge animation and empty icon at the same time. more
  • Fixed that the game would desync when changing forces of beams, fluid streams, projectiles, stickers, and fire flames.
  • Fixed player inventory income flying text would sometimes show incorrect total item count. more
  • Fixed switched technology levels in the console message when changing research. more
  • Fixed that the keyboard shortcuts for new blueprint/upgrade planner/deconstruction planner wouldn't work when the cut or copy tool was selected. more
  • Changed render layer of belts marked for deconstruction so they don't clip with other belts. more
  • Fixed attempt to rotate ore patches that are out of reach would create "Can't Reach" floating message. more
  • Fixed that generators would produce infinite pollution in some cases. (https://forums.factorio.com/69450) more
  • Fixed that generator tooltips did not show pollution. more
  • Fixed that LuaGameScript::tick_paused read was not of type boolean. more
  • Fixed that the map editor convert-save-to-scenario didn't work correctly in some cases. more
  • Fixed that the map editor intensity slider number fields wouldn't accept numbers outside the slider range. more
  • Fixed that the deconstruction planner "tiles only" mode would ignore tile ghosts. more
  • Fixed that exporting blueprint strings wouldn't include pending icon changes. more
  • Fixed that cloning rocket silos with rockets waiting to launch wouldn't auto-launch correctly. more
  • Fixed that cloning single entities with wire connections to themselves didn't work correctly. more
  • Fixed a desync related to rail item names. more
  • Map generator GUI now remembers the last preset used.
  • Fixed an older bug with pull-placement of power poles. more
  • Fixed copying files to temp folder would preserve read only permissions, which could cause errors. more
Factorio - Klonan
Read this post on our website.

New Campaign
Have you ever been playing a Freeplay game and realised you don't know what your next big goal is? And then, once you decide to pick a new goal, you realise while you worked on automating the last goal, there were 10 new technologies unlocked and now you don't know which to pick next.



These are the situations we hope to address with the new full Campaign. A guided Freeplay, in which the player plays through the whole tech tree, without being overloaded with choice, while still having the perminance and unidirectional progression of Factorio. The perminance problem has already been solved using the new map expansion technique which is playable in the Introduction scenario. Over the last year we have been working on the bigger design task of unravelling the tech tree and breaking it into a set of choices for the player.

This task has been made all the more Interesting as the tech tree is also constantly getting tweaks and revisions over that time as well.

I look forward to providing more insights but for now I will leave you with one example (read: spoiler):



Just to note, we won't be changing the freeplay tech tree, which will still have all the choice and diverging paths as it does now.

Factorio massive multiplayer stress testing
A few days ago I was contacted by Caledorn from the KatherineOfSky community. They were doing some tests to see if they can host a massive multiplayer event. I joined forces with him and started looking into the new and old problems we can fix in Factorio so we can host a large number of players. The last test was on Sunday. We had around 80-140 players playing without too many issues. But it was still a small test compared to our previous record of 400 players back in 2016.



Among some small tweaks, I added the ability to set a maximum number of map upload slots for the server. This should help tremendously for events such as these, where the map can get quite large, and there would often be a large flood of players joining, usually after a disconnect or server restart. This would cause a massive flood of map request packets coming to the server and very slow map uploads caused by uploading to way too many players. Now, when many players will try to join at the same time, they will pe placed in a queue and the game will wait for an upload slot to open up.

Another small annoyance in these events (or even small multiplayer games) is the constant annoying blinking of the "Server not responding"/"Player is being dropped from the game". I made some tweaks that should show this message less often. We also found a memory leak in input action handling, which Rseding has fixed.

There are still some technical problems to investigate and fix, so tomorrow (Saturday 20th April) at around 8pm CEST we will be making another stress test. If you want to help out, join the server and play normally when the game starts. Details will be posted in the KatherineOfSky discord. If we need more players, a Steam announcement (event) notification will be sent out, so keep an eye out for that also. The server will probably become unstable or might require some restarts as we test, debug, and backtrace things, so please bear with us.

High-res Icons part II
Last week I opened the subject of the high resolution icons FFF-290, more focused on the unisize method: re-scaling a single 64px bitmap to any size through trilinear interpolation.
The results were very fine, and compared to the old version it was obviously a success.

This week we are focused on the mipmap method. Posila very quickly implemented the code for it, and even though I was willing to reject the technique due its extra work and complications, after testing it I changed my mind.
Here a comparison with all the methods:



On the first glance the difference between unisize and mipmap is almost not noticeable, but when we surpass the boundary of zoom level 1.000, the mipmap starts to react a bit better.
I was worried about the amount of work implied about the creation of the 4 levels for each icon, but after preparing a few of them, I saw that it wasn’t that much. Not to mention that having control over 4 different sizes is a big relief, especially the 16px and 8px versions.

The best part of the plan is that we can combine both methods, so we can make mipmaps only for the icons that require special attention, it is just about the Lua definition of the item.

Now, just for the joy of it, I’d like to show a sneak peak of what HR icons means for the GUI.


GUI at 100% scale


GUI at 200% scale

I hope this new contrast and definition results in a better experience for the player.

As always, let us know what you think on our forum.
...