GRaAL

LD 38

Inspirations

Did you read the «I am legend» book of Richard Matheson? It is awesome, and our Protolife game got some thing from the book: the hero lifecycle. Maybe you remember how it goes:

IAmLegend25028.jpg

  • Day:
    • Repairs what is broken
    • Builds something new for defence from vampire attacks
    • Kills asleep vampires
  • Night:
    • Waits until vampires attack ends

During our brainstorm we found that this lifecycle fits well the tower defence gameplay. We switched setting to micro-life to fit the theme, otherwise - who knows - may be instead of battle with gray-red infection you’d messed up with vampires 😃

BTW, that is reason why two main tracks are called «Day» and «Night». Maybe it is time to listen to them one more time - and imagine yourself as Robert Neville locked in his own fortress-house.

https://soundcloud.com/alexey-grishin-1/sets/protolife

What books, movies or games inspired your games?

LD 39

Pre "We are in" post

Hey there!

We («Volcanic Giraffe» team) are surely in this time (jam, as usual).

Our PR guy is preparing the big and beautiful promo post. Until then let me share a little game. I’ve started it to try some grass physics and ended with something what my 2 age old son very likes. He still doesn’t know how to say «wind» or «owl», but he likes to play hide-and-seek with owl (even owl doesn’t play with him - it tries to catch mouse :) ).

owl5.gif

Did you ever create a game specially for children? While they small they don’t need AAA games with realistic graphics. Just smiling sun sprite - and they are happy ^_^.

Get tired? Get Tiled!

Do you know that Tiled is something more than just timemap editor? It allows to put some useful meta-information on map, so you may not only paint levels, but change the behavior if needed.

In our Galvanica game we «painted» ship’s inner walls in Tiled, like this: Tiled screen with walls

Then we added Objects layer called «zones» and located logical rooms and doors between them. Each room has unique id, and each door - list of room ids. This is used to process hull breaches (when ship is damaged by asteroid, for example) - the whole room is grayed out and doors locked. Multiple room zones and doors over ship walls

Next useful layer - is «objects» layer. This is how the items are located within the ship. Initially we generated them in random places, but that did not look accurate, so we decided to place them manually: Mess of rectangles with text

The last layer - is «waypoints». After previous LDs I was lazy to implement A* one more time, so I just drawn possible ways in Tiled, like this: Nobody reads alts of images

Each moving object (alien, for example) follows these waypoints. When it finished its way, it looks for nearest waypoint and moves further. Someone may say that there will be problems with obstacles avoiding, but actually there are not the problem: aliens just eat anything on their way.

Sometimes hardcoding is just enough (that how we did in LD38), but powerful level editor like Tiled may save your nerves in many cases. Which good tools you using for level designing?

("game" in game) === true

If you already played our Galvanica entry, you might notice that some dialogs contain minigames - small games inside big game. We added them to diversify gameplay a bit and found that it was good idea. minigame1.gif minigame3.gif

Each minigame is very simple, so we didn’t use game engine’s capabilities to create them (except key pressing detection). For each of them we just draw pixels over relatively small canvas. So that was an interesting challenge inside a challenge - creating playable piece of…code with just plain old HTML5 canvas. And insert it inside Phaser.js game 😃

Here is «catch the container» minigame. minigame2.gif And here is how its code looks like - pretty small, I think. Listing.png

So this is how they done. Good luck and remember - potatoes are rich in calories, don’t hesitate to throw it into furnace!

tutor1.gif

To fix a spaceship while flying

Boring technical guy from Volcanic Giraffe is here. If you don’t want to yawn while reading about coding stuff - better check our Galvanica game. It is much funnier that its source code :)

A good thing in JS-based open source game engines like Phaser.js is that you may patch them if needed. Phaser.js has structure obvious enought and lot of in-code comments which very help to understand what is going on. Some things could be configurable, but they are not for performance issues. Well, we are programmers here, aren't we?

One of problems we met: if one sprite is added to another one as child, it is drawn OVER parent sprite. That’s very useful if you want to draw a gun or some clothes. But we wanted to draw a shadow, and it shall be drawn UNDER parent sprite. Why to add it as child? Well, we’d like shadow to «inherit» some properties of main object (position, alpha, rotation, etc.). If not adding as child - we’d have to apply sprite’s props to shadow manually on every update.

Here how it looks by default: before.png

What we did: overriden _renderWebGL method of Phaser.Sprite in our BaseItem class and changed order of rendering patch.png

So, how it goes now: after.png

Much better, isn’t it?

