Thursday, December 10, 2015

I'm still alive

Hey, it has been a long time since my last update. I have been working a lot in a project I can't share at this time, it is related with 3D stuff but it is not a game. I think I can write a lot of programming topics about that once I have a little time, maybe about multi-threading, network sockets, Android, or maybe about Unity shaders. In fact, I just understood I don't know anything about shaders and I need to learn lot, so I could share some things while I'm learning.

I won't have any updates for like another month because I'm traveling to Japan :D, they say traveling broadens one's mind so I hope to come back full of energy and new perspectives to continue working on my projects.

This is just a small update so you don't think I'm dead or something. Aaand... maybe it's too soon but, merry Christmas and happy new year!

Monday, October 12, 2015

Game progress: Ninja climbing and jumping

I shared this in Twitter but I forgot to put it here as well :)

I improved a little the animations since I uploaded this, and I also had some good progress in programming the missing parts.


I will share later more progress, now I need to tweak some actions to help the player don't lose much speed when moving from a corridor to the next one. I have some ideas but better to go back to work and test them!

Monday, October 5, 2015

Ninja Game progress and Twitter account

I have been working on this -still unnamed- small game, let's call it Ninja Game for now.
I created this simple minimalist red ninja in 3D, its animations, and worked on the wall-jump programming. Everything going good so far.


Now I need to program some of the most difficult (and bug prone) parts of this game. Based on the section of the level you are, the gravity will change and controllers will change with it. Let's say the gravity is going from right to left (instead of going down), the controllers must now change so the player needs to use up and down directions for wall jumping (instead of left and right). If it was not clear don't worry, I will upload a video as soon as I get it working :).

Going to other breaking news, now I have Twitter account @ForestGameDev!
I know what you are thinking, but let me clarify that I had a personal Twitter account I never used (I just didn't find it interesting). But now that I'm being a little more "social" about my games and projects, this account has a little more purpose and it's interesting to follow some other indie game developers and projects as well.

Also I'm working on some changes for this site, but there's no point in talk about that, better continue working on them and eventually you will see ;).

I will share soon a little more of Ninja Game!

Friday, September 25, 2015

New (mini) game in process

First, I'm not abandoning Ascendam, I've been programming a little of its main mechanics and I thought I will need a lot of feedback to make them feel as good as I want, so I decided to make a small game based entirely in Ascendam's wall-jump mechanic.

Besides I think it is kind of simple game I have had a though time explaining it to a couple friends, that sounds kind of a warning signal so I'll make sure my prototype is very clear about what the game is about. All what I'm going to say for now is that it will be local multiplayer game based on wall-jump mechanics.

I'm really exited about start prototyping it, I already have some code from Ascendam and I decided to use very simplistic art style... I haven't had very much time for game dev lately, however will do my best.

I drew this characters in Pixly... then I noticed I could make them directly with Unity basic objects haha, so probably I will use this only as a guide to make the 3D ones:

