All posts by JP

Steel’s Run

Get the App

A game I created during a 30 day challenge of learning Android development. It’s a fast paced game where you need to jump obstacles and shoot enemies.

Steel is a big helmet with attached arms and legs. He is trying to rid the world from robots who have recently started showing up, and the only way he can do that is by using the same technology which created those robots (his helm). With the helm, he gains some powers, like blasting insects away with a sunblast.

Get the free desktop version HERE
Get the free Android version HERE

Master’s Project: More on process mining.

More on Discovery Plug-ins for ProM.

Last week I talked about the discovery plug-ins for the tool ProM, which only take the event log as the input. I showed how to mine the control-flow perspective of a process only by mining the event log, using as example the alpha-algorithm. By doing this, you answer the question “How are the cases actually being executed?”.

These plug-ins are basically process mining algorithms. You give them the event-log as input, and then you ‘mine’ the event log for something. Which means you run the algorithm and it goes through the event log and returns something (for example: petri nets or control-flow perspective), depending on what kind of algorithm it is.

Now there’s other things you can mine with discovery plug-ins. You can mine case-related information about a process. By doing this, you answer the questions “What are the most frequent paths in the process?”, “Are there any loops?”, “Can I simplify the log by abstracting the most frequent paths?”.

You can mine organisational related information about a process. This answers questions like “How many people are involved in a specific case?”, “What is the communication structure and dependencies among people?”, etc.  You mine this with the social-network miner plug-in.

If you just want to know how many people are involved at all the cases in the log, you can simply use the log summary:

I’m still using the same example as the last post, which is the event log of the (one) process of a telephone repair company. You can see the different resources above. We have testers, solvers, and the system. So to answer the question, there’s 12 people involved in all the cases together. You can also use the inspector to inspect specific cases (process instances) at a time and check who was involved.

For the rest of the questions, you can use the social network plug-in. For example, let’s check if there are employees who outperform others. We can find out who is better at fixing defects. We first filter the event log to only show us the relevant tasks on solvers. Then we run the plug-in to mine for a handover-of-work social network. We get this:

The graph shows which employees handed over work to other employees in the cases(process instances). SolverS3 and solverC3 have the best performance. Because the telephones that they fix, always pass the tests, and therefore, are not resent to the repair department, and therefore are not resent to other solvers. That’s why you don’t see arrows going out of these two employees, only arrows coming to them, which means they get work handed over from other solvers. As far as the oval shapes go, taken from the tutorial:

The oval shape of the nodes in the graph visually expresses the relation between the in and out degree of the connections (arrows) between these nodes. A higher proportion of in-going arcs lead to more vertical oval shapes while higher proportions of outgoing arcs produce more horizontal oval shapes. From this remark, can you tell
which employee has more problems to fi x the defects?

To answer the question from the tutorial, It seems that solverS2 and solverS1 have the most difficulty to fix the defects. Because they have the highest outgoing/ingoing degree of connection (both 5/1).

You can also use discovery plug-ins to use temporal logic to verify if the cases in a log  satisfy certain properties. An example to this from the tutorial:

We know that after a try to fix the defect, the telephone should be tested to check if it is indeed repaired.

Thus, we could use the “LTL Checker” plug-in to verify the property: Does the task “Test Repair” always happen after the tasks “Repair (Simple)” and before the task “Archive Repair”?

And so ends the tutorial, which gave us a brief overview on how some discovery plug-ins can be used for mining knowledge related to processes.

Some Literature

Apart from reading the Process Mining Manifesto, which gives you a general introduction to process mining. I’ve also read “Process Mining for the multi-faceted analysis of business processes—A case study in a financial services organization“. As the title says its a case study, so I got to read on the impact of process mining on real organizations.

Aside from the case specific content, the journal/article also talks about broad subjects such as the link between process mining and business intelligence. Process mining can be seen as the link between Business Intelligence and Business Process Management (BPM). Process mining occurs during the diagnosis phase of BPM. Normally, Business Process Analysis (BPA) and Business Activity Monitoring (BAM) are the techniques used on getting statistics on the business process, but process mining provides deeper insight, by going into the exact paths of execution. Process mining discovers, monitors and enhances processes by extracting knowledge from event logs.

Master’s Project: Diving into Process Mining

From now on I will use this blog to also talk about my Master’s project. It’s a project which is necessary to complete my Master in Information Management, worth 15 ECTS out of the 60 for the whole Master. The Master’s thesis is then composed/written out of that project. I’ll try to update this blog as much as I can.

Process Mining

