Wednesday, December 31, 2014

Persons of Interest

Time for part three of the Groups of Interest tour.

First off is the Black Queen

An enigmatic figure with possible ties to the serpents hand, Foundation personnel, and many severe security breaches across the world.

The Black Queen is listed on the Groups of Interest page but she really isn't a group unless you count her theorized ties to the Serpent's Hand. This got me thinking that a slightly different approach would be good to take and would open up some interesting modding options: Persons of Interest.

Their functionality would be similar to groups of interest and would reuse much of the code, but instead of spreading influence and establishing bases they would move around as a single individual. Depending upon their motivation they might look out for anomalies and respond to them in order to collect them, or take on contracts from GoIs to infiltrate base facilities to cause containment breaches or steal objects. The player would also be able to issue contracts to Persons of Interest they are able to contact and would also have the option to recruit them as a staff member.

This would play nicely into the various strange personalities one can find in the staff section of the wiki and provide the framework for defections of staff and O5 officers. It also would make it easy for modders to add various anomalous humanoids to the game. I also don't think it will add to much complexity to the code since it will reuse much of the logic needed for GoIs.

Let me know what you think.

Next is Alexylva University

They don't interact much with the Foundation. In fact they may be a good candidate to make in a manner similar to Prometheus Labs where they generate items every so often.

Otherwise they will be made into an Influential GoI. This means they do not take an interest in territorial struggles or combat, but try and gather revelvant SCPs and anomalies often spreading them in the process. They will have an interest in historical SCPs as well as ones tagged as Alexylva.

Their HQ type will be dimensional. Entrances may appear if the players surveillance is high enough allowing an attack or infiltration.

Then there is Are We Cool Yet?

The anartist terrorists. Highly unorganized but whose members are focused on art pieces with maximum exposure. There HQ type is cells. They will spawn bases all over the map that work towards producing high profile anomalous art installations that will be highly disruptive to the Masquerade or the secrecy the Foundation is trying to uphold. It will be advisable to destroy or infiltrate cells before this can occur.

They are also set to be global so their activities can occur across the world. I also hope to implement the Sommes-Nous Devenus Magnifiques? as a requirement for the destruction of AWCY. One must take advantage of the presentation and exterminate the lead artists and critics in order to finish off a weakened AWCY.

AWCY will be interested in all artistic SCPs as well as ones tagged AWCY.

The Church of the Broken God is fairly straitforward.

Very disorganized, likes mechanical things, operates in cells, and if you let them go on for too long... they'll rebuild the Broken God. You don't want them to rebuild the Broken God.

No really, you don't.

Dr. Wondertainment is a fun one. Doesn't take an interest in territory, but wants to distribute anomalies and SCPs across the world. It will take an interest in toy SCPs as well as any tagged as Dr Wondertainment.

I'm also tossing around the possibility of an ESOTERIC foundation being able to convince Dr. Wondertainment to allow them to test his products before their release. Not sure what benefit the player would get from the arrangement, but I find it amusing.

Once again this post is getting long. I'll leave these thoughts for you to think over.

As always fire back the feedback and suggestions. Hopefully I will be able to finish the rest of the GoIs on my next post.

Monday, December 29, 2014

Nobody Important

Time for the second post in my Groups of Interest series. Hope everyone is enjoying the year end festivities.

First off is Nobody.

Nobody is an interesting creation compared to the other Groups of Interest. First off its not clear if it is even a group or just an individual. Its also a complete mystery what Nobody's goals are or if they/he even has any. One of the most interesting interpretations I've heard is Nobody as Mirror. 
In short, Nobody is unable to affect the world around him in any significant way. He cannot be the origins of any change in the world. Anything that he tries to do will inevitably end up as if he was never involved. His goals are to try to affect something, so that he feels that his life will have meaning.
Taken from 

So it seems Nobody has a particular talent in moving about unnoticed, disappearing, being incredibly hard to contact, etc. All of these attributes clash with the current implementation of GoIs. On top of that Nobody's goals are unlike any of the other GoIs. But I don't want to drop such an interesting part of the universe.

In the Foundation I see Nobody as the force attempting to balance the various GoIs. He will provide information and assistance to groups, including the player, who are lagging behind. This assistance can help them regain support and power making even weakened GoIs a possible risk. He would also know the real SCP-001 and will provide intelligence as to its identity and where it can be located. Some information can lead to the generation of time-sensitive events that can be intercepted. And some information may be false so the player must be careful they do not fall into a trap.

