I've created 'a bunch' of new rooms today, all more-or-less on an optional path, not yet in sequence break territory. It's a big relief to leave the Darkness World - even if it is to breakdown to a previous one - that darkness effect was driving me crazy. I don't plan to do exactly the same vision-impairing trick in the Light world, so don't worry about that. Here I was, thinking that the fight against General G was soon-ish, but now I know it's not coming for a few weeks still.

Time spent on the project so far: 566 hours

Currently working on: Continuing the story

Posted
AuthorJérémie Tessier

Another busy day where I have to go to the office, so not much work was done, besides some bug fixing and balancing, and the discovery of many possible sequence breaks. They're a bit out of the way, the player needs to really want to go through them, but as my design doc stands right now, there are a bunch of InfoPacks that you could go and get out of order, and that might mess up the story, I'm not sure yet. I'll keep on exploring the newly unlocked world, now that I can be a ghost!

Time spent on the project so far: 564 hours

Currently working on: Continuing the story

Posted
AuthorJérémie Tessier

I've been fixing a few bugs today and yesterday and creating new rooms and cutscenes for the player to roam after they've found the way to go through ghost blocks. The bugs were mostly related to the way 100RTBD keeps tracks of the rooms you have visited during all of your adventures. I've also added the Enemy Viewer, an accessory that tells you about an enemy's Life, Armor, Damage and Bullet Damage. It's kinda useful if you want that info!

I've discovered a small sequence break I didn't plan for during the design doc writing phase of this project, but I think I'm going to leave it in. Well, right now that's what I'm thinking, the consequences might be too much for the story to be told, if that's the case, I'll do the necessary.

Time spent on the project so far: 563 hours

Currently working on: Continuing the story

Posted
AuthorJérémie Tessier

Didn't have much time to work on 100RTBD today because of work-related issues, but I'm done with a challenge where - much like that one with Brigadier B in which you dodged bombs - you have to dodge a powered-up version of the Energy Blade skill from Colonel C. The reward is a Bayonet, a gun part that gives you a chance to use the Energy Blade skill for free whenever you shoot. Pretty good deal!

Time spent on the project so far: 561 hours

Currently working on: Creating a challenge

Posted
AuthorJérémie Tessier
any game involving exploration that presents itself in such a way that you can easily encounter all of it is inescapably boring

I saw that tweet yesterday and immediately thought of 100RTBD. Metroidvanias don't shine if everything is presented to you on the critical path. There needs to be some out-of-the-way type discovery for it to feel meaningful. Backtracking, pushing through tough fights or solving difficult puzzles are ways to make content harder to reach and by consequence, making sure some people will never see it.

100RTBD is full of that stuff. As of right now, I'm pretty sure that the 'main' content in the game will be about 30% of the final product and the whole other 70% will be optional content. I don't mind making content for a lesser percentage (of my already low) playerbase, actually I tend to make the optional content before the critical path, but that's just how I roll!

Time spent on the project so far: 560 hours

Currently working on: Continuing the story

Posted
AuthorJérémie Tessier

Here are the rules of being a ghost:

  • You can go through certain blocks!
  • Enemies no longer knock you back if you get hit!
  • You take double damage from enemy attacks!
  • You can no longer attack, use skills or items!

Time spent on the project so far: 559 hours

Currently working on: Continuing the story, ghosting

Posted
AuthorJérémie Tessier

While trying to make mini-bosses interesting and tougher than most encounters, I have to be careful and to strike a balance between 'too easy' - you can stand at a specific spot and just shoot forever and win - or 'too hard' - you'll spend considerable resources defeating the boss, and then only if you are lucky. I've turned a simple flying/shooting enemy into a bullet hell monstrosity, and I had to tone it down!

Ghosting is almost completely in, I'm still unsure about certain details. Is it a toggle? Does it go away after a certain time? While you're ghosted, can enemies hit you? Does it go away if you shoot/use a skill? An idea I'm having right now is that it's a toggle and you can go through enemies without suffering knockback while using it, but you'd also take double damage? Maybe?

