Jump to content

  • Log In with Google      Sign In   
  • Create Account

My attempt at making a platfo... no, a game

Level creation timelapse and dog bites

Posted by , 21 May 2016 - - - - - - · 517 views

Hi, long time no see.


I haven't worked on the game lately, I kinda lost the drive to do so, I've been busy with my job, and I'm having some little health issues (insomnia and cluster headaches). To top it all off, yesterday I was bitten in the leg by a street dog, and now I need to take vaccines against rabies for the following three weeks :mellow:


I did make a video, though. Not much about gameplay, but rather about how I make one of the levels, you know, typical game dev stuff. I guess I enjoy showing the process of making the game more than showing the game itself.



Also, I set up a IndieDB page, and it got a warmer reception than on GameJolt, so that was a little boost in motivation, which was nice.


Anyways, progress is slow as usual, and it's funny to look back to when I wrote that the game "should be finished by December 2015, that's more than enough time". It's not that I'm suffering from scope creep or anything because I'm not really adding more and more stuff to the game, it's basically the same as planned originally, so I guess I'm just a slow developer. It doesn't help that I play Civilization V and Age of Empires 2 on a daily basis :P.


Thanks for reading!

Rivers and demos

Posted by , 14 March 2016 - - - - - - · 429 views



Back from my break and back to reality. I wanted to explore the country but I couldn't for several reasons. I did visit some places near my city, though, which was nice:


Posted Image


(Pictured: a hot summer day with a cold-as-ice river).


Regarding the game, I finally made something playable, a demo of sorts. I set up a GameJolt page and everything, but it barely got attention, unfortunately.


I guess just uploading the thing it's not enough, I have to actually try to spread the word, and I'm doing a terrible job at it. I guess I just don't like "selling" things.


Of course this is just a short simple game, and maybe not even a good one, so it's not like I'm expecting thousands of people playing it, but I'll be content with just a few saying: "hey, I enjoyed it", and if I want a few people to say that I need to make them know that the game exists in the first place.


I'm taking a break with development for a while to focus on trying to find an audience. Nobody wants to make a game that nobody will play.


Thanks for reading!

Vacations, intro level and gameplay video

Posted by , 05 February 2016 - - - - - - · 580 views



I'm on vacation from my work, I come back in March, so that means that instead of working on my actual job, now I work on this damn thing. Yay for vacations!


Don't get me wrong, I actually like working on this, but I'm thinking that I should use this free time to properly rest instead of keep working, it's just not healthy. I have some savings, so I'm thinking of exploring the south of my country and dissapear for three weeks, that would be nice.


Personal stuff aside, I have made some progress during these last two weeks, mostly small tweakings.


I made a short intro level. Initially the game started with a looooooooong cutscene (2 minutes long or so) before the first mission starts, and personally I hate when games do that, I always want to feel the gameplay first before getting invested into the story. So I added a short intro level, so as soon as you start the game you start shooting and get the feel of it. Afterwards the cutscene plays at normal, although I still think that it's too long, so I fear that people will just ignore it. That's fine, though, I prefer to let people skip a cutscene by pressing a button instead of forcing them to watch it even if they are not interested.


Just for giggles, if you skip the cutscene, one of the characters comments about it at the start of the following mission, not to annoy the player or anything, but just to let it know that the characters are aware. It's a game within a game, after all.


I made a video as well, although the quality is kinda bad, I'm just not used to compressing video, choosing the right codec and all that jazz.



Sounds effects are just random free sounds that I have found; I'll admit that some of them are kind of annoying, so I need to work on that. Also, the music is not made by me, but I would like to learn to make music of that style, I think it fits and makes sense within the game (one kid plays a toy synthesizer to make the music while the other is playing the paper game).


Anyway, I'm taking a break. South of the country, here I go (hopefully).


Thanks for reading!

"I should finish this by the end of the year"

Posted by , 16 January 2016 - - - - - - · 796 views



I must admit that I haven't worked on this that much, only a few hours per week at most. I definitely missed the deadline, and I'm not finishing this anytime soon. That's fine, though.


