lonely woof

Viewing posts created by lonely woof

Egz is out ! First update is available too !

Blog-850x480-Screening
That’s it ! Egz has been available for two weeks (28th April 2016), on iOS and Android ! That means that I’ve finally achieved my childhood dream : I’ve made my own video game ! It’s been two weeks now, and I’d like to thank everyone who helped me. And obviously, thanks to YOU for playing Egz, I really hope you enjoy it !

Now what?
Well, if you’ve played the game, you already know there are bugs. And unfortunately, there are a lot of bugs. The good news is : an update is available since today, on Android and iOS. Here’s the patchlog :

  • “Egz” now requires iOS 8.1 instead of iOS 9.0.
  • Various improvements have been made to the HUD preventing the game from crashing.
  • Fixed a crash caused by the Egz dying during the 1st boss fight.
  • Fixed a crash caused by a bubble in the level 4-7.
  • Minor changes have been made to the level 2-8 preventing the Egz from being stuck.
  • A “Replay” button has been added.
  • A “Rate the game” screen has been added.
  • In several occasions, the pagging wasn’t hidden properly.
  • Connecting to Facebook from the settings now works as expected.
  • The number of stars shown in the 1st world has been fixed.
  • New names added to the Egz.
  • Savegame are now versioned.
  • Various localization improvements (english)
Several players also told me that the game would crash EVERY time an Egz dies. I’ve been able to reproduce this bug, but only in 2 specifics levels : in the first and the second boss level (1-10 and 2-10). If your game crashes in any other level, please, PLEASE, LET ME KNOW ! Send an email !

And… what’s next ?
That’s a very good question, that I’ve been asking myself for a long time now. Well, Egz is not totally finished, yet. This was only the first update, and more will come. All the bugs and crashes will hopefully be removed and, if everything goes well, more content will be added : there will probably be new levels, new game modes and, I we’re lucky, new Egz will be added.

So, my journey with Egz is definitely not finished yet.

1136x640-4
And obviously, I’ll keep on posting here and tell you how my very first game, Egz, took life. There are still plenty of subjects that I didn’t tell you about and I’m pretty excited about it.

Egz Devblog – Part 7 – Level Generation

Blog-850x480-Default

The first version of the game was working fine, except for a ton of bugs of course. But this was going to be fixed later. In the meantime, I would have to think about the levels. At this point, in the existing prototype, the levels were “hard coded”. A huge image was used at the terrain, while physical zones were hand-placed. One by one. It took time, but it was actually simple to do.

However, on a long run, it wasn’t viable at all. Especially given the fact that I intended to build 80 levels. I was going to need a level editor. That would take a lot of time, but again, on a long run, I was certain it would be profitable.

My desire to get a curved universe was going to be a huge pain in the ass. I knew it. But before that, I didn’t think I was going to do everything by myself. I was going to dive deep in a nightmarish era. A traumatic era I thought I was done with, when pimples were appearing all over my face and when the simple idea of being in a room filled with girls was more than frightening. I was about to go back to high school, meet Pythagoras and Thales, again. Pit, Tale, I hate you. Best regards.

This is what a level looked like, on paper.

VisuelA

I had to schematize it, in order to determine which geometric function I had to use. So, it was a lot of circles, crossed by lines, drawing angles, with a lot of wrong calculations on it. I had never imagined how difficult it was going to be, for me. Besides the fact Corona SDK isn’t optimized to draw vector shapes (using Bezier curves would have been perfect for that job). I would have to cheat to get all those merged balls. And of course, I had to use those bastards Thales’ and Pythagoras theorems.

Clearly, I’ve never been good with mathematics. From high school, to college, I even had to get tutored several times. To eventually get something like a 10/20. In the end, I managed to get my bachelor degree with a pretty 6,5/20. With a major in science. Yeah, that’s right.

But, whatever the cost, I really wanted my games to be curvy. For aesthetics reasons, but also because I wanted the game to differentiate itself from what we were used to see. So, I persevered into it. I defined a file to stock level informations. The endgame was that my engine could read that file, and generate all those curves. After a long moment, XML files could be loaded and the level generation could happen, just like that:

Blog-850x480-Gif
At this point, something was still missing. Those XML files were hand written, which was too complicated. To avoid this, I was going to create my own level editor, from scratch. Because at the time (and that’s still more or less the case today), Corona SDK didn’t offer a proper interface. Instead, we just had two windows. The first one showed the compiled game, while the second one was used to debug stuffs. And that was it. There was absolutely nothing else, no interface where you could take a graphic, and put it on some scene.

