This isn't actually a project I worked on but something I did two years ago and I want to share.
For the ones who don't know what a grid based game is, try to think at most of the Pokémon games.
The advantages of creating a grid-based game are:
-lightweight game: all the information (as we'll see) can be stored in a few file and the media files (graphics and sound) are usually a few.
-long-plot game: in this post I'll talk about just the basic concepts but developing this type of game can bring you a endless suite of tools for creating a really long-plotted game.
-easy to code: generally this type of game is easy to code natively (without the use of any external library) and this makes you able to access all the parts of your own engine.
Some concept of my really really simple engine:
1) the game is based on a "map", stored in an array and load from a file
2) in the map moves an element called Personaggio (it's the italian word for "character"), I created a customized class for this
3) the draw() function is used just to draw what's saved in the map array, all the changes to array are made through the keyPressed() function
4) the character moves to a direction (up, down, left, right) which is stored in a variable
Here is the code I wrote, everyone is free to use it but I would appreciate if you mention my name:
//code by Damiano Andreghetti 08/2014
String mapfile = "map.txt";
int msx = 0;
int msy = 0;
int[][] map = new int[1000][1000];
int dir = 0;
int s = 20;
Personaggio personaggio;
void setup(){
loadMap(mapfile);
size(800,800);
}
void draw(){
background(180);
for(int row = 0; row < msy; row++){
for(int col = 0; col < msx; col++){
int val = map[row][col];
if(val == 49){
fill(255,0,0);
rect(col*s, row*s, s, s);
}
if(val == 50){
fill(0, 255, 0);
rect(col*s, row*s, s, s);
if(dir == 0){
fill(0);
line(col*s+s/2, row*s+s/2, col*s+s, row*s+s/2);
}
if(dir == 1){
line(col*s+s/2, row*s+s/2, col*s+s/2, row*s+s);
}
if(dir == 2){
line(col*s+s/2, row*s+s/2, col*s, row*s+s/2);
}
if(dir == 3){
line(col*s+s/2, row*s+s/2, col*s+s/2, row*s);
}
}
if(val == 51){
fill(0, 0, 255);
rect(col*s, row*s, s, s);
}
}
}
}
void loadMap(String mapfile){
String lines[] = loadStrings(mapfile);
msy = lines.length;
msx = lines[0].length();
for (int i = 0 ; i < msy; i++) {
for (int b = 0; b < msx; b++) {
map[i][b] = lines[i].charAt(b);
if(lines[i].charAt(b) == 50){
personaggio = new Personaggio(b,i);
}
}
}
}
class Personaggio {;
int xpos, ypos;
Personaggio(int x, int y){
xpos = x;
ypos = y;
map[ypos][xpos] = 50;
}
void move(int mx, int my){
if(map[ypos+my][xpos+mx] == 48){
map[ypos][xpos] = 48;
xpos += mx;
ypos += my;
map[ypos][xpos] = 50;
}
}
}
void keyPressed() {
if(keyCode == UP){
if(dir == 3){
personaggio.move(0, -1);
}
else{
dir = 3;
}
}
if(keyCode == DOWN){
if(dir == 1){
personaggio.move(0, 1);
}
else{
dir = 1;
}
}
if(keyCode == LEFT){
if(dir == 2){
personaggio.move(-1, 0);
}
else{
dir = 2;
}
}
if(keyCode == RIGHT){
if(dir == 0){
personaggio.move(1, 0);
}
else{
dir = 0;
}
}
}
This is a good map you can use to test it:
11111111111
12000000001
10000000001
10000000003
10000000003
10000000001
10011100001
10010100001
10000100001
10000100001
11111111111
the code is really simple but you can make it better easily, by adding for example:
-sprites
-functions for making the character interact with the environment
-bots
I hope this will be useful for you as a row and basic engine for a grid-based game.
If you have any question about the code just comment or send me an email to damianoandre@gmail.com
Bye, Dami
Visualizzazione post con etichetta game. Mostra tutti i post
Visualizzazione post con etichetta game. Mostra tutti i post
domenica 5 ottobre 2014
Main concepts of a grid-based game in processing
venerdì 16 agosto 2013
Humble Bundle
Hi guys, today I'm posting about a site I found really interesting: humble bundle.
In that site you can pay 1$ a game like "medal of honor warfighter" or 5$ "battlefield 3"
A part of your money will go to a charity, another to game developers and another to Humble Bundle Inc.
I hope you enjoy that site,
Bye, Dami
In that site you can pay 1$ a game like "medal of honor warfighter" or 5$ "battlefield 3"
A part of your money will go to a charity, another to game developers and another to Humble Bundle Inc.
I hope you enjoy that site,
Bye, Dami
giovedì 14 marzo 2013
Open source game engine: maratis3d
Hi, today i'm posting about a really versatile and easy to use open source game engine, it's called maratis3d.
I think it's a good point to start game development, it supports many cool features like lua scripting, full blender integration (with an addon), sounds, texts and many more...
The only bad thing is that it has a really poor documentation.
I'll not write everything about this game engine because I think it's really noob friendly and with just some tutorials that you can find on youtube you should make a nice little game.
I hope you'll enjoy playing around with that, if you have any question comment or send me an email to damianoandre@gmail.com
Bye, Dami
I think it's a good point to start game development, it supports many cool features like lua scripting, full blender integration (with an addon), sounds, texts and many more...
The only bad thing is that it has a really poor documentation.
I'll not write everything about this game engine because I think it's really noob friendly and with just some tutorials that you can find on youtube you should make a nice little game.
I hope you'll enjoy playing around with that, if you have any question comment or send me an email to damianoandre@gmail.com
Bye, Dami
domenica 27 febbraio 2011
guida Bad Company 2 multiplayer online
Ho Finito di scrivere la guida sul famoso gioco pluripiattaforma che spero possa esservi utile.
Questa guida è indirizzata sopratutto a coloro che non sanno molto bene come funziona in generale questo gioco.
Guida Bad Company 2 gameplay online
Battlefield Bad company 2 è un gioco sparatutto disponibile per xbox 360, playstation 3 e PC.
Il gioco ha tutte le buone caratteristiche di uno sparatutto, ma in più ha una grafica molto particolareggiata sopratutto per quanto riguarda gli scenari. Infatti a differenza di altri giochi simili come "call of duty" ha la particolarità di avere gli edifici demolibili e i mezzi di trasporto utilizzabili anche senza ricompense uccisioni.
per quanto riguarda il gamplay (multigiocatore) online si può certamente dire che è molto più difficile riuscire a fare qualcosa rispetto ad altri giochi, ma basta prenderci la mano per ovviare al problema. Questa guida serve per coloro che giocano per la prima volta o quasi online a bad company 2 e che non sanno come muoversi.
I comandi
Partiamo con i comandi: se volete sapere quali sono i comandi di gioco basta andare nel menu che si apre con playstatione xbox360 con il tasto START e nel pc con il tasti Esc. Poi andate su opzioni e trovate la sezione comandi doce c'è uno schema.
Una volta capiti i comandi basta girare un po'0 per la mappa per inziare a capiric un po' di più percui si piò già inziare con le classi.
Classi
Tra tutte le classi io consiglio di usare il geniere, poichè consente ,appena si sblocca l'attrezzo riparatore (dopo poche uccisioni con la classe), di riparare i veicoli.
Per sbloccare le armi basta semplicemente fare un totale di uccisioni con una certa classe. Appena sbloccherete qualcosa di nuovo potrete inizare a usarlo la successiva volta che vi chiederà quale classe volete utilizzare poi basta andare per esempio in Geniere>ArmaPrincipale e spostare in su o in giù il cursore per selezionare l'arma.
Inizialmente usate l'M1A1 ovvero il thomson poi piano piano che sbloccate le armi usate:
-SAIGA: fucile a pompa semiautomatico utile per gli spazi ravvicinati
-XM8 compatto o XM8c: mitragliatrice di piccole dimensioni adatta per la media e corta distanza
-SCAR-L: fucile mitragliatore utile per le medie,corte e lunghe distanze se equipaggiato con mirino ACOG
-PP2000: arma di piccole dimensione adata alle medie e corte distanza
-Uzi:Arma piccola, ma efficace anche a medie-lunghe distanze
-UMP45:Mitragliatrice di medie dimensioni adatta a tutte le distanza
Modalità di gioco
Esistono molteplici modalità di gioco, ma se volete far punti facilmente vi consiglio la modalità conquista , incui dovete andare a conquistare le varie posizioni della mappa segnate da una bandiera.
Il numero delle posizioni cambia a seconda delle dimensioni della mappa, percui vi consiglio le mappe più vaste in modo da poter avere più bandiere da conquistare.
Se conquistate una bandiera già neutra vi verranno assegnati 75 punti, mentre se togliete la posizione ai nemici e poi la conquista la vostra squadra ne riceverete 150.
I mezzi sono tutti disponibili in questa modalità.
Tattiche di gioco
Se volete camperare vi consiglio la classe scuot, ma in generale vi consiglio di essere abbastanza dinamici.
Esisto case che potrebbero offrirvi riparo per poi crollarvi addosso, per questo eviterei un gioco statico.
Vi consiglio si partire appena inizia una partita alla ricerca di un riparo vicino all'obiettivo nemico ( se si tratta della modalità CONQUISTA) in modo da cogliere la moltitudine di nabbi che cercano inutilmente o di conquistare una posizione o di piazzare una carica.
Poi inziate a muovervi magari su un mezzo veloce alla ricerca di una posizione da conquistare poichè quelli che avrete ucciso vi cercheranno.
Appena conquistate una posizione camperate in una casa e fate la stessa cosa di prima.
Se giocate in conquista vi consiglio di salire in 2 su un elicottero e di girare avanti e indietro la mappa alla ricerca di nemici; se scegliete questa tattica vi consiglio di usare il geniere in modo da poter riparare l'elicottero qualora venisse danneggiato(quasi sicuramente).
Veicoli e mezzi di trasporto
Come mezzo di trasporto vi consiglio di usare il quad se volete muovervi rapidi da una posizione all'altra (nella modalità CONQUISTA) in modo da poter guadagnare molti punti semplicemente conquistando le bandiere.
Se Invece volete fare i punti con le kill vi consiglio gli elicotteri e i carri armati anche se questi ultimi hanno la pecca di muoversi molto lentamente.
Se vi trovate bene con i veicoli usate il geniere per riaprarli e portatevi sempre dietro qualcunaltro poichè giare in 2 è molto più sicuro e ci si può coordinare per un gioco migliore.
Conclusioni
Direi che si può conludere dicendo che la classe miglio re è il geniere, la modalità migliore è il geniere ed è meglio se si ha una squadra con cui giocare (i membri della squadra vengo visualizzati a sinistra difinaco alla mappina).
Il piccolo manuale è scaricabile nella versione stampabile (PDF) da qui. Oppure dalla sezione guide.
Questa guida è indirizzata sopratutto a coloro che non sanno molto bene come funziona in generale questo gioco.
Guida Bad Company 2 gameplay online
Battlefield Bad company 2 è un gioco sparatutto disponibile per xbox 360, playstation 3 e PC.
Il gioco ha tutte le buone caratteristiche di uno sparatutto, ma in più ha una grafica molto particolareggiata sopratutto per quanto riguarda gli scenari. Infatti a differenza di altri giochi simili come "call of duty" ha la particolarità di avere gli edifici demolibili e i mezzi di trasporto utilizzabili anche senza ricompense uccisioni.
per quanto riguarda il gamplay (multigiocatore) online si può certamente dire che è molto più difficile riuscire a fare qualcosa rispetto ad altri giochi, ma basta prenderci la mano per ovviare al problema. Questa guida serve per coloro che giocano per la prima volta o quasi online a bad company 2 e che non sanno come muoversi.
I comandi
Partiamo con i comandi: se volete sapere quali sono i comandi di gioco basta andare nel menu che si apre con playstatione xbox360 con il tasto START e nel pc con il tasti Esc. Poi andate su opzioni e trovate la sezione comandi doce c'è uno schema.
Una volta capiti i comandi basta girare un po'0 per la mappa per inziare a capiric un po' di più percui si piò già inziare con le classi.
Classi
Tra tutte le classi io consiglio di usare il geniere, poichè consente ,appena si sblocca l'attrezzo riparatore (dopo poche uccisioni con la classe), di riparare i veicoli.
Per sbloccare le armi basta semplicemente fare un totale di uccisioni con una certa classe. Appena sbloccherete qualcosa di nuovo potrete inizare a usarlo la successiva volta che vi chiederà quale classe volete utilizzare poi basta andare per esempio in Geniere>ArmaPrincipale e spostare in su o in giù il cursore per selezionare l'arma.
Inizialmente usate l'M1A1 ovvero il thomson poi piano piano che sbloccate le armi usate:
-SAIGA: fucile a pompa semiautomatico utile per gli spazi ravvicinati
-XM8 compatto o XM8c: mitragliatrice di piccole dimensioni adatta per la media e corta distanza
-SCAR-L: fucile mitragliatore utile per le medie,corte e lunghe distanze se equipaggiato con mirino ACOG
-PP2000: arma di piccole dimensione adata alle medie e corte distanza
-Uzi:Arma piccola, ma efficace anche a medie-lunghe distanze
-UMP45:Mitragliatrice di medie dimensioni adatta a tutte le distanza
Modalità di gioco
Esistono molteplici modalità di gioco, ma se volete far punti facilmente vi consiglio la modalità conquista , incui dovete andare a conquistare le varie posizioni della mappa segnate da una bandiera.
Il numero delle posizioni cambia a seconda delle dimensioni della mappa, percui vi consiglio le mappe più vaste in modo da poter avere più bandiere da conquistare.
Se conquistate una bandiera già neutra vi verranno assegnati 75 punti, mentre se togliete la posizione ai nemici e poi la conquista la vostra squadra ne riceverete 150.
I mezzi sono tutti disponibili in questa modalità.
Tattiche di gioco
Se volete camperare vi consiglio la classe scuot, ma in generale vi consiglio di essere abbastanza dinamici.
Esisto case che potrebbero offrirvi riparo per poi crollarvi addosso, per questo eviterei un gioco statico.
Vi consiglio si partire appena inizia una partita alla ricerca di un riparo vicino all'obiettivo nemico ( se si tratta della modalità CONQUISTA) in modo da cogliere la moltitudine di nabbi che cercano inutilmente o di conquistare una posizione o di piazzare una carica.
Poi inziate a muovervi magari su un mezzo veloce alla ricerca di una posizione da conquistare poichè quelli che avrete ucciso vi cercheranno.
Appena conquistate una posizione camperate in una casa e fate la stessa cosa di prima.
Se giocate in conquista vi consiglio di salire in 2 su un elicottero e di girare avanti e indietro la mappa alla ricerca di nemici; se scegliete questa tattica vi consiglio di usare il geniere in modo da poter riparare l'elicottero qualora venisse danneggiato(quasi sicuramente).
Veicoli e mezzi di trasporto
Come mezzo di trasporto vi consiglio di usare il quad se volete muovervi rapidi da una posizione all'altra (nella modalità CONQUISTA) in modo da poter guadagnare molti punti semplicemente conquistando le bandiere.
Se Invece volete fare i punti con le kill vi consiglio gli elicotteri e i carri armati anche se questi ultimi hanno la pecca di muoversi molto lentamente.
Se vi trovate bene con i veicoli usate il geniere per riaprarli e portatevi sempre dietro qualcunaltro poichè giare in 2 è molto più sicuro e ci si può coordinare per un gioco migliore.
Conclusioni
Direi che si può conludere dicendo che la classe miglio re è il geniere, la modalità migliore è il geniere ed è meglio se si ha una squadra con cui giocare (i membri della squadra vengo visualizzati a sinistra difinaco alla mappina).
Il piccolo manuale è scaricabile nella versione stampabile (PDF) da qui. Oppure dalla sezione guide.
Iscriviti a:
Post (Atom)