Raccolta di articoli, eventi e approfondimenti su tecnologia, programmazione e gaming, pensata per chi ama condividere conoscenze e restare aggiornato nel mondo tech

A collection of articles, events, and insights on technology, programming, and gaming, designed for those who love sharing knowledge and staying up-to-date in the tech world

Language:
Horse racing
,,

Horse Racing: il mio gioco manageriale sui cavalli sviluppato in .NET

Avevo voglia di realizzare un progettino in.NET, perché era da un po’ che non utilizzavo questa tecnologia e sentivo il bisogno dirispolverare vecchie conoscenzee allo stesso tempo scoprire le novità introdotte nel framework.

Il problema era uno solo:non avevo idea di cosa sviluppare.

Per qualche giorno sono rimasto a pensarci senza trovare nulla che mi entusiasmasse davvero. Poi è successo qualcosa di totalmente inaspettato.


Un ricordo d’infanzia che diventa un progetto

Circa tre anni fa, mentre sistemavo alcunivecchi giochi della mia infanzia, mi sono ritrovato a rovistare tra le scatoline sorpresa delle merendineMulino Bianco.

Tra oggetti dimenticati e piccoli ricordi, ho trovatouna piccola statuetta di un cavallo e il dadoche usavo da bambino per farlo correre in una pista improvvisata contro altri cavalli.

In quel momento si è accesa una lampadina.

Ho pensato diunire la mia passione per la programmazione con quella per i cavalli, creando ungioco manageriale di corse di cavalli.

Così è natoHorse Racing.


Lo sviluppo del gioco: .NET 8, C# e JavaScript

Il gioco è stato sviluppato utilizzando:

  • .NET 8
  • C#
  • JavaScript
  • SQL Servercome fonte dati

All’epocal’intelligenza artificialenon era ancora così diffusa come oggi, quindi tutto lo sviluppo è stato fattoalla vecchia maniera, studiando logiche, algoritmi e meccaniche di gioco passo dopo passo.

E, devo dirlo, è stato davvero divertente.


Le prime funzionalità del gioco

Ho iniziato dalle basi di qualsiasi gioco manageriale:

Acquisto del primo cavallo

Il primo passo èacquistare il proprio cavallo, il punto di partenza per costruire una scuderia competitiva.

Da lì inizia tutto: allenamenti, gestione delle gare e miglioramento delle prestazioni.

Preparazione della gara

Prima di ogni corsa il giocatore può:

  • preparare il cavallo
  • analizzare i partecipanti
  • scommettere sui possibili vincitori

Tutto per cercare di arrivare preparati al momento più importante.


La simulazione della gara

Quando lostarter dà il via, la gara prende vita.

Immagino sempre quella scena come se fosse reale:

  • cavalli al galoppo
  • fantini che si muovono per guadagnare posizione
  • polvere che si alza dalla pista
  • sorpassi improvvisi
  • riprese laterali
  • finali al fotofinish

Le vittorie portanocrediti virtuali, che possono essere reinvestiti per migliorare la scuderia e acquistare cavalli migliori.

È importante sottolineare chenon esistono scommesse reali né vincite in denaro: i crediti sono puramente virtuali, come in un classicogioco manageriale.


Un algoritmo per rendere le corse imprevedibili

Una delle sfide più interessanti è stata progettareun algoritmo capace di rendere le corse imprevedibili.

Volevo evitare gare troppo prevedibili e creare una dinamica il più possibile simile alla realtà.

Per questo ho introdotto vari fattori che influenzano l’andamento della corsa, come:

  • abilità del cavallo
  • ranking del fantino
  • condizioni della gara
  • salute e forma dei cavalli
  • possibili imprevisti

Il risultato è un sistema in cuiogni gara può avere esiti diversi, anche con gli stessi partecipanti.


Funzionalità aggiunte nel tempo

Durante lo sviluppo mi sono divertito ad aggiungere sempre nuove funzionalità per rendere il giocopiù completo e longevo.

Tra queste:

Gestione completa della scuderia

  • acquisto di uno o più cavalli
  • vendita dei cavalli
  • aumento degliskillse del valore dei cavalli
  • allenamenti per migliorare le prestazioni

Gare e competizioni

  • corse singole
  • campionati a classifica
  • tornei ad eliminazione

Statistiche e record

  • tempi record delle gare
  • statistiche dei partecipanti
  • andamento storico delle prestazioni

Sistema di scommesse virtuali

Prima delle gare è possibilescommettere sui vincitori, sempre con crediti virtuali.


Altre caratteristiche del gioco

Con il tempo il progetto è cresciuto includendo anche altre funzionalità interessanti:

  • zoom durante la gara
  • replay completo di tutte le corse
  • simulazione rapida delle gare meno interessanti
  • avanzamento temporale dei giorni
  • gare schedulate
  • colori delle divisee dei cavalli
  • fantini conranking che influenzano le performance
  • infortuni durante le gare

Insomma, è diventato pian pianoun vero gioco manageriale sulle corse di cavalli.


Le cose che mancano ancora

Nonostante tutto il lavoro fatto, il gioco non è ancora completo come lo vorrei.

Ad esempio mancanoanimazioni 3D, che purtroppo non ho ancora imparato a realizzare.
Chissà, magaril’intelligenza artificiale un giorno mi darà una mano almeno su questo:).


Le idee future per Horse Racing

Sto già pensando ad alcune funzionalità che potrebbero rendere il gioco ancora più interessante:

  • multiplayer online
  • accoppiamenti tra cavalli
  • allevamento di fattrici, stalloni e puledri
  • miglioramenti alla simulazione delle gare
  • nuove funzionalità gestionali

Al momentoHorse Racing non è ancora pubblicato online, ma l’obiettivo è completarlo e renderlo disponibile al pubblico.


Un progetto nato per passione

Questo progetto è nato semplicemente dalla voglia di:

  • tornare a programmare in.NET
  • creare qualcosa di divertente
  • trasformare unricordo d’infanziain un gioco vero e proprio

E devo dire chemi sono divertito davvero tantissimo durante lo sviluppo.

Ora non vedo l’ora dicompletarlo e pubblicarlo, per ricevere i vostri feedback, idee e suggerimenti su come migliorarlo.

Il viaggio diHorse Racingnon è ancora finito.
Anzi, probabilmente è solo all’inizio.