I fixed the dialogue bug mentioned on last entry. As I said, some "blocks" of the dialogue incorrectly change position when you shoot, even though your character and the dialogue are not related at all.


Posted Image


I'm using C++, so the dialogue bubble is a std::vector that stores instances of my Sprite class, with each Sprite being a "block" of the bubble. The thing is, my Sprite class has its own std::vector of stuff, and also has a pointer member that points to a specific element inside that vector. The point of that pointer (heh) is to avoid iterating the vector each time to search for that specific element inside it. Bad practice? Probably.


So, back to the dialogue bubble. The code that put the "blocks" together was something like this.

std::vector <Sprite> bubble;

for (int i = 0; i < amountBlocks; i++) {
     Sprite sprite(bla, bla, bla);
The way std::vector works is that it automatically allocates memory as you push new things in it, but when that happens it doesn't allocate space just for the new element but rather for the whole thing, and then copies all the elements to the new memory location while deleting the original elements. In other words, it's like building a whole new hotel and moving all the people to it instead of just building a new room for that new person that wanted to spend the night.


This is all fine and dandy, except for that damn pointer in the Sprite class. The following expertly drawed image tries to explain what happens when a new Sprite is pushed to the vector:


Posted Image


(1) The vector with a single sprite. The pointer inside the Sprite, which points to an element of an internal std::vector, is all good, and I'm enjoying life.
(2) A new Sprite is pushed to the vector. A new memory space is allocated, so the original Sprite is copied to the new location and also a new Sprite is added.
(3) The pointer of the first Sprite still points to the original location, oops!


Solution? Many:


- Reserve the memory of the vector beforehand using std::vector::reserve().
- Call a "updatePointers()" method for each element in the vector everytime something is pushed.
- Use std::list instead of std::vector, which only allocates the memory for the new element. It's more expensive to access the elements, though.
- Don't use pointers that point to something inside a vector at all.
- Delete the code, quit programming and enjoy life.


In my case I used the first, and just like that the problem was solved, yay!


Probably a bad practice on my part, as I learned C++ on my own so I rarely know what I'm doing. Personal note added: "be careful with pointers, and avoid them if you can".


Anyway, regarding the progress of the game itself, well... I'm still stuck making the first level. Yeah, I've been stuck with it since September or so. Not only I haven't been working much, but when I do, I work sloooooooow, I really take my time just putting things on the map, playing the level dozens of times and so on.


Here's a screenie of a little city from the first level. Making it was fun, it really takes me back to the days were I drew paper cities to make races using my toy cars. Good lord, I was poor.


Posted Image


Thanks for reading!

!) Our dear paper events

Posted by , 12 November 2015 - - - - - - · 898 views

Hi, long time no see. Two months and a half since last entry...

I've been working a lot on this little thing but for some reason I feel that I haven't made much progress, and by "for some reason" I mean that I got a new computer so I have been playing a lot games instead of working more on this.

I'm still stuck on the first mission of my game, although I made quick prototypes of the next three missions; by "prototypes" I just mean the overall structure of the mission, like what objectives will have, the order on which they will be completed, etc, but almost no dialogue, no backgrounds, few enemies (only the ones related to the objectives) and so on.

I'm liking the prototypes so far, each mission is slightly different, so they are not just like "go here and destroy this". For instance, one mission involves disabling a wind farm by hacking three terminals located on different parts of the map; each terminal hacked makes the windmills run faster, and you need to navigate the map avoiding them.

I actually made a hacking minigame, because why not? It looks like this:

Posted Image

You need to navigate the firewall maze, steal all the data and head to the exit; if you touch a firewall or the time is up, you are done. At its core the game is still just a shooter, but I wanted to spice things up a little bit with silly things like that.

Anyway, I'm here because I wanted to ramble about inconsequential things.

When I was a kid, I played the crap out of Age of Empires 2, which I'm sure some of you have played. That game had a fantastic level editor, I loved it, it was the first game I played that offered me the chance to make things up. I made silly, ugly and unbalanced maps, but they were MINE. I felt powerful, I felt like a GOD!

