Fate of the World

### Fate of the World

View Stats:
JackManson Apr 22, 2014 @ 8:12pm
Zombie Fate of the world?
i really think that the idea(s) and platform used in this game would almost carbon-copy over into a great zombie / epidmic outbreak mangement game :p .. ideas?
Delnar_Ersike Apr 22, 2014 @ 8:22pm
As someone who has spent significant time modding Fate of the World and therefore knows quite a bit about its internal engine... no. Just no.

The primary reason is that regions only use two stats to keep track of unhealthiness: healthcare spending and base sickness percent. These are the only two stats that directly affect life expectancy, so as a result, any type of pandemic game that wants to do more than just arbitrarily kill a certain % of people in a region every 5 years would need to work through those two stats, which would make for an incredibly inflexible system.

The other problem is that for all cards, you have to make both requirements and effects absolute. This means that you cannot do something like "x card has a y% probability of playing in a region, where y% = migrant population"; instead you'd have to make separate cards for 1.0% probability when migrant population is 1.0%, 1.1% probability when migrant population is 1.1%, 1.2% probability when migrant population is 1.2%, so on and so forth. This means that if you were to implement a pandemic system purely through cards, you'd have to create at least 10000 new cards just for the system to work at a rudimentary and somewhat realistic level.

In short, don't even bother turning this game into Plague Inc, you'll have better luck making something from scratch instead. Depending on what programming languages you prefer and/or already know, there are all sorts of platforms out there for you to use.
If you don't know any programming languages, well then I advise you learn one as soon as possible. Don't rush the decision, though; the first programming language you learn is the most important one, since it will color your programming mindset for the rest of your life. As a result, here are languages you should NOT pick as a first language, no matter what others may tell you: Java, C#, Visual Basic, and Javascript. These (popular) languages either have a bizarre way of working unique to the one language or rely heavily on so-called "object-oriented programming", which, while invaluable for experienced programmers, results in confusion and badly written code when used by beginners. In fact, although C++ is considered a more powerful language by most, I would say it's actually easier to learn as a first language because its object-oriented stuff isn't required the way it is for Java, C#, and Visual Basic, and the entire language just works a lot more like you'd think a computer would. Still, I would normally recommend learning Python your first language; PHP is OK, too, but it's a pain to set up and is a borderline member of the "bizarre way of working" category.
Last edited by Delnar_Ersike; Apr 22, 2014 @ 8:35pm
JackManson Apr 22, 2014 @ 9:12pm
lol well it looked like s sound and decent idea on the surface :p , lookingat it froma purely players standpoint :P i was thinking about things like a event triggers outbreak... you must respond to said outbreak in a similar manner used for the other problems facing you in the game :p however i could see how this would be a bit of a sructural problem to even implement :p... perhaps adding in new stats and codes to account for the basic in compatbility of the game programming with the idea? because i still hold it would be a cool thing , again thats from a players standpoint .
Delnar_Ersike Apr 26, 2014 @ 12:29am
I have not figured out a way to add any new stats or actual functions to the game so far; that sort of stuff is all locked away in the game's compiled C++ libraries.

Once again, if you have ideas of some sort, go ahead and give them a go; it's only my advice that you're better off making something from scratch instead of trying to shoehorn Fate of the World's systems into your design. Everyone has ideas, and the only way yours will ever be better is if you put some actual work behind them. If you want to try turning Fate of the World into a pandemic game, go ahead, be my guest, but the game is so unsuitable for your designs from what I can tell that you're better off spending all that time and effort making something completely new.
Being a player is quite different from being a developer, or even a modder. Things that might seem quite simple from the player's perspective could seem near impossible from the developer's standpoint, while things that seem incredibly complicated from the player's point of view might only take five or six lines of code on the developer side of things.
BlueNovember Apr 28, 2014 @ 12:47pm
Regarding programming languages, I think Java/C# are fine beginner languages. A major bonus of C++ is that it added OO concepts to C. I don't think Objects are a concept that's beyond the abilities of a novice to grasp.

In industry (web apps aside) the core languages are C++/C#/Java. All of these have comparable syntax and lots of similarity (e.g. statically-typed). Python on the other hand isn't semi-colon delimted/is whitespace sensitive, is dynamically typed, and is interpreted rather than compiled. Apples/Oranges.

Regarding "zombification", there's a lot you can do with the card system. Delnar's right in that you will be limited with what you can key off from the engine. That said, you can still create your own elaborate triggers using cards alone. The "support" system (hearts) for example is entirely card driven as far as I know.
JackManson Apr 28, 2014 @ 8:07pm
yaay hope :3 , well i wonder who would be willing to help out after i go learn how to program :p most of the god mods for games have more than one person participating
Delnar_Ersike Apr 29, 2014 @ 3:57am
Originally posted by BlueNovember:
Regarding programming languages, I think Java/C# are fine beginner languages. A major bonus of C++ is that it added OO concepts to C. I don't think Objects are a concept that's beyond the abilities of a novice to grasp.