Hopefully this fits into the canon and utilizes Nobody in an interesting way. Let me know what you think and if you have a different idea on how to implement Nobody.

Next lets address Oneroi Collective. It will be short.

These guys are new to me and there seems to be very little information about them. I honestly haven't found much besides they like using dreams. Because of this I really don't know what to do about adding them to the game.

I considered making them a mechanic similar to Nobody. A group that communicated with the player through dreams and depending on how you reacted to their requests they would either help you or hinder you down the road.

So please help me figure this one out. Without more information I think I had better skip implementing this one. I don't think I can do it justice at the moment.

The last one for this post will be Prometheus Laboratories.

The interesting part about Prometheus is that they are a former Group of Interest.

On 01/09/98, one of Prometheus Labs' projects, [DATA EXPUNGED], resulting in the annihilation of their base facility. In the aftermath, the Foundation swept over Prometheus Labs' ground zero and recovered several surviving products and personnel. Products were retrieved as SCPs and survivors inducted as Foundation personnel.
-Taken from
Given this group has been more or less destroyed that makes it unlikely they would be a significant player in the GoI struggle.

However I have an idea to propose for them. According to the wiki the Foundation is still reaching out and trying to assimilate the remaining Prometheus personnel and facilities. I plan on making the game generate the discovery of Prometheus assets from time to time and displaying them on the map. All GoIs may end up seeing this location and the race is on. Successful recovery of the assets before another group strips it down will provide useful benefits and possibly SCPs or other anomalous materials.

Well this article is getting long and contains some significant feedback requests. Read them over and fire back the feedback. I'm doing my best to put all the GoIs into the game in a meaningful way, but it doesn't mean I'm doing it right.

Next post I address the Black Queen, Serpent's Hand, and others.

I look forward to reading your responses, and the eventual alpha release ;)

Tuesday, December 23, 2014

Paradigms and Groups of Interest

Its been a while since I wrote a DevLog. Quite a bit has happened since then. The Foundation even made spot 52 on the top 100 games on indieDB for a while! Now if I can only get it to stay there. Keep spreading the news and excitement for this game to everyone you know. The more this grows the better it can be.

Now that I am deep into the Groups of Interest code I felt it necessary to explain how I plan to implement each GOI. Hopefully this means if I am really screwing one up the community can slap me, instruct me on the proper canon and we can be on our way to a better game.

With that being said lets begin with paradigms! No really it has alot to do with GOIs as will be seen later. I've tossed this word around in the last couple of videos, but I didn't take much time to explain it. Its a concept that came out of the discussion around the Ethics Committee screen. A paradigm is a mindset and in The Foundation's case the collective mindset of its staff, leadership, and task forces. As the player makes choices and enacts policies their paradigm will shift towards one of three possibilities.

ESOTERIC : An esoteric foundation embraces anomalies. They are the foundation that creates MTF-7, Recruits humanoid scps, builds anomalous weaponry, and makes deals with the elder gods. This all may come at the cost of their humanity but if it helps to protect humanity why not use it?

REALITY : A Realist Foundation is dedicated to the containment and eradication of all anomalies without and within. They only research anomalies in order to perfect containment. Science and logic rules their world and they refuse to cooperate with humanoid scps or utilize scps that could be helpful.

BALANCED : A balanced Foundation resembles the current foundation of the wiki. Anomalies and esoteric tech are only used when necessary. Tech is researched and developed to combat current needs.

During the first part of the game the player's choices will be recorded and alter interactions with other GOIs. An ESOTERIC Foundation is more likely to get along with The Serpent's Hand for example.

Around the midpoint of the game the player will have to choose between the three paradigms in order to unlock the final tier research and policy options. Each branch will have unique technology and policies as well as variations of several techs and policies.

Hopefully this gives a good overview of paradigms. There will be many more details once it is time to talk more about policies and research.

This brings us to the first GOI I wish to discuss: The Chaos Insurgency.

My original plan was to implement it exactly how it is described on the wiki. But a conversation I had sparked a different idea that I am super excited about. Its less canon, but canon on the wiki can be pretty flimsy at times so hear me out.

The CI is a rogue splinter group of the foundation that broke off in 1924. They are basically the opposite of the foundation except for an apparent similar desire to protect normality. However in the game the Foundation can vary in the approach it will take. Making it so the two groups might not differ as much in beliefs as rival factions should.