The editor had a lot of menus: one to place stuff on the map, other to manage the players and so on, but there was one menu that I had no clue for what it was: the "Triggers" menu. I mostly ignored that menu for years, I mean, I could make my maps perfectly fine without using that, but curiosity got the better of me: what were "triggers", exactly?

I started playing around. That menu offered to create "triggers" and associate them with two things: "conditions" and "effects". The game offered a huge list of them, but I had no idea what they were. After playing around, it clicked: if a condition is met, the effect happens. So simple, so powerful. In hindsight, yeah, it seems pretty obvious, but back then I honestly had no idea what they meant.

I started making silly things, like if you destroy a certain building (the condition), some enemies spawn (the effect), but then I made much more complex stuff, like heavily scripted levels with multiple winning conditions. Hell, I remember trying to make an RPG-like level on which you just control a single unit, your hero, and you have a huge map to explore, with multiples cities, some of which are blocked and you need to perform tasks to gain entry. You had a quest log of sorts, and most quests gave you gold, which you could spend to increase your HP and Damage by moving your hero next to a shop, all of this using triggers.

I felt like a god of gods.

When I wrote my map editor two years ago or so (which I'm using to make this game... and my several other failed attempts), AoE 2's editor was my main inspiration. My editor is practically the same, and that includes the triggers system (which I called "events").

An "Event" is a group of "Conditions" and a group of "Effects", plus some other data like a name (for reference) and "Requisites" (a list of event names, telling that those events need to finish before this event can be activated).

So, let's say that we have the following event:
- Name: "Find the first base"
- Conditions:
     - ObjectInZone(Player, Base1)
- Effects:
     - SpawnObject(EnemyHelicopter, Base1)
     - SpawnObject(EnemyTank, Base1)
     - Dialogue("Good, you found the base. Now destroy it!")
This event is written manually on a text file. The event handler will read this when the game starts and will check if the conditions are met every second or so, and if all the conditions are met, it will do all its effects and then the event will be marked as "finished".

In this case, the handler will check if the player is in the zone called "Base1". If that's the case, it will spawn two enemies in that zone and a dialogue box will appear telling you what to do.

Let's consider another event:
- Name: "Destroy the resistance"
- Requisites:
     - "Find the first base"
- Conditions:
     - ObjectKilled(EnemyHelicopter)
     - ObjectKilled(EnemyTank)
- Effects:
     - AddHealth(100)
     - Dialogue("Nice, your enemy crushing skills are magically healing you for some reason")
Unlike the previous event this one has requisites, so it won't be active (that is, the handler won't check its conditions) until all its requisites are finished. In other words, finishing the previous event will activate this one.

So, what happens when taking both events into account is this: you go to the first base and two enemies will spawn and a little dialogue box will pop up telling you to destroy everything. After destroying the poor helicopter and tank, another dialogue box will pop up congratulating you and you'll get healed (even if that doesn't make the least amount of sense).

That's the events in a nutshell. Each level that I'm making has A LOT of events, so I have full control of the dialogue, the enemies, the objectives that you need to do to complete the mission and so on. It works great, although it's a little tedious I'll admit, but I don't know better alternatives so I'll just stick with this for now.

The events is part of the reason it's taking me so long to make this game despite the levels being pretty short, but being honest, the main reason is simply because I'm a slow worker and I tend to change a lot of things just for the heck of it: move this building a little further because it's too close to this other building; change the timing of this line of dialogue because it's a little fast; make the map slightly bigger; realise that I moved that building way too much so now I move it back to where it was, you know, small silly details like that, which is extremely time consuming and doesn't really add much, but I'll be damned if I don't enjoy placing things around in the editor.

Anyway, I also have a dialogue system, yay! This was actually a leftover from previous projects, but I tweaked the code a little bit. Now It looks like this:

Posted Image

Basically just big bubbles of text. The color and the position represent which one of the three characters is talking. Hopefully the dialogue is not distracting while you are shooting at things; I'm trying my best to avoid showing dialogue in the middle of the action.

