Skip to main content

A new project proposal: Solar City

Proposal.

Solar city will be a non-violent game designed with the intent of making people think about ways to regenerate their communities in case of coming social breakdown. It is inspired by Solarpunk.

Using traditional roguelike ideas, the game can be very replayable, each session having a different feel because of randomized global settings, such as population density, average citizen education level, rural/urban mix and special events such as pandemics or social breakdown. Procedural generation can be used, so that each city is different.
Instead of combat, players can explore, craft, collect resources and try to convert the city's citizens into active participants in regenerating their community.


Citizen management.

Here is an overview of how citizens would be handled:

Each world map would be populated by up to a hundred randomly generated citizens.
Initially, all citizens except the player would start out in a passive mode, collecting their basic rations from the government and spending most of their time at home watching TV. Some will become angry at the situation and spread dissent and violence.

Should there be a risk of violence from rioting citizens? While this could add an extra layer of interest to the game, it could also detract from the game's philosophy of non-violent activism. Maybe a better idea would be that the player (and any other citizens) suffers happiness reduction when they come in to close proximity with aggressor citizens.
Through talking to the passive characters, giving them gifts and performing services in the community, the player can convert them in to active citizens. These citizens would perform their own tasks, such as healing the sick, countering aggression, growing food in urban farms, crafting goods, collecting recycling, distributing items in stores and maintaining infrastructure.
Active citizens have to be kept happy though... as they can become depressed, sick, injured or enter other states if their resolve drops too far. Eventually they can revert to passive consumers.
Challenges for the player will involve turning an old, dirty 20th century city based on plentiful energy supplied by fossil fuels in to a city of the future, with energy supplied by renewable resources, and social structures based on mutual aid and cooperation, instead of exploitation and profit.

The main challenge will be to try and interact with other members of the community and see how people with different skills can find their own niche to be a valuable member of local society, instead of just a passive consumer.

Top level Gameplay.

Whether the game will be turn based, or real time is undecided, but the lack of combat makes this not so important. With each step the player takes, or each action they perform, some time passes. As turns are expended, the day/night cycle passes. The player can't do any actions once it becomes too late at night. They have to find a bed and sleep. (unless they can find some coffee?)

Events.

When one day ends and the next starts, the end of day process occurs.
Citizens will change states:
  • passive consumers can activate or become discontent
  • depressed citizens may become passive
  • citizens may become sick
  • healing citizens can recover
  • sick citizens will go to hospital or back to bed
  • citizens engaged in learning or training will improve their skill level
  • temporary effects on health and happiness will expire
Local changes will occur:
  • some infrastructure may become damaged by looters or rioters
  • trash spawns
  • thefts can occur
  • plants grow
  • crops spawn yields
  • batteries recharge
  • water storage collects
Global changes can occur:
  • pandemics can make a lot of people sick
  • riots cause lots of citizens to become angry and take to the streets
  • there can be weather effects such as bad air quality, storms and floods
  • land and buildings can degrade
  • government food shipments can be interrupted making people hungry

Some of these can be protected against, for example, by building flood defenses or stockpiling food in community kitchens.

Citizen game mechanics.

Players and NPCs can have different skills that allow different actions as they level up. A player might choose to be more social or more technical. They might enjoy fixing things themselves, or recruiting people to help do things as a collective.

Every citizen will be individually different. They will have special skills and needs. Some will be young and strong, others could be old and wise, with higher skill levels. Each are important to the community. Some may be disabled or old or infirm, but everyone can play a role. Even the sick and infirm will need taking care of. At the end of the game, part of the player's performance will be judged on how well they helped those most in need.
Citizens on screen may be simple sprites with little variation, but should have a "portrait" view which can make them recognizable to the player. A kind of procedurally generated face model can be used, so that a large number of faces can be generated from a smaller selection of basic parts.
As well as skills, clothing and items can play an important part in the player's progress. Some clothes or items can boost skills, others can make the player more charismatic or protect against environmental effects. Others could be useful for certain NPC roles and could be given as gifts.

Faces from an app called "pixel me". Actually faces would be more diverse. This would have to be done carefully to avoid "procedurally generated blandness".

Long term game progression.

At the start of the game, citizens are having their basic needs met by government assistance, since the economy has collapsed and global trade has frozen up. As the game goes on, the remaining central government will become less active. Food shipments will stop altogether. Government hospitals will close. Police will stop patrolling or putting down riots. If the community hasn't made enough progress in self sustainability by this point, it will start to collapse.

World generation.

The game world would be procedurally generated. The current idea is that the global map will be divided in to different neighborhoods, consisting of rural, suburban and urban. Each will have a unique style, requiring certain tactics to get the best results.
The player can navigate between each sector using transit points at the edge of maps. Free government transport can allow fast transit to any point on the map, when it is working. This map will be generated by a simple cellular process, starting at a home tile and working outward.