Pixly did something weird with the original colors (eyes should be black, and the sword doesn't change), but it's fine, it looks kind of cool anyway haha.

Wednesday, September 9, 2015

Song: Ascendam Theme

Around one week ago (or two?) I was working on some sprites for Ascendam when I realized I still needed to define a little more the "look and feel" I want this game to have, so I decided to give another try to compose a song that would reflect the dynamic gameplay I want to create.

I did a little search and found this awesome music app for Android called Caustic 3 (I think it also exists for iOS). It is not free but it really worth its price (actually I didn't find any good free music app). Anyway, maybe I could write about the app later, today I want to share this song that I composed for Ascendam's title screen. It took a little more time than normal because I was still learning the app, and I had little idea of what kind of song I wanted to compose, but after some tries it started to emerge by itself.

I was thinking in a style similar to the music in Mega Man X3. However as I have said, I'm not a born musician so I'm still pretty far to compose something that awesome. Anyway I believe it's good enough and now I can imagine a little more how dynamic the gameplay should be, as well as the movements I want Anz (the main character) to perform.

I uploaded two versions, one is just the song, the other is the looped version. I uploaded both because the loop is not expected to start at the beginning of the song, so I pasted the song 3 times as I want to make the loop to sound in game. I'm sharing here the looped version, the original one can be found in my soundcloud profile.

I hope you like it!


Friday, August 21, 2015

Doing some sprites with Pixly

Lately I have been very busy and it has been a little difficult to spend time in Ascendam, however I have a few new Anz sprites and have been tuning (in my mind) the game mechanics.

The first sprites I created for Ascendam (the ones in my previous post) I drew them using an Android app called IsoPix. It is a nice not too basic pixel art app and I thought it was quite good actually. I was planning to purchase the Pro version but the problem was that it doesn't support animations. Is that big deal? well, yes. If you want to make the different facing directions of a character, they will probably look weird if you don't test how the transition between the main frames looks (I will try to write a post about that in the future).

So when I was really close to purchase IsoPix Pro y found this great free app called Pixly, and believe me, nobody told me to write this, but Pixly is far FAR superior than any other apps I found in the Play Store, I don't know why it is not the first app that shows up when you search for "pixel art".


What is so good about Pixly? well, if I would need to say it in once sentence it would be: it satisfies a game developer's needs. I'm not planning to make a full review because I actually haven't used all its features yet, but you can take a look to its website, there are short and concrete examples of its features.

The things I like most of this app are:
  1. It supports layers, so you can draw the movable parts of your sprite in individual layers, and later animate them easily.
  2. It supports frames, so you can make animations and export them as animated GIFs (or as a PNG sprite sheet).
    • This is really useful because instead of make a huge sprite sheet that contain all your frames, you create a single frame, let's say 128×128 px, and you can navigate between frames using the timeline menu, and reorder, copy, delete them if you need.
    • It still can improve in this side, being able to select the frames and save multiple animations would be really useful for complex characters. Also the animated GIF I exported didn't display the colors correctly, but maybe I did something wrong (I have only tried a couple times). Anyway you should check if the latest version coincide with what I said.
  3. It supports configurable grids.
  4. It supports to load and save color palettes.
  5. It supports two techniques for rotation which is very useful.
  6. It can export your work to a sprite sheet, and it will only export the layers you have selected as visible, so if I want a sprite sheet with only the heads of Anz, I can export it easily.
  7. Zoom in/out is smooth and not limited (other apps support some specific zoom levels only)
  8. It has a lot of undo/redo steps (I'm not sure how many, but they have been enough so far)
  9. It has mini view window, i.e. when you are working with zoom in a specific part of you sprite you can see in real time how it looks in another zoom level.
  10. It has have mirror transformations, magic wand, color replacement, and so on...
Oh, and almost forgot, one thing Pixly does NOT have:
  1. Annoying ads ;) ... it only shows an ad when you save.
I don't want to insist too much in how good this app is, but I feel really happy with it because I can have some progress in my game while going on the bus, or waiting for any reason, and for free! If you are looking to make sprites for a game I highly recommend this app.

Here is a side view of Anz I drew in Pixly. You can see the layers at the right side, that menu can be hidden so you have most of the screen available to draw.


About the sprite, maybe I will change a little its legs but I'm still not sure, I prefer to make some other positions required to start programming and experimenting the gameplay.)

I will be working on sprites for a while, I hope to have time to update my progress here.

See you!

Friday, August 7, 2015

Ascendam - Characters concept art

Last entry I was talking about making games that fit your personal style, so after a little more than a week rethinking my "mysterious" game, I finally got to the point I think I really like it :), I decided to call this game "Ascendam".

I have been working mainly in the conceptual art for the characters (back to the pixel art :D), the game story, and a little of game mechanics.

This is Anz, the main character:

I want this character to be an avatar for the player, I mean, I want Anz to be a representation of the player in the game in a personal level. Because of that I don't want to create a deep detailed description of Anz's personality. Later if I have time I will make a female version, but for now the male character should be enough.

Anz will use a spear as its main weapon, later in the game you will get bombs as well. Those are his weapons so far, but I'm not sure if I will add any other in the future.

Well maybe it would be good to explain briefly the gameplay now so the enemies make sense to you.
The main idea is to "fall" through tunnels in a labyrinth, Anz will be hanging of a kind of rope so you will be able to control how much you want to go up or down, you will be able to grasp the walls and climb faster than climbing by using the rope only. Also you will be able to move down faster by running down on the wall (ninja style!).

I'm planning to have 4 enemy types. Probably I'm going to add different difficulty levels for each of them, but that's not yet clearly defined.

First the basic enemies, you will find this little guys climbing on the walls of the labyrinths, they are harmless if you keep away from the wall. I call them Walldos.

The Guardians, you will find this guys flying through the tunnels. At the beginning they won't attack you if you grasp a wall, but in future levels they will use their flexible arms as whips.


Cloud Crowds, you will fear this creepy enemies. They will be flying through the tunnels as well, but you won't be able to attack them. They will be moving in a rhythmic way opening their eyes from time to time. You won't want them to see you.


Smiley Gear, this will be a fundamental enemy in the game mechanics, those will be static enemies that you will need to destroy in order to progress through the maze.

I hope they intrigue you a little :). I will be working on the scenarios (I need to experiment some ideas to have scenarios that I can realistically create) and programming the basic mechanics, so I can know how fun they actually are.

See you later!

Tuesday, July 28, 2015

Style checklist

After a very busy month I took a few weeks for relaxing, now I think it's time to return to game development!

I had a kind of weird (new) experience about game design in the previous weeks. I have been thinking in the "mysterious" game I'm planning to do (I swear I will decide soon a provisional name!), but while I started to think about the game and the universe where it unfolds I often ended up thinking on an old game I used to make; an adventure game, with heroes, magic, fights against monsters, and so on, a kind of classic game that really inspires me.

The plan for the game I'm working on right now is different, I was thinking on making a deep psychological game, with a kind of weak and vulnerable main character. If you read my previous post I had the main music theme for the game, and I was looking to make a sad and unpleasing song with just a little light of hope. The problem is that I was having a hard time to imagine the universe for this game because I just couldn't concentrate very much on it.

This days off helped me to realize the reason why I couldn't concentrate in my new game and why I often ended up dreaming about my previous game. It seems obvious for me now: depressing games are just not my style!
Don't get me wrong, I'm not saying I never will make a deep psychological game, and that I will always going to make games about magical heroes and adventures, I just need to find my way to make the games, if they are deep and psychological, or simple and funny, it doesn't matter, there should be a way to make them on my way.

It's cool, because some artists use to look for a style - their style, and I feel I'm starting to develop a better perception of what my style is. I have decided that, even if I'm looking to create some simple games to grind some game-dev exp. points, I won't start any games that don't match with my style, at the end of the day, that is the greatest thing of being an indie game developer!

I developed this small checklist to analyze before starting any projects, I put it here for my own reference, but maybe it could help you too if you are a gave developer. From now on, I will ask myself the following things about the game to make:
  1. Do you like how the game would look in your personal portfolio? Would you feel proud of showing it to other people?
  2. Does the game inspires you? Do you find yourself imagining some cool scenes about your game?
  3. Is the game compatible with you? The idea could be cool, but maybe what you want for you as a game developer is not really going in that way.
  4. Are you eager to play your game? (If you are not, then who?)
  5. Would you find interesting the experience your game provides? (think that interesting could be the feeling you want to transmit, for example fun, suspense, etc)
Probably there are a lot of other points you could check, but for now I'm going to focus in these 5 points. Even when those 5 points seem to be very basic things, somehow I was just missing MOST OF THEM!

Let's see what I can think and create for this new game, hopefully my next post would show some results!

Friday, May 29, 2015

Title song - version 2.0

I continued working on my song "Opening Mystery" which I think I'm gonna rename because it is not a mysterious song, and it's not for an Opening either :P. The song now has 3 parts (forgive my lack of musical vocabulary).

The first part is an introduction with an arpeggio, a background chorus, and a bass, which is used in most of the song. The second part has a kind of darker/sadder style which I wanted to add because the game I'm planning to make with it is supposed to transmit a kind of uncomfortable feeling (but let's talk about that later). The third part has a different feeling, it is supposed to transmit a little more inspiring feeling, like raising from a moment of sadness. The final is a little abrupt because the song is supposed to work as a loop, however I think it is enough "final" to close the song when played once.

Based on the previous version, some of the changes I made are:
  1. I modified most of the melody
  2. Extended the song by adding the "second part" mentioned above
  3. Added a chorus
  4. Reinforced the arpeggio instrument
  5. Added a "second voice" for the melody.
  6. Modified some of the base instruments.
I think I'm gonna use this song as the main theme for the game I'm planning now, it is already helping me to define the look and feel that could work with it and with the game story. I want to reuse this song a lot in the game, I have noticed that some games do this very often, for example you can check Super Smash Bros. Brawl, it is obvious that they took the song from the opening scene and reused it in different ways, in the menus, in the one-player mode, and for some battle scenarios, actually they reuse it that much that I started to dislike it. However the good part of doing this is that you can make sure that all you music harmonizes with the game's general feeling.