I have a really weird bug, though. The dialogue bubbles are made by several small sprites that are together, and it works for the most part, but sometimes some pieces are in incorrect positions:

Posted Image

This is extremely rare, it only happens with certain dialogue (but not always) and it only happens if you shoot while said dialogue is up (that is, the bubble is perfectly fine but as soon as you shoot, those two pieces are moved to an incorrect position). This is driving me crazy, because unlike most bugs that I have encountered so far, I can't reproduce this one, it happens at random, and like I said, is extremely rare.

By the way, I need music!!! I love music in games, and a silent game just feels weird to me, but unfortunately I can't make music [1], I have never done it, and I believe this is my main roadblock when it comes to finish the game.

[1] I mean, I can't make graphics either, but at least when it comes to graphics I can make ugly assets and say they are bad on purpose to fit the theme of the game =)

Thanks for reading Posted Image

?) I can't finish anything

Posted by , 30 August 2015 - - - - - - · 1,093 views

It goes like this:

1) Have an idea for a game.
2) Daydream about said idea for days.
3) Try to make the game for a few months.
4) Slowly lose interest.
5) Abandon the project.
6) Do nothing gamedev related for a few months.
7) Came up with a new, simpler idea for a game.
8) Go back to point 2.

It has been three years, with five games that I haven't finished. Remember the little platformer I was making? (The one with the sepia tone, you can find screenies on previous entries). Yup, even that game, as simple and short as it was supposed to be, was abandoned. I just lost interest in it, I can't help it.

I came up with a new idea a few weeks ago, and I already started working on it. Will this be the one that I'll finally complete? Probably not, but I'll make the attempt anyway.

So, what's up with the game, then? Well...

When I was a kid, I had a SNES, my very first console. I had six games: "Super Mario Brothers", "Primal Rage", "Operation Logic Bomb", a racing game about Lamborguinis, an NFL game whose name escapes me from the moment, and "Urban Strike", and loved every single one of them and played them non-stop, even if some of them were never considered good games, or even decent ones. Eight-year-old me didn't care.

All those games were simple enough for me to play them without trouble, except "Urban Strike"... Goddamn it, that freaking game. For the guys that don't know about it, it's a top down game in which you control a helicopter and complete various objectives while managing your ammo, armor and fuel.

I hated it at first, because unlike my other games, this one required following instructions, you just can't shoot everything and win, and I was completely lost because I didn't know english back then. I was stuck in the first level for years... until I discovered that if you pause the game, it shows the map and your objectives. Using a Spanish-English dictionary I managed to follow the instructions and finally, FINALLY, completed the first level. A few weeks later I completed the game, and I loved it.

I wanted to make a little homage to said game (even though the SNES port sucked), which brings me to this new project: a top down shooter where you use helicopters to shoot things (pew pew!), while having somewhat of a plot, no matter how silly.

Some notes about the game:

- Three playable protagonists, each one with its own chopper with different weapons.
- Unlimited ammo, but limited fuel; you need to find fuel around the map.
- Very short game, with five missions: an introduction, then three missions than you can complete in any order, and then the grand finale. Each mission lasts between 3 to 5 minutes.
- Each mission consists of various objectives that you can do in any order (for the most part).
- Each mission has a predetermined character assigned, you can't choose it. The last mission is a special case: you use all three characters at the same time, switching back and forth.
- There's a lot of dialogue in and between missions, shown using little text pop-ups (hopefully they are not distracting while playing!)

Like I said, I have already worked on this for almost a month reusing the code from previous projects (at this point I don't have to write anything). I have made some progress: for instance, a prototype of the first mission is almost done, for now just called "Oasis".

Here's a little animation of one of the characters (for now just called "Green") shooting baddies and using his overpowered secondary weapon

Posted Image

The "art" style is based on papercuts and drawings made from kids. Yeah, I know it looks ugly, but I promised myself not to worry about graphics that much. I'll try to improve them as time goes on.

That's it. I have much less free time now, I got out of Uni and now I have a job and I'm a productive member of society (ha!), but I'll try my best to finish this by the end of the year: five months doesn't sound that crazy for something as simple as this, and like I said, I don't have to write code anymore, because the code used in previous projects has everything I need for this game.

Thanks for reading Posted Image

6) Pause menu