So I propose that CI will not exist at the start of the game. When the player selects a paradigm in order to unlock the final levels of research the schism occurs. Based on the player's choice, the CI is created with a paradigm opposite of the one the player chose. Staff members and task forces leaning towards this counter paradigm defect. Due to their opposite alignments, the Foundation and Insurgency are unlikely to reconcile their differences and it creates a much more personalized conflict.

The CI will also be implemented as a Global Conflict style GOI. Being global they fight for influence and position across the entire world. Having an focus on conflict they will try to exterminate groups not aligned to their interests. They will have an interest in all anomalous activity and objects. Currently I don't have any other specific behaviors in mind besides their SCP-001 interactions, but that will come later.

Well this article has already grown in size considerably and covered alot of ground. Please leave feedback and suggestions and let's make this the best SCP game yet. Next time more GOI implementation plans including Nobody and Oneroi.

Cya Then!

Monday, November 10, 2014

A Tiny Introduction to Modding The Foundation

The backend work has been intense these past few weeks. Why?

Great Question!

Part of this is of course the nature of storing the mass amounts of data that a simulation produces into an accessible package, but the other half is my determination to expose as much of the game as possible to modders.

I have a strong belief that modding extends the life of a game, however the  wonderful community producing content for the SCP wiki are writers and artists, not coders. They have produced wonderful content, but would likely be unable to pick up a coding language.

I wanted to find a way for non-coders to add content to the game. I found that in JSON. JSON files are text files with a simple organization. Unlike many other data formats JSON is pretty easy to read. Here is an example.
Guess what? That is the most complicated it gets. Lets take a look at some of the Foundation's JSON. This file is full of the data that makes up the world.
This is a portion of the North America region data. You can see it as an array of "countries" (indicated by square brackets) and the top country is the United States (so I suck at alphabetizing... sorry). Inside clearly labeled are various pieces of data the game expects a country to have defined. Changing these changes the game's behavior for that country. You can also see that each country has an array of "cities". Say you want to personalize your experience a bit. Add your hometown. Lets do it.
How boring! Brazil doesn't have any cities much less your Brazilian hometown ;) Lets fix it.
Boom done. There will now be a new city in the game. Because its defined here the game knows its a city in Brazil and will create the city related code and object automatically. In the future there might be more variables that can be defined within a city but for now this is enough.

BUT WAIT! Your city list is below gridSquares when in the US data it was above! Yep JSON doesn't care as long as its present.

BUUUUUTTT WAAAIIT! What if I type something wrong?!?!?!

Well for most mistakes there are free online tools like JSONlint. They will help you like so.

I will also have guides, and hopefully tools to help generate the JSON for you. Its really quite simple and powerful. And will hopefully unlock the potential for every user to tweak the game if they want to.

But does it really work?

Yes. Yes it does.

Monday, October 27, 2014

The World Grid (An attempt to visualize backend logic)

So some people have been wondering what on earth I've been up to with everything simulation related. I haven't had alot of answers and nothing visual to show which has made it difficult for some people to give the feedback and suggestions they wanted to give. So this post is an attempt to explain what I've been working on to make the Foundation feel more alive.

 My early prototype made the mistake of thinking the SCP universe would function like the XCOM universe. SCPs would appear and the Foundation would deal with them much like the aliens in XCOM. However this simply does not fit the SCP Universe. SCPs often go unnoticed for long periods of time. Without the Foundation's proactive searching many of these items would remain undiscovered or fall into the hands of their enemies. I realized my generation system was flawed and went back to the drawing board.

I also needed a way to track the influence and spread of various effects and GoIs (Groups of Interest) as well as a way to quickly find an appropriate location to spawn an SCP. The latter problem might not be so obvious so let me try to illustrate it.
Here is a picture of our beautiful world. A world with 180 units of latitude and 360 units of longitude with a surface 71% covered by water.

Most SCPs are found on land. But attempting to generate latitude and longitude randomly will end up 71% of the time picking a water coordinate. You can just try again but these failures can stack up and get expensive.

So how to keep track of SCP effects? GoIs? Acceptable spawn locations? Areas watched by specific countries? Well there are basically two approaches I came up with. The first is sets of textures where the area of effect and data are kept as colors on individual pixels. This easily solves the area of effect problem and is capable of solving the other problems as well. However, it is really slow unless you are enough of a shader ninja to do all of it with shaders. I am no shader ninja. And shaders hate conditional statements so its hard to test values with them. If not done in a shader the bulk of the work is dumped on the CPU. That poor guy has enough work as it is and texture calculations are not his specialty. So tracking data on textures didn't work out for me.