I'm going to stop doing music for now, I need to start programming the game mechanics because I need to experiment with them, currently I don't know other games with similar mechanic so I need to figure out how to make it interesting, fun, playable, and engaging. But well, I think I won't have any free time the following month so I'm not sure how much progress I will be able to make.

For now, here is the song:

Thursday, May 21, 2015

First composed song - Opening Mystery 1

Lately I started to think about create my own video game's music. I already do a little of everything when talking about video games, but music was not something I had done before. I know I don't have the natural talent for composing music, however I decided to give it a try due that I have some general idea about music and I think some acceptable songs can be created by following some tips and tricks anyone can find in YouTube.

So here is it, the song is called Opening Mystery 1, it is thought for a small game I have in mind now. It is version 1 because I haven't completed the PxTone guide I'm following :P. I was about to start the complex part (chapter 3) so I thought I would understand it better by doing a first song and then polish it by using all those "pro tips".


The song is thought to be the music for the title screen of a video game I'm planning to do with a kind of mysterious and mystical atmosphere. Let's see if I can actually make it better once I complete the PxTone guide :)
I hope you like it!

Thursday, May 14, 2015

Random Maze Generation Methodology

Some weeks with no chance to post anything around here, however they were really productive weeks for me in game development. I have been working in a couple projects that are not games, but are tools for game creation.

Inspired from BARKH, Lal0l and I worked in this "methodology" for maze generation that is supposed to work for a very specific kind of games. The idea is not just to create random mazes, but to create playable mazes with different difficulty levels.

How to make sure a maze is playable? Well, we need to define some basic game rules. The kind of games this methodology is intended for, have the following characteristics:

  1. The objective for each level is to move your avatar from point A to point B in the maze. This implies that the maze’s entrance and exit are not necessarily at the border of the maze but rather at any point inside of it.
  2. The player has a limited set of resources that are consumed as the maze gets discovered. Examples of resources can be: fuel, time, characters, health points.
  3. Along the maze the player can find beneficial zones or items and use them to recover or save resources. We called these 1ups.
  4. We called 1downs harmful areas or enemies which can reduce the player’s resources.
  5. The maze is generated automatically each time the game is played. Optionally, the player can have a limited number of chances to complete a given maze, this depends on game design decisions.

We called this kind of games Cost Based Maze games (CBM games).

Our methodology has 2 main parts, the first part generates the maze's topology, i.e. the corridors and walls. The second part, spreads 1ups and 1downs randomly over the maze, then it uses the difficulty level to find the correct positions for them. The amount of 1ups and 1downs depends on the difficulty level as well.


After implement this in Unity I realized it has good potential. I'm thinking some game ideas to use this, however I haven't decided yet, maybe I will post later about that.

For now here is a detailed (formal) document about this methodology. It is focused on the algorithms, not in Unity. I hope you find it interesting!

Sunday, March 22, 2015

Defender Blender v0.3: Feedback Analysis

Well, I got some feedback for Defender Blender from Reddit and Unity forum. I must admit I thought more people was going to provide some feedback, however even with some few opinions it was a really enriching experience!

First of all, some really nice guy recorded himself playing the game! It is just great, even when his voice is sometimes almost impossible to hear, it was a really good test because I could see exactly how he played and the video recording eliminates the pressure of having the developer watching you playing his game (i.e. people tries to be nice when you -the developer- are present in order to avoid offend you).

Here is the video:

I notice a lot of things about this test. In summary:
  1. Difficulty in controlling the character (this actually encompasses a lot of changes).
  2. Pressing space for regenerating is not good, people ends jumping involuntarily and is hit by enemies, this causes frustration.
  3. Level design feel unfair, sometimes the enemies seem to be unreachable, even when originally I thought people was going to understand that they were doing something wrong, they don't, I need to tune the level design in order to avoid that feeling of unfairness (which is one of the worst impressions you want to make to your players).
  4. I need to make it more clear in multiple points.

On the other hand I had a couple comments in Unity forum, they were quite different:

TonyLi gave me an overall positive feedback, he was satisfied with the game and understood very well why I'm using Mega Man resources - in order to go and test the game mechanics right away. However he didn't completed the game, so I think that indirectly tells that something in the difficulty and fun was not right for him.

