Check out my Latest Game!!!
Moderator: Talkative People
- JS Lemming
- Game Developer
- Posts: 2383
- Joined: Fri May 21, 2004 4:09 pm
- Location: C:\CON\CON
Check out my Latest Game!!!
YES!!! I did it! I started on this game 4 days ago, and my goal was to finish it before I went off for vacation. I leave tommorrow! Ok, the game is called Space Masters and is a Shootem up style game. This was the hardest game I've ever made, mostly because it dealt so much with math. Anyway, at the main menu, you can choose if you wish to play solo or 2 player. Then you simply choose your ship and enter the chaos! I think I did a really good job with the AI, and their actions are all logical, not random. Just take a close look at their behaviors, and you will see why it was so hard to make. Actually, the finished game took over 1,000 lines of code!
This game also has special power up item things, that appear where a ship exploded. There are 3 items in all:
(E) = Extra Energy/life
(S) = Shield
(R) = Rapid Fire
Don't worry, you have unlimited fuel.
Please! Post what you think of my game. Glitch Reports are also nice. I also added sound in this game, so tell me if you have problems like if it doesn't work or something.
You can find it in the Chaos Productions Section of the site.
http://www.thechaosrift.com/programs/productions.shtml
Enjoy!
This game also has special power up item things, that appear where a ship exploded. There are 3 items in all:
(E) = Extra Energy/life
(S) = Shield
(R) = Rapid Fire
Don't worry, you have unlimited fuel.
Please! Post what you think of my game. Glitch Reports are also nice. I also added sound in this game, so tell me if you have problems like if it doesn't work or something.
You can find it in the Chaos Productions Section of the site.
http://www.thechaosrift.com/programs/productions.shtml
Enjoy!
Small girl at the harbor wrote:Look Brandon, that crab's got ham!
- JS Lemming
- Game Developer
- Posts: 2383
- Joined: Fri May 21, 2004 4:09 pm
- Location: C:\CON\CON
- Falco Girgis
- Elysian Shadows Team
- Posts: 10294
- Joined: Thu May 20, 2004 2:04 pm
- Current Project: Elysian Shadows
- Favorite Gaming Platforms: Dreamcast, SNES, NES
- Programming Language of Choice: C/++
- Location: Studio Vorbis, AL
- Contact:
Aight Travis. Your game is UNdeniably a chaos rift masterpiece. Awww... who am I kidding? 'Tis THE Chaos Rift masterpeice. OH OH OH! I just had an idea! I'm going to put it as the new game of the week. That should get a hell of a lot of visitors.
I love the pure hellish mayhem of randomness the game features. Very intense. It is a game that I don't mind getting my ass kicked on.
I love the pure hellish mayhem of randomness the game features. Very intense. It is a game that I don't mind getting my ass kicked on.
Oh yes, this is what I used to do. Enable debug in your blitz environment. Then run your game. When the smaller window is up, Print Screen. Paste in in paint. Shrink it to a reasonable size. I think your game should look good as a gif. If not, use PNG. But whatever you do NO JPGs! :DEvery time I shrink the image to a reasonable size, it makes it look horrible. Any suggestions?
- JS Lemming
- Game Developer
- Posts: 2383
- Joined: Fri May 21, 2004 4:09 pm
- Location: C:\CON\CON
I am SO MAD!!! I worked really hard on that game.... and it messes up when I try it on my sister's NEW laptop. I mean, it looks right and acts right at the title screen thing, but when you do a solo round, only the 2 player controls will move player 1's ship. GAHHH.... Its like its jammed on 2 player setting. I don't get it, it works perfectly on my compoot.
Please tell me if this is happening to you too! If it is.... grrrrrrr. I guess it's really time to flush blitz down the toilet. I'm moving to graphics on the all respectable C++... so how...
Please tell me if this is happening to you too! If it is.... grrrrrrr. I guess it's really time to flush blitz down the toilet. I'm moving to graphics on the all respectable C++... so how...
Small girl at the harbor wrote:Look Brandon, that crab's got ham!
- Falco Girgis
- Elysian Shadows Team
- Posts: 10294
- Joined: Thu May 20, 2004 2:04 pm
- Current Project: Elysian Shadows
- Favorite Gaming Platforms: Dreamcast, SNES, NES
- Programming Language of Choice: C/++
- Location: Studio Vorbis, AL
- Contact:
How do you play 2 player? I'm using Windows XP. No offense, but I'm sure my new computer is like 10X more respectable than your sister's. It runs flawless for me.
As for moving onto C++. I didn't wanna learn OpenGL and junk just yet and I really wanted to do some real console programming. Thats why I stick with Dreamcast. I'll be releasing a game for it soon.
I must tell you though, JS Lemming. From the little experience I've had making a game in C++, it is HARD. Confusion and everything sets in. Look at my source so far. This is my Dreamcast game. Har she is ready to compile. All you can really do is fly around shooting people with bullets that have no affect with the Sonic Theme of little children dying in the background:
Lord, look at that source! I expect it to AT LEAST double before this game is done.
As for moving onto C++. I didn't wanna learn OpenGL and junk just yet and I really wanted to do some real console programming. Thats why I stick with Dreamcast. I'll be releasing a game for it soon.
I must tell you though, JS Lemming. From the little experience I've had making a game in C++, it is HARD. Confusion and everything sets in. Look at my source so far. This is my Dreamcast game. Har she is ready to compile. All you can really do is fly around shooting people with bullets that have no affect with the Sonic Theme of little children dying in the background:
Code: Select all
#define _arch_dreamcast
#include <kos.h>
#include <png/png.h>
class player {
public:
int x;
int y;
int direction;
pvr_ptr_t pic;
};
class bullet {
public:
int x;
int y;
int active;
int direction;
pvr_ptr_t pic;
};
class bullets {
public:
bullet b[12];
}bullets;
pvr_ptr_t bg;
pvr_ptr_t bulletgfx;
player sonic[4];
int counter = 0;
int onscreen_bullets = 0;
int bg_s;
int luger_s;
void draw_picture(int player);
void draw_frame();
void get_input(int player);
void draw_bullet(int a);
void draw_bg();
extern uint8 romdisk_boot[];
KOS_INIT_ROMDISK(romdisk_boot);
int main() {
vid_set_mode(DM_640x480, PM_RGB565);
pvr_init_defaults();
sonic[0].pic = pvr_mem_malloc(64*64*2);
png_to_texture("/rd/sonic.png", sonic[0].pic, PNG_FULL_ALPHA);
sonic[0].x = 100;
sonic[0].y = 100;
sonic[1].pic = pvr_mem_malloc(64*64*2);
png_to_texture("/rd/knuckles.png", sonic[1].pic, PNG_FULL_ALPHA);
sonic[1].x = 540;
sonic[1].y = 100;
sonic[2].pic = pvr_mem_malloc(64*64*2);
png_to_texture("/rd/tails.png", sonic[2].pic, PNG_FULL_ALPHA);
sonic[2].x = 100;
sonic[2].y = 380;
sonic[3].pic = pvr_mem_malloc(64*64*2);
png_to_texture("/rd/shadow.png", sonic[3].pic, PNG_FULL_ALPHA);
sonic[3].x = 540;
sonic[3].y = 380;
for(int e = 0; e<12; e++) {
bullets.b[e].pic = pvr_mem_malloc(8*8*2);
png_to_texture("/rd/bullet.png", bullets.b[e].pic, PNG_FULL_ALPHA);
}
// Load the Background
bg = pvr_mem_malloc(512*512*2);
png_to_texture("/rd/bg.png", bg, PNG_FULL_ALPHA);
while(1) { // infinite loop
for(int i = 0; i<4; i++) {
get_input(i); // Get input from all 4 players
if(sonic[i].x > 640) {
sonic[i].x = 640;
}
if(sonic[i].x < 0) {
sonic[i].x = 0;
}
if(sonic[i].y > 480) {
sonic[i].y = 480;
}
if(sonic[i].y < 0) {
sonic[i].y = 0;
}
}
draw_frame();
counter++;
if(counter > 1000)
counter = 0;
}
return 0;
}
void draw_picture(int player) {
pvr_poly_cxt_t cxt;
pvr_poly_hdr_t hdr;
pvr_vertex_t vert;
pvr_poly_cxt_txr(&cxt,PVR_LIST_TR_POLY,PVR_TXRFMT_ARGB4444,64,64,sonic[player].pic,PVR_FILTER_NONE);
pvr_poly_compile(&hdr,&cxt);
pvr_prim(&hdr,sizeof(hdr));
vert.argb = PVR_PACK_COLOR(1,1,1,1);
vert.oargb = 0;
vert.flags = PVR_CMD_VERTEX;
vert.x = sonic[player].x - (64/2);
vert.y = sonic[player].y - (64/2);
vert.z = 5;
vert.u = 0.0;
vert.v = 0.0;
pvr_prim(&vert,sizeof(vert));
vert.x = sonic[player].x + (64/2);
vert.y = sonic[player].y - (64/2);
vert.z = 5;
vert.u = 1.0;
vert.v = 0.0;
pvr_prim(&vert,sizeof(vert));
vert.x = sonic[player].x - (64/2);
vert.y = sonic[player].y + (64/2);
vert.z = 5;
vert.u = 0.0;
vert.v = 1.0;
pvr_prim(&vert,sizeof(vert));
vert.x = sonic[player].x + (64/2);
vert.y = sonic[player].y + (64/2);
vert.z = 5;
vert.u = 1.0;
vert.v = 1.0;
vert.flags = PVR_CMD_VERTEX_EOL;
pvr_prim(&vert, sizeof(vert));
}
void draw_frame() {
pvr_wait_ready();
pvr_scene_begin();
pvr_list_begin(PVR_LIST_OP_POLY); // Non-transparent graphic
pvr_list_finish();
pvr_list_begin(PVR_LIST_TR_POLY); // Transparent graphic
for(int i=0; i<4; i++){
draw_picture(i);
}
for(int a=0; a<12; a++) {
if(bullets.b[a].active == true) {
if(bullets.b[a].direction == 0) // left
bullets.b[a].x--;
draw_bullet(a);
if(bullets.b[a].x < 0)
bullets.b[a].active = false;
if(bullets.b[a].direction == 1) // right
bullets.b[a].x++;
draw_bullet(a);
if(bullets.b[a].x > 640)
bullets.b[a].active = false;
}
}
draw_bg();
pvr_list_finish();
pvr_scene_finish();
}
void get_input(int player) {
cont_cond_t cond;
cont_get_cond(maple_addr(player,0),&cond);
if(!(cond.buttons & CONT_DPAD_UP)) {
sonic[player].y--;
}
if(!(cond.buttons & CONT_DPAD_DOWN)) {
sonic[player].y++;
}
if(!(cond.buttons & CONT_DPAD_LEFT)) {
sonic[player].x--;
sonic[player].direction = 0;
}
if(!(cond.buttons & CONT_DPAD_RIGHT)) {
sonic[player].x++;
sonic[player].direction = 1;
}
if(cond.rtrig > 100) {
if(onscreen_bullets < 12) {
bullets.b[onscreen_bullets].active = true;
bullets.b[onscreen_bullets].direction = sonic[player].direction;
}
}
}
void draw_bullet(int a) {
pvr_poly_cxt_t cxt;
pvr_poly_hdr_t hdr;
pvr_vertex_t vert;
pvr_poly_cxt_txr(&cxt,PVR_LIST_TR_POLY,PVR_TXRFMT_ARGB4444,8,8,bullets.b[a].pic,PVR_FILTER_NONE);
pvr_poly_compile(&hdr,&cxt);
pvr_prim(&hdr,sizeof(hdr));
vert.argb = PVR_PACK_COLOR(1,1,1,1);
vert.oargb = 0;
vert.flags = PVR_CMD_VERTEX;
vert.x = bullets.b[a].x - (8/2);
vert.y = bullets.b[a].y - (8/2);
vert.z = 5;
vert.u = 0.0;
vert.v = 0.0;
pvr_prim(&vert,sizeof(vert));
vert.x = bullets.b[a].x + (8/2);
vert.y = bullets.b[a].y - (8/2);
vert.z = 5;
vert.u = 1.0;
vert.v = 0.0;
pvr_prim(&vert,sizeof(vert));
vert.x = bullets.b[a].x - (8/2);
vert.y = bullets.b[a].y + (8/2);
vert.z = 5;
vert.u = 0.0;
vert.v = 1.0;
pvr_prim(&vert,sizeof(vert));
vert.x = bullets.b[a].x + (8/2);
vert.y = bullets.b[a].y + (8/2);
vert.z = 5;
vert.u = 1.0;
vert.v = 1.0;
vert.flags = PVR_CMD_VERTEX_EOL;
pvr_prim(&vert, sizeof(vert));
}
void draw_bg() {
pvr_poly_cxt_t cxt;
pvr_poly_hdr_t hdr;
pvr_vertex_t vert;
pvr_poly_cxt_txr(&cxt,PVR_LIST_TR_POLY,PVR_TXRFMT_ARGB4444,512,512,bg,PVR_FILTER_NONE);
pvr_poly_compile(&hdr,&cxt);
pvr_prim(&hdr,sizeof(hdr));
vert.argb = PVR_PACK_COLOR(1,1,1,1);
vert.oargb = 0;
vert.flags = PVR_CMD_VERTEX;
vert.x = 0;
vert.y = 0;
vert.z = 1;
vert.u = 0.0;
vert.v = 0.0;
pvr_prim(&vert,sizeof(vert));
vert.x = 640;
vert.y = 0;
vert.z = 1;
vert.u = 1.0;
vert.v = 0.0;
pvr_prim(&vert,sizeof(vert));
vert.x = 0;
vert.y = 480;
vert.z = 1;
vert.u = 0.0;
vert.v = 1.0;
pvr_prim(&vert,sizeof(vert));
vert.x = 640;
vert.y = 480;
vert.z = 1;
vert.u = 1.0;
vert.v = 1.0;
vert.flags = PVR_CMD_VERTEX_EOL;
pvr_prim(&vert, sizeof(vert));
}
- JS Lemming
- Game Developer
- Posts: 2383
- Joined: Fri May 21, 2004 4:09 pm
- Location: C:\CON\CON
Ha! That's nothing, want to see what it took just to draw a Ship in my game?
I think I'm ready for a Graphical C++ view.
My next goal is to learn opengl enough to recreate Space Masters.
Code: Select all
;Draws Ship with given data
Function DrawShip(x, y, angle, on, r, g, b, hity, Shield)
;Set Color
If hity = False
Color r,g,b
Else
Color 255,255,255
EndIf
;Draw lines that make up the ship
Line x,y,(x + (Radius * Cos(angle))),(y + (Radius * Sin(angle)))
Line x + (Radius * Cos(angle)),y + (Radius * Sin(angle)),x + (Radius * Cos(angle+140)),y + (Radius * Sin(angle+140))
Line x + (Radius * Cos(angle)),y + (Radius * Sin(angle)),x + (Radius * Cos(angle-140)),y + (Radius * Sin(angle-140))
Line x + (Radius * Cos(angle+140)),y + (Radius * Sin(angle+140)),x,y
Line x + (Radius * Cos(angle-140)),y + (Radius * Sin(angle-140)),x,y
;If shield true
If Shield > 0
;Draw blue circle around ship
Color 0,Rand(100,200),255
Oval (x-Radius)-5,(y-Radius)-5,(Radius*2)+10,(Radius*2)+10, 0
EndIf
;Make fire on back if On is true
If on = True
;Set color to yellow
Color Rand(200,255),Rand(200,255),0
MidPoint(x,y,x + (Radius * Cos(angle+140)),y + (Radius * Sin(angle+140)))
For i = Rand(-4,4) To 15 Step 1;5
Line (x - ((Radius-i) * Cos(angle))),(y - ((Radius-i) * Sin(angle))),Midx,Midy
Next
MidPoint(x,y,x + (Radius * Cos(angle-140)),y + (Radius * Sin(angle-140)))
For i = Rand(-4,4) To 15 Step 1;5
Line (x - ((Radius-i) * Cos(angle))),(y - ((Radius-i) * Sin(angle))),Midx,Midy
Next
EndIf
End Function
My next goal is to learn opengl enough to recreate Space Masters.
Small girl at the harbor wrote:Look Brandon, that crab's got ham!
- Falco Girgis
- Elysian Shadows Team
- Posts: 10294
- Joined: Thu May 20, 2004 2:04 pm
- Current Project: Elysian Shadows
- Favorite Gaming Platforms: Dreamcast, SNES, NES
- Programming Language of Choice: C/++
- Location: Studio Vorbis, AL
- Contact:
Travis, travis. I think you know enough programming languages: C++, Javascript, Blitz, I guess you could even call HTML one.
Why do you need to start mucking around in OpenGL? That is what I'm doing AFTER the Dreamcast. I just think you're jumping WAY far ahead. Why don't you give console programming a try? Just bust out a BroadBand Adapter for that Lame Cube of yours and code away.
The 'cube doesn't have the kind of utilities and tools that the DC has, but there should be some similarity.
Why do you need to start mucking around in OpenGL? That is what I'm doing AFTER the Dreamcast. I just think you're jumping WAY far ahead. Why don't you give console programming a try? Just bust out a BroadBand Adapter for that Lame Cube of yours and code away.
The 'cube doesn't have the kind of utilities and tools that the DC has, but there should be some similarity.
- JS Lemming
- Game Developer
- Posts: 2383
- Joined: Fri May 21, 2004 4:09 pm
- Location: C:\CON\CON
- JS Lemming
- Game Developer
- Posts: 2383
- Joined: Fri May 21, 2004 4:09 pm
- Location: C:\CON\CON
Hmm... I did some scouting for 2d opengl and got a lot of warnings. they said opengl is not intended for 2d, it was streamlined for 3d. Which means it would probably be easier to make 3d games then it is 2d... I'm not ready for 3d yet. But, they did lead me to SDL, a C++ API library for only 2d. So, I will either go with that or still use blitz.
I will still use opengl someday, but after I'm done with 2d. I guess that's good though because that way, Super Sonic and me can go 3d at the same time. He can continue console game programming, and me random PC game programming.
I will still use opengl someday, but after I'm done with 2d. I guess that's good though because that way, Super Sonic and me can go 3d at the same time. He can continue console game programming, and me random PC game programming.
Small girl at the harbor wrote:Look Brandon, that crab's got ham!
- Falco Girgis
- Elysian Shadows Team
- Posts: 10294
- Joined: Thu May 20, 2004 2:04 pm
- Current Project: Elysian Shadows
- Favorite Gaming Platforms: Dreamcast, SNES, NES
- Programming Language of Choice: C/++
- Location: Studio Vorbis, AL
- Contact: