1. Designing Ernesto *Live* this wednesday

    image

    Every now and then I design a level or a new mechanic live through Twitch, an online streaming service.

    Tomorrow we are going to try a new kind of level for the game that is very puzzly and might prove interesting!

    Like I always do, a disclaimer: I am going to be *designing* the game, not giving a lecture, so there is no guarantee that we’ll get awesome results, but you’ll see in full honesty how I design games.

    Date is wednesday the 6th of January, 13:00 PST at:

    http://www.twitch.tv/danielbenmergui

    (you can subscribe to my twitch channel if you want to get notified when it starts).

     


  2. Today I am going to try to design an Ernesto boss live, through Twitch.

    For the past months I’ve been occasionally streaming myself doing level design for Ernesto only for the local dev community, but it was always small levels. Today I feel like it’d be fun to do a boss.

    image

    How is the boss going to work?

    A couple years ago I participated of a Depth Jam with Marc Ten Bosch, Chris Hecker and Jonathan Blow, where we discussed deep game design issues of our games. There I learned from Jon the concept of “Forward Game Design”, which consists of thoroughly exploring interesting consequences of your current mechanics instead of planning levels and changing your mechanics to fit them (which may be called “designing backwards”).

    So far, it’s been pretty successful for Ernesto and I don’t think there is a better way to do design for it. But how does it work to do forward game design everyday?

    For me and Ernesto, it means sitting down, proposing level layouts semi-randomly (there’s an instinctual component there) and then playing as if I were a player, trying to solve it and see if it’s solvable and interesting to play. This technique feels very weird at first and it seems like it is completely random, but it turns out it yields results pretty often, and the levels I made this way are interesting, uses the mechanics deeply and I could have never come up with just by brainstorming.

    So for this boss, I have a small idea but I don’t know the details yet. My plan is to sit down, try it and adapt to whatever happens then.

    How do I know I’ll make a good boss that way?

    I don’t. Part of doing forward game design is being flexible, accepting that sometimes you’ll end up with a great level, a poor level, or no level at all. If you come watch don’t expect a glamorous stroke-of-genius performance; you’ll see me flail around until I hit a gold vein or give up. Maybe we’ll end up doing something entirely different.

    Why would I do this?

    The most I learned from more experienced designers is by watching them work and sitting with them to help them, not by talks or design books, which are often a (wrong) rationalization of their work or are missing key information that the designer deemed irrelevant or not developed enough to include.

    I only started to apply this forward game design and I am enthusiastic about the results, so I believe it’s useful to share it even if it breaks down any romantic idealizations of how I create games.

    So something I can guarantee is that you’ll see me design exactly as I design every day, which I wish I could see from other designers as well!

    When?

    Today, November 18th, at 14:00hs PST.

    Subscribe to my twitch channel to be alerted when it happens: www.twitch.tv/danielbenmergui

    Disclaimer: it’s the first time I twitch in english which is my second language and my brain will be extra busy with that. So please be patient with my language and my slowed down thought process :)

    Note: people not in the US, if while watching twitch you have constant freezes, you can use tardsplaya, which increases the delay but eliminates the stuttering.

     


  3. Reasonable Loading Times

    For the past month we’ve been adding tons of new images and animations into the game using Flash movieclips, which make the game look great.

    image

    However, at this time we have 2000+ frames and we need to cache them into bitmaps at loading time in order to get a solid 30 fps during gameplay. We do this in runtime because we want to get the best possible quality for our sprites in any of the wild variety of PC monitor resolutions out there and rendering native vector graphics gives you the best resizing quality, contrary to just resizing a static image.

    This came at a very high cost: loading the game took 8 seconds. Now even if this sound okay for a game, it is very bad for development, because we re-run the game very frequently and waiting that long has an accumulative cost of time, lost focus, etc. We needed some caching strategy.

    Storing the rendered frames into disk sounded like a good way to go about it as the resolution of a PC tends to be stable once you know it. Unfortunately, Adobe AIR does not offer a way of loading pngs in a synchronous way and the way Ernesto works is not compatible with assigning stuff in events (I am not even using the DisplayList). Loading pngs by hand is so slow it is even worse than prerendering the Movieclips into bitmaps every time. I was stumped.

    But recently I came upon an article that pointed out one thing: BitmapData can do getPixels/setPixels using ByteArrays! So what I am doing now is storing the raw bitmap information into disk using getPixels and loading it using setPixels. The gain was almost 10x!

    My times for ~2000 frames (actually ~370 files, as I am storing individual animation frames of the same Movieclip in the same file):

    • Storing with compression: 26 seconds
    • Storing without compression: 14
    • Loading with compression: 1.32 seconds
    • Loading without compression: 0.87

    In case someone cares about this, here’s the code I use to load and store BitmapData.

     


  4. It’s been a while since we made an update because of big changes both technical and in game design:

    Archipielago

    The game is getting bigger and thus we needed to have worlds to place all the dungeons and buildings. We implemented a “zoomed out” map and now you can walk around in a bird’s view of Ernesto’s brand new islands.

    image

    (graphics are work in progress)

    A Puzzle Game with Crawler Elements

    The early prototype of Ernesto was a crawler with puzzle elements, but its alignment has shifted and now it’s more of a puzzle game with crawler elements. However, levels feature multiple solutions and tradeoffs. Right now the game has 50 levels of unique ideas and we are just getting started!

    image

    Stuff we are working on now

    • Jeremías keeps improving the visuals. Next build will feature more animations as well because they seem to work great to communicate gameplay in this game.
    • Narrative! But not in the traditional sense…
    • More levels, more bosses, more interesting mechanics.
     


  5. Ernesto at PAX

    image

    Last weeked we showed Ernesto at PAX within the wonderful Megabooth initiative. For this end, we made a special, self-contained demo world that can be finished in a few minutes, along many improvements and new art assets.

    I manned the booth myself for 4 days but took frequent breaks so in the end I was exhausted but not in pain, thanks to Ernesto being such a hands-off game: people could pick it up and figure out what to do without me guiding them, even though the core mechanic is different from other RPGs/Crawlers.

    However, I happened to notice that the game is too visually static when you are not playing, but Chris Hecker, dev of the wonderful Spy Party, suggested I implement an “attract mode” where the computer plays the game by itself; so I did, mostly in the very show floor:

    image

    It was very rewarding to see most people pick up the game, figure it out, solve puzzles and struggle against the tricky bosses until beating the demo. It is certainly a departure from my previous games, which were always a bit less accesible. I decided to let everyone who beat the demo put a sticker on the sign, a privilege some people used to troll my name (which was misspelled by the organization, *sigh*):

    image

    Ernesto is beginning to take shape and solidifying into an actual game, and we are starting to work on something big that we believe will make it a way better game. We want to try a bunch of ideas as well, so I am very happy about being working on it and the reception it had at PAX make me very positive about the future…

    It was also a good opportunity to meet old friends, let them play my game and also make new friends:

    image
    Camera got blurry at the awesomeness: Droquen (Starseed Pilgrim), Marc Ten Bosch (Miegakure) and Jonathan Blow (Braid, Witness).

    image
    On the left, C418 (made music for Minecraft), center: Alexander Bruce (Antichamber).

    image
    Zach Gage (Ridiculous Fishing)

    image
    With Oscar Velzi, from Double Bear, having some mate. Of course he is argentine as well.

    Beta players, expect the latest build in your inbox soon!

     


  6. image

    Today we have a NEW Ernesto build, with tons of improvements and new stuff!

    • NEW extra hearts are now obtained through pedestals instead of growing automatically over your XP. Now you want to max XP on each level individually.
    • Massive level design changes. Reduced the difficulty in the demo island.
    • Skeletons materialized in void give XP.
    • New graphics and/or animations for: bomb, trap, antidote and first boss.
    • Navigational improvement: you can trace paths as long as you want.
    • Lots of feedback improvements!
     


  7. Many people ask us “how is Ernesto played? I’ve seen screenshots but I am confused…”

    So we decided to make a short video explaining how the game is played.

    Enjoy!

     


  8. image

    New BETA today!

    • Ernesto’s XP is now the sum of the best XP run of all worlds, so re-playing some worlds and try to do better is a good idea!
    • I redesigned pretty much all the levels in the game.
    • Special monsters like cyclops, jekylls and knights give significantly more XP, but they are less frequent.
    • Items you find in the dungeons are free and corpses no longer give medikits (but they might have useful objects).
    • TONS of small feedback details and bigger tile graphics.

    Betaplayers, expect your build notice to arrive soon…

     


  9. image

    After a long time, we have a new beta build!

    New Art

    As seen in the screenshot, we are moving away from pixel art into a more expressive illustration style. It can’t be seen in a screeshot but: animations!

    Jeremias is still drawing all the assets of the game, but we are happy to depart from pixel art. Specially me, given that every single game I made so far had pixel art graphics!

    Worlds of Ernesto

    The other big change is that there are several worlds to play, each pretty small in size instead of a big dungeon that takes forever to complete. It has become more important to do the best you can in each level, though!

    The WIP world selector:

    image

    But this is not all:

    • Roles: Ernesto can also be a knight, a engineer and even a vampire! But they must be found first.
    • I simplified several mechanics so the focus has grown closer to navigating the grid instead of worrying so much about what each thing does.
    • More music!
    • Lots of feedback improvements.

    Beta players: expect a build today!

     


  10. image

    We skipped updates because we are working on two *big* changes to the game, but I don’t want to let another week go without an update or a beta build!

    No spoilers, but interesting things happened lately with the game:

    • XP progression is actually back, but in a simpler form: Ernesto goes up a level every 100 XP points. I got rid of most of the XP inflation: monsters that give more XP are more difficult to kill, not tougher! So mass slaughter gets harder as you progress into the game, making a progressive XP curve unnecessary. As a bonus, XP points feel like a score.
    • Several new monsters with novel behavior and new levels to go with them. There is more variance in the shape of the levels, affecting their flow. Old monsters adjusted as well, making some more interesting.
    • Permanent unlockables! Vaults are now challenge levels that unlock pretty powerful items.
    • Reworked the chain system. I am not totally satisfied yet, as I want the XP value of each monster to affect the chain payoff, but I believe it feels better than before.
    • Level generation is smarter now, altough I suspect this will improve massively before release.

    Beta players: I will release the build later today or tomorrow, depending on how many bugs I find. However, since this is an intermediate build, I will not follow up on my intent of making a well balanced playable!

    - Daniel.