On the other hand Asvarduil gave me a very detailed and specific feedback, in short words he summarizes: "You've got a good concept for a refreshing take on the platformer, but you've got a lot of opportunities for improvement in both presentation and tuning."
Some interesting things about his feedback:

The good:
  1. The overall game mechanic idea was somewhat refreshing for him. I'm glad he thinks so because honestly I'm using a new mechanic in here that I haven't see in other game so far.
  2. He thought I was using some ideas for game design from ExtraCreditz, but I actually designed the level by myself, which I think is good because somewhat shows that I understand the idea behind the design, I'm not just doing whatever someone else told me to do :).
The bad (not bad :P, just opportunities for improvement):
  1. This blog somehow captures the space bar button and makes difficult for people to start playing, this is a horrible mistake, I will put a workaround in the game's page until I have a definite solution.
  2. The audio balance was not good for him. He recommends offer to the user audio adjustable options, however I think that those kind of options only works for experienced gamers or developers, I will try instead to find a good balance, maybe the music is just too loud.
  3. He didn't like the text in the air, i.e. the texts must be part of the game universe. I agree, however I would integrate them to the game once I have my own graphics.
  4. He said my grammar made my game look really inexpert. Well, as you might have noticed I'm not native English speaker, however is good to know how bad impression I can make due to that :(
  5. Again, I need to tune up the character's controller, also he recommended some useful tips about the tiles and the height the character can jump (use the tiles as measurement unit, the players seem to understand that easily and identify how high they can jump).
  6. He also found the game kind of unfair, this is again related with the level design.
  7. Finally there were 3 points for which I think it would be more complicated to explain them than just copy/paste his opinion and my answer:

"In previous versions some people told me that the attack was kind of small ranged, also I found necessary to expand the attack area in order to make the gameplay work because sometimes you need to attack enemies that are above you. I think I will address that fixing the animation, however I still need to analyze it, probably the fixes I'm planning to do in the jumping will help."


"I have seen a few persons playing this game and when they run out of energy they seem to be pretty clear about being speeding up the regeneration process by pressing those keys. I think that maybe the problem is that it's not quite clear how much regeneration comes from the automatic increment and how much from the player input, I will look into that."


"Well, I actually like that you need to hit the bubbles because it forces the player to take decisions: should I jeopardize the cannon's health in order to get some pow? should I let those enemies to continue walking or attack them and loose that health bubble? should I hit those enemies even when I will push the bubble in the opposite side? In other words, I think it is a fun factor I want to keep, anyway you're not the first person that expected the bubbles to be picked up automatically by the cannon. I will think about how to make clear that you actually need to hit them."


Well, all this feedback gives me a lot to think of, I will work on that soon, however I'm also planning to work in some other projects I have. Let's see how following weeks go.

Thanks for reading!

Sunday, March 15, 2015

Looking for feedback: How-to-play for Defender Blender

Defender Blender v0.3 is finally here :), I made this looking for feedback about the How-to-Play level. I also tweaked some stuff and fixed a few bugs.

Please take a look, I really appreciate your feedback!.

Edit:
Lesson learned: Seems like Friday is the "official" date for look for feedback in Unity forums and Reddit, so I posted here:
Unity feedback Friday post
Reddit feedback Friday thread

I really got inspired when writing the Reddit one and wrote this, a little dramatic but I hope it will grab some attention:
Defend the secret Laser Cannon while it traverses the land to protect you people from an imminent attack!! Your willpower and hope to survive this challenge have converted you in a immortal killing machine, were you be able to use all your power to defend your people?! Don't be afraid, you are not alone! With your help, the Laser Cannon can gather power and destroy all the enemies in screen with a single powerful laser beam!!

Will it work? We will see :P

Sunday, March 8, 2015

Game progress: Defender Blender - How to Play level

This week I had a little time to design my How to Play level.

The idea behind make a How to Play level is to make the player to understand the basics of the game, in this case these are the basics I wanted to cover:

1. Attack and jump. A very Mario starting I would say.

2. Get down of thin platforms. Additionally I put another enemy in order to remind the player how to attack the enemies.

3. Recover energy. This is a weird one, you basically make a suicidal jump. The idea is to teach the player that you actually don't die when your run out of health.