A month later, spent working with Flash, the first version of my level editor was working. In a few minutes, I was then capable of building a level from zero, test it immediately and play with it.



Made with Flash, in Actionscript 1.5 (meaning : it was neither Actionscript 2, nor Actionscript 1, just some kind of a bastard, pretty ugly, even for me), this level editor would allow me to produce levels in the fastest way ever without touching any line of code. Like “What You See Is What You Get“. In reality, it was closest to “What You See Is Almost What You Get With Some Imagination“. But the levels were finally curvy, just like I wanted.

Quickly, I was able to produce levels, test them, see what should be improved. The time-saving on a long run was actually already effective. Adding gameplay items was quick too, although I would have to add more lines of code.

The game was almost finished. Right?

Egz Devblog – Part 6 – Building a prototype

Blog-850x480-Default
Build a prototype! Test it! Prototype it again! Re-test it! Do it again and again…“. That’s what I heard or read the most while I was telling people I was developing my own game. Building a prototype helps knowing if the gameplay works. If needed, it allows to know if you need to modify, for example, how the Egz moves. Or if you should start all over again from scratch.

Hearing this over and over again, you would think I would remember at least something. I should have.

But no. At the very best, I did modify, tweak, and polish some things. But I never even considered re-doing gameplay basics all over again. I was too busy being amazed to see how easily and fast my Egz was coming to life, thanks to the Corona SDK voodoo. Within a few days, here’s what my first prototype looked like :


That fact is, that was enough for me. I thought it was funny. It already allowed me to see whatever wouldn’t work compared to what I wrote in my game design document. For example, I thought about giving the possibility to the player to move differently. It could have worked , it might even work today. But that implied to deal with too many things (teaching new gameplay mechanics to the player, thinking levels in several new ways, multiplying code). And what I had at the time was good enough. It also allowed me to project myself and truly believe the finalised game would work. My goal wasn’t to revolutionize the video game industry. It was to build a working game, which was already a huge challenge for me.

I decided to keep going: the movements of the Egz were OK, but I would have to tweak the way it bounced and how the physic engine worked. I was maybe going too fast, but I even added some visuals assets, animations, user interface. Finally, a prototype, or something actually looking like an alpha, came to life.


Everything was fine. Almost fine. Because I was probably going too fast . The user interface worked well, but some key features were still missing and would be added later. I didn’t know it back then, but I was going to do it again several times during the whole project and I kept losing time because of that.

Egz : Devblog – Part 5 – I’m a Lonely Woof

Blog-850x480-Default
I was left alone. Not that anyone else had been involved before, but for the first time, the fact that I might have to develop this videogame by myself really struck me and against all odds I found myself very excited by this! Of course I was far from imagining how huge and exhausting this would be.

It was spring 2013. I was starting to get seriously bored with my job, while my personal project was kinda put on hiatus, in spite of this target-render video which, once, gave me a lot of motivation.

At the time, I had real doubts about my job. During a lunch with my boss, I actually told him I felt like moving on, like working in the videogame industry. He (pretty much) responded by saying that it was understandable. As he was describing my personality, he defined me as a “lonely wolf”…

… At work, normally, I am NOT a lonely wolf. I am perfectly capable of working with a team. And I do enjoy that. But the truth is, at the time I was really depressed, depressed by my job. So I chose to be an “outsider”. The work atmosphere was terrible for various reasons and this was the only way I could cope. And good news for me: I consider myself being independent. Whilst I was used to work as part of a team, I also was handed project on my own. In the end, everybody was happy.

So…getting back on track with that lunch with my boss: “Lonely Wolf?“, I asked, surprised. But then, this label made me smile, and eventually haunted me until the night. Because, it was maybe true. Maybe, I didn’t realize it. And this name triggered something. That would soon be, thanks to my game: I was going to craft my game by myself, alone, in the darkness, lit by the moonlight. Or by my 24” LCD monitor. So that’s it : Pierre D., it’s thanks to you I chose this name.

Blog-380x280-LW That’s how that name, “Lonely Wolf”, stayed. Slightly modified because let’s face it : “Lonely Wolf” is way too serious.

I was going to need to code. Me, a graphic designer. An employee of several communication agencies. Who was used to sketch, to doodle, to color stuffs. Whose mathematics skills were limited to adding, maybe subtracting, numbers with the help of my smartphone.

I may be exaggerating: after all, I still had some basis with ActionScript. So I convinced myself it was doable. I started looking for a framework that would meet my requirements : an easy language, an engine that would allow me to play with physics, and more importantly that could build for iOS and Android.

