About gre (twitter: @greweb)

Entries

 
Ludum Dare 34
 
Ludum Dare 31
 
Ludum Dare 29
 
Ludum Dare 28
 
Ludum Dare 27
 
Ludum Dare 26
 
Ludum Dare 25

gre's Trophies

you have been in Helevenium #LD29
Awarded by alvivar
on May 19, 2014

gre's Archive

DataViz: 1752 parties, 11 maps, 208 players

Posted by (twitter: @greweb)
Saturday, December 20th, 2014 3:30 am

Screen Shot 2014-12-20 at 11.31.45

Here is a data visualisation of the 1752 parties played by 208 players on my game over 11 different maps (these past 11 days – each day generates a new map), showing where ☃players died leaving a carrot to the map forever!

 

format:

 

– JPG (10 Mb)

 

– PNG (20 Mb)

 

You can observe that some roads was almost impossible to cross, especially the one describe in my previous post.

surprising daily randomized map

Posted by (twitter: @greweb)
Wednesday, December 17th, 2014 4:33 am

As previously explained, the maps of my compo (http://ludumdare.com/compo/ludum-dare-31/?action=preview&uid=18803) are designed to be randomly regenerated everyday (so are highscores) to provide daily a new player experience.

Today’s map is very special (difficulty is quite high) and shows patterns that has never been discovered in the past days! As the developer of this game, I was very astonished and excited when playing today’s map this morning.

Today is about surviving to snowballs! i.e. not growing too much to be able to cross roads!

 

2500 – rotating snowballs spawner

1

8000 – wave of snowballs before a 4-ways road!

2

 

Look all the carrots people have left here!

Challenge: Will you be able to traverse the deadly road?

 

a fresh map generated every day!

Posted by (twitter: @greweb)
Friday, December 12th, 2014 4:16 am

in , you have everyday a chance to be on highscores with a fresh map generated per day!

You will find different challenges everyday, today’s map is quite interesting and challenging, at around 7000 you will see a 3-ways road preceded by a snowball spawner. Snowball are generally beneficial because it helps you survive of the melting, but when you get too much snowballs you start to be bigger and bigger, which can make the road crossing impossible!

Technically the map is randomized with seedrandom and using a seed based on the day timestamp.

 

Note: This feature was here from the compo version but I forgot to communicate on it :-) I wish it will be enough addictive and will make you come back every day!

Postmortem of my Ant Sim Game

Posted by (twitter: @greweb)
Monday, May 5th, 2014 1:18 pm

“Anthill” made in 48 hours by @greweb

I enjoyed that time a lot. What changed from the previous Ludum Dare for me is that I’m now —and happy to be— a father, and I’m enough trained to wake up at 3am so I could be there attending the beginning!

I haven’t played any Ant Simulation Game but I recently played a lot “Banished”, an awesome city-building strategy game, and I was inspired by the “assign jobs to people” gameplay of this game.

Developing a complete game in 48 hours (including sleeping) is tough, especially that it is also about making the graphics and the music!

The game resulting of these 2 days is more a prototype than a finished game: the simulation remains minimalist and fastly boring, the food is the only resource you have to care about.

Here is a 300x accelerated screencast of the developement of “Anthill”https://www.youtube.com/watch?v=VhH7of4gAHk

What went right

Music

Best achievement of my LD entry was –to me– making the music.

I’m not a musician, neither a pianist, but I played a lot with Audio the past year and I’ve managed to make a music for this game —and had a lot of fun making it. I’ve used my Yamaha P105 as a MIDI controller for making the game music and connecting it to SunVox, a modular tracker software.

Play the music – feedback appreciated

 

https://soundcloud.com/greweb/sets/ld29-1

 

Most of the notes you heard have beenrecorded live from my hand, and I was quite proud of that, because I’m quite a noob on a piano. Doing that way, you keep some imperfection in the music (little delay on the notes, especially in the intro music) and I think that sometimes makes the music better.

I’ve talked a few times about SunVox, also I still want to make my own web version of a modular audio tracker that anyone (first myself!) could use and also could embed live in the game (and, for instance, having game variable impacting the audio experience).

Graphics

Also, I’m more a developer than a graphist so I would say this was a success^^

Using a library

I’ve entirely focused on making my game rather than making the technical stack. Usually, I tend to develop my own framework with the game. It is good to learn and discover some cool ways of programming a game but this time I really wanted to get things done…

Phaser.io

…so I’ve used Phaser which is a trendy and awesome framework. It is also built on top of thePixi.js rendering library (I used in LD27) and p2.js physics engine, which are two brillant and performant JavaScript libraries.

Hopefully I started my project with a “Phaser template” I bootstraped during the previous warmup weekend. I’ve still lost some time playing with the Phaser API but I could have relied on Phaser features and performance so I think it worth it the second day.

Google Hangout with Ludum Dare friends

I used Google Hangout during the whole Ludum Dare, as a way to put my webcam in the timelapse, but more importantly to have other Ludum Dare friends coming in it!

This was a cool first experiment as an alternative to the “stream my dev” approach. It was quite fun and social to have @mrspeaker showing me his crazy Metal Meter game advancement.

What went wrong

Achievability

