Jurassic escape by DSFAN
Play as an archaeologist who accidentally gets stuck in the Jurassic era with dinosaurs.
Survive.

Tools:
- Engine: Godot 4.1 (C#)
- IDE: JetBrains Rider
- Art: Aseprite, Paint, Paint.NET
- Sound effects: Bfxr
- Soundtrack: FL Studio
P.S.
This is my first game, and I had no prior experience in game development or design. I didn't even have a full week to learn the basics. If you're curious about how it all came together, read on!
| Link | https://github.com/amkhitaryan/JurassicEra |
| Original URL | https://ldjam.com/events/ludum-dare/54/jurassic-escape |
Ratings
| Overall | 306th | 3.078⭐ | 34🧑⚖️ |
| Fun | 266th | 3.141⭐ | 34🧑⚖️ |
| Innovation | 329th | 2.688⭐ | 34🧑⚖️ |
| Theme | 297th | 3.065⭐ | 33🧑⚖️ |
| Graphics | 226th | 3.313⭐ | 34🧑⚖️ |
| Audio | 160th | 3.29⭐ | 33🧑⚖️ |
| Humor | 184th | 2.597⭐ | 33🧑⚖️ |
| Mood | 236th | 3.113⭐ | 33🧑⚖️ |
| Given | 35🗳️ | 46🗨️ |
I had a problem with my input, with my PS4 controller linked to the PC, my character would not move correctly.
This is a good first entry, I hope you enjoyed your time doing it ! Good arcade game !
I like the animations and sprites you got there!
What I found quite cool is the way the speed up mechanic is introduced with the paired sound effect which is quite fitting!
Its also fun once you get to the later stages of the game, haha!
Good job and keep it up!
@skylife hey, thanks, will definitely pay closer attention to controls next time
@stealthorc thank you
For a first game and in only 48 hours, it's quite impressive. The gameplay system is nice, and the difficulty curve is well-managed. Good job! 😉
- There was a lack of diagonal movement, which could be felt with higher speeds when you had to dodge a vertical and horizontal dinosaur, on high speed the vertical dinosaurs were falling at an angle making it even harder.
I got to 19535. I really dig the art and the music. They work together great, and it almost felt like a rhythm game once the speed went up about 5 times. Nice job!
Now I need to go watch JP again...
At higher speeds, the waves of dinos become kind of mesmerising.
@anton4ik-dev thanks!
@thejookerful nice score! thanks!
@ellaris thank you. Will definitely take a look at diagonal movement while I'm certain to make post-jam version with minor improvements. About vertical dinos falling at an angle I think this is actually a visual illusion since horizontal dinos move pretty fast later and the background color and texture is just monotonous unless there is a bug (unlikely). I also had my friend complaining that character moved slower to the left and faster to the right - this is actually caused by the same reasons I explained (and by poor skill and making textures, I just couldn't make something with different colors and shapes at that moment)
@nick-rafalski very impressive score! Thank you. Yeah, one of my inspirations was JP, and I just like dinos
@human-writes-code thank you! Yeah, I think so far the monotonous background has a bit of a weird visual effect, will try to fix this in post-jam version also.
@martin-bousquet you are probably the current record holder, nice! Thanks for valuable feedback, yes, I was planning to do some of the things you mentioned, but ran out of time, will try to add some in the post-jam version
@benskca thank you! Will try to implement that on the next version and improve spawn patterns
@zealous-coder haha, yes!
@smiley405 thank you! Yes, I already added a triceratops in post-jam version, will maybe add some more, and definitely look into palette, thanks
@stmate03 thank you!

The second time I noticed the pattern, it does get a little monotonous later on as I just kept doing the same thing.
Made it to 9150 points.
The only suggestion I have (that's not just adding more features) is moving the health bar somewhere and make it more bigger and more obvious when you take damage.
Great job!
Great job!
Others have mentioned the lack of diagonal movement, but I want to point out something that I think is also super important: inertial movement. Basically, instead of linking arrow key presses to velocity (displacement per frame), you want to link them to acceleration (change in velocity per frame). To cap the player speed at a maximum value, you would also need to add a damping acceleration (i.e. acceleration opposite the direction of movement). The code for these things is quite simple but has a massive positive impact on "game feel" not just because of the added realism, but also because it gives keyboard-using players better control over the player position.
@alfred-clark thank you!
@woona thanks! Already did a better visual feedback after taking damage in the post-jam version, will rework the color palette and think something about health bar too
@bluedandelion thanks, good job on that score. I did some effort to prevent hard abuse actually :) but it's not perfect, will think something more effective for the post-jam version
@diadem-games thanks for the feedback. Unfortunately I can't really test this build on a linux machine (I even had quite big problems fixing build errors on windows), and the first one build for windows was broken and I replaced it right away with a new one, but the linux build remained untouched, so that might have been the same reason, can't tell. I tried to rebuild the original version (JurassicEscape-linuxbuild_fix.zip) if you would like to try again
@henk thanks, yeah, it was not easy, but was totally worth the shot. Not sure if I understand exactly what you are talking about, but in the post-jam version I reworked the movement and now it considers delta time, it's sort of a common algorithm I think, so it may be exactly what you are talking about, also I did already add diagonal movement and wasd support, will do some other things and upload more polished version of the game later if someone would like to try it.
1. Including frame time in physics calculations results in non-determinism, which you probably don't want. Thankfully the "delta" godot passes to _PhysicsProcess seems to be constant, so including it in the physics calculation shouldn't help or hurt (others can correct me on this since I'm not that familiar with godot).
2. In your `Player` class, try adding a `private Vector2 vel = Vector2.Zero;` and then something like the following to `PlayerMovement`:
```cs
_currentDirection = direction;
var isMoving = direction != Vector2.Zero;
if(isMoving)
direction = direction.Normalized();
PlayAnimation(isMoving);
var acceleration = 3.0f;
var slip = .7f;
vel += direction * acceleration;
vel *= slip;
MoveAndCollide(vel);
```
You can tweak `acceleration` and `slip` to change how the movement feels. `acceleration` can be whatever but `slip` should be between 0 and 1.
```
direction = direction.Normalized();
direction = direction * _speed * (float)delta;
MoveAndCollide(direction * _speed * (float)delta);
```
Also if I use your example when I get hit by a dino while pressing move keys player is actually throwed much further than intended, so I think I better stick to with my current variant.
@plepletier thank you! Yea, it was in plans I just didn't make it in time, currently working on in in the post-jam version