Anyone else would have chosen Unity. Me too, especially given the fact I had several occasions to work with it (although not directly) … And I knew Unity Scripts was really close to ActionScript.

Some games made with Unity (“Monument Valley”, “Hitman GO”, “Format.8”) : Unity Unity, the perfect engine for indie devs : because of its growing community, its various library and APIs, its impressive showcase (“Hitman GO” or the wonderful “Monument Valley”). And although Unity was mainly for building 3D games, it was absolutely possible to make 2D games (even if it was officially supported with Unity 2D later).

But I chose Corona SDK. A video posted on YouTube convinced me : in less than ten minutes, a developer showed how to make a mobile game, with a few lines of code, looking like ActionScript. At the end of the video, he showed it running on a smartphone, ready to be played, ready to get released on the App Store. Magical.

Other games made with Corona SDK (“Gravity Maze”, “Dumb Ways To Die 2”, “Out There”): CoronaSDK

Blog-380x280-Defaut After the order was done on Amazon, the book “Corona SDK Mobile Game Development” was finally shipped to my home (NB: this book is now obsolete on some points, but it is still enough to learn the basis). An easy-to-read book, with samples and exercises, that would allow me to “create monetized games for iOS and Android with minimum cost and code” (sic).

Within a few weeks, I should finally be able to make my childhood dream become real and craft my very own video game, by myself. Besides, within a few days, I already had a playable prototype.

Egz Devblog – Part 4 – Crafting a target render video

Blog-850x480-Cover
The gamedesign document was growing, so was the universe or the background of the Egz. One thing was still missing though : knowing what to stage. In order to do that, I would have to do some level design.

The goal was to show what a casual gameplay sequence of Egz would look like. And what the player would be able to do, what could prevent him to succeed and how he would finally manage to do it. Building a level basically. And necessarily, it first started with a piece of paper and a pencil.

Blog-850x480-Default
My inexperience in level-design

My only experiences in this field went back to 1996 and 2003. In 1998, I was still in high school and “Duke Nukem 3D” just hit the stores. My mother (god, if she even had a clue about what was inside this game…) agreed to buy me this book which explained how to build levels with the engine “Build”. It was fantastic : I did model my whole neighborhood, as the Duke Nukem‘s engine allowed me to. Which meant with big textured boxes and that was it. I was able to shoot some rockets at aliens who hanged in my streets. Or to give some bucks to some strippers who had chosen to stay in my virtual bedroom. That was cool. But the game was a finished product. And at the time, whatever I was doing, it was fun enough.

Blog-848x251-Book
Then, back in 2003, I was working in a small agency where we used to play some deathmatches at lunch, or even in the afternoon. Nothing else is better than killing a co-worker with an AK-47 in “Soldier Of Fortune II”, after a long day’s work. Or maybe, doing it in a level designed from the agency itself ! And this time, it wasn’t about just modeling it : it needed to be fun for every player. I remember that I had chosen to give some damages to the street, adding a scaffolding and even a crane, creating a bridge between buildings. I believe it was the first time of my life I understood those notions of “gameplay” and “level-design”.
blog_quoteinI don’t know what I’m doing,
but I’m gonna do it anyway!blog_quoteout
But all of this was ages ago. And the context wasn’t the same at all. Now, it was about creating a brand new gameplay and producing a level. Both things were obviously related. And this is what I was supposed to do. Without knowing how to. Even if, and I was already doing it without realizing it, I was going to move forward with this leitmotiv in mind : “I don’t know what I’m doing, but I’m gonna do it anyway!“.

Here’s the first level ever designed, with 2 differents paths :

MiniC

And here is the (unfinished) Target Render :



This was what “Egz” would look like. A platformer game, where you have to move an Egz by making him jump. You would have to aim with precision, to look ahead for bounces and take advantage of the level (using the vines for exemple), in order to reach the end of the level. Having a target render was pretty usefull. It allowed me to see how several things would work, or wouldn’t work.

The game has naturally evolved since, but with hindsight, I realize that I managed to stick to this “initial vision“, which I’m kinda proud of.

Once this video was done, I would be able to contact some friends and try to convince them to join me in this wonderful adventure that is “indie development”.

Spoiler alert : nobody joined me. Without even seeing the video. The reason ? “Lack of time”, “lack of motivation”, “this is too much work”. And I totally agree. Making a game requires a lot of personal time. Clearly, I was the only one in my entourage to be ready to do it. Certainly because this was my own fantasy. Or maybe I should have started this project with other people, from the beginning. Or, maybe, I was just a “lonely wolf”…