4. Items and health behavior. After attacking a bunch of enemies, hopefully the player will notice that the health points are also lost when attacking. Here I put an item to recover health and provide a little more explanation.

5. Jump attack. In this one I decided to not put any explanatory text, I believe it would be kind of obvious for the player that the jump attack exists.

Hopefully next week I will have a playable version and share it in Reddit looking for feedback.

Thank you for reading, see you next week!

Sunday, March 1, 2015

Game progress: Defender Blender - Making walls

I started to write this telling how busy my week was and the problems I was having to make the walls work, then I thought that it would be much better to spend a little time trying to fix them rather than write a big post here, so I did it and I managed to make my walls work :)

I'm not going to go into many details this time. As I said in my previous entry the difficulty in make my walls was that I'm doing all my characters movement kinematic, i.e. not affected by the physics engine, instead I write how all the collisions should work, it gives me more control as developer but more headaches too.

Well, this is my results for this week:
  1. The walls stop my character if touched from the sides (i.e. it can't go through the walls)
  2. The character interrupts its jumping if hit a wall from below
  3. The character can walk on the wall as with other platforms
1. 

2.

 3.

Next week will work on the how-to-play level design using this walls. Maybe I will need some other new elements but I'm not sure yet.

Thanks for reading, see you next week!

Sunday, February 22, 2015

Game progress: Defender Blender

This was a really busy week, however I managed to have a little progress with Defender Blender.
Defender Blender is a game I made for learning Unity, I'm still learning from it and experimenting playability, difficulty, and a some game design. I will talk more about it once I upload it here, for now I'm sharing the progress I had this week.

First lesson learned, after update Unity 3.2.something to 3.6.2 I found that my game was not working anymore, most of the collisions where working just sometimes so I was not able to hit the enemies, the player was not pushed to stay in the screen (it is pushed by an object at the left of the screen), and things like that, so I started to investigate and found that there where two reasons for these problems:

    1. Rigidbodies sleep. Seems like this is an old Unity feature (before 3.2 version), so I'm not sure how my game was working before :). In order to optimize the physics in Unity, the engine does not check for collisions unless they are required, i.e. only if any object's property that could affect the physics changes. Why my objects were not detecting some collisions? Let me explain.
    • You can have a Collider with Rigidbody, or without Rigidbody. A Collider without Rigidbody can actually collide with other Rigidbodies but only if they are awaken. A Rigidbody won't wake up when touched by a Collider. Some people use a kind of workaround for this (however, note that this is not a bug, it's a feature), they change the Rigidbody's position in the Update method in order to wake it up, something like: "rigidbody.transform = rigidbody.transform". The problem with this is that it is a kind of dirty trick that won't help your game's performance. So what is the correct solution?
    • When a Rigidbody touch another Rigidbody, it wakes up. So put a Rigidbody component in whatever objects you're going to move constantly (like the player, the enemies, the projectiles). Adding a Rigidbody to some objects fixed my issues with some collisions.

    2. Methods in animations. After adding the Rigidbodies to some of my components I was still having problems to attack my enemies, it was like there was a kind of random factor that could make it work, or sometimes delay the collision. Actually I was able to see the collision happening in OnTriggerEnter method, however it was still not working. Then I found out that the issue was because the logic I used to activate the collision of the player's weapon. I used a method call from an Animation as you can see in the screenshot:
StartAttack() method activates a boolean variable that decides whether the sword collision is going to happen or not, this was needed because even when the Collider was really small when not attacking, sometimes the enemies just died because they touched the Collider inside the character.
So the plan was: when the animation starts, call StartAttack(), so the collisions are processed...
Well that is how it worked before, however animations seem to not have a lot of priority for Unity in processing, they are visual components, it's not a really good plan to depend on their accuracy to fire events in the right moment. Instead I called StartAttack() from the method which starts the animation. That fixed my problem.

What is I was really planning to do
After solving these bugs I started what I actually was trying to do, I added a new component to my game: Walls. I'm planning to use them mainly to teach the player how to jump because I noticed some people struggled to notice that keep the jump-key pressed make the character to jump higher. Also I want to use the walls to teach some other movements in the game, I will use them in a new How-to-play level.
Since my game uses physic objects as Kinematic objects, it does not use the physics engine to affect the objects movement, it only detects the collisions, so add a wall is not as easy as drop a rectangular Collider in there.

