Sections

Tuesday, March 3, 2015

Path Finding

It's been a while!

Today I want to share something I've been working on. As you might know from my previous posts, I've learned programming on my own mostly and I take programming challenges to learn more about different algorithms and such. This time I want to show you my first approach to path finding.
A little heads up: This isn't A* nor any other, or at least I believe it isn't since I made this without learning the current existent ones.

What my algorithm does is that it looks for a tile's neighbor and evaluates which is close to where I want to go. While doing this it discards tiles that are part of the current path and those that are 'closed'. If the code isn't able to find a way to the destination it tries again ignoring the path that was already tried. Also, after the path has been found (if it is) it optimizes it by removing unnecessary steps, rearranges the steps to make smoother lines and curves and at the end removes overlapped steps.

As you can tell by now, this won't give me the shortest route to a destination, but as a first attempt I am very happy with the result.




Now that I've managed to create a path finding script on my own, I plan on comparing it to what the big path finding algorithms look like. Now that I know how it should be approached, learning how the great ones work will be easier to do.


Hope you liked it!

Now I wonder... where next?



[j]

Wednesday, December 3, 2014

Stage Complete

I been waiting for months to make this post! It got delayed because I didn't know very well how to make it happened, but today it did!


After 3 months of producing our little project, spending many hours of works, many nights of no sleep, many arguments and discussions... at the end we managed to reach our goal, have one of the few (if not the first!) Los Angeles Film School Game Production's final project up on the App Store!

https://appsto.re/us/evVA2.i

It's a small game and does have it's issues, but to us it was a project that made us grow with it.

For only have been 3 persons working on it I feel proud of it. We overcame many challenges. Now we have a little title that I believe will become an important stepping stone for us to build our careers in the industry.



I would like to thank all those that helped us make it happen. Without you, it wouldn't have been the same. Thank you.


Well that's it for now, hope you all had a nice Thanks Giving.



[j]

Tuesday, September 9, 2014

A 4th try with the controls...

Creating gameplay has definitely being one of the things I've enjoyed the most!

I'm skipping the 3rd because it worked horribly for us hahaha
It used the accelerometer to move the camera... and let's just say that it was kinda messing.


This time I took inspiration from Super Mario 64 controls and camera. Of course totally mimicking it wouldn't have worked for me so I tried to get close enough to the point that it would work for me.

This version is the one we liked the most. Still could use some edge softening, but well... 3 months is too little time stay too long in gameplay considering I'm the programmer of our project (can't complain though, I'm enjoying it!).




A bit about how it works.

In this version the pad's center is created where ever the player touches the screen. From there the drag will of that touch will become a Vector2 (x,y) which will be used to give the character it's movement. 
This input is also used to control the direction in which the mesh of the character is facing. To do this I needed an object that could orbit around the sphere.



Now, the invisible sphere on front is what the characters mesh looks at, and the sphere over the mesh is what the player actually controls (our dear sphere from the earlier prototypes).
When I needed to add the camera to the equation it got a bit more complicated. The direction in which the character moves depends on the camera and the rotation to where the camera needs to rotate after the player stops moving depends on the character.
The camera also orbits around the player in the same way I described above and will only adjust if a few conditions are met (like letting movement touch go).

Luckily this is much easier to explain here than to actually make it with work all the things that are going on under the hood, but it was a fun challenge. The important thing was to make it behave in a way the player would "feel it more right".



I just great memories of this project, it's was a great learning experience!



[j]

Saturday, July 26, 2014

Board Game

At first, I thought of this blog as a corner in the web, where I would present to you what I have accomplish and learned about game programming. Now I realize that it should be about all I've learned about games, game design, and of course also programming.

From Martin Hagvall, an awesome great teacher I had, I learned the basics of game design. In one of the classes with him we had the opportunity to face the challenge of creating a board game. A one month assignment that taught us a lot!

So this time I want to show you a bit what me and 2 other classmates came up with.


I present you Shift Rifts!


This game is about planning your moves and placing your pieces to gain the advantage and control specific points on the board to win the game. This is a 3-4 player game and is purely strategic.

As you can see in the picture the game has a strange shape. What you see is actually 3 boards matched together. On each board you will see purple tiles which are the points you want to control with your pieces.
I won't go deep into the rules, but basically you take turns and use your actions to move your pieces around the board or spawn units with currency you get every turn.
Every 3 turns circles the game enters a bidding face to gain the privilege of shifting the boards. This allows a player to choose one board and rotate clockwise 1 position. Moving a board will make the piece move with it. As you can imagine this can greatly affect the flow of the game.


The game ends when a player has control of a determined number of Control Points (purple tiles) or a board has reached a full cycle.


This was a great experience! I always remember it fondly and feel grateful that I had the change to have him as teacher while at school.


Thanks again Martin for sharing all that knowledge with us. This was an amassing game design experience that taught me a lot.


[j]


Sunday, July 20, 2014

Better use 1

Hey there,

We had another, more classic, approach to the controls. This time I'll present you this little video (sorry about the quality) with a single pad and 2 buttons. I do realize that using a copy of console controllers looking inputs on a touch device, but well, we are working with it because it was going to be a pc games first then for learning purposes became a mobile game I think... 


Anyway!


With this layout I engaged on a new challenge. I wanted my touch inputs to work in an specific way. 
First, let me say that Unity touch inputs are not that great. So for this part I wanted to create a way to detect touches on my GUI textures and associate that touch with that texture so you would not be able to hold that touch, drag it and end up touching and activating a different button. So if I tap the pad and happen slide my finger all the way to the jump button, the  jump button would not react to that touch. I also added to this system a way to detect if my interface button (not the touch itself) was pressed, held or released.

Uff.. it wasn't as simple as I thought at first, but I got it and am so happy to have been able to create my own system for this!

(The silly music is to cover background noises, nothing is said so you can just mute if you like)







Can stop having fun with this things!
Till next time,




[j]

Thursday, July 10, 2014

2 Pads?!

Today I managed to get 2 Pads working on my iPhone! Totally exited about this!
The hardest part was to understand the way that Unity handles screen touches and be able to control both separately. At first I was getting problems with the ids of touches and the way I was using them, but I did find a way to make this work. 

Had so much fun and it was so exiting to see the result work!




This isn't the final layout of the controls, it was just my first attempt.
Hope you like it as much as I'm enjoying it!


[j]

Saturday, July 5, 2014

[1/3]

And so, a month past.
We did things right and we did things wrong. We spend more time than needed on many things we had to work on. We made mistakes. We found problems.
But we also learned a lot. We organized ourselves. We saw in our mistakes an opportunity to learn and improve. We found solutions to our problems.


It was good month!


Biggest challenges this month are the touch controls for the phone, and innovate and create the levels.


Still exited!




[j]