Sunday, November 29, 2015

Monty Hall Problem Simulator

Have you ever heard abut Monty Hall Problem? Basically, it is kind of a brain teaser that has been named according to the host of the television game show called "Let's Make a Deal".

The starting point for this matter is the situation where there are three closed doors in front of you. Behind one door is a grand prize (money, car, whatever), and behind other two doors there is something less desirable (nothing, goat, etc.). Anyways, you have to pick one door. After selection is done, one door (with less desirable content) is opened for you. Now you have to decide whether you want to stay in your original selection or switch to other door.

There are conflicting opinions which choice is better, but but now you can try it yourselves using this free Android application: Monty Hall Problem Simulator

This was a nice and relaxing weekend project for me, and I already have some improvement ideas in my mind. I probably shoud do an update at some point...

If you are interested to get more details about the problem itself, please check this Wikipedia article.

Edit 11.12.2015: Check also attached video from Youtube:


Friday, November 20, 2015

Construct2 example: Local Leaderboard using array

Friend of mine sent me a question how to create a local leaderboard for Top10 scores/times/results/whatever in Construct 2.

I want to introduce one simple way to implement leaderboard locally (no server required). Solution can be seen in this screenshot:

Brief description of the method used:

  1. Save new score to variable for further use (in this case inputScore)
  2. Check if new score is greater than the lowest value in current array
    => If it is greater, replace lowest value with new score (inputScore)
  3. Sort array contents to descending order using this simple algorithm:
    => Take two consecutive elements from the array, starting from bottom, and compare them
    => If two consecutive elements are not in correct order, swap them

Basically, this is very simple to do if you understand how to access arrays in C2.

You can try HTML5 version to get an idea how this works. Example is using textbox for collecting score values, and it should work on mobile devices too.

Also, if interested about the "source code, there is a Construct2 .capx available for download.

Have fun!


Friday, November 13, 2015

Back to Unity3D

It's about two years since I last time tried to do something with Unity3D. At those days I did not have much gamedev experience. I just took some web based trainings and created couple of demos, but decided to use bit simpler tools for my first game projects.

So far I have created several Flash games with Stencyl, and couple of Android games using Construct 2. Although these games are pretty simple and silly, I feel my level of gamedev knowledge has improved a lot by doing these games from the beginning to the end.

Now I am trying to get familiar with latest Unity3D tool. I decided to start learning with free Unity 2D tutorial from Udemy. Obviously there are plenty of other trainings available, but this seemed like a good intro for using the tool.

My first impression is that there has been lots of improvements in Unity3D since the version 3 I was using last time. Somehow the tool seems to be easier to use now, or my skills have improved a lot in last two years. :)

I have a lot to learn, but I am hoping to get my first Unity3D game ready before end of this year. Let's see how the work progresses. Stay tuned!


Wednesday, November 11, 2015

Fledgling Gamedev's Guidelines

Here are some general guidelines that should help to get your first gamedev projects proceed, and even completed in a reasonable time.

0. Prepare to sacrifice your time and effort
Ok, you have idea for a game. But are you ready to make the effort to implement it? If you want to get your ideas ready, most likely you got to do it yourself. No one else will do it for you.

1. Start with something small and simple. 
If your first game project is large and complex, you probably won't finish it.

2. Select an engine that fits to your game. 
There is no need to shoot birds with cannon. Try different engines and use the one that fits for your purposes.

3. Create lots of prototypes and small games. 
Select the ones that work for further development. Gather experience on suspended and unfinished projects. 

4. Test the mechanics in early phase. 
Find out if game mechanics is working as soon as you have working prototype. Try to define game's "fun factor" and ask what others think.  

5. Build Network. 
Connect with other gamedevs. Find gamedev communities (there are lots of them). 

6. Use your family and friends for testing. 
Aim to get honest feedback. 

7. Team up.
Team up with others to complement your missing skills (in case you have one :) )

8. Share ideas and experiences. 
How did you solve problems? What was the reason for your latest project to fail? People want to hear about your creative work!

9. Don't fear failures. 
Take risks, be unique. You will learn from your mistakes!

10. Finalize your best concepts! 
Don't leave them in a drawer to collect dust. 

11. Prepare for continuous learning.
Actively improve your skills and learn from your doings. Aim to exit from your comfort zone. 

12. Have fun!
Do what you like. Like what you do. Enjoy being creative. If you don't like gamedev, then you probably are not happy when doing it. 

That's it. I have collected these as being Fledgling Game Developer for last couple of years. Personally, I'm not complied with all of these, but I guess following these might help. :)