Time spent on the project so far: 557 hours

Currently working on: Continuing the story, ghosting

Screenshot after the jump: A bit too much

Posted
AuthorJérémie Tessier

Today I reworked the fight against FirstClass F a bit since I've made it to the point where you could fight his hologram. Even with care put into making sure he moved to places relative to where he started - instead of using absolute coordinates - I still had to fix a few things related to character position and the slot machine skill itself. Then after I've defeated it, I got enough experience to reach a level where my Skill Effect got up!

So I had to add the various level 4 effects to all the skills in the game. Tomorrow I'll add Ghosting - the ability to double-tap the Up key and become translucent, allowing the player to go through certain blocks and dodge enemies if he's good at using it!

Time spent on the project so far: 555 hours

Currently working on: Updating skills, updating the fight against FirstClass F

Posted
AuthorJérémie Tessier

You figure out obvious things everyday, both in programming and game design and today I've figured out that the way I spawn enemies in room isn't the best. You'll tell me that it's only a line of code, but applied about a thousand times, it adds up!

Here's how I used to spawn single enemy types:

invokeSpawn (new string[]{"kilobyte"},new int[]{2});

I did it that way because sometimes, there are more than one enemy type per room. That being said, what's to prevent me from using:

invokeSpawn ("kilobyte",2);

And overload the invokeSpawn function so I can either give it an array or a single string? It's a small improvement, but learning and working on personal projects is all about small improvements!

Time spent on the project so far: 553 hours

Currently working on: Continuing the story

Posted
AuthorJérémie Tessier

Out of the 27 enemy types in 100RTBD, I am done with 20 of them. They all do more-or-less different things, plus the state variations, plus the giant forms, that's a lot of enemies! Killing all enemies enough times is integral to get the true ending, so you might want to equip that monster bait and farm for a while!

Time spent on the project so far: 551 hours

Currently working on: Continuing the story

Posted
AuthorJérémie Tessier

Only a few rooms to go and the Ghosting Engine will be in the possession of player! This movement-based skill will allow the player to go through certain solid blocks and that will open a bunch of new rooms - optional ones - that I'll have to visit and create immediately after that! Sounds like a ton of work, to ignore the critical path and work around it? Well, the player might want to visit these side areas first, so I have to see how that'll work!

Time spent on the project so far: 549 hours

Currently working on: Continuing the story

Posted
AuthorJérémie Tessier

Experienced unity developers, how do you instantiate new things? I have this enemy that shoots a very high stream of bullets. If I get a few of them on screen at once, the framerate drops like crazy. Is it because there are too many objects on-screen? Is it because my way of creating new bullets is not very good? If you have any idea, please tell me :D

Time spent on the project so far: 547 hours

Currently working on: Continuing the story

Posted
AuthorJérémie Tessier

Today for a cutscene, I've started working on General G's signature move, the air strike. A few target markers appear on the screen, and after a few seconds, projectiles rain down on them! Although it's just for a little bit of cinematic flair, I'm also trying to work how the actual skill will function when you fight against him. That's just good design!

Time spent on the project so far: 546 hours

Currently working on: Continuing the story

Posted
AuthorJérémie Tessier

More rooms done, more enemies created, and all that...

Hey you! You reading this blog post! Are you good at pixel art or chip-tuny sci-fi music? Wanna help my little indie game get some identity by having sprites NOT from a free pack I found on the internet and/or save me from having to take Hero Core music for 100% of my soundtrack because what else could I do?

Could you work for free? I also work for free :D There are a few hundreds of sprites that could be redone and maybe between 12 to 15 music tracks? That'd be awesome!

Or maybe you do know someone who would fit that bill? Send them this way!

You know how to contact me! (at poik007@gmail.com or on the twitters @poik007 !)

Time spent on the project so far: 545 hours

