Category Archives: Sim Karakter

Sim Karakter update: Now in Slack, but how to change the font?

Another update on the Sim Karakter game.

I have it working in Slack, but there are two problems:

  1. The font of Slack makes the numbers not align with the items in the level
  2. Typing ‘/sim’ all the time is a hassle

Sim Karakter on Slack

The font of Slack makes the numbers not align with the items in the level

As you can see the some elements are not aligning properly. I’ve not yet figured out how to use Slack Slash Commands to display test in monospace font or do some other trick that helps.

Typing ‘/sim’ all the time is a hassle

It’s a good prototype in that I can get a feeling for how fun it is. And while I knew the game itself didn’t have enough gameplay fun, at least in the web verstion it was easy and quick to play. In the Slack version everything you do takes a little bit too much effort because you have to type /sim before every command.

But I’m happy I got it working as planned :)

Progress on learning to build slack app for Karakter game

Since I have the ambition to create a sim game as a slack app, I wanted to first create something simpler.


The concept: the most simple tamagotchi ever; if you say ‘happy’ he’ll be happy, if you say ‘unhappy’ he’ll be unhappy. I got it working:

Simple gotchi

Things I learned:

  • The core of how Slack commands work.
  • Heroku is not the tool for this job. When there is very little trafic, a call to the server can take over 5 seconds to return something.
  • I learned to make use of Python Anywhere. Enabling a free way to run this code.
  • Made use of a WSGI file in order to get Python Anywhere working. I’m still not absolutely sure what the essence is of WSGI, other then that it tells the server how to run the code and act as a ‘middle man’ in some ways. But at least now I know that there is something I should probably know more about.
  • Creating a simple JSON file is super simple in python.

It was tempting to add new features to the ‘gotchi’ app and try to figure out more about how Slack apps works. But I now know enough to start working on porting my sim game to become a slack app.

Text based sim game ambition update

Back in april 2015 I wrote about the ambition to build a 1D asci sim game.

A new ambition

If you read my earlier post, you might not say it was lacking ambition. But in a way it was, because it didn’t say anything on how it was ever going to be played by people and have a real impact.

Smart text input gaining traction?

Developers in general, but perhaps more those who use tools like Vim [1] have known this for a very long time, but you can use the keyboard to do more then write something. These texts can be commands to empower you to do stuff quickly and precisely. I believe that the success of Slack has much to do with that quality.

[1] the site Vim site looks fake, but lets just say their target audience is not your typical designer..

Recently the app Peach has gotten a lot of attention, it’s a social app where you can share text, photos, etc. The unique feature is that it handles ‘magic’ keywords. So you can easily write ‘here’ and it will send your location.

The added goal: make it a Slack app

My new goal is to turn this game into a slack app. I don’t really know anything about building Slack apps, so that’s something that I’ll have to learn.

In order to be able to do that, I first need to learn more ‘back-end stuff’. The kind of things I also want to learn to eventually get my Idea Growr app online. Concretely this means improving my Python skills and learn to work to work with a back-end framework. I have chosen Flask, because it seems to be the most simple. Another part of the equation is that a (web/slack) app needs to be deployed somewhere.  So I’m also trying to figure out what platforms like Heroku have to offer.

Step 1: Turn the game from a terminal game, to a web based game

The initial game I had made only worked on the terminal, so my goal was to transfer the game to the web. I had to rewrite quite some code, including a nice recursive one to handle the user input, but now have it working online.

Since it’s not ready for user testing, I will not post that link, but here are some animations that show a little bit of how the game works.

Sim Karakter 1And here some more..

Sim Karakter 2

Let’s get some things out of the way..

Yes it’s ugly. Since the goal is to eventually have this run on Slack (a chat client), selecting nice colors and a font don’t have a high priority.

The game is not that fun yet. I believe that there is enough of the game working that if someone tests it, they can imagine ‘what would be cool’ and gather great feedback.

The game is very far from done, but I’m learning a lot of new stuff, like how to set up unit tests with pytest (not 100% code covered yet..) and just getting more experience with coding things that have a little complexity to them.

Concluding; the extra criteria makes it easier

By defining it has a Slack app, I have made the project much more of a MVP that I can see working. This gives me extra motivation to dive into this project even more and see where it takes me.

Like always, let me know what you think. And if you think it sounds like a fun project, I’m always open for collaborations on projects like these :)

New game idea: 1D asci sim city game with influences of Spore and The Wire

In order to improve my programming skills I have started a new pet project.

The experience

I’m going for a quality like book reading. Where the order of the letters gives shape to a world constructed in your mind.  The patterns you learn provide a new perspective of the world you live in.  Perhaps making you see it a bit clearer.

This is what the latest version looks like:

” ” R C I ~ ~ ß ” ” ” ß ~ ~ ¶ * * ~ ~

