Haunted Mansion – 2018 7DRL Day 1

GOTO Day 0

Expected to advance a bit more but was caught up in a lot of work.

Done

  • Created project skeleton based on phaser-es6-webpack
  • Coordinated with Giovanny the format for the assets. Agreed on a style (black layout + paper texture + color), hoping we can achieve it.
  • Basic project setup, output a sample empty room with a sprite moving around using cursor keys.

Screen Shot 2018-03-04 at 11.23.01 PM

  • Implemented navigating through rooms, using a fixed mansion layout and basic art

roomNav

  • Talked with Ashton Morris, he’s going to work some awesome ambiance and SFX for the game.
  • Giovanny set to work and sent me some initial artwork for testing integration

Peek 2018-03-05 17-46

To Do

Base engine

  • Collision with room boundaries
  • Collision with stage objects
  • Pick up items
  • Inspect stage objects
  • Use keys on doors
  • Character animations

Procgen 1

  • Layout generator including keys and doors
  • Mansion history generator

Spent time: around 5:00

2018 7DRL Starts

The 14th 7DRL challenge has started. I must participate, else I would break my record.

I had a couple of ideas running through my head for this year. In the end, I went for this one: Explore haunted mansions finding their secrets.

5 days a Stranger

Maniac Mansion

I don’t intend to make a full procedural point and click adventure. I am aware of the key factors that make them fun, and I don’t pretend I’ll be able to generate interesting characters and plotlines, less so in 7 days – no sir. All I’m doing is trying to follow the format, the presentation of the world reminiscent of that genre which I frankly don’t know much about but have always found intriguing.

For the art, I considered doing the pixel art myself using the original art as a reference (i.e., deconstructing some screenshots from the NES version and changing random bits), also thought on using ASCII art. But in the end, I’m going to try to aim at having higher res art done by Giovanny Ramirez, someone with whom I already teamed up for “Rise of Kramora” (my 7DRL from 2016). We are going for a simple and effective style, trying to convey a similar feeling than an old project of mine (Ancient Shadows, which deserves a post to talk a bit about it)

thePainting_0.jpg

Some of the planned features:

  • Procedural layout for the mansion
  • Procedural room generation
  • Find objects or solve simple puzzles to reach new parts of the mansion
  • 2D movement (real time), using arrow keys

My idea is to get to a first iteration where you can explore the mansion, find a treasure. If I manage to do that I’ll consider trying to add something horrendous to it.

Screen Shot 2018-03-04 at 9.12.32 PM

2017 7DRL, PokemonRL…. FAILURE?

Alright… this year I just couldn’t make it. You can play the current version here if you want to take a look tho.

(Edit: Later on I decided the game was worth considering as a Finished entry, even if didn’t meet my whole expectations)

I made so many mistakes during the challenge that it seems I deliberately ignored every single piece of my own advise:

  • I created an almost complete roguelike engine from scratch instead of creating something lighter.
  • I didn’t have a clear goal and I spent too much time wondering what to do and switching plans.
  • I aimed blindly for an overwhelmingly big scope and didn’t think on an initial increment.
  • I didn’t make time to playtest the game nor gathered playtesters for the task.
  • I worked alone instead of building a team.
  • I didn’t have a plan!

And finally, the biggest mistake I made was not devoting enough time to add quality content to the game (a critical step of which Jeff Lait, another veteran 7DRL warrior, has warned about time and time again). This was basically what caused me to consider this a failure… I worked a lot on it, and it’s actually interesting, playable and it has a winning condition and some nice mechanics. There’s a pretty awesome empty cocoon which will require a lot of work to fill in order to provide a fun experience.

Sum all the mistakes above, and add up the “real life excuses” (Lost a day recovering from my trip to California and almost 2 full days in the release of Ananias 2.2, and it wasn’t an easy week at the office…).

I may have been able to pull a mediocre “successful” release if I had neglected my family even more, but I feel better I could spend some time with them and bring them some comfort in times of conflict. 

Enough crying… on the plus side, I managed to:

  • Create an interesting procedural generator for pokemon-like worlds.
  • Adapt elements from the widely known Pokemon universe into a roguelike format.
  • Create a simple command set, a friendly UI for new players.
  • Create a Javascript roguelike template (“JSBoilerRL”) anyone can use to create their own roguelike (I’ll have to write a tutorial for that)