Did you even fix/patch your game engine code during LD? It shall look like burning spaceship furniture in its furnace while flying… oh, wait, this is what Galvanica is about!

LD 40

just.draw(this)

Hi there! We are Volcanic Giraffe, we are in for 5th time, and it will be hard to improve our 22th place in Jam, but we'll do our best!

You've probably noted that our team has a great artist - just look at these title screens from our previous games! Galvanica, Rent for 60 seconds, Ancient Contact

But sometimes I (a programmer guy) have to do something by myself. Will I try to draw something…? Maybe in Photoshop…? No, I’m a programmer, aren’t I? Let's generate some graphics!

For example, in Galvanica we needed moving stars on the background. Shall I ask our artist to draw some dots? Naah, he is busy with the chair painting, let’s just put some yellow spots randomly. Stars

You may say: «Ha, that is easy. What about something more complex?»

Well, here is fire sprite drawn by our artist: fire0.gif And these ones are code-generated using particles: fireem1.giffire/em22.giffire_32.gif

And this dangerous-like mass is also completely generated - our artist just adjusted some colors to fit the overall style. danger1.gif So what I wanted to say: even if you are not an artist and cannot paint something beautiful, you still may code it! Looking forward for your games with generated assets. Maybe did someone generate some music? Levels? The whole game? 😃

LD 41

Pre-LD entry

This is Volcanic Giraffe again.

As @icxon wrote in previous post, we are hardly working on Protolife game, started in LD38. But it doesn’t mean we don’t prepare ourselves for LD that coming. A month before LD - good time to try something new.

Unfortunately, we didn’t try Phaser 3 - it looks great, but it very differs from Phaser 2. It is important to be as productive as possible at LD, so we’ll use tools we familiar with. Instead we experimented with little effects that can make an environment a bit more alive.

Meet grass: weather_grass.gif

Meet water: weather_water.gif

Meet fire: weatheremfire/emtrees.gif weatheremfire/emgrass.gif

Meet weather change: weatheremhot/emcold2.gif

Here you may check this demo in runtime: https://alexeygrishin.github.io/ld-prepare/game14/index.html

Warning: it may look corrupted for some graphic cards due to shaders not tested properly. Another reason it may look corrupted is that I made it without our artist :)

Good luck everyone! I hope we'll see a lot of amazing and beautiful games this time - as usual.

LD 43

Volcanic Giraffe is definitely in

Volcanic Giraffe here again, going to make something great.

We are going to use again old good Phaser 2 for coding (maybe for last time - Unity tutorials await us), Photoshop for graphics, Audiotool for music and hot pizza for eating.

Let's have some fun!

By the way, this month we updated our Protolife Game on Steam. That game has grown from LD38. So let's watch how many new titles appear after this LD :smiley: protolife-gp.gif

Good luck everyone!

SHADOW IS THE ENEMY

That could be a good theme for next LD (nope), but actually it is what I feel each time trying to add lightings to 2D Phaser games. During developing NOPE I knew that lighting is required for horror atmosphere, but the only thing I had time to do is simple circle lights (which ignore walls and doors) and... what, are these shadows just 2 stretched rectangles? Yes, they are:

Снимок экрана 2018-12-09 в 23.58.25.png

I have a lot of free time (nope) so I read lot of tutorials about lightings and shadows. As result, I'd like to present you post-LD version of NOPE with valid shadows, like that:

Снимок экрана 2018-12-09 в 23.58.39.png It is better understandable in motion:

LD: shadowrun2.gif Post-LD: shadowrun3.gif

Yaw, light of flashlight does not pass doors! But if you open the door - it will:

doorlight2.gif

So, I've spent additional 20 hours of my life to fight with Phaser reality. Maybe it is time to learn Unity. Or Godot. Or... Well, what would you suggest for a game like that?

LD 44

Any Game of Thrones fans jammers?

Just interesting what are your plans for Sunday's evening (or Monday's morning, like here in Russia). Do you plan to watch 3rd episode during jam? Or will you concentrate on jam instead (and have big risks to get spoilers in news feeds :))?

My choice is to finish jam first and enjoy(I hope) the show next.

Ludum Dare 46

I'm In

Here is GRaAL from Volcanic Giraffe. You may know our team for 10 strange games we made latest 10 LDs. All of them have bad controls and a little bit mad combination of art, music and gameplay.

This time we decided to go solo. Why? We just want to make 3 mad games instead of one, of course :) Or we just a bit tired of each other and want to make something by our own. That will fail, and we'll see again that we are more powerful as a team :)