My project is about process mining. What exactly is process mining? Well, according to the process mining manifesto, it is:

 a relatively young research discipline that sits between computational intelligence and data mining on the one hand, and process modeling and analysis on the other hand.

And the Idea of it is:

The idea of process mining is to discover, monitor and improve real processes (i.e., not assumed processes) by extracting knowledge from event logs readily available in today’s (information) systems.

So it’s about algorithms which are able to extract knowledge from event logs. More simple: process mining are techniques used in order to discover new processes, monitor existing processes and even improve processes.

We’re more accustomed to the idea of data mining, which is extracting knowledge from data warehouses. The focus was always on data until around the 90’s, when things like process re-engineering started emerging, processes started becoming important as well. Process mining is filling the gap between Business Intelligence and Business Process Management.

The tool

Today I was playing around with the tool used for process mining, called ProM. ProM gives you a framework where you can use process mining tools. I also followed an introductory tutorial for using the tool.

ProM enables you to use an event log in order to do various actions using plug-ins. These plug-ins can be categorized into three:

  • Discovery: These plug-ins only take the event log as an input. They answer questions like: How are the cases actually being executed? and are the rules being obeyed?
  • Conformance: These plug-ins check how much the data in the event log matches the prescribed behavior from deployed process models. They help you monitor processes.
  • Extension: Discover information that will enhance the model, they take a model and the event log as input.

A cool example of the plug-ins that I used today is the alpha-algorithm. It mines a petri net out of the event log.  I used the event log which is given in the tutorial, it’s about a process to repair telephones in a company.

In the image above you see the key data on the event log. 1 process, 1000 instances of that process, accumulating 10476 events, a mean of 10 events per instance.

In the image above you see the action tab of ProM, Inputted is the event log I used, then in Actions I searched for the alpha-algorithm, which was installed in a more general plug-in.

Above you see the result of the alpha algorithm. So it actually makes a process model out of the event log, very cool. More detailed: the alpha-algorithm mines the control flow perspective of a process. From the tutorial:

The control- flow perspective of a process establishes the dependencies among its tasks. Which tasks precede which other ones? Are there concurrent tasks? Are there loops? In short, what is the process model that summarizes the flow followed by most/all cases in the log? This information is important because it gives you feedback about how cases are actually being executed in the organization.

So with this model you can check whether in your company, the process is actually being done how you thought it was, or does the model show that things are done differently? So this plug-in falls under the first category, i.e. “Discovery”. It answers the question: How are the cases actually being executed?

Day 30 – Learning Android Development

The Game

The app has been published! you can find it HERE or you can just search “Steel’s Run” in the Playstore (Developer: Sierens Apps).  Would be nice to receive some feedback!
The free desktop version can be found HERE (left arrow to jump, right one to shoot).

Today

Before publishing the app, I designed the icon. Here’s how it looks:

 

 

 

 

 

 

 

 

 

 

 

 

 

I think it looks good enough, especially the background. The character could get better graphics but that would’ve taken hours and hours so i just enlarged the existing sprites. I could have also added the typical glow in the center of the icon but opted out from doing it.

Then I went on to create a feature graphic, which is just a rearrangement of the title. You can see it on the playstore.

After that I published my first real app! The challenge is done!

The Journey

It feels good to have achieved my goal. Looking back at my first post, I set out to develop and publish an app in 30 days, all the month of September. No more, no less, and I stuck to it. It doesn’t matter if my app doesn’t even get 50 downloads. What really matters to me is that I set an intrinsic goal and I achieved it. I started something and finished it. I created something instead of consuming. I feel really satisfied with all this.

Then there’s also everything I learned along the way. I developed a good base for programming in java, having had no experience with it before. I got introduced to XML and learned how to deal with it, and how it is a very powerful language for representing content. I got some experience with Eclipse, together with the Android SDK and the ADT. The combination of Eclipse and the ADT provide an amazing development environment experience. I can’t live without them anymore. Not to mention the awesome libgdx library for making games, which lets me easily create a desktop and android version of the game.

I will focus on getting my master’s degree now but that doesn’t mean I wont start new projects in the near future. I look forward to expanding Steel’s Run, adding new levels, new features,etc. Creating something has always felt amazing and I wont stop doing it.

Day 29 – Learning Android Development

The game is done. Get the desktop version HERE. The only keys to press are the left arrow key(touch left in android) and the right arrow key(touch right in android). I have done everything I wanted with it before I release it tomorrow. I still need to do the app icon design but I’ll do that tomorrow.

I did the title and credits, it’s the best I could do in 1 hour. OpenDyslexic is very pretty!

I also worked on transitioning from title to game. The first time you open the game, you get the title. If you die or win, you go back to the title, but only in the android version. I don’t know why in the desktop version the title gets skipped when you die or win and it jumps back right to the start of the game. It works fine when you open the game for the first time though. I’m happy all works well in Android.

I also added sound. Whenever there’s a collision there’s sound. I used Bfxr for it.

I’m happy with how the game is so far. It is very challenging, and yes, it can be finished. I have tested all sections of it and have been able to do them. I look forward to adding more levels when I have more time.

To remind you, the desktop version is free and the one I linked here at the beginning of the post will be the last one fro quite a while. The Android version will be paid, I’m thinking somewhere around 0.70 to 0.85 cents and will be available, hopefully, tomorrow or Monday.

Day 28 – Learning Android Development

Today I had a productive afternoon. I set up a screen capture software that captures my screen. I set it up to take a picture every 10 seconds. Later I made a video out of it so you can see my productive 3.5 hours in just 1 minute!

As you can see on the video, I was able to make the whole boss encounter under that time  plus a few screens for when you lose or win. A commenter on the last post mentioned I could use OpenDyslexic as a font instead of my crappy one so i did! It’s a free to use font made -but not only- for  dyslexic people. The maker is Abelardo Gonzalez. He says:

you can sell anything that uses this font. But I’m not going to give permission for you to sell this font, by itself, alone. But you can sell a book with this font,programs with this font, etc. And if you do use this font commercially, let me know, and I’ll promote it here, and to others that can use it.:)

So there’s no problem with me using the font 🙂 I’ll contact him to let him know my game uses his font. Here’s the numbers in OpenDyslexic, they are the ones I use for the position of Steel:

I also used the same font for making the win and lose screen you see on the video. Here’s the lose screen:

I really like it! I’m looking into the sound right now. It wont be anything serious just simple jump/collision sounds. I also need a title screen.

Day 26 & 27 – Learning Android Development

HERE’S the latest version of the game

I haven’t done much over these two days. As I said on my last post, I just started my master so I’m busy with that, but from tomorrow until Sunday I’ll be free to work on and finish Steel’s Run. The last push!

Nevertheless, I’ve been able to implement some things to the game on the little free time I got these 2 days. For one, I finished the level design. So the obstacles are all set. The level is now 400 units long. It’s hard, it’s very hard, for those who like a challenge this will be a good game to play on your android while you’re waiting on the bus, or at the wait room of your dentist’s office, etc..

I also added a progress status on the top right corner, this gives you an idea of how far in you are in the level, and what’s left to go. Mind the crappy font design, at least it’s mine :p.

What I still want to add before first release: sound! some basic event sounds like when Steel runs against a chopped tree. A boss to complete the level, which will come after you do 100% of the obstacle course, and more things.

Day 24 & 25 – Learning Android Development

I’m busy organizing everything for the new academic year and attending lectures so I haven’t had much time to develop.

I’m not sure if I will work on Steel’s run tomorrow but starting Thursday evening, I will do the final push to develop the game to a desired level and get it ready for release. I have Friday off. The release will be on Sunday, which is the 30th day of the month and when my 30 day-challenge of Android learning comes to an end.

Day 23 – Learning Android Development

HERE is the latest version as of today of Steel’s Run. Remember, left arrow to jump and right arrow to shoot. I changed the level’s layout of obstacles (robot insects and chopped trees), making it less monotone and less harder than yesterday. The level is not yet complete, I’d say its around 33% complete, so if you manage to get where there’s no obstacles you have won, but remember that you only did 33% of what’s to come :). also the game still has no ending so stop when there’s no obstacles anymore.

Here’s the layout of the level so far. green dots are grass, red dots are insect robots and brown dots are chopped trees.

I changed the insect’s speed back to the same as the grass’. It makes it easier to design the level. They still patrol up and down. I also changed the trees’ color to a more pale tone, that way you no longer get distracted by them

What I would like to add is a percentage on the top right corner which indicates how far you got. Say you died half way, it will said 50% complete. That way you can brag to your friends!

What do you think of my game? or my progress overall? Please leave me a comment! I would like nothing more than to hear your constructive criticism or feedback.

Off-topic

For some reason, I got a lot of traffic to my blog today. After some investigation I saw that around 20 people (of which I presume most are tweet-bots) tweeted my blog post of yesterday. No idea why, maybe they just snatched it randomly out of Hacker News as some of them had a variant of HN in their twitter names. Still, lots of traffic compared to the other days! see for yourself.