And probably for the first time I feel good about the source code of the game! it’s mostly clean, readable and extensible. It’s now open source… I’ll come back to it soon if enough people cares about it, to make a proper first stable release.

One of the think I liked the most is how I made tall grass work in the “route” maps… you have to dive into it in order to find pokemon 🙂

In any case, here’s a gameplay video of PokemonRL, enjoy!


Here’s what I managed to do in day 7

  • Add Power Points to skills
  • Add Pokemon center to recover all HP and PP
  • Add Lab building to pick starter pokemon
  • Allow giving up on gym battles
  • Pokemon level up, learn new skills, evolve
  • Select random town names
  • Allow winning by getting 8 badges
  • Add inventory limit

 

2017 7DRL – PokemonRL – Day 6

Day 6! time’s almost over and I wonder what’ll be the best way to wrap up 😐

Today I managed to implement high level map generation (so it now generates both a random overall structure as well as the actual detailed maps). They are both simple, of course, since there’s no time to go in-deep. This includes assigning the gym data, pokemarts inventory as well as wild pokemon on the routes.

Sample metadata (Click to enlarge)

Spent a lot of time debugging an issue with the validations to prevent roads from overlapping not working.

Pokemons also respawn now on the routes, and I started implementing the actual skills and the damage calculation. (Based on the information from Bulbapedia)

I also implemented an alternate display mode which looks a bit like a gameboy color. At least to me 🙂

I’m less than 24 hours away from the end so… what’s the plan?

I don’t know.

It frankly looks grim, but I knew it wasn’t going to be easy (that’s why I hesitated). There’s enough material here for a seven years roguelike. The challenge will be wrapping up decently.

Pending stuff (not all of it will make it):

  • Lab building to pick starter pokemon
  • Pokemon Center buildings to heal pokemon
  • Pokemon “fainting” and losing gym battles
  • Pokemon level up, learn new skills, evolve
  • Place items randomly on map
  • Sell items to earn money
  • Adding a good chunk of data for pokemon and their skillsets.
  • Special attacks
  • Trainer battles to earn money
  • Restock stores

2017 7DRL, PokemonRL Day 5

Managed to advance a lot today! there’s still a long road but things are looking much better now:

  • Added simple “route” type map generation (A straight road with some patches of tall grass).
  • Ported my Cellular Automata classes to JavaScript and applied to route map in order to make the patches of grass look irregular
  • Semiopaque tiles so you can look a little into tall grass but must walk into it to find wild pokemon.

  • Pokemons slots, selecting, releasing and pulling back.
  • Make pokemon fight
  • Catch pokemon using pokeballs
  • Use potions on pokemons
  • Pokemarts where you can potions and stuff

  • Pokegyms: Single room with leader, door closes when entering. Badge appear when all pokemon defeated.

Next up

  • Metadata generator (for map)
  • Spawn wild poke
  • Use poke skills (Ranged attacks, special attacks)
  • Poke level up, learn new skills, evolve
  • Trainer battles to earn money
  • Place items randomly on map
  • Sell items to earn money
  • Restock stores
  • Lab building to pick starter pokemon
  • DATA!

2017 7DRL Day 4, PokemonRL again

Decided to go back to PokemonRL because IT WILL BE AWESOME. Tomorrow I’ll change my mind again.

Scribbled a rough plan in my notebook on the morning:

  • Deploy poke
  • Make poke fight wild poke
  • Catch poke
  • Use potions on poke
  • Buy potions
  • Generate map based on pokemon red
  • Spawn wild poke
  • Town maps: Simple building placement
  • Gym maps: Single room with leader, door closes when entering. Badge appear when all pokemon defeated.

Did a lot of boring work the whole day. But then managed to complete rudimentary inventory management, using and dropping items for JSBoilerRL.

Started tinkering around level generation. As usual will take a layered approach based on examples to generate a cool pokemap. Following is the generators cascade:

  1. World Metadata Generator: Towns to place, name and theme / weather
  2. World Grid Generator: Town and road positioning and linking.
  3. Map Generator: Town-Route maps
    1. Every town will have a gym where you battle the leader to get the badge.
    2. Wild pokemon will be placed on the routes.
    3. All locations will be accessible (no route blocking)

There will be no caves / dungeon / towers.

kantoMap
World grid generator will generate something similar to this (found on the internet, author unknown)

Managed to advance on map generation based on fixed metadata

metadata

This is the current status, next up is completing a first iteration of basic map generation (including routes), in order to jump into combat.

day4