I'm going to use Godot (yeah, that is another reason to get Solo, bye-bye Unity!) as game engine, Audiotool for music, Piskel for pixelart (but maybe I'll draw something by hand). Not sure will it be Combo or Jam, I just will not have enough time to make something (isolation with kid does not increase productivity).

Good luck to my teammates! I hope you'll make something great and unusual, some unexpected "wow".

Good luck to everyone!

Working hard

Today was the only day I can spend on LD, so I've tried to complete as much as possible.

Right now I have almost finished entry. If I had 24 hours more, I would do many thing: introduce more enemies, more levels, make better graphics/effects. But unfortunately I will have no more than 2-3 hours, so... will try to add some levels.

Снимок экрана 2020-04-19 в 3.04.11.png

Going to sleep now. Good luck!

Character design

Realized that just circle with heart inside is not what player want to take care about. So goodbye white circle with heart...

aban1.gif

And hello white circle with eye and sparkles!

aban4.gif

Well, I'm not sure it is really better, but let's stay with that.

Finished compo

I can't believe I'm done.

I remember all previous times when 3 days were not enough for jam, and this time I was able to reduce the scope and expectations and produce something playable in less than 48 hours (actually I've spent less than 24 hours in total).

It is definitely not the best game comparing to our team's game, but for me it is good enough.

abanemrel/em2.gif

Submission: Abandoned

Pixelated eyed circles wait for you :)

P.S. BTW, don't you know why my game's page URL is ugly ? (it is https://ldjam.com/events/ludum-dare/46/$183942). I see that other games has normal URLs with game name.

This creature is wounded

This creature is dying. aban7.gif

You have to keep it alive, because without it you cannot pass the light wells.

aban6.gif

But what if you found exit from dungeon. What if you don't need the creature anymore.

Will you abandon it?..

aban8.gif

Find out here: Abandoned game

Physics in grid-based games

Abandoned is a grid-based turn-based game. What could be easier?

Years ago I did such games the following way: * I have 2d array, every array item describes what is inside - wall, hero, enemy, etc. * When I need to check movements - I lookup 2d array * Need to check sight - lookup 2d array * Need to find path - lookup 2d array.

Now I get modern engine (Godot, but Unity has same problems) and visually put all my objects on scene instead of filling arrays in the code. That is amazing, really. But it becomes harder to check collisions the old good way (as I don't have grid coordinates, just "world" ones), so I have to use physics collisions. Not have to, but physics collisions are easier to use (on collide event - that's really helpful). So when I need to check movements - I use raycasts. When need to check objects on sight - use raycast or collision areas.

Снимок экрана 2020-04-22 в 11.25.05.png

And that is easier to use with Godot and Unity, but for me - it is waste of CPU resources. 2d array would provide same functionality, and processing of that will not take time every frame to calculate collisions, and so on.

What do you think? Usage of physics is evil for grid-based games, or that is ok? Would you use physics for checkers or chess?

Didn't want to just create self-promotional post

But here I am.

I've been thinking about interesting engineering details or hacks I could talk about, but... nothing interesting in the code. Also nothing wrong with Godot I could highlight...

So just want to say that this is first time I made multiple endings in game. There are 3 endings. All of them depend on last mission, and none of them is happy ending.

Could you find all three?

abanemrel/em2.gif

Find out in Abandoned game

Graphics update?

People claim that graphics in Abandoned game is something from 1996.

Here how it looks now: abanemrel/em1.gif

Ok, I agree: my pixel art is still not great.

I've spent some time after LD trying to find better vision, and here is how it may look like: aban13.gif

What do you think? I'm going to create post-LD version with updated graphics. Would you be interested in that?

Continue working on graphics update

Still working on new graphics for post-ld Abandoned game.

Initially I wanted to spent 1-2 days for that, but actually 2 weeks passed. I'm very glad that I did not tried to achieve graphics on LD :)

Unfortunately I'm not able to create WebGL build with new graphics, only native ones. Something is wrong with my optimization skills, or maybe I misused Godot features, but exported WebGL is completely unplayable. Maybe it was bad idea to have wall rocks as separate meshes?

How it looks like now: ezgif.com-gif-maker.gif ezgif.com-gif-maker (1).gif

And how it looks like in LD: abanemrel/em1.gif abanemrel/em2.gif

Abandoned Post-LD

I've decided to release Post-LD version of Abandoned game.

It has better graphics (I hope), is in 3d, available for win/max and not available for webgl.

That was my first experience in 3d using Godot. And I like it, except problems with webgl build. Maybe I just used too much particles, shaders and meshes, but webgl build was unable to run...

abanem3d/em3.gif

Here is the link: https://graal.itch.io/abandoned-3d