Coder Social home page Coder Social logo

clauvin / refugeewaves Goto Github PK

View Code? Open in Web Editor NEW
1.0 3.0 0.0 93.27 MB

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.

C# 100.00%
migration c-sharp ggj2017 serious-game game-development game simulation refugees crisis-related jam

refugeewaves's People

Contributors

bconfessor avatar clauvin avatar vsakane avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar

refugeewaves's Issues

The Thorny Details of UI Peculiarities

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.

  • 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.) (Specific issue here) (Fixed)
  • TotalHouses is fully to the left side of it's own space. (Fixed)
  • The infotag about border resources overlap the border officers numbers. (Fixed)
  • The infotag about border officers stays below the border resources numbers. (Fixed)
  • The text about the action buttons (the ones that allow the player to do stuff with his money) is... needing a few corrections. (Fixed)

Two Action Buttons does not work.

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.

Problems With The Endings

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.

Creating a Sensible Simulation

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.

README.md is absent

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.

Action cooldown is not working

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.

And The P Button...

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".

Improving Teste's Secene readability

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.

Immigrants transcend time to reach Ondestão

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.

More four random events

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

  • (Truly done :D) Each Random Event can change more than one field (as in "increase refugees coming and reduces unemployment")
  • (Done) Random Events can change the number of future refugees coming.

Use #region and #endregion in the code

#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.

More refugees = More time to the player to act?

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?

Analysis for Alpha 1 and further

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?

Multiple Commerce Windows are possible

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.

Good ending text truncated

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 Social Resources aren't been used at all

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.

Should it save?

Usually, desktop management games allow the player to save and load the game. Should this game have both functions as well?

System of temporary houses isn't working completely

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.

Translating the code and comments to English

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.

Tools regarding the waves

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:

  • A button to call waves at will; (Done)
  • A button to call super waves at will; (Done)
  • A way to control their speed. (Done)
  • A way to stop the time-based creation of new waves. (Almost done)

Closing of Actions menu shows inactive buttons

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.

Formatting of CurrentMoney and MonthlyBudget needs a change

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.)

  • The decimal values are useful for the player?
  • Is there any situation in game where not having them visible would result in a perceived bug?
  • Is there any situation in game where having them visible would result in other bugs?

About the "one time" border officers

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.

Defining pillars

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.

CommerceAction: a system to create a buy/sell window

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.

Save and Load System

The save system should be the bare minimum for the Beta 0.

This means:

  • The player will be able to save his progress through a button in the main Scene, automatically pausing the game while the player does that.
  • The player will be able to load his progress through a button in the main Scene, automatically pausing the game while the player does that..
  • The saving system allows the player to create a save file.
  • The loading system in the main menu will allow the player to load a file in the same way available in the main Scene.
  • Non-save files wrongly loaded will give to the player an error message.

Optimize the process of creating a Commerce Window

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.

Social resources should be used when there are Refugees...

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...

The PlayerActions don't know which button they should make inactive

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.

We need more than one house/border officer/expense bought at once...

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.

Avoiding unplanned absence of refugees per wave

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. :/

Action Button's second bug: absolute cooldown timers

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.

Most of the user interface is static

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.

RandomEventManager not in the Teste Scene

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

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.