Tuesday, January 28, 2020

On Journey and destinations...

Sometime in April later this year, it's gonna be five years I'm working on LittleShadows without, yet, pusblishing it.

As cliché as it sounds, it has been a extraordinary journey and I learnt a million things along the way. I realized I could draw, may be not perfect, but acceptable elements for my game. I caused me a lot of trouble at the begining. I remember that I wasn't even able to draw a single straight line at the begining, and I was really putting all the process at doubt. Would I be ever able to draw something good that I could in my game?

That was hard. That was huge, but now I really enjoy the process and I'm delighted to paint in particular textures or light or shadows, things that make my environment looks more realistic. Painting is nice and relaxing, and I really enjoy the state of mind I'm in when painting.

So next time you have a hard time mastering something, remember, the first steps are generally hard and not really enjoyable, you have to seek pleasure in the long run.

I had also some bad times with my ideas. Or, more precisely, I had too many ideas which were not coherent at all, a complete mess of threads of ideas! That was a concern because I felt lost and deseperate, without being able to tell which idea was the best, which one I should follow, which one would help to have more view and foster interest among potential players.

At some point I then decided to split the game in two: one was a classic RPG named Ashes and Souls the second was and will ever be my beloved LittleShadows, my first game, my little baby!

I felt more confident in making it and felt empowered. I was making consistent progress. Slow, but consistent. At some point, at the begining of last year, I thought it might be a great idea to release a small plateformer using the theme of LittleShadows, but simpler  with simpler goals and achievements, in order to gain a bit of experience in the "releasing" phase of the process. But the game was so dull that I end up terminating the project itself to go back working on LittleShadows.

Then came the main idea, that I can't really reveal here. The central idea of the game, that I was more or less chasing all this time. I had a theme, I had some elements, but I missed one key element, a glue that would fit everyhting in place.

This idea came somewhere around first quarter 2019, a bit late after so many years of attempting the game making experience. But I knew that I was in there for a long run and all what I learnt wasn't just for nothing.

The journey worthed it, eventhough I realize now how many time I spent in dead ends.

I hope I'll learn from my mistakes.

Wednesday, March 20, 2019

Introducing LittleShadows!

Well, I know what you're gonna say. Five years in "production" (note the quotes) and still have to introduce the game, eh?

Making a game during your spare time is not an easy path, and I have been through, like most of game devs I guess, times of doubts, fear and desesperation. I changed my mind a thousand time about the story and the gameplay induced by that story. I wasn't clear in my mind, which is why I wasn't making progress in making the game. But the large majority of my doubts were coming from the feeling that I didn't get the right idea, the concepts I was coming with were not creative enough. So: no progress at all on the game side.

However my skillset was progressing starting litteraly from zero except on the coding part. During the day  I'm a developer for scientific application, a job I enjoy in a good company, but I don't have the thrill of designing my product. My logical brain is extremely active but my "artistic" brain is not sastisfied enough with it, so here I am.

There is more to it, of course. I have been dreaming making game since my parent bought me the Famicon, back in the late 90' (shame on them ;-)), but always thought that would be impossible. Back in the nineties, sure it was, but now that's completely feasible.

Let's go back to LittleShadows. It's a small atmospheric game, taking place into a dark world, where you have litteraly to control light to "kill" darkness. And there is a twist to it, that can't be revealed (spoiler alert!! :-) ).

I hope you guys enjoy the latest snapshot I'm posting because this is the way it will look. The story is straight and done in my head, and now on I'll be focusing on implementing the right gameplay for it. The story and the gameplay are deeply intertwined and it has to be subbtle.

But that's the topic of an other post !

Friday, February 15, 2019

LittleShadows, 2019 and release.

With the exception of a very crappy AngryBirds' clone, Little shadows is my first video game project. I've started joyfully back in the first months of 2014 but the game is still not released.


Because I wasn't sure about the game mechanics. My graphics were so so, specially the "color" palette, and I didn't known want I really wanted to build.

 In five years I've improved my skills a lot: in game design, drawing and developing game features using Godot, my beloved editor. I've start three dozen of projets, such as Ashes and Souls, Monster Island or the LightHouse Man. So of them are, to me, great and have some potential, but I still haven't finished my first game, LittleShadows.

This is the first thing I want to resolve in 2019 by finishing, shipping and (maybe?) selling LittleShadows.