The language of the game

The game communicates in symbols and plain text. Since graphics might distract from the meaning of the game and it makes it a lot easier for me to develop. In other words, it’s a text based simulation game. Where you read a one dimensional string of characters in order to understand how the world develops you manipulate.

It’s not so mystical once you know what the symbols mean.

 ”   is grass
~   is water
*   is rock
R   is a medium size residential building
C   is a medium size commercial building
I   is a medium size industrial building
ß   is a large residential building
¶  is a power plant

More symbols like that can reflect the state of the small city.

In order to make the game not too abstract, you’ll get feedback on the current status of the world with on you HUD (Heads Up Display) like this.

================== August 1950 ================
║         Cred:6  |  Pop:12 » r8 c2 i2 |  Pow:12/20!                     ║

It shows the number of credits, the population (» residential 8, commercial 2, industrial 2) and the power used/provided.

How to play
You play it like a text adventure, by writing a word or letter. At the moment these are the options:

b – Build
z – Zone
d – Demolish
h – Help
e – End turn
q – Quit the game

Current status

As for now, it’s a mildly interesting simple game. It’s easy to grow the city. But it does provide for the first part of the ambition: Where the order of the letters gives shape to a world constructed in your mind.

The game fundamentals

At the moment I can imagine it’s the most simplistic version of Sim City in the world. So how about that next part of my introduction: the patterns you learn provide a new perspective of the world you live in?

Remember the promise of the game Spore? You start by creating a one celled creature and develop it until you are a galactic warlord of sorts. The game consists of different stages, where each stage provides unique game play. It was an inspirational ambition. There are two qualities that I want to take with me for my pet project.

  1. It was an ode by Will Wright to the games he loved
  2. It was about building a history. Each stage built on the stage before it.

My pet project is also an ode to work I love, but not just games. It’s a mix of Sim City and the series The Wire (IMDB rating of 9.4).

The Wire as a blue print for how to communicate complexity

The Wire is about the city of Baltimore as a whole. By providing a mix of personal perspectives you slowly get a feeling of how the city operates (and often malfunctions). It has a neat structure in that every season highlights a different part of the city:

  1. Police & gangs
  2. The harbor
  3. The politics
  4. The school
  5. The press

The series comes down to, as Bodie says, “The game is rigged“. For every one perspective you can see most of the characters just try to make the best of their own situation. If possible they play fair and try to be nice to others, but if needed they’re harsh and defend their own.

After seeing the series you get a feeling, and actual understanding, of how complex the problems of a city can be. I believe it’s brilliant because it doesn’t really provide you with moral guidance, it just shows you the effects of how different institutions operate and how they relate to each other. It does so in quite the opposite of the abstract way I’m describing them right now. Just by telling the stories of the people living inside those institutions.

The moral guidance is not needed, because there is no real misunderstanding of morality. It’s easy to understand if someone is treated fair or unfairly if we truly understand their situation.

How to build the game on this blue print

Because in games like Sim City, time runs so much faster, it’s much easier to see patterns that in daily life are hard to notice. Since you can play these games over and over, it provides you with multiple perspectives on what in essence is quite a complex system.

So these are the ingredients for the game:

  • Like Spore, it’s a game built out of different stages that are ‘stacked’ on each other.
  • One of those stages is the ‘Sim City’ stage where you build a city.
  • Other stages should help you understand the relation between politics, multinationals / banks, press, education.
  • There probably needs to be at least one stage before the Sim City state in order to help understand how the interface of he game works and to start out from a simple and personal perspective.

The fundamental components to put the spotlight on

For me Sim City and The Wire helped me understand the world. Now I’m a bit older I have some grasp of how the world operates, I want to share this knowledge.

There are three major components that I think deserve our attention.

  1. Multinationals are more powerful than most countries.
  2. The operations of our financial institutions has become so complex that most people have no idea how to asses the risk they are taking by the choices they make.
  3. How capitalism works.  A good understanding of its core, the transaction (buy & sell),  is needed.
    1. There are conditions when a transaction is not conform the capitalistic rules. For instance, the upside of capitalism doesn’t work if one of the parties involved is not free to decline a transaction.
    2. A fundamental limitation of capitalism is that it only deals with the people doing the transaction. It has no opinion on the effects of the transaction on others. If you pay me money to get rid of your garbage and I throw it in the garden of my neighbor. Than that’s a transaction that added value to all parties involved in the transaction.

These components do not inherently make for an unjust world, but it requires us to understand how these components work and how they relate to each other to prevent such a world.

As you can see, there is some work left to do on this game :). It’s okay if it takes a couple of years. For now I’ll just chip away at it and learn how to write some python along the way.

Update: Article January 2016 on the added ambition to make this game a Slack app.