Which brings me to my second idea and the one I've been working on. The world grid.
Note this is a visualization of the backend. Not actually shown in game.
32 Horizontal columns, 16 Vertical columns, 512 individual squares. Each square can be marked as a land square, given a specific set of coordinates if they are a tiny island like this guy.
Actually known as the Falkland Islands
Each square can hold alot of data. Influence for a GoI, spread of a contagion. As well as the events and SCPs that are currently taking place there. It can also help determine a countries' relationship to the Foundation. Lets take a look at a few pictoral examples. Countries for starters.

Country areas of interest are defined by assigning grid numbers. Here is what America would look like.
 But wait its covering parts of the sea and Mexico! True. However specific spawn locations can be assigned to areas covered mostly by sea. And Countries can share interest in an area. In the real world when troublesome things happen near a border typically both countries get involved. So below is a picture of Mexico sharing some of the same grid squares.

 Multiple countries can be assigned to the same grid square. And if an event happens to move a countries' interest somewhere else they can be assigned new squares to compensate. Say a massive earthquake hits Japan and the US decides they need to help out.
The US adds new grid squares that it has an interest in. If anything happens in these squares positive or negative it will affect the US view on the Foundation.

So what about spreading effects? Well you simply add a percentage. Say we have the dreaded Ebola SCP (not really an SCP)
Not an accurate spread diagram
Some squares register a 100 percent infection while others are far less. The simulation can continuously update the values allowing various effects to spread while the player tries to contain it.

What about GoIs? Its a combination of the two. solid squares where a GoI has control and partial squares where they are working to gain control.

So there you have it. A rough visual depiction how the backend code sees the "world" Note that these visuals will not be in the game for the most part. This data exists in the form of numbers not images so I made these up to explain it better.Some overlays might show this data but even then it will be cleanly masked by the terrain/water mask and won't be so clunky. 

Hope that was informative and interesting. Let me know what you think.


Friday, October 24, 2014

Now on IndieDB


The Foundation is now on IndieDB. Check it out and help promote the game!
The Foundation Windows game

Thursday, October 23, 2014

What is The Foundation?

My favorite games growing up were XCOM: UFO Defense, and XCOM: Terror from the Deep. The base building, the intense tactical combat, procedural maps and the incredible attachment they managed to build to this fictional organization and its brave warriors entranced me and likely inspired my first desires to build my own games in the future.

But as time passed I found life didn't really support or encourage game design as a career. So I set those thoughts aside and went to work for a large corporation developing ecommerce and order fulfillment software. It felt good to tell people what I did for a living, but it was hardly fulfilling or enjoyable.

Then life dealt some funny cards to me and here I am. Trying game development as a new career. I suppose its only natural I turned to my favorite games for inspiration and my favorite wiki.

I found it around the time I graduated from college. A wiki masquerading as a database for a fictional organization called the SCP Foundation. The SCP Foundation secures anomalous and paranormal artifacts around the world, contains public knowledge of these items, and protects the worlds existence from the hazards these items contain. These items are presented in the form of technical documents on the wiki giving a brief description and set of containment procedures to follow in order to keep the object secure.

I fell instantly in love with the wiki and ate up the various articles, stories, and forums that surrounded it. I even tried to write an article but I embarrassed myself upon reading it and took it after a few hours. Lets just say I made a new textbook example for cliche.

Upon this setback I started looking at other options available to me. There were several games that had been made about the wiki but I noticed they focused around the articles and the horrors within. Interesting and terrifying, but something was missing. 

There was no Foundation, only monsters. The powerful shadow organization I adored wasn't really a part of any of these games. So I decided I need to fix that. I would make a new SCP game but it would be different.

This game is about the Foundation.

You take on the role of the newly appointed Overseer of the Foundation. A barely averted XK-Class end of the world scenario has left the Foundation with only a handful of its former assets. Rebuilding the power and reach of this organization falls to you.

You must Secure. Find anomalous events and SCP entities. Customize your armed forces and research powerful new technologies. Dispatch task forces to lock down and retrieve it. Fight off others interested in the same prize.

You must Contain. Suppress public knowledge of the events. Recruit governments, agents, and organizations to fund and support your goals.

You must Protect. Build bases and secure areas to store anomalous items. Stop the spread of anomalous effects. Beware of dangerous containment breaches.

As time passes the beginning hastens the end. Something nearly destroyed the Foundation once. It won't make the same mistake again.

I look forward to discussing this game and sharing the progress that I make. You can follow me on twitter @riscvul or check out the games progress on its trello board: