Skip to main content

Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines
(1 edit)

The force auto-update is there to prevent desyncs. which is a MUCH bigger can of worms. I have not had any issues with the game randomly stopping, through I am playing the game on windows so it may be a system-based bug.

Most other indie games would just downright stop you from joining any servers unless you redownloaded the game again. would you prefer re-downloading the 2.2gig game every update?

about the whole login thing, I do not understand why you are this pissed at a text box that you can close with a single button.

Many issues, in singularity, might not be so frustrating. A leaky faucet might be merely annoying, but every faucet in the house leaking may soon lead to a flooded house. It also indicates some potentially more severe underlying problems.

As far as the update and desync... The game queues the download of many resources in the background while playing. Clearly, the developers are capable of setting that up. Even if an update would require a restart, i wold be more clear to the player "how and why" than sitting helplessly idle and not knowing anything further. As an example of a well-executed update system, go play MineCraft. Both the launcher and main game update regularly, but updates do not force you to sit staring at... inactivity.

Finally, if you do not understand why I am "this pissed", then why comment about it without asking for clarification or offering something constructive? I want and hope to see the game improve and deal with such issues, making a better game. What is the goal of your comment about my comment(s)?

(+1)(-1)

The reason the update stop you from doing anything else is because there's not much else you can do with an outdated version, and less so with an updating version.

There's a reason you can't edit a file while it is opened. And the same reason applies for why you can't update a game while it is running. I would like you to name any game that can run while being updated, and last I checked, minecraft can't. The game can download maps and mods while running because those maps/mods don't need to be opened while they are downloading.

I am just trying to explain to you how these "leaking taps" are not really a problem in the first place.

if you have a better way of doing things, please do make a pull request at https://github.com/ZeroK-RTS/Zero-K/pulls

(-1)

You are incorrect on all counts.

First, the "you can't edit a file while it's open" part--computers would be less useful if we could not edit data, and the data has to come from somewhere, such as... a file. I will _assume_ what you really mean was something such as "should not have multiple, independent/parallel threads accessing the data when at least one is modifying the data, wihout some kind of locking and synchronization." This is a trivial problem to solve. The game already does it when it downloads a new world in the background to the cache.

Likewise, an update check and/or an update does not need to stop other things. I can have multiple web pages loading in multiple tabs; several files being transferred via FTP; several shell sessions, both local and remote; and so on. It is called "multitasking" in computers, even for a single CPU system which is technically only allocating CPU to one task at a time, but switching between so fast that it appears to humans as if they are all concurrent. ZK already does this as well, and it has a multi-stage loading process via the launcher.

How often do updates actually happen? It could be minutes between update releases, or many months. In the meantime, it is forcing the player to wait every time they want to play the game, exactly as in my case, the game kept crashing and needing me to start it again. Imagine if operating systems did this: "Your computer is booting. Please wait while it checks for an update before proceeding. Go grab some coffee while you wait..."

Back to MineCraft updates... You are not correct. It can, and does, update while running. That is why I used it as an example. Even the launcher self-updates. On rare occurrences, an update requires a full restart, and asks/alerts the user about that. It does not force it upon the user every time they start it, whether or not there is an update pending that would require it. There are numerous other examples. My operating system of choice is Debian Linux. Debian packages and the apt tool can and do update many things while they are running.  Sometimes those things do need to restart after an update. Sometimes they do not. In my experience, ZK is the only one that seems to force "every time" in order to avoid "some times".

So you are trying to "explain" those "leaky faucets" to me... In a manner that is not trying to explain anything. You are trying to impose upon me that my opinion about the way ZK does things is invalid, and that I should accept it. You are trying to tell me that I should not post my comments in the comment section, despite the obvious: That is what the comments section is designed for. If you disagree, I am not stopping you from posting your own praise in comments. I am only responding to your negative criticism against my comments, as if I have no right to my own opinion and comments.

Same with regards to making a pull request; Pay me for it. I make a living by doing contract programming and consulting. The ZK team may do what they do without compensation. They make that choice because they are free to do so. Likewise, I am free to make my own choice to refuse to do so without compensation.

Furthermore, going back to the basic idea of improving the game... If the provides a negative or bad user experience, there is little or no incentive to "get involved" with it's development, regardless of compensation status. From the perspective of my profession, I actively encourage my clients to provide me feedback and comments: What am I doing right? What am I doing wrong? How can I improve my services and keep you coming back for more?

What I do NOT do is become defensive about negative feedback and tell them that they are wrong to feel that way. That would "add insult to injury", regardless of whether or not both or either was real or imagined. That would only incense and anger them more, making the situation worse. (I can go further in to this, as well: My background and education includes international communications and conflict resolution, not just mathematics and information technology. But this is already much longer than I intended to post.)

"This is a trivial problem to solve. The game already does it when it downloads a new world in the background to the cache."