Posted by , 15 May 2015 - - - - - - · 661 views


I finally finished some very important real life stuff that I had to do: I couldn't work on this in the past two months, but now I can work on it, so yay!

Anyway, I wanted to make a pause menu a long time ago but only yesterday I decided to start making it. Before this, pressing Esc would inmediately close the game, while pressing F2 opened up the options menu; now by pressing Esc you access the pause menu and you can access the Options and close the game from there.

The menu tiself is pretty simple, not really pretty, but it's functional:

Posted Image

Posted Image

Posted Image

You can customize the controls, the language, the resolution and stuff like that at any time, which is nice.

Regarding gameplay, I decided to scrap the "shield" mentioned in the last entry, and just embrace the shooting. It's not original, but it's fun for me, and I guess that's enough.

Right now I'm focusing on experimenting with gameplay, and I don't mean only the shooting but also the platforming, the spacing, the size of the map, the "quests", things like that, and because of that I'm doing quick tests, without worrying about graphics. Gotta love the obnoxious green cube or the magical floating platforms (they are supposed to be branches from very big trees).

Posted Image

Finally, I decided to keep the game even shorter that it was supposed to be, but adding some random elements here and there to make it more replayable; not only the enemies will have random stats, but also the map will change a little bit. It's nothing complex like weird algorithms or anything, but rather manually making different sections of the map that will be chosen at random, so the town may look slightly different each playthrough. I actually have a in-game justification for this randomness, which is nice.

I must admit: taking a break from this did wonders, now I'm much more motivated than before. If you are feeling down, take a few days off, it may help you clear your mind a little bit and come back with new batteries.

Thanks for reading Posted Image

5) "Maybe a month?"

Posted by , 14 March 2015 - - - - - - · 1,145 views


I've been experimenting with some gameplay mechanics. Gameplay wise the game is not original at all, you just shoot at things and things shoot at you. I tried to change this by taking away your weapon, and instead giving you a shield: now you just avoid getting shot either by dodging projectiles or stopping them with your shield, which you can "aim" in 360 degrees. It is somewhat interesting, and I like that it is less violent than shooting things, because the player character is just a kid and the game world is mundane, but I'm still not sold. Right now it's just boring, and I'm considering going back to the shooting if I can't make it work.

Anyway, on something unrelated to gameplay, I want to quote something I said in my first entry:

It shouldn't take long to finish [the game]. Maybe a month? We'll see.

Ha! I said this exactly two months ago, and the game is far from finished. Oh, and now I have some very important "real life" stuff to do, and this will keep me busy for a month, maybe two, so no playing working on this.

Only a month, yeah right...

By the way, remember when I said in previous entries that last year I got disheartened with my previous game and decided to stop? This was around August. Actually, I was not working on a game per se, but rather trying to get an idea for one, so basically I was just prototyping... a lot.

The very last thing I did was a quick prototype for a top down shooter, more to test the engine rather than gameplay (which was an afterthought), and I made a video of it a few months ago.

Basically, the idea was to generate random pilots and let the player send them on randomly generated missions. Each pilot has its own plane with different properties (speed, armor, weapons, etc) and if they die on a mission, the die for good. The can go back to base anytime by flying to the bottom of the map, but this will fail the mission.

In the video, the black screen in the beginning shows the list of randomly generated pilots, and the one at the top of the list is the one that will go to the current mission. This black screen was actually supposed to be a map of the game world (also randomly generated), and several icons and buttons were supposed to appear on the map to represent different missions, each with different rewards. In the video there's only one mission though, and it's not randomly generated because I never finished the map generator. Instead, the mission is kind of scripted, in order to test the events system: it has dynamic objectives, a cutscene and stuff like that.

Anyway, here's the video (which is kinda long, sorry for that). The graphics are very ugly and the gameplay is weird, but like I said this was done more to test my poor man's engine rather than gameplay or anything.

