clauvin / refugeewaves Goto Github PK
View Code? Open in Web Editor NEWGame originally made by Cláuvin Erlan, Verônica Sakane Matias and Brian Confessor to the GGJ 2017, then improved to a functional Alpha 0 version.
Game originally made by Cláuvin Erlan, Verônica Sakane Matias and Brian Confessor to the GGJ 2017, then improved to a functional Alpha 0 version.
While making the UI work properly, a few issues popped up in how the data is shown to the player. The list below is not about all the small issues, and will be increased as they are noted.
The specifics: the Action Button "Invest In Houses" creates a new house each time it's clicked, but the maximum limit of existing houses does not increases.
Also, the Action Button "Invest In Border Officials" does not creates a new border official.
The Creation Public Works button should reduce unemployment when pressed, but it doesn't, even being properly constructed with the reduction as
-10.1StatsManager.instance.unemployementRate (ActionManager.cs, ln:32)
The five milestones are:
Each one of them has essential changes to the game, and so need to be complete for the Alpha 0 Version.
Considering that we have a LOT of Managers and are going to have two Actions already, abstracting both may be a good idea, but it needs to be analyzed first.
A few things I've noticed while fixing #18:
a) The Final Ruim doesn't have the text effect of letters going one after the other, the text ending is all there at once. Also, the Final Ruim's ending text could ocuppy a few less lines?
b) The Final Bom doesn't have music. The effect of the Final Ruim's music is very good, we could have a good equivalent in the Final Ruim.
So, here's the moment we were expecting: to make the simulation in the game one that does not give to the player a win in a golden plate, and also considers the reality of the refugee situation.
Ever since we decided to keep the project going after the Global Game Jam 2017, a README.md (a file that appears for all visitors to this repository) hasn't been made yet.
The variable creditsGo in the MainMenuButtonManager hasn't been assigned.
Similar to what was done to PlayerActions, where a class and functions were created to better organize and allow for functions being called by Player Actions, the same can be done in the future, in RandomEvents.cs.
The actions in game should work with a cooldown system: you issue an order, the order is executed, the effects are immediate, then the order enters in cooldown. When the cooldown ends, the order is ready to be used again.
The orders' cooldown, as the game is now, are infinite: each order can only be used once.
When we created the "P Button" (the big button with a P in the left superior corner), it's original function was to be a trigger for the player to change between Open Borders and Closed Borders.
As the mechanic was scrapped in favor of a mixed system (with the player being able to set help for refugees and simultaneously stopping their numbers), the "P Button" lost function.
I will make it the "Pause Button".
Some buttons in the Scene Teste aren't properly named: all the ones that have ActionButton as a parent are named only Button or Button(number) and some are even out of order.
The reason may be the time system interfering with the loaded date, but that's only conjecture.
So, the Pause button does NOT work with the ImmigrantWaveLauncher or the waves themselves.
It's a bug easy to reproduce, just pause the game and, in ImmigrantWaveLauncher, set the tempo_para_proxima_onda to a number that is reached sooner than later. When tempo_para_proxima_onda reaches last_time, a new wave spawns and it ignores completely the pause.
For the Beta 0 Version, one random event is just not enough for a "barely playable game", it would make the experience a little boring but most importantly, more random events would give us information about how to polish the Random Events mechanic.
A total of five random events for now would work better.
Making the five events will demand some enhancement of the Random Events system so
#region and #endregion are pre-processor directives used for code blocks that allow them to be expanded and shrinked as needed.
This is not a essential feature in terms of code mechanics, but... it makes the code nicer to be read and that's a plus for people thinking in helping with the project.
So, here's the thing. I created a multiplier of refugees, one that the Random Events can interact (in fact, everything that wishes too can, but for Alpha 0, only the Random Events will) to make more and less refugees show up in each wave.
How much each wave is influenced by the number of refugees in it? Size? Number of people? Multiple waves each one with part of the grand total?
With Beta 0, it's a good moment for game testing and reflecting about the game: how it can be improved? It will be fun? It will teach people about the Syrian crisis? If not, what has to be done so it can?
The initial plan was that only one commercial window would be open at any given time, but the system in place allows multiple windows, what is a waste in computer memory.
This has to be solved.
The bug is: after increasing the UNHelpVariation by 1, the value given by the United Nations does not increase.
The text in the good ending should be:
"The refugee crisis is over. The Ondestão is officially recognized
as an example. Where are the merits of Ondistão? Only
time will tell."
Instead, the text visible is:
"The refugee crisis is over. The Ondestão is officially recognized"
The plan was that the social resources would be used to keep occupied houses functioning until the refugees can move to proper residences.
What happens in game is that the social resources aren't used.
Usually, desktop management games allow the player to save and load the game. Should this game have both functions as well?
As it is, the system to deal with legal waves of refugees isn't working completely: legal waves shoud receive temporary places to stay, then as they acclimate and are helped into a new life, that temporary places should return to the player.
That isn't happening: a house given is a house taken as the system is now.
Well, considering that a certain person has an habit of coding in Portuguese... and such an habit, mainly for open-source projects, has to change... >_>
...the person in question will start translating his code and comments of Portuguese to English.
It can be argued that such decision alienates non-English readers but the gains in opening a code to a majority of English readers wins over focusing in a smaller community.
As a very important part of the game, the waves are needed to test the game mechanics, but as they are programmed now, there isn't a way to call waves at will, or to increase the speed of them in the Unity IDE.
So, I'm asking for us to have in game:
When an order's button is used in the game, it vanishes, since it's in cooldown. So far, so good.
But when the order's menu is closed by clicking in the corresponding button, all the buttons of the cooldown orders show up. What should happen is that by closing the menu, no order's buttons should appear. Period.
CurrentMoney and MonthlyBudget show sometimes the decimal point of their values and everything to the left of the point, but nothing in the right. (Example: 465823.)
So, about border officers... they are only working once. They are like passive barriers, that once destroyed, never get replenished back.
So, i'm changing two small things about them, so we can have a starting point to balance things (and also, I can go to the proper "how to balance a simulation" :p):
1 - The officers are permanent... as long as they have resources. They will block refugees as before, but won't be diminished in number.
2 - Officers spend a number of border resources/week. If the border resources reach zero, they just stop working.
A risk that exists in the Beta 1 Version's creation is that the game design becomes too much spread out, too unfocused.
To avoid this, we need to define pillars of game design for us to follow for this game.
Copy/pasting from #21:
PlayerAction is not made to support buying/selling, unless that's made in the worst way possible: creating more 28 different buttons.
So, we need a CommerceAction, that opens a window that allows the player to see the price of something, choose how much he will buy/sell, that will alert that buying/selling will be impossible due to circunstances (have one dollar, want to spend 100 dollars), and finally make a transaction or cancel it.
The save system should be the bare minimum for the Beta 0.
This means:
I can't, in good conscience, release the code involved in creating a new Commerce Window as it is.
Seriously: too many functions coming of too much different places, this NEEDS to bee simplified, and it will be.
When you have a house, it starts spending social resources every week.
That's the bug: the social resources should be used for refugees, not for their houses.
But that also raises the question of if the house spends something for being there...
As said in the title.
Using one of the Action buttons leave us with the following message:
NullReferenceException: Object reference not set to an instance of an object
This probably happens because in no line in the code, the PlayerActions receive their respective buttons: the buttons have access to the PlayerActions to call, but not the PlayerActions created.
As the game is now, the player can buy one house/border officer each set number of weeks. This does not work well to represent the number of refugees which try to reach other countries...
...yes, I know that one border officer is not a refugee, but if the player can place at their borders only one border officer each month in the border, this leads to a false impression where the number of refugees looks small, and isn't.
Because of that, we need that the player can buy/sell a chosen by him number of houses/border officers, when he clicks in the appropriated buttons.
The RandomEventManager calls Events that happen once and then are threw away from the Events list.
Each event changes values as criminality, money, number of refugees coming in the future, etc. The problem that must be avoided is a sequence of random events that together throw the multiplier of refugees per wave to zero or below zero. :/
Partial copy/pasting of the explanation back in the middle of #32(And the UN help increase in money didn't worked... because all the Action Buttons are bugged):
The "calculations only at the start" problem apply to the cooldown period of the actions..
This doesn't look much like a problem and is not... until the time is changed to pass faster... but the cooldowns are all using the first "time speed" value.
This is an error that won't show up in the Beta 0 version, since that version won't work with changing passing time. Because of that, the only moment when this is a bother is when testing.
So, for now, i'm leaving this bug to the Beta 1 Version milestone.
Every spawned wave is going above the CommerceWindow interface, for reasons unknown, but probably it's a matter of a bug in the Wave Transform.
We are not at that point yet, but thinking ahead we will need to do semantic versioning properly and changelogs too, so I'm leaving this links here for the future:
In the game, the user interface dedicated to homes, social resources, border offices, border resources and money is static: it never changes, being in a certain sense only placeholders.
In the GOD_MANAGER (nice name :D) RandomEventManager is not in the Teste Scene. This is creating a NullReferenceException when RandomEventManager.instance.CheckForRandomEvents is called by TimeManager.checkForPassageOfMonth().
I will take care of it. thumbs-up
The problem seems to be in the function that it calls... AnEventHappens(): calling it more than five times ends with an Exception because of going out of bounds.
if (criminalityRate > 0.1)
ResourceManager.instance.taxVariation -= unemploymentRate - 0.1;
So... if unemployment < 0.1, crime increases taxes?
at StatsManager.calculateStatsValues()
Before telling about the repository to interested people, I have to set a few things in the ground. At least do everything in Insights/Community.
Link to read here: Opensource Guide
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.