The Kinematic Rigidbodies/Colliders know they are touching each other, however they don't know the direction of the touch, so I can't just program my character to stop moving when touching a wall, because then it will stop as well when walking above the wall (it must be able to work above the walls). I was planning to use a different Collider on the top of wall but it was going to be messy. My plan so far is to do it by comparing the wall's position and the character position. When the player is above the wall, the wall will behave as a platform, and when the player is in any side of the wall, it will act as, well... a wall.

Well this is work in progress, after complete the programming of these walls, I hope to make a post about my how-to-play level design. See you next week!

Monday, February 9, 2015

Doing and learning - my plan so far

Well, I'm still fixing the laptop in which I have my games so I won't share a new game yet but I really don't want to stop posting here, so I will share what is my vision so far about what I want to do here, you might find it useful if you are starting in the game dev world.

When I was 13 (I think) I started my first game using RPG Maker 2003, working on it was wonderful and I was really trying to make the perfect game for me, there is a long story about that but I don't want to go that way now. The point is that I spent about 5 years working on it from time to time, then I stopped doing it for a while, and about two years later started another project, it was not exactly a game, it was not exactly a PC gadget... well, there a long story about that too, and for now I'm not going to go that way either, I will just say that I worked on this project for about 3 years.

So, I could say I have 8 years of experience creating games, but it would be inaccurate and pretentious. I definitely learnt a lot of things in those two projects, but there is a learning curve that indicates how much you can grow in a single project.


The more you learn, the more you can do, the more you repeat what you know to do you get better doing it, but you stop learning new stuff. As you can see in that simple graph at the beginning you are basically a poor useless baby guided by Google to make your first horrible drawings, flooding forums with newbie questions and experimenting with whatever you think would be useful. Time passes and you learn some stuff, that stuff can have you busy for a while, you start your journey with some drafts in your mind and create your first works. After a while you feel really comfortable doing what you learnt to do, but maybe you don't even bother in look again and find if there are new and more effective ways to do what you already know to do.
Chances are that by that time you will have a long term project in mind that needs a lot of work, if that is the case you can spend a lot of time doing things you already know to do, and not learning much.

Obviously this is a simplistic way to view it, probably you are learning less stuff, but the few things your learn are complex and difficult to conceive for a rookie... anyway, it's dangerous to take this way if you are not looking to become a very specialized person doing those very specific things you know to do.

Why am I explaining this? well, as I said at the beginning I wanted to explain what I'm trying to do with the projects in this site (I know I have uploaded just one so far xD, but promise I will upload some other game as soon as I fix my computer).

I want to make some fast projects, different styles, different types, different platforms. Then improve them based on your feedback and take each project as far as people ask, or at least as far as I feel proud of the result :P. I'm planning to take a Non-Zero Week approach, i.e. I will try to post some progress here at least once a week.

I already know I can fall in love with a single project and stick to it for years, it's time to take a different approach and experiment a little more. I'm specially interested in experimenting game design ideas, gameplays, how to make an appealing game, how to make them fun, how to teach the players to play the games, how to transmit the sensations I'm looking to transmit to the players, even how to explain some philosophic ideas. I'm not discarding experimenting different technologies too, but that is not my main learning objective for now.

Would be great to know what you think about this project, so please leave your comments below!

Monday, February 2, 2015

I survived my first Global Game Jam

How to survive to the Global Game Jam? Even when I have some experience making games, I don't pretend to be an expert, I have just participated in a couple game jams, for the first one (Winter Jam) we didn't finish our game, for the second one (Global Game Jam 2015) we completed Burn & Run Kamikaze Heroes (BARKH), and I am very satisfied with it actually. So, what was the difference?
  1. Scope
  2. Emergency exit
  3. Organization
  4. The basic stuff
  5. Luck
Scope
We programmers have a mental problem, we are always too optimistic, not necessarily in life but when coding we are. When we started with BARKH's idea we discussed a little about how should we do it, I was planning to do it in a kind of open and dark place, Lal0l thought about it as an auto-generated labyrinth from the beginning, and we were really close to go for it, however we decided to do it just if we would end up with some extra time (yeah sure). So we decided to do a hardcoded labyrinth. I'm pretty sure that do the auto-generated one would take most of our time because of unexpected bugs.