"Likewise, an update check and/or an update does not need to stop other things. I can have multiple web pages loading in multiple tabs; several files being transferred via FTP; several shell sessions, both local and remote; and so on. It is called "multitasking""

But that's not what it means to update a game while it's running. A docter can perform a heart transplant on other people, but that doesn't mean he can do it on himself. A webpage that is loading doesn't need to run the parts that are loading. A map being downloaded in the background doesn't need to be interacted in any other way other than the download process itself.

Sure, yes, it's theoretically possible. If that's the point you are making, then sure. My point is that it's just not practical. It requires a complete redesign to save a few minutes. there's bigger fish to fry.

"How often do updates actually happen? It could be minutes between update releases, or many months. In the meantime, it is forcing the player to wait every time they want to play the game, exactly as in my case, the game kept crashing and needing me to start it again. Imagine if operating systems did this: "Your computer is booting. Please wait while it checks for an update before proceeding. Go grab some coffee while you wait...""

I'm sorry but that happened to me many times. https://en.wikipedia.org/wiki/Windows_Update. And it's not just windows, MacOS also does this: https://support.apple.com/en-au/HT201541 , and so does raspberry pi: https://www.raspberrypi.org/documentation/raspbian/updating.md If these large companies can't solve this issue, how do you expect a small indie game to?

"Same with regards to making a pull request; Pay me for it. I make a living by doing contract programming and consulting. The ZK team may do what they do without compensation. They make that choice because they are free to do so. Likewise, I am free to make my own choice to refuse to do so without compensation."

By that logic, pay the Devs if you want them to fix the update system.

"You are trying to impose upon me that my opinion about the way ZK does things is invalid, and that I should accept it."
I am just trying to explain to you that these issues are not as simple as you might think. And that if you do want to fix them, you don't go shouting about how the game sucks because of them, you come up to the devs with a detailed proposal on how to fix them.
Notice how I never said you were in the wrong for complaining about frequent ccrashes. If the game is truely crashing on load multiple times then there certainly is a solvable, and impactful issue
"You are trying to tell me that I should not post my comments in the comment section"

Please quote where I said that, so that I can be more friendly next time :)

"Sometimes they do not. In my experience, ZK is the only one that seems to force "every time" in order to avoid "some times"."

If you want, I can make a list of all the games I know of that force you to update them before playing.

Also, desyncs are not "sometimes". they are "every time". If you are running an outdated version it's not about will you desync but rather when - does it happen on game load or 5 minutes into the game?
Desyncs are also for all practical purposes as bad as a crash. That unit you are commanding on your screen may have never been built on everybody else's screen since that raider that you thought you killed near the start of the game didn't die on everybody else's, and went on to kill your factory. and it all happen just because a balance change tweaked the hp of a third unit by 5%. You might as well have crashed and are now just playing in another room.

"What I do NOT do is become defensive about negative feedback and tell them that they are wrong to feel that way."

"My background and education includes international communications and conflict resolution"

Ok, here's an example of a negative feedback:
"You are clearly not doing your job as somebody who studied conflict resolution as there are still arguments between people"

You're gonna tell me on how it's not practical or possible for you to solve that? right?
let's say you don't. then prove your works by doing it.
Let's say you do. you've just became defensive about negative feedback.

It's alright to explain to people who are making negative feedback on how their idea for improvement / problem identified is not practical to solve. I don't study conflict resolution, I don't know what conflicts are easy to resolve and what conflicts are near-impossible to resolve. And this issue of time spent updating falls under the near-impossible to resolve category.

"But that's not what it means to update a game while it's running. ..."

Incorrect. I use Debian Linux. The entire system and all it's services and applications, can and do update while running. It has been awhile since I have used Windows, but it does (or did) as well. If you mean "update in place", then you would be correct--updates happen by downloading the required updates to a cache or temporary location, and then, depending on the OS, update the target files if possible (most OSes create a new copy of the file, so the currently open and running application can continue to run), and then restart the application to make the updates take effect from the updated files. Yes, _some_ updates will not work well within this framework. However, the relative rarity of this means it only forces the end user to have to "jump through that hoop" only on those rare occasions.


You have "HTML" in your user name, so can I presume you know HTML and the way HTTP works? A browser downloads a web page in it's current form. Regardless of whether or not the webmaster is editing the file at the same time. The browser than displays the page, in it's currently known format. If the webmaster wants to push an update, then the web page can have JS code to check for updates to reload the page when it detects an update. Imagine if, instead, I went to http://google.com/ to try to search for something, and every time, it gave a response "Sorry, Google is currently updating it's website. Please wait a moment while it updates and try again!" If that is "no big deal" to you, feel free to suggest that way to Google, and see what they say.

"If these large companies can't solve this issue, how do you expect a small indie game to?"

You did not see my point. Windows and other OSes/software, may do that _on occasion when there's an update rolled out_, but not _every single time_ you start or restart your computer.