Urban areas will feature large multi-home buildings:
Different generation methods will be used to create these sectors, from BSP trees, collision based placement and cellular automata. See this previous blog post for some examples.
Citizens with specialist skills may be found in the sparsely populated suburbs, as well as prime scavenging locations where the rich have abandoned their mansions. Their sparse layout makes them not very efficient places to run most activities though, so it could be best to collect citizens from here and get them to move to the urban areas. The suburbs could be used for (sub)urban farming.
The rural areas feature vast abandoned agribusiness plots and some citizens with farming experience. Regenerating the land and growing trees will help to mitigate some global events such as low air quality or floods.
Moving in to buildings will switch to a different map. The player can move from floor to floor and investigate any room with an open door.

Other gameplay options.

Whether the player should be able to loot inhabited buildings is a difficult question. Should there be that kind of moral ambiguity in the game? What would be the consequences for the player if they are caught?

We might want the player to be able to enter houses and fix the contents to make the inhabitants happy. Should they have free roam of the house/ apartment so they can do this? Why would strangers let you in to their home? Maybe some kind of clothing choice would be required...

There are some other possibilities to explore, such as the idea of having corporate espionage/raids in the style of Shadowrun... however, this again raises the question of what happens if the player is caught or ends up in a serious confrontation with security. Killed? Sent to jail? Game over? It would be quite a risk, though it would allow other interesting gameplay options, such as hacking or "physical pen" skills.


Game world representation, graphics.

The game seems like it would be best displayed from an overhead, isometric view, somewhat similar to games like The Sims or Shadowrun returns.
Although the style should be more organic, soft and with the potential to become more peaceful and beautiful as the game progresses. I was very inspired by these concepts by JP Cummins:
Depending on how the game is designed, it may be possible to merge the outdoors and indoors sections, like in the above image. Building would have a roof that disappears when the player enters. This would simplify how AI deals with the game world and how NPCs navigate around, but limits the design to a single floor per building. High rises would be shown with the floor elevated, as above. This might not make literal sense, but it could work well as a game concept.
Making the buildings too high would occlude the zone behind them and make it impossible to navigate, so care should be taken if this idea is used.
Low level, commercial or functional buildings could be added to the edge of larger high rises like the one above. This would split the land usage and allow for different characters of building in the same small plot of land.
Different room types could also be present, making the inside of buildings very varied and allowing a lot of different kinds of encounters and activities.

Development process.

As with previous projects, it seems a good idea to start out using placeholder graphics and effects, as well as temporary UI. Work should be focused initially on gameplay and project design.
This worked very well with the previous project as it allowed the game play to change without having to redesign finalized art assets. It also allowed early gameplay testing to tweak how the game worked, without waiting for all the art to be done.
Some of the code from the old project can be reused and modified to be useful again, especially that concerned with terrain sets and so on.

Conclusion.

I don't feel comfortable working on a game devoted to violence and war right now, and I'd like to make something more interesting and complex, but stemming from very simple game mechanics. I'd also like to make a game which is about the environment, climate change and the challenges facing society today.

I'd like to make something that even kids can play, without their parents worrying that it is full of blood and gore.

Comments

Popular posts from this blog

Automating Level imports from Blender to Godot

  Recently I've been making some levels in Blender an importing them into Godot. There are only about 7 or 8 shaders for each level, not counting dynamic objects which will be added later. But to improve rendering performance, it can be a good idea to split the meshes up into sections. At that point you might be faced with a list like this: Or it might be even more chaotic, if you didn't use simple names for the objects in your level. So it can take a long time to sort out all the meshes, make them unique and add textures and so on. Blender imports with simple Blender textures, or with placeholder materials. This is sometimes OK, but if your Godot shaders are very different to those used by Blender, it means applying new materials to every mesh object in the level when you import the scene. I found that during the design process, I was importing and readying a level several times before I was happy with the final layout. So at first I was wasting a lot of time. In Blender, I us

Upstairs / Downstairs.

I've decided to make my prefabs multilevel. Later this should allow me to add pit traps and other great stuff. It also makes it easier to line up stairs so that you can exit them on the same co-ordinates where you entered them. The prefab editor is pretty much finished, it just needs some code for loading up prefabs from a saved dictionary, so that they can be checked or edited. The entries will need to be forwards compatible, so I'll be loading each tile and then translating the indexes to a new array, that way if I add extra indexes or extra info (like traps or puzzles) I'll be able to update existing prefabs to work with the new standard. Click for a video.

Advice needed on tilesets...

I need some advice on which is the best way to handle building the dungeon. Right now I'm using prefabs for my dungeon, they have a north south east and west section for each "room": The basic tileset. This has several advantages, and also several disadvantages. Firstly I can have curved rooms, I can have tunnels and other interesting shapes. The tilesets can look quite nice with a little work. On the other hand I can't easily get the navigation data before building the map and once the map has been built I can't make changes to the layout, like having active pit traps or believable secret doors. Although the rooms are interesting, they are quite repetitive, and it takes a lot of effort to make even a few different variations. Also rooms are constrained to one size. A newer version of the tileset with a lot of variant parts for making more interesting rooms. To create a tile set is a real headache too. Planning how to lay out the UVs, trying to cra