I'm tempted on going back at it to be honest, and that's why I'm mentioning it. The reason I abandoned in the first place was because I was thinking: "man, nobody will want to play this crap", but lately, after several months, I've been thinking that even if the game turns out like crap and no one ends up playing it, there's still some value in making the game just for the sake of making it. Personal value.

Anyway, see ya in two months. Thanks for reading.

4) Assets... uggh

Posted by , 19 February 2015 - - - - - - · 955 views


I've only worked a few hours on this little monster this week, I have been very distracted with "real life". The only "work" I did (if we can call it "work", because to me working on this feels like playing) was regarding superficial stuff. Graphics, that is.

Like I said in earlier entries, I'm not an artist by any means, so I'm keeping the art style very, very basic and also I'm avoiding making assets by hand like the plague, and if I happen to make something manually, it's usually a very basic shape. I'm trying to make most of the map using as few assets as possible, because I really dislike drawing, and so far it's actually working, surprisingly.

To make most of the stuff on the map I'm using smaller "pieces". It's the same principle as a tile-map: you use small images -the tiles- to make something bigger. Same thing here, with the difference that the pieces can be of any size, and I can rotate, scale, position, animate and change color of each piece freely in my editor.

A few days ago I wanted to make a tree. Just the thought of drawing a tree in GIMP using the mouse gave me nightmares, so I tried to use this "piece" approach using the following images drawn by hand:

Posted Image

Basically, an irregular line, an irregular circle and a solid color, all of this white, because this way I can change the color in-editor. Then I placed a lot of instances of those three images in order to make the tree: the lines were used to make the trunk, the circles to make the leaves, and the solid color was used to "hide" unwanted lines by placing it on top of the other two pieces. After playing for a little bit this was the result:

Posted Image

I have no idea how many pieces make that tree: 30? 40? Doesn't matter.

So, that's one tree. What if I wanted to place a lot of identical trees? That would mean that I had to manually make every single tree on the map, right?

Luckily, no. I implemented a "group" system, so I just need to make one tree using smaller pieces, and then I can copy said tree as many times as I want on the map. Now I can easily make a forest, yay!

Posted Image

... a forest of identical trees, but a forest nonetheless. Of course I could make more trees to add variation, but right now I'm feeling lazy.

Finally, I wanted to animate said tree. I want to compensate for the simplistic art style by animating most of the things on the map: the clouds, the grass, the bushes, the water, etc, and this tree is no exception. The animation is very simple: the circle piece (the one used for the leaves) rotates slowly on its own axis, sometimes clockwise and sometimes counterclockwise, and again, this is done in-editor because lazyness and stuff.

All in all, this is how it looks like in motion:

Posted Image

It's not something really noticeable, but it's there. If the player is moving you can't really notice the background animation so it's not distracting, which is nice. At the same time, I'm afraid that only a handful of people will actually notice that the thing is animated, haha, but that's life, I guess.

So yeah, that's my approach in order to avoid drawing by hand: I just draw basic shapes and then in the editor I place them, it's easier for me this way. The downside is that this can lead to performance issues if way too many "pieces" are on the screen, because every piece is an individual sprite. I'll try to optimize it in the future.

Thanks for reading.

3) Testing endless backgrounds

Posted by , 09 February 2015 - - - - - - · 1,072 views


I got kind of tired of programming non stop, so I decided to just play with the editor a little bit. I fixed some bugs, added some small features and played with the map a little bit, adding things here, improving things there and so on.

I added a new type of background to the game: basically it's just a repeating, endless background that moves at a constant speed, and I can modify it in the editor in real time, which is nice.

I'm using this type of background for the clouds. Here's a short video of it.

The black squares are supposed to be pigeons that you need to scare off at the beginning of the game, because why the hell not?

By the way, remember when I said that this game was going to take me a month at most? Well, now I think it will take me much longer, not because of "scope creep" or anything, it's just that I've been very busy lately with "real life". But hey, what's the rush?

Thanks for reading.

September 2016 »

252627 28 2930