In industry (web apps aside) the core languages are C++/C#/Java. All of these have comparable syntax and lots of similarity (e.g. statically-typed). Python on the other hand isn't semi-colon delimted/is whitespace sensitive, is dynamically typed, and is interpreted rather than compiled. Apples/Oranges.
They might be good beginner languages, but they're definitely not good to learn as a first programming language. Sure, you can get started with them quite easily, but the problem is that because OO is so front-and-center with those languages, novices will often have to learn OO simultaneously with traditional programming logic (loops, conditionals, switches, etc.). The result is that novices will tend to know a bit of both, but not properly get the grasp of either, often mixing things up and overcomplicating their programs as a result. This is why I recommend Python to beginners: because you don't NEED to know OO, you can safely concentrate on understanding programming logic. Once it clicks (and it'll take a while before it properly does), the person can then move onto their second language and learn all the OO-related stuff, or stick with Python if that's all they really need.
If we're doing apples to oranges, Java is also interpreted rather than compiled, but it interprets a bytecode that it compiles using your code; C# does a similar thing, but it also brings in lots of Microsoft-specific libraries and automation. PHP is also interpreted, but its interpreter is a pain in the backside to set up on PC's. Out of the mentioned languages, only C/C++ is truly assembled.

Originally posted by Bananaking23:
yaay hope :3 , well i wonder who would be willing to help out after i go learn how to program :p most of the god mods for games have more than one person participating
We know what you're actually asking. Thing is, most of those "god mods" actually start out with only one or two people, usually family or long-time friends. As they produce neat results, others start joining in. A lot of people are willing to help out, that's not the question; the question is whether you can prove that you're worth helping.
JackManson Apr 29, 2014 @ 4:57am
i typoed lol it was meant to say good not god , obviously im not asking for anyone to do anything over what im foing, and again i say that i need to learn programming first :p
BlueNovember Apr 29, 2014 @ 9:41am
Originally posted by Delnar_Ersike:
They might be good beginner languages, but they're definitely not good to learn as a first programming language.
I think we'll just have to disagree on that. It's rather subjective after all.

Originally posted by Delnar_Ersike:
the problem is that because OO is so front-and-center with those languages, novices will often have to learn OO simultaneously with traditional programming logic (loops, conditionals, switches, etc.).
I don't see why. You can have an object-less C++ program if you so wish.
Edit: Ok, so C/C#/Java then. Why do you think C++ is special? :s
Last edited by BlueNovember; Apr 29, 2014 @ 4:14pm
Delnar_Ersike Apr 29, 2014 @ 10:51am
Originally posted by BlueNovember:
I think we'll just have to disagree on that. It's rather subjective after all.
I've seen quite a few people with varying mathematical aptitudes try out a variety of programming languages as their first. The people who learned Visual BASIC, C#, Java, or (heaven forbid) Javascript as their first language tended to produce tangible programs quicker, but most of them understood neither base programming logic nor OO structures properly until they were "forced back" to relearn the language fundamentals-first. In contrast, those who started out with Python, PHP, Pascal (now Delphi), and C++ took a lot longer before they could write programs they actually wanted to write, but when they did, all of them "got" basic programming logic, even if only some of them understood OO structures as well.
The first programming language I learned was a type of BASIC made for Texas Instruments calculators, so there isn't much I can add from a personal experience standpoint.

Originally posted by BlueNovember:
I don't see why. You can have an object-less C++ program if you so wish.
... which is why I said the following in my very first reply:
[...] In fact, although C++ is considered a more powerful language by most, I would say it's actually easier to learn as a first language because its object-oriented stuff isn't required the way it is for Java, C#, and Visual Basic, and the entire language just works a lot more like you'd think a computer would.
Still, it's not an interpreted language, so debugging is significantly harder; novices will always have to deal with coding errors, and making it harder for them to deal with it the first time around can kill their enthusiasm to continue to learn how to code.
Last edited by Delnar_Ersike; Apr 29, 2014 @ 10:53am
Darwin Jun 7, 2014 @ 6:39am
I thought the same thing. It's a good idea, but you would have to decrease the time step significantly. Don't mind Delnar.
JackManson Jun 8, 2014 @ 5:07am
Originally posted by Bitcoin:
I thought the same thing. It's a good idea, but you would have to decrease the time step significantly. Don't mind Delnar.
xD