I have scoped smaller levels, but more of them, each of them highlighting a specific feature. I have improved the visual consistency by sticking to a simpler color palette. I'm developping monster bosses and secret area that the player will have to find and unlock. I am, again, having a lot of fun developing this little plateformer in a limbo-like style.

I will try to finish it fast. Not because I think it doesn't have value but because I think I spent too much time being finicky. I'm going straight to the point.

I know what to build and how and that is a LOT of FUN !

Stay tuned.
 I mostly post on twitter https://twitter.com/thomas_laverne

Friday, March 16, 2018

Porting to Godot 3.0

Last weeks, I've been doing little things here and there apart getting organized. My main current struggle is porting littleshadows from the version 2.0 of godot to the 3.0 version. Godot is the game engine IDE I'm using for developing LittleShadows, a lovely piece of software extremely well designed which meet all the requirements of "how easy can we do things?" list. Even the hard one.

It's hard for me to be truly objective about Godot since I'm really loving it, however changing from version 2 to version 3 is a little bit of a headache for me. Which is a good sign, showing that the community (yep, it's an opensource project, dude, you can participate!) have been relentlessly developing and expanding it. But the transition from one version to the other isn't truly complete, just a mere tool to avoid to redo too much of work.

I completely understand, I'm fine with that! And the number of people having to port their game from version 2 to version 3 is probably very small (and their game also I presume). But, oh boy, it's a hard time for me. The community (well, Rémi and Juan :-) ) has been very helpful anyway fixing bugs almost on demand, in particular on specific bug I had on the import of the rotation properties in the AnimationPlayer, the node responsible for creating and editing animations (moving nodes, sprites, creating particles, etc). The rotations were inverted, meaning that most of my animations were going backward instead of forward!

Then many other things went a little bit wrong: methods in animations weren't there anymore, the opacity property has been moved to the color selector (meaning that all tweaks of opacity during animation were... cancelled), the particles system changed so much that I have to redo all of them, the lighting properties of the sprites have been changed to CanvasMaterial meaning that I have to recreate them as well. That was for the dark side.

However there are of course a  lot of benefits including: delaing with colors directly at the tilemap level, advanced options for properties, new KinematicBody2D with improved behavior for physic, and WorldEnviroment allowing to add screen space effect like bloom, blur, hdr etc... That's super cool and that motivated my choice to go for godot 3.0 version, plus all the potential of new bug fixes and support of new devs.

Sunday, February 26, 2017

Sundays afternoon with Godot: E01-Collisions

Varying the environment is necessary to make the game less boring. I give here some examples implemented in LittleShadows. You'll see how easy it is do that with godot! First, here is the resulting video:

First of all my main character, the little girl, has several collision layers and masks.

It decided to keep it easy however, you'll see how I dynamically manage some bit masks to alter the behavior. The first collision layer is used to collide against the main tiles of the tilemap which is used to create the ground and walls. The two layer masks are used to detect collisions against ennemies and objects. Additionaly, the collision layer no. 4  (and not mask) will be dynamically set when the girl touches the ground and removed when she jumps or the move down button of the joystic is activated.

Stairs: Stairs are important element of a platfetormer game.In the case of LittleShadows, the stairs are distinct elements from the basic tiles used to create the ground which are gathered in a single tilemap. n the contrary the stairs are a special "scene" or node.

In blue you can see the collision shapes of the the tilemap and in red the collision shapes of the stairs. In order to make a smooth transition between the ground and the stair there is a gap between them, allowing the collision shape of the girl to pass in front of the stair without noticing it. If the player wants to move on the stair he or she only needs to jump. The stairs are in collision mask 4 therefore as soon as she jumps the collision is not detected so she can pass through. However as soon as the Ray2d detecting the ground collides with it, the collision layer 4 of the girl is set back to true allowing collision.

Scaffold: The scaffold uses the same principle allowing to get down from it using the move down button of the joystic.

That's all you have to know to set interesting rules of collisions!

Friday, January 6, 2017

In-game footage

Sooner this week, I have uploaded an in-game footage of the game. I got some nice feedback from social network, which made me rethink the visual look of the backgrounds and the animations. Is always good to have some constructive feedback from people not involved in the dev process.

The forest bakground will change quite a bit and ressemble more to something like this, with more pale tones. 

I'm so excited! Moreover it helps me to construct the game's story and move it forward, so I can't wait building more elements and showing them. 
Soon !