So the tip here is: If you have an idea that sounds kind of complex, but possible. DON'T EVEN DARE TO TRY IT, the Jam have enough things to invest your time on, but discover how stupid you were when you though it was going to be simple it's not a good one. Better to use a temporary version that works and can be thrown away if anything changes in your plans.

Emergency exit
If possible think different ways to make your game a playable game if something terrible happens. Imagine that suddenly they say you will have only the half of the time you originally thought. What would you do? what would be your real scope? can you cut a couple levels? can you remove all those extra abilities and super powers? would your game be playable without them?
Think how could you do your game playable without all this, and make sure the emergency exit is actually easy to follow.

Then if you find out you are running out of time you can go for one of those exits. Remember, it is much better to present a short complete game, than a super cool idea that you didn't finish.

Organization
Well I have not that much to say about this (we were only two in the team :)) however in the previous Jam we were 3 in the team, and I can tell that 3 laptops running Unity were not as useful as two laptops well used in the GGJ. Since only one had Unity installed we made all the Unity stuff in one of them, the other was used for graphics, music, sound, investigate, get resources.

Maybe this piece of advice is obvious in an heterogeneous team, but if you are a bunch of programmers, don't mess with GitHub for a 2 days project, use your resources to get all the other stuff done and ready to be plugged into your game once the main gameplay is done, e.g. the title/credits/gameover screens, the music, the sounds, and so on.

The basic stuff
I think this one is the one which I noticed lacking more in the projects I saw in the jam.

  1. Screen flow. A very simple step which makes a huge difference in how a game "feels" is whether it has a complete screen flow, i.e.:
    • Title screen - give a good first impression
    • <Optional> Story - explain what is the player trying to do, is the player trying to find anything? kill anything? survive? make the player's mission important. If you don't put this screen at least explain the purpose of the game in the gameplay.
    • The game - well this one almost nobody forgets about it, those who don't have this are the ones which go and explain that they didn't make it on time.
    • <Optional> Game over - show a quick screen when the user dies (not just reboot at the start of the level). It makes the game to feel more complete and you can use it to reinforce the theme of your game, or even make the player laugh and give another try.
    • The win - reward your players with a good ending, is the less you can do to thank them for playing your game.
    • <Optional> Credits - recognize all those who helped to have the game done.
  2. Music & sounds - music and sound makes your game to feel complete, they are not just additional stuff, music helps to give a feeling to the players, and sound give them feedback about the game itself, "was that something good or bad?", "was it an interacting object?", "did I click that button?"...
  3. The GAME. Why your game is a game? can I win? can I loose? is it difficult enough to be fun? is it easy enough to be played? does the player have a purpose? is it fun? Of course that some types of games don't really need all this, but most of them do.
  4. The theme. How is your game related to the jam's theme? The theme is a tool to push you in new ways of thinking, I mean, if the theme is pushing you to make a bad game obviously you need to keep thinking and bounce ideas with other people. The theme could push you to learn new stuff, if you only know to do Mario-style platformers, then doing something similar is fine but the theme could help you to explore from other perspective, instead of just make another Mario.
Luck
Certainly you might need a bit of luck, for example the day that the GGJ began my computer's hard disk crashed, it got damaged so I couldn't bring my computer with Unity to the jam. That seemingly not really nice coincidence forced us to do what I explained in the point above about organization.

Will you find good a team? will you find those free resources you need? will your brain want to work and give you a marvelous idea? will your computer explode?
My advice: a positive attitude to whatever happen in there will make the difference between a really awesome weekend and two days of frustration :).


Hope this help you for your next jam!

Monday, January 26, 2015

Burn & Run Kamikaze Heroes!

I have had this blog for a couple days without a real idea of what would be a nice first entry, I really didn't want to post a "Hello world" again.

So, what could be better than start with a game! - I teamed up with a friend, Lal0l, a couple days ago and participated in the Global Game Jam 2015, which theme this time was the question: "What do we do now?"

We ended up doing this kind of funny and sinister game where you find yourself in a really dark labyrinth with a bunch of friends. You are around a big torch and you know the only way to find the exit is by BURNING YOUR HEADS TO LIGHT UP YOUR PATH!!!... btw, you are a bunch of matches ;)

Give it a try, it is the first version created in less than 48 hours, we have already some ideas to improve it, but I think you'll find it fun in its current version. You might also found a couple bugs.

Play it here! (controls: Mouse + WASD)

Would be nice to know what you think about it. If you want to comment please do it in the game's page (the same above).