My initial plan was too ambitious. It seems to always happen with me: I get the first day a lot of ideas and motivation, and I tend to underestimate the work to be done. Then at the end of the first day, I’m frustrated to find out I won’t have enough time to do all my plans. Indeed it is good to have a lot of ideas but, next Ludum Dare, I’ll try to be sure to have achievable goals.

Next time, let’s remove half the features I establish!

So, the second day morning, I’ve been replanning from scratch and reprioritize my features to basically have something finished and working as a game. Because of this decision, the result you can see is a game, but far from the one I originally wanted. This version is only about digging, collecting mushrooms and avoiding stravation.

Also I originally scheduled to work that way Day 1: developing-only, Day 2: music and graphics + new features. I’m not sure this approach can really works, especially it doesn’t scale, we better work by adding complete features one after the other. That theorically works, but it is however difficult to apply in practice with the stress of the Ludum Dare countdown!

Path finding performance

Implementing my own path finding algorithm was fast but not optimal at all because of performances! I recently released a bugfixed version which just use an existing path finding library to fix my bad implementation and also to avoid an ant to request path finding each frame when looking for a task to be affected on.

Finding the good simulation parameters

I underestimated a bit the amount of work needed to find the good parameters of the simulation. Those are very important to make the game well-balanced (e.g. not impossible but also not super-easy), I don’t think I found the optimal parameter in the released version.

I think I need two important things to make this parameter search easier:

  • a framework to maintain parameters presets and change them live.
  • make the simulation running at any speed to ease the development. (faster simulation)

[bug] A task is not always completed by the closest ant

There is a inconvenient proximity bug in my game that you may have noticed: when a new job is created, it may happen that, even if a ant was here nearby, a very far ant is assigned to this job.

I’m using a foreach ant in noJobAnts { findAntTask(ant,availableTasks) } loop. In this first approach, even if a ant will take the closest task in findAntTask, the first assigned ant will occupy the task even if a closer ant was after in the noJobAnts list.

Another approach to solve this issue would be to do foreach task in availableTasks { findTaskAnts(task,noJobAnts) }. In this second approach, the findTaskAnts should sort the noJobAnts list for the given task proximity.

However it is not that trivial because tasks also have different priorities for a given ant, and findAntTask solved that. In my original plan, there is some basic tasks like “clean the dirt” or “clean the corpse” which can be done by any ant. However, a specialized ant (let’s say an Harvester) may have some more important tasks to be done first, so this is why we need this priority.

In other word, fixing this bug is not trivial and I need to find the optimal loop for that!

To be continued…

I really wish to continue this game because I enjoyed making it and I would enjoy playing the one I have in mind! Time will tell if I can accomplish that wish!

Timelapse of “Anthill”

Posted by (twitter: @greweb)
Sunday, May 4th, 2014 2:57 am

As it is the tradition in LudumDare, here is the Timelapse of my game.


Video

I’ve used my own script (for MacOSX) to capture the screen each 10 seconds, and then fed the images to ffmpeg to generate the video. If you are interested by the scripts: https://gist.github.com/gre/11219793

I also used Google Gangout in the whole session, as a way to put my webcam in the timelapse, but more importantly to have other LudumDare friends coming in it :-) As you can see @mrspeaker appeared a few time in the timelapse showing me the advancement of his crazy Metal Meter game (well next time we may try to be on the hangout longer). 2 LudumDares ago, we experimented working our entry the whole saturday in a Paris Starbucks, this was a bit crazy with all the tourists.

I think this Hangout approach is a nice alternative to the classical Twitch stream. It is much more powerful actually because you could easily stream a Hangout back to Youtube, and Google Hangout is so easy to use from a computer or a phone!

LD27 Post-Mortem

Posted by (twitter: @greweb)
Monday, August 26th, 2013 8:49 am

Screen Shot 2013-08-26 at 1.25.09 AM

Here is my game: Mission Mars.

I had so much fun making it and I was happy to finish it in time!

That weekend was crazy, that “sleep – code – eat – sleep – code – eat” kind of moment.

This is my first HTML5 platform game I ever made. Technically, I used Pixi.js for the rendering, Backbone.js for the models & events and Q for Promises.

My goal was to make something done and polished – graphics may have been a bit better but I think it was so far the most finished game I ever made! (At least I have an intro, some dialogs and a story, not just a demo as I used to do.)

> Day 1

IMG_20130824_090849

I started the day by brainstorming some ideas in the train in my way to Paris.

Then I joined @mrspeaker to some coding session all day long at Paris’ Starbucks, that was fun, may not be the most productive idea though!

BScw4D-IcAAWXbd

Back to my game, It turns out that I wasn’t fully prepared: I’ve implemented all the game core logic from scratch: implementing my own collision detection (+ re-writing it twice!), implementing some classic platform game mecanisms like gravity/walk/wall/platform/jump/climb-on-ladder features… so I lost my first day having a prototype working! At least, I finish up the level design the first day.

> Day 2

Second day was more productive back home! I plan to only do graphics/audios/dialogs/polishes that day. However I still found some time (up to 2 AM!) to add the boss level, I won’t spoil it but I didn’t have so much idea for it so I end up with mixing a classic video game with my platform controls!

I found the usage of Promises to organise code and pipe the scenes flow quite powerful…

BSjPN_zCIAAHGWf

 

 

Final words

I hope my game is not too hard to finish. If you have any questions and suggestions feel free to comment. Congrats if you reach the end :-)

Thanks!

 

 

[cache: storing page]