I’m considering writing a very simple management style game with the theme being motorsport racing.
I’ve got a good idea how to do the ‘management side’, but the issue I’m having is how to visually render cars and move on a track (something a bit like):
The key points (keeping it simple):
- the user won’t control the vehicle directly, they are the ‘manager’ (think football manager) – they can decide on a strategy but cannot control the vehicle
- the car should stay on track (visually) – they may ‘crash’ (along with other events) though
- the speed it goes around the track is determined by vehicle performance
- a car will be aware of other near-by cars around the track – for example, if they’re about to be overtaken, they may actually do a slower lap as they are defending – they may collide, along with other events
My initial thoughts are there are two key design elements here, the track and the car.
- a track is composed of many segments
- each segment is stored in an array
- a segment (I’m not entirely sure here) but one thing it might contain is a 2D array:
(From (this)(https://gamedev.stackexchange.com/questions/149966/approaches-on-2d-top-view-racing-game-track-design) answer gave an approach of using multi-dimensional arrays) _ _ _ _ _ _ _ _ _ _ | d d x x x d d d | | d d r r r d d d | | d d r r r d d d | | d d r r r d d d | | d d r r r d d d | | d d r r r d d d | | d d r r r d d d | | d d e e e d d d | | _ _ _ _ _ _ _ _ | _ _ _ _ _ _ _ _ _ _ | d d x x x d d d | | d d r r r d d d | | d d d r r r d d | | d d d d r r r e | | d d d d r r r e | | d d d d d d r e | | d d d d d d d d | | d d d d d d d d | | _ _ _ _ _ _ _ _ |
Above is a straight and a 90 degree corner –
r racetrack and
d dirt. Maybe I could create a bunch of these and create a track.
Or maybe a simpler version where I define just an entry and exit:
_ _ _ _ _ | d e d | | d r d | | d e d | | _ _ _ | _ _ _ _ _ | d x d | | d r e | | d d d | | _ _ _ |
The simplified version where I define an entry
e and exit
x. I can add additional points
r and then construct a curve/straight-line based on the
My idea is that the vehicle will then move across each segment and I can calculate the time it takes to complete that segment. I can then add up all segments which will give me the lap time. With this approach, I can also check the previous/current/next segment to determine if there are other vehicles it needs to defend/attack against.
- store all vehicles in an array
- each vehicle will always be in a segment
- speed it completes the segment is determined by its performance (and segment characteristics)
- vehicle can ‘see’ if there are other vehicles in previous/current/next segment and decide whether to overtake/defend.
I think I could make this work, but I’d be really interested to know if there are better/simpler approach – bearing in mind it’s mostly a visualization and the speed and events are determined by my program.