• entries
7
52
• views
21842

## Faceplants, rain, headaches and particles

Hey, long time no see! A full year since last entry.

Kind of a weird year. I started freelancing as a web-developer so now I've been working from home, and it's surprisingly nice, although a little monotonous, but the positives far outweighs the negatives so I'm sticking to it. Also, I got a new cluster headache attack which, again, lasted three full months, and man, I really I don't wish that to anybody. Finally, I realized that, even though I'm not overweight, I was in terrible shape, so I decided to exercise more by buying a bicycle, and man, walking to the store was some damn good exercise.

Of course buying a bicycle was not enough, I also had to use it, and I guess I started way too enthusiastically because on my first month riding the bike, after riding for over an hour, I passed out in the middle of the night near my home. I woke up on the floor with the bike next to me, and some dude came, asked me if I was OK and said: "man, your face looks fucked up!". I got home, went to the bathroom, looked in the mirror and, surprise, half my face was covered in blood. I basically faceplanted the floor with all my body weight while moving at (thankfully, low) speed, I'm lucky I didn't lose any teeth.

The next day my mother saw me and was totally convinced that I got into a fight: "No, I'm telling you, I passed out while on the bike!" - "You're lying to me". It took a while to convince her.

Besides that little incident, using the bike has done wonders, I don't get tired as easily now. I'm still in bad shape though, but not as bad as before.

Oh, and yeah, I've been working on the paper game. Sloooooooowly.

It kinda looks the same as before, but I added some particle effects, I cleaned up a little bit the HUD, I added ammo pickups (no more infinite bullets anymore), changed some colors to more "cheerful" ones, added some quality of life improvements like checkpoints and item indicators, phew, lots of stuff.

Here's a little GIF showing some stuff. I have no idea how to embed Gfycat, so I'll just leave the link: https://gfycat.com/GracefulFlimsyAustraliansilkyterrier

As you can see, particles fly everywhere. Oh, and I also made seeker missiles, which took me more time to implement that I'm willing to admit.

Yay, rain effect! It doesn't make a single bit of sense with the art style, but eh!

A ransom note generator! Useful for the mission titles, the game logo and stuff like that. Apparently it can also be used to make ransom notes, but don't quote me on this.

Besides the above, I also wrote the outline of the story and how the missions will play out, but I still need to write the details, like define the personalities of the characters, write all the dialogue, things like that. Writing is surprisingly difficult to do, I've never done it before.

Finally, a few months ago I uploaded a gameplay video showing a full, although short, level:

This it how I want the final game to be: big maps with multiple objectives that you can do in any order while managing your ammo, health and fuel. It's an homage to the Strike series after all.

This has been the closest I have ever been to making a game after many abandoned projects. I still don't know if I'll ever finish it, but I'm happy with the attempt so far, and surprisingly, I haven't lost interest in the project yet, so I guess I'll just keep at it.

## Level creation timelapse and dog bites

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.

## Rivers and demos

Hello.

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:

(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.

## Vacations, intro level and gameplay video

Hello.

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).

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

LOL

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.

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 bubble;for (int i = 0; i < amountBlocks; i++) { Sprite sprite(bla, bla, bla); bubble.push_back(sprite);}
.
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:

(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.

## !) Our dear paper events

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:

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:

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:

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[size=1] [1], I have never done it, and I believe this is my main roadblock when it comes to finish the game.

[size=2][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 =)

## ?) I can't finish anything

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.

- 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

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.