יום רביעי, 24 ביוני 2015

Coin collection system

Game designers struggle with bringing entertainment alongside their story or intentions of the game.
For example, take "Angry Birds" and strip it from the need to use as few birds as possible, what you get is a game that you shoot birds at pigs blindly. Doesn’t sound much fun, does it?
 "Angry Birds" instead makes you Aim at you're target and thus, when you do it well, you get cool stuff going on and you get STARS for achieving greatness.
Now, in our game, we wanted a way to measure success. But what is success in writing code (or dragging and dropping code)? There is no one way to resolve a problem, although many ways to fail. We could have chosen to measure the player's success by the quantity of code blocks they use and instruct them to try and use less. But that is just not enough.
Our solution is the Coin collection system.
Throughout the levels we scattered coins for the players to pick up, thus enabling two things
-          A way to measure success: the player gets 3 Stars for the level if he picks up all the coins. Plus, we made it so that the shorter the sequence that made you achieve the goal is shorter, the more Points you get. To get 3 stars you got to have a minimum amount of points, but the amount of points made in the level isn’t bound to this minimum.
-          A way to bring a challenge.
Now, go ahead, I challenge you to do better. J
Artwork made by Doron, made with the free photo editing program – Gimp2.

Facebook connection!

As planned, we managed to make a connection to the Facebook social network in order to connect the users (and see some statistics about usage) and enabling them to share their achievements in the game.
The service is available on either Android or (in later releases on IOS an Web).
Making the connection, is a simple technical procedure including downloading a corresponding SDK to the Platform you are working on, (in our case the Unity3D Engine),  then, going to the Facebook SDK website and following the instructions for how to do it.
Most of the process is simple, only thing left to do is to implement the desired functionality into the game (in addition to the mandatory function which initializes the integration with Facebook). In our case, we implemented a Login and a Publish function.
The nontechnical side of the process is actually signing in as a Facebook user in the game, on Android it is as simple as tapping the Login button, which will then open the native App on the device (if installed, otherwise, it pops up a Facebook login form). And that’s it, your logged in.
The game will then remember you have signed in with Facebook enabling you to share your progress with your Facebook buddies.

See you there!

Meet Hairy

Meet Hairy, the game's main character.
Hairy is an animated character made by the team with the help of Doron's father, who is an artist.
When we first thought of the game, we thought it would be enough to animate a 'Stick-Man' figure. But as work was made, Orr came up with the idea that maybe the character should be Fluffy and Cute. As he was thinking, he drew a prototype of what he thought.
After some more sketches, we managed to agree on the current form – Big eyed, Loose legged and loose arms (yes, like Rayman) and HAIRY. Thus- Hairy was made real.
Hairy was animated with the basic free version of "Spriter", an excellent tool for beginners, as well as intermediate animators to use.

See Hairy in our game – Hairy's Logic Quest…

יום חמישי, 7 במאי 2015

Basic architecture

So , the first thing we wanted to achieve in the development process is a bear bone working game , no pretty UI elements or design , just feasibility. for that Doron and Orr set on to an almost two weeks ofcoding ,re-coding and re-factoring , architecture conceiving, article reading and fast food consuming nightmare.
The two most difficult issues they encountered were, how to design the Action and Operand Blocks and how to create and run the action sequence.
Unity3d added one more dimension to the first problem – using unity prevents the use of the "new" attribute to most of the Mono behavior successors, manning we had to re think and find new ways to implement creational  design patterns (Orr cried). At the end of the process we came out with the following design:



Running the Sequence –
 The problem:
Since Unity3D runs by refreshing frames, every frame the system starts to read its current "Update" function for all of the instantiated objects.
This made it difficult to plan an algorithm for which a sequence of operations is read and iteratively played for the user to see its result.
The following is an example for the sequence panel filled with some action blocks, thus an operation plan:

Since the Update function played by Unity happens in 1 frame for each iteration, if the whole code represented by the sequence would run in one frame, the code will never end, the frame would never finish the update and the program will crash.



The solution:
Our sequence operator script uses 1 frame to initiate the sequence built by the user, into the memory – it calls all its inner actions initiate functions, in their turn they load to the memory references of their inner children and calls their initiate functions. And so on.
Next, the sequence starts iterating, one action per update -
Each complex action, when called, runs their current frames child and returns – (True if it finished and False otherwise).
Each simple action, when called, runs its simple action, it takes place on the physics world, thus, it only makes a call to the relevant physics operator and returns that it finished.
Finally, the sequence operator holds a reference of the sequence action depth and the matching current child in depth. When the sequence starts running, all parameters are initialized to zero, and the operation runs each layer of actions, one by one, one frame per action.
This said, one more thing was desired to achieve, we wanted to be able to follow the sequence, as it runs, and see what action made which result. The solution for that is a timed delay between each sequence element, making it possible to differentiate between each action happening on screen and even make it visible to the user. 


















יום רביעי, 6 במאי 2015

Basic UI System!

This is our new UI menu system layout which has been built trough knowledge acquired from online UI tutorials. This is a working framework which support most functionality features required for our application.  


יום שישי, 3 באפריל 2015

So what is this blog about ?

Hi, we are Doron Nacash ,Avi Maimon, Nave Aharon and Orr Frohlich. we're all computer & software students. the purpose of this blog is to be a documentation of our try to create a computer game.  ooo and of course get some a extra points from our mentor Tamir Dresher. :)

So , what the project is ?
well - our goal is to create an mind developing game for children that will focus on procedural thinking. the game will give the player tools in order to complete a change. the player will have to decide how and in what order to use those tools.

we a planning to use Unity engine and  C#  for the graphical and logical parts of the game.

So ... we all hope this will work  :)