A downloadable game for Windows

Download NowName your own price

Grim Fantasy is a Twin-Stick Shooter/RPG Fusion for Mini Ludum Dare #63, in which the theme was Fusion! Explore the cozy world and fight in challenging action-packed dungeons! Do side quests and stuff! I don't know! Enjoy!


Carson:

"Hey everybody! This is my first Ludum Dare, but not my partner's!

I had a lot of fun in these past 10 days and it did get a little stressful but in the end I had a great time!

Our fusion game is a top-down fast-paced RPG shooter, hope you enjoy!"


Yukon:

"Sup? I made art for this and did a bit of the code. So yeah, enjoy or something."


Controls:

WASD - Move

Mouse - Aim

Left Click - Attack

E - Interact

Download

Download NowName your own price

Click download now to get access to the following files:

Grim Fantasy v1.0.7 35 MB

Comments

Log in with itch.io to leave a comment.

(+1)

Been playin this the last hour or two and its fantastic, sent you a few dollars as a thankyou. I finished the game and heres my feedback if you ever go back to it:

  1. smooth the camera with some lerp
  2. if 2 directions are pressed, multiply movement speed by 0.75 so diagonal speed isnt faster
  3. spend more time on the audio design, its the weakest part
  4. be cool if when you pass the first dungeon, you unlock a gate or something as a shortcut back to town

I have a few questions how this was made if you dont mind answering?

  1. what is your parent heirachy like? do you have: moving object > enemy > slime > green slime, for example?
  2. are you using bounce_all, for characters?
  3. the weapon.. is it a single sprite that only faces mouse on its "idle" frame, always follows the player, and on its attack frame enables something (on the sword, a collider - on the bow, a spawn arrow code) ?

any other info on how you made such a big game in 10 days, so effectively would be really appreciated, Thanks and keep making cool shit!

Thank you a ton! To answer your questions:

  1. For this project, it appears we just had a parent enemy that is shared among all the enemies. Carson and I built this game a long time ago, so trust me when I say that I overuse parenting now haha.
  2. For character knockback and movement, we used GameMaker's built in speed and direction system, simply modifying the direction and applying force. I would not recommend doing this, as it created many of the bugs present in current Grim Fantasy, such as enemies disappearing when they clip into walls.
  3. For our weapons, all our weapons spawn a projectile on click. That projectile differs based on it's type. For melee weapons, it spawns that slash, which is a separate object entirely that deals damage to enemies.

Sadly, Grim Fantasy's codebase has fallen insanely out of date after the game jam. I don't support any of our coding methods above, as now I tend to write my own movement systems, and I overuse parenting haha.

When it comes to making the game in such a short time, I can effectively say we just rushed the programming side and pumped as much content in with minimal systems. That being said, once again this is older methodology that I don't agree with anymore. Our systems were't modular or expandable in the slightest, and changing how a system worked for one object would require us to change it for all of them.

I'm sorry I didn't have super great answers to your questions, but I hope this somewhat helped! :)

(+1)

No those are great answers. I did similar things on Still Not Dead and now cannot even bear to go into that project. I dont suppose you could say what kind of parenting techniques you use? Im new to gamemaker and organization is really something i want to improve at, it lets me down a lot. Also, can you hazard a guess why the speed/direction GM variables, caused that dissapear bug? Are they getting pushed way out of screen? Is their depth getting messed with? Im assuming you used "solid". Many people say the built in vars are crap, but i want to know why :P Thanks again, sorry for so many questions..

Haha don't be sorry for asking questions! I'm here to help haha. :)

When it comes to parenting, in my newer games, I tend to have a few core objects that everything inherits from. For example, I tend to create a parent I dub an entity. This base entity controls very little at the start, but it tends to get filled with variables every object should contain. My best example is how I handle my own movement and collision systems. I set up a parent "rigidbody" object that has all my movement and collision code inside of that. Everything that move inherits from that, which leads to every object having the same variables and functionality.

Basically, don't write code twice. If a chunk of objects are going to share behaviors, just make a parent for them.

Because this was a game jam game, it's super hacky. The issue of enemies getting deleted when pushed into a wall was a crappy fix we made last minute to solve enemies clipping into walls. We basically just delete the enemy if inside a solid. I've personally never had any luck with the built in GameMaker movement systems, as stuff tends to clip through solids and things just break really easily. I also tend to build games that need really specific movement systems, so it's just easier to build my own.

I hope this helps! :D

(+1)

yes it did, thanks

(+1)

Thanks for buying my game Still Not Dead (FPS pixel zombie shooter) ages ago. Am gonna download and play this now :)

No problem man! It was a sick game!

(+1)

thanks glad you enjoyed it

(+1)

I really like it ! Do you mind telling me which engine did you use ?

Thanks! I'm glad you enjoyed the game! Carson and I use GameMaker: Studio. We recommend the engine to any beginner or advanced developer who want to make 2D games!

(+1)


Awesome game <3