"By that logic, pay the Devs if you want them to fix the update system."

Some people do, buy investing in the software, become a "Patreon", buy the Steam version, etc. And _I_ have no right to _demand_ they fix anything. But I _do_ have the right to give feedback and comment, positive or negatively, about it. Likewise, I have the right to explain why I feel that way, or even suggest to them a way to "fix" it. I have no expectation that they will interpret anything I say as a demand forcing them to comply... So why are you interpreting my comments that way and trying to force compliance upon me?

"I am just trying to explain to you that these issues are not as simple as you might think."

You are presuming I have no idea of how simple of difficult it is. I can design, etch a circuit board, mount the components, and make my own computer from scratch. I can, and do, write code in C/C++, Python, Perl, Tcl, BASIC, Pascal, etc, etc.

And I can and do write code that has to do these very things: I have serverice and servers I run for my consulting business, which can and do update themselves as I modify or roll out new code. I use methods very similar to how I have described, and how the game already deals with downloading the scenarios--so I can only assume they already know how to do this, but are not applying it to updates. The same goes for the client side of my servers. The client software is multi-staged with at least a "launcher" and "main application", and I multi-stage it specifically so that updates are indeed trivial and and not disruptive to my clients, who want to spend more time working, less time waiting.

"Please quote where I said that, so that I can be more friendly next time :)"

Your attitude/tone/approach says it. Communication is not only words. Words are only part of it. Tone, body language, actions, and even the choice of words. It all conveys a message.

"If you want, I can make a list of all the games I know of that force you to update them before playing.":

That is up to you. But I can assure you that if I were to play them and have to deal with the same issues, I would make the same comments. I will not argue that if they are indie devs, with a very new and "unpolished" product, clearly still learning about software development, I would probably approach it with a softer tone, trying to be helpful. I have posted many comments about games on itch.io that way.

ZK, however, is a mature project. If they cannot take negative feedback and comments... Well, let them state so. Ever go out to eat and on the back of the receipt is a form you can fill out to give feedback and comments? Do those forms say "Please be gentle and kind! We want your feedback, but only if it's gloriously positive", or similar? If you only want positive feedback/comments, say so. If you only _accept_ positive, then do not present a non-restricted avenue. Itch.io itself does not, to my knowledge, have any rule or policy that comments must be positive and good. I can only assume this is because the basic principles of how reality works. If the developers wish to avoid bad comments and feedback, they should take steps to avoid it--either correct the flaws which cause it, or restrict the environment to one that they (the devs) control the opinions and feelings of the commentators to those they (the devs) find favorable ... And I can only guess how the many users here would respond to the latter.

Regarding desync: Once fully in to the game, yes, that would be a major issue. However, consider the way the game works already: Launcher -> Wait while it checks for updates -> Lobby -> Play game ( -> download maps as needed in the background -> Go back to "Play game"). There are entire steps before any game desync even becomes an issue. And that only applies if wanting to play multiplayer on a server--Playing single player on my own computer is not affected by desync. What if, instead, it was: Launcher -> Start background update check -> Lobby -> While user is in lobby, If update discovered, or update check still in progress, alert user about such cases -> Once update checks (and possibly updates complete), alert user if a restart is needed, or if not needed, let user go to -> Play game .... and so on.

Furthermore, think about this. What if the user starts a game five minutes before a game update gets rolled out? This way, the game can present the user with a "A new version just came out, 'hot off the presses'! Please restart your game for the latest and greatest!" dialog. (And there, you want a constructive suggestion to the devs? Maybe they're watching here and will see that.)

Regarding "doing my job ... conflict resolution ..." Wait, what? My job is as an IT consultant. My role here is as a consumer. My education background includes C.R./I.C., but that is not my job or role. In high school, I also learned about "Life Science", but I'm not a biologist; "Earth Science", but I'm not geologist; "Physical Education", but I'm not an Olympic athlete; etc. So it's moot.

I will also point out, C.R. does not mean "making both side's 'farts' smell like roses", either. I have sat through dialogs where one side is very negative and insulting to the other side. I was not my job to stop it and say "that is inappropriate". That would not be conflict resolution--that would be conflict suppression and censorship. And _that_ would be inappropriate for my job, _if_ that was my job.

You continue to say "near impossible" or "not practical" to do. Why? Because you _think_ it is? Or do you have noncontroversial  proof? I have provided backing for my statements to how I know that it is indeed possible and practical... because what _is_ my job, I have to do it regularly. And it is a trivial few lines of code to do so.

That "why" question is rhetorical, however, and as such, it is moot. I am not engaging this discussion further as it has wandered too far "off topic". Our opinions about the _game_ differ, but this is not the place for our opinions about _each others' opinions_.

(-1)

"should not have multiple, independent/parallel threads accessing the data when at least one is modifying the data, wihout some kind of locking and synchronization." Rust lang is the answer to life which also adds protection for this.