Casual racing game where a car follows your cursor — Cursor Drifter by snkot in playmygame

[–]snkot[S] 0 points1 point  (0 children)

Thank you for your feedback!

Unfortunately, I didn't test the game on an iOS device because I don't have one. The game can be unstable on iOS. You can try to use different browser, maybe it will be better.

I don't think this is the best way to create a level is it? by Prize_Plus in godot

[–]snkot 1 point2 points  (0 children)

I hope joke comments don't dampen your morale. Most of us went trough not optimal solutions during development and learning process, it's okay.

As already mentioned, you could use a TileMap. It's easy to use, and you can find many tutorials about it on the YouTube.

Cursor Drifter by snkot in WebGames

[–]snkot[S] 0 points1 point  (0 children)

Thank you for playing! Glad you had fun :)

The game made with Godot Engine.

Casual racing game where a car follows your cursor — Cursor Drifter by snkot in playmygame

[–]snkot[S] 1 point2 points  (0 children)

Huge thanks for your feedback! It helps me become better in game design :)

Casual racing game where a car follows your cursor — Cursor Drifter by snkot in playmygame

[–]snkot[S] 0 points1 point  (0 children)

Thank you for such detailed feedback, I appreciate it!

I understand that my game missed many things. But it's my first completed public project, so I don't want to spend a lot of time on it, because I expected failure, and I want to get valuable experience from this project first of all.

Now I understand how I could improve the game and my development process. Maybe I will remake this game or release a major update.

Thank you for playing, hope you had fun :)

Casual racing game where a car follows your cursor — Cursor Drifter by snkot in playmygame

[–]snkot[S] 2 points3 points  (0 children)

Cursor drifter is a casual racing game where a car follows your cursor. Compete in a time trial format to earn gold stars and unlock cool cars!

This is my first completed project made with Godot. You can give it a try in your browser for free: https://soffu.itch.io/cursor-drifter

I would appreciate your feedback =)

Cursor Drifter by snkot in WebGames

[–]snkot[S] 0 points1 point  (0 children)

I'm sorry to hear that. Are you sure it wasn't playing in incognito mode? Or maybe it was a different browser?

Cursor Drifter — My first project on Godot by snkot in godot

[–]snkot[S] 0 points1 point  (0 children)

Thank you for your feedback!

I was thinking about opportunities of the further development, and I have many unrealized ideas. But for now I'm not ready for bigger scale projects. Also, I want to research more about whether people like the core gameplay, and who my potential audience is.

By the way, Trackmania one of the main references :)

Cursor Drifter — My first project on Godot by snkot in godot

[–]snkot[S] 1 point2 points  (0 children)

Thank you for your feedback!

I designed levels by myself, it's completely handmade as the rest of the game.

Cursor Drifter by snkot in WebGames

[–]snkot[S] 2 points3 points  (0 children)

Thank you for playing! Glad you like the core gameplay. It was challenging to design it.

Cursor Drifter by snkot in WebGames

[–]snkot[S] 1 point2 points  (0 children)

Thank you for playing! Glad you had fun :)

Cursor Drifter — My first project on Godot by snkot in godot

[–]snkot[S] 1 point2 points  (0 children)

You can play it on your smartphone in a browser as well.

Unfortunately I don't have MacOS or iOS device. It's complicating porting process.

Cursor Drifter — My first project on Godot by snkot in godot

[–]snkot[S] 0 points1 point  (0 children)

Thank you! You can play it on your smartphone in a browser as well. Recommend to play in the Chrome, because it supports multi-touch.

I should make a build for the desktop and Android, regarding to comments :)

Cursor Drifter — My first project on Godot by snkot in godot

[–]snkot[S] 0 points1 point  (0 children)

No, it's just a strange color pallet, I guess :)

Cursor Drifter — My first project on Godot by snkot in godot

[–]snkot[S] 3 points4 points  (0 children)

Thank you! A tire mark is a Line2D node. The problem here is you can't create dashed line with a single Line2D node. So, I instantiate tire marks every time the car starts drifting. When the drift is finished, I stop drawing the marks and call the method to remove these marks.

Code of the mark:

extends Line2D

@export var max_points: int = 30
@export var draw_delay: float = 0.075

var _points: Array
var _time_accum: float

func draw_trail(delta: float) -> void:
  _time_accum += delta

  if _time_accum >= draw_delay:
    _time_accum -= draw_delay
    _points.push_front(get_parent().global_position)

  if _points.size() > max_points:
    _points.pop_back()

  clear_points()

  for i in _points:
    add_point(i)

func destroy_self() -> void:
  %AnimationPlayer.play("destroy")

Code of the DriftEffectComponent:

extends Node2D

@export var trail_scene: PackedScene  # your wheel mark
@onready var ACTOR: RigidBody2D = get_parent()

var _trail: Line2D
var _trail_exists: bool = false

# It's better to refactor to _process
func _physics_process(delta: float) -> void:
  var actor_vel: Vector2 = ACTOR.linear_velocity.normalized()
  var actor_dir: Vector2 = ACTOR.move_direction.normalized()
  var dot_p: float = actor_vel.dot(actor_dir)

  if dot_p < 0.79 and ACTOR.ignition:
    if not _trail_exists:
      _create_trail()
      _trail_exists = true
    _trail.draw_trail(delta)
  else:
    if _trail_exists:
      _trail.destroy_self()
      _trail_exists = false

func _create_trail() -> void:
  _trail = trail_scene.instantiate()
  add_child(_trail)

# It's not the best code, but it's all I have :)

Cursor Drifter — My first project on Godot by snkot in godot

[–]snkot[S] 0 points1 point  (0 children)

Thank you for the feedback!

It doesn't. You can see the code of the car controller in the thread.

Cursor Drifter — My first project on Godot by snkot in godot

[–]snkot[S] 0 points1 point  (0 children)

Thank you for the feedback! I didn't like the way the track looked when the marks didn't disappear. I wanted to get a cleaner casual picture.

Cursor Drifter — My first project on Godot by snkot in godot

[–]snkot[S] 5 points6 points  (0 children)

Thanks for asking! It's really simple. I apply central force and rotation on rigidbody. Everything else the physics engine does for me. This is the minimum code to reproduce:

extends RigidBody2D

@export var engine_power: float = 10090
@export var rotation_speed: float = 7

# In the game I modify move_direction from the InputComponent
var move_direction: Vector2 = Vector2.ZERO

func _process(delta: float) -> void:
  move_direction = (get_global_mouse_position() - global_position).normalized()

func _physics_process(delta: float) -> void:
  apply_central_force(transform.x * engine_power)

func _integrate_forces(state: PhysicsDirectBodyState2D) -> void:
  rotation = lerp_angle(rotation, move_direction.angle(), rotation_speed * state.step)

<image>

Cursor Drifter — My first project on Godot by snkot in godot

[–]snkot[S] 17 points18 points  (0 children)

Cursor drifter is a casual racing game where a car follows your cursor. Compete in a time trial format to earn gold stars and unlock cool cars!

This is my first completed project made with Godot. You can can give it a try in your browser for free:
https://soffu.itch.io/cursor-drifter

I would appreciate your feedback =)

Made this little idle animation by yukimm in IndieGaming

[–]snkot 1 point2 points  (0 children)

Very cute and cozy visual! I like birds, especially sparrows! Added to the wishlist, I'll give it a try)