Currently working on: Continuing the story

Posted
AuthorJérémie Tessier

I didn't have much time to work on the game today, but I did finish that challenge room I was talking yesterday! It's a bit less involved than it originally was, but the challenge is much more possible and not frustrating at all if/when you fail. I've added a new enemy and that made me think that I might need more than three sprites per enemy, so I've refactored a bit of how sprites work.

Maybe I should've made only one sprite per thing total and change its color in-engine (using the SpriteRenderer Color property, for instance) but no, I've made all of my sprites in paint.net, changed all of them to red for the fire world, blue for ice, etc. So when I instantiate an enemy, by default it uses the 'base' sprite, so I have to go through some code so it changes to the right sprites depending on the world. I've tweaked that code to allow for any number of sprites, not only 3.

Time spent on the project so far: 544 hours

Currently working on: Continuing the story

Posted
AuthorJérémie Tessier

Most of my work on 100RTBD is pretty iterative. Like this challenge I'm working on right now, for instance! My design doc states the following "A challenge room where the player dies if he's not in darkness". That seems vague enough, but I've figured out what it meant; A spot of darkness moves around the room and you have to stay behind it, otherwise you fail the challenge. Then I've started playing with the idea and figured out that jumping and falling does not work very well with the whole 'follow the dark circle' mechanic, since you have less control over these things, so now I'm reworking it a bit!

Most of the game is like that, I start from 'old' ideas, interpret them, then rework them!

Time spent on the project so far: 543 hours

Currently working on: Continuing the story

Screenshot after the jump: A challenge in the dark

Posted
AuthorJérémie Tessier

Today went well as well! I finished a few rooms and added another mini-boss fight against two giant enemies. The framerate is pretty inconsistent in the darkness world, that must be because of all these sprites I'm drawing on-screen to make a dark effect. Is there a better way to do it? I'm not using real lightning so I couldn't just block it out, I know nothing about shaders... Well, one way to reduce the performance hit would be to decrease the number of sprites that make up the veil. The only drawback is the quality of the effect! It's already pretty blocky

Time spent on the project so far: 541 hours

Currently working on: Continuing the story

Posted
AuthorJérémie Tessier

Everything is still going well. Darkness world is still on-going and I won't be done with it for a good while, but I don't mind. Much like the player, after the darkness is replaced by a world of light, I will be relieved. Even if I'm making the game, some of these maps are tricky to navigate in pitch-black conditions. I also have a few more things to do before getting there; Such as the re-fight against FirstClass F and, of course, the boss fight against General G. Creating so much content is really time-consuming!

Time spent on the project so far: 539 hours

Currently working on: Continuing the story

Posted
AuthorJérémie Tessier

Today I added more rooms. All rooms in 100RTBD are hand-crafted hobby-grade video game maps! All of my other games were procedurally generated in some ways, except maybe Jester's Quest 3D, but 100RTBD is a labor of love. The story is progressing quite well and I'm almost a third of the way done with the whole game! That being said, there are no shortcuts I can take in this project, all rooms have to be made to be somewhat interesting and make some sense, and I have to make a thousand of them. In any case, I'm not done yet, but I'm not losing heart either!

Time spent on the project so far: 537 hours

Currently working on: Continuing the story

Posted
AuthorJérémie Tessier

I've read recently that metroidvanias shouldn't have stories that interrupt the flow of the game because it breaks the mood and that the genre is about free-flowing exploration, not skipping through tons of dialog boxes. I guess I agree on some level, if the original metroid had cutscenes each ten rooms or so, it would be weird. On the other hand, some other metroidvanis like metroid fusion and most castlevania games have a fair dose of stopping to talk with characters about things. So I guess that 100RTBD is in the "talky" side, in this regards. Adding a story to a game is one of my goals with this one anyways, I really couldn't take it out.

Time spent on the project so far: 535 hours

Currently working on: Continuing the story

Posted
AuthorJérémie Tessier