DC Engine

BMPs aren't compressed.
Why should that matter? It's hard to compress an image that is 16x16.

u shuld be savin them as jpgs with 0 qulity.

*end troll post*

Whatever file format you use, you can rest assured I will be watching over this lil' project with great anticipation!
You're very nice. In fact, I could use your help in the future
smile.gif
I'm flattered over your anticipation. However, making an engine is difficult, so it will take time.

Heh, I dunno what I'd even be able to help with aside from the odd promotional image thingy like I suggested. But yes, take as much time as you need!
Character and enemy creation. Which is going to be editable through my animation program. You're free to make what you want. Even a shy guy looking one.
 
Sounds interesting. I'll stay tuned and see how things work out, due to being totally useless at Photoshop and other imaging editors. I could help in some ways, like ideas or testing maybe, but only if you need that. Otherwise I'll stick around and see how it plays out. Good Luck!
 
Sounds interesting. I'll stay tuned and see how things work out, due to being totally useless at Photoshop and other imaging editors. I could help in some ways, like ideas or testing maybe, but only if you need that. Otherwise I'll stick around and see how it plays out. Good Luck!
Thank you, and there's no need to use photoshop. I'm making my own software that creates images, and lets you combine them into a character. After, you can animate it.

Um, you could test, but it wont be for a while.
 
Sounds interesting. I'll stay tuned and see how things work out, due to being totally useless at Photoshop and other imaging editors. I could help in some ways, like ideas or testing maybe, but only if you need that. Otherwise I'll stick around and see how it plays out. Good Luck!
Thank you, and there's no need to use photoshop. I'm making my own software that creates images, and lets you combine them into a character. After, you can animate it.

Um, you could test, but it wont be for a while.
I think he meant like making an opening, logo or some official artwork thingy for it.. I can try to do stuff like that though..
 
I actually meant any image editing or making at all, heh. I'm hopeless.

Keep us posted, I'm rather intrigued now. I do have a quick question however - will the battles be real-time or turn-based? And you mentioned Multiplayer earlier, which if you can get that working would be fantastic if you ask me. But, Multiplayer should be programmed later, focus on the game itself for now.
 
I actually meant any image editing or making at all, heh. I'm hopeless.

Keep us posted, I'm rather intrigued now. I do have a quick question however - will the battles be real-time or turn-based? And you mentioned Multiplayer earlier, which if you can get that working would be fantastic if you ask me. But, Multiplayer should be programmed later, focus on the game itself for now.
Multiplayer would come way later. Also, it's real time battles. Seems more fitting for my goal. Right now, I finished the texture editor part of my program. I'm working on the character editor. I may release the software soon.
 
Last edited by a moderator:
Hey, I'm sorry that I haven't been updating this a lot. I've been destracted by games and stuff, because the Nintendo 3DS rocks! So please be patient, and remember that this is a hobby, but I promise you - and I'm a man of my word - that I will not stop working on this.

Right now I'm working on animation for the sprite maker. Basically this will let you move the parts of the character around and make key frames, which will be interpolated and look like smooth animation
smile.gif
 
Hey, I'm sorry that I haven't been updating this a lot. I've been destracted by games and stuff, because the Nintendo 3DS rocks! So please be patient, and remember that this is a hobby, but I promise you - and I'm a man of my word - that I will not stop working on this.

Right now I'm working on animation for the sprite maker. Basically this will let you move the parts of the character around and make key frames, which will be interpolated and look like smooth animation
smile.gif

Take all the time you need.
 
So it turns out that I had to redo some code to make changes that were for the better. I got a different perspective on the way the character models will work
smile.gif
Anyway, here's so commented code to show my current progress on the Characters. Not much, but better than nothing.

Code:
class VECTOR2D{
public:
float X,Y;
VECTOR2D();
VECTOR2D(float,float);
~VECTOR2D();
VECTOR2D &VECTOR2D::operator=(VECTOR2D);
};
VECTOR2D::VECTOR2D(){
}
VECTOR2D::VECTOR2D(float x, float y){
X = x;
Y = y;
}
VECTOR2D &VECTOR2D::operator=(VECTOR2D v){
X = v.X;
Y = v.Y;
return *this;
}
VECTOR2D::~VECTOR2D(){
}
VECTOR2D Rotate(VECTOR2D Vector, VECTOR2D Origin, float Angle){ // Rotates a 2D Vector over a point.
VECTOR2D RVEC;
float RAD = Angle/180*3.14159265;
RVEC.X = Origin.X + ((Vector.X - Origin.X) * cos(RAD)) - ((Origin.Y - Vector.Y) * sin(RAD));
RVEC.Y = Origin.Y + ((Origin.Y - Vector.Y) * cos(RAD)) - ((Vector.X - Origin.X) * sin(RAD));
return RVEC;
}
void glVertexV2(VECTOR2D V,float Z = 0){
glVertex3f(V.X,V.Y,Z);
}
class LIMB{ // Each individual piece to an object or Entity
private:
VECTOR2D Vertices[4];
public:
VECTOR2D Pos, Origin;
float Size, Z,Rot;
GLint Texture;
LIMB(VECTOR2D,VECTOR2D,int,int,char*);
~LIMB();
LIMB &LIMB::operator=(LIMB);
void SetRotation(float);
void SetTexture(char *);
void Draw();
};
LIMB &LIMB::operator=(LIMB L){
Pos = L.Pos;
Origin = L.Origin;
Size = L.Size;
Z = L.Z;
Texture = L.Texture;
Rot = L.Rot;
for(int i = 0; i < 4; i++){
  Vertices[i] = L.Vertices[i];
}
return *this;
}
void LIMB::SetRotation(float){
Vertices[0].X = -Size/200; // Sets Vertices back to initial to preform a rotation
Vertices[0].Y = -Size/200;
Vertices[1].X = Size/200;
Vertices[1].Y = -Size/200;
Vertices[2].X = Size/200;
Vertices[2].Y = Size/200;
Vertices[3].X = -Size/200;
Vertices[3].Y = Size/200;
for(int i = 0; i < 4; i++){
  Vertices[i] = Rotate(Vertices[i],Origin,Rot*2); // Rotates all the Vertices
}
}
void LIMB::SetTexture(char * Name){ // Sets the texture
Texture = ltex(Name,16,16,true,true);
}
LIMB::LIMB(VECTOR2D position, VECTOR2D origin, int size, int rotation, char * name){
Pos = position;
Origin = origin;
Size = size;
Rot = rotation;
SetRotation(Rot);
SetTexture(name);
}
void LIMB::Draw(){ // Draws the Limb using each Vertex for rotation
glEnable(GL_TEXTURE_2D);
glBindTexture(GL_TEXTURE_2D,Texture);
glPushMatrix();
glTranslated(Pos.X,Pos.Y,Z);
glBegin(GL_QUADS);
glTexCoord2i(0,0);
glVertexV2(Vertices[0]);
glTexCoord2i(1,0);
glVertexV2(Vertices[1]);
glTexCoord2i(1,1);
glVertexV2(Vertices[2]);
glTexCoord2i(0,1);
glVertexV2(Vertices[3]);
glEnd();
glPopMatrix();
glDisable(GL_TEXTURE_2D);
}
LIMB::~LIMB(){
}
struct FRAME{ // Hold rotation, position, and frame data
VECTOR2D  Pos;
float Rot;
int NumberOfSubFrames;
};
class ENTITY{ // Class for all moving objects in the game
private:
bool LoopAnimation, Animating;
int CurrentKeyFrame, CurrentSubFrame, NumberOfLimbs, NumberOfKeyFrames, NumberOfSubFrames;
FRAME * Frames;
public:
VECTOR2D Pos;
LIMB * Limbs;
int Action,Health;
void LoadAnimation(char *);
void Animate();
void Display();
};
void ENTITY::Animate(){
for(int i = 0; i < NumberOfLimbs; i++){ // Runs through all the frames, then interpolates for subframes
  FRAME NewFrame;
  NewFrame.Pos.X = LinearInterpolate(CurrentSubFrame,1,Frames[CurrentKeyFrame].Pos.X,NumberOfSubFrames,Frames[CurrentKeyFrame+1].Pos.X);
  NewFrame.Pos.Y = LinearInterpolate(CurrentSubFrame,1,Frames[CurrentKeyFrame].Pos.Y,NumberOfSubFrames,Frames[CurrentKeyFrame+1].Pos.Y);
  NewFrame.Rot = LinearInterpolate(CurrentSubFrame,1,Frames[CurrentKeyFrame].Rot,NumberOfSubFrames,Frames[CurrentKeyFrame+1].Rot);
}
CurrentSubFrame++; // Sets the SubFrame further for a different piece of animation
if(CurrentSubFrame == NumberOfSubFrames){ // Checks to see if the SubFrames is maxed to use a new Key Frame
  CurrentSubFrame = 0;
  CurrentKeyFrame++;
}
if(CurrentKeyFrame == NumberOfKeyFrames){ // Checks to make sure there are more KeyFrames
  if(LoopAnimation){ // Resets if there are no more frames and looping
   CurrentKeyFrame = 0;
  }
  else{
   Animating = false; // If not, the Entity isn't animating
  }
}
}
void ENTITY::Display(){ // Displays the Entity
glPushMatrix();
glTranslated(Pos.X,Pos.Y,0); // Translates the Entity to position
for(int i = 0; i < NumberOfLimbs; i++){ // Runs through and displays all the limbs
  Limbs[i].Draw();
}
glPopMatrix();
}
 
ITS OK ill like 2 help i'm a good engineer for my age
 
So it turns out that I had to redo some code to make changes that were for the better. I got a different perspective on the way the character models will work
smile.gif
Anyway, here's so commented code to show my current progress on the Characters. Not much, but better than nothing.

Code:
class VECTOR2D{
public:
float X,Y;
VECTOR2D();
VECTOR2D(float,float);
~VECTOR2D();
VECTOR2D &VECTOR2D::operator=(VECTOR2D);
};
VECTOR2D::VECTOR2D(){
}
VECTOR2D::VECTOR2D(float x, float y){
X = x;
Y = y;
}
VECTOR2D &VECTOR2D::operator=(VECTOR2D v){
X = v.X;
Y = v.Y;
return *this;
}
VECTOR2D::~VECTOR2D(){
}
VECTOR2D Rotate(VECTOR2D Vector, VECTOR2D Origin, float Angle){ // Rotates a 2D Vector over a point.
VECTOR2D RVEC;
float RAD = Angle/180*3.14159265;
RVEC.X = Origin.X + ((Vector.X - Origin.X) * cos(RAD)) - ((Origin.Y - Vector.Y) * sin(RAD));
RVEC.Y = Origin.Y + ((Origin.Y - Vector.Y) * cos(RAD)) - ((Vector.X - Origin.X) * sin(RAD));
return RVEC;
}
void glVertexV2(VECTOR2D V,float Z = 0){
glVertex3f(V.X,V.Y,Z);
}
class LIMB{ // Each individual piece to an object or Entity
private:
VECTOR2D Vertices[4];
public:
VECTOR2D Pos, Origin;
float Size, Z,Rot;
GLint Texture;
LIMB(VECTOR2D,VECTOR2D,int,int,char*);
~LIMB();
LIMB &LIMB::operator=(LIMB);
void SetRotation(float);
void SetTexture(char *);
void Draw();
};
LIMB &LIMB::operator=(LIMB L){
Pos = L.Pos;
Origin = L.Origin;
Size = L.Size;
Z = L.Z;
Texture = L.Texture;
Rot = L.Rot;
for(int i = 0; i < 4; i++){
  Vertices[i] = L.Vertices[i];
}
return *this;
}
void LIMB::SetRotation(float){
Vertices[0].X = -Size/200; // Sets Vertices back to initial to preform a rotation
Vertices[0].Y = -Size/200;
Vertices[1].X = Size/200;
Vertices[1].Y = -Size/200;
Vertices[2].X = Size/200;
Vertices[2].Y = Size/200;
Vertices[3].X = -Size/200;
Vertices[3].Y = Size/200;
for(int i = 0; i < 4; i++){
  Vertices[i] = Rotate(Vertices[i],Origin,Rot*2); // Rotates all the Vertices
}
}
void LIMB::SetTexture(char * Name){ // Sets the texture
Texture = ltex(Name,16,16,true,true);
}
LIMB::LIMB(VECTOR2D position, VECTOR2D origin, int size, int rotation, char * name){
Pos = position;
Origin = origin;
Size = size;
Rot = rotation;
SetRotation(Rot);
SetTexture(name);
}
void LIMB::Draw(){ // Draws the Limb using each Vertex for rotation
glEnable(GL_TEXTURE_2D);
glBindTexture(GL_TEXTURE_2D,Texture);
glPushMatrix();
glTranslated(Pos.X,Pos.Y,Z);
glBegin(GL_QUADS);
glTexCoord2i(0,0);
glVertexV2(Vertices[0]);
glTexCoord2i(1,0);
glVertexV2(Vertices[1]);
glTexCoord2i(1,1);
glVertexV2(Vertices[2]);
glTexCoord2i(0,1);
glVertexV2(Vertices[3]);
glEnd();
glPopMatrix();
glDisable(GL_TEXTURE_2D);
}
LIMB::~LIMB(){
}
struct FRAME{ // Hold rotation, position, and frame data
VECTOR2D  Pos;
float Rot;
int NumberOfSubFrames;
};
class ENTITY{ // Class for all moving objects in the game
private:
bool LoopAnimation, Animating;
int CurrentKeyFrame, CurrentSubFrame, NumberOfLimbs, NumberOfKeyFrames, NumberOfSubFrames;
FRAME * Frames;
public:
VECTOR2D Pos;
LIMB * Limbs;
int Action,Health;
void LoadAnimation(char *);
void Animate();
void Display();
};
void ENTITY::Animate(){
for(int i = 0; i < NumberOfLimbs; i++){ // Runs through all the frames, then interpolates for subframes
  FRAME NewFrame;
  NewFrame.Pos.X = LinearInterpolate(CurrentSubFrame,1,Frames[CurrentKeyFrame].Pos.X,NumberOfSubFrames,Frames[CurrentKeyFrame+1].Pos.X);
  NewFrame.Pos.Y = LinearInterpolate(CurrentSubFrame,1,Frames[CurrentKeyFrame].Pos.Y,NumberOfSubFrames,Frames[CurrentKeyFrame+1].Pos.Y);
  NewFrame.Rot = LinearInterpolate(CurrentSubFrame,1,Frames[CurrentKeyFrame].Rot,NumberOfSubFrames,Frames[CurrentKeyFrame+1].Rot);
}
CurrentSubFrame++; // Sets the SubFrame further for a different piece of animation
if(CurrentSubFrame == NumberOfSubFrames){ // Checks to see if the SubFrames is maxed to use a new Key Frame
  CurrentSubFrame = 0;
  CurrentKeyFrame++;
}
if(CurrentKeyFrame == NumberOfKeyFrames){ // Checks to make sure there are more KeyFrames
  if(LoopAnimation){ // Resets if there are no more frames and looping
   CurrentKeyFrame = 0;
  }
  else{
   Animating = false; // If not, the Entity isn't animating
  }
}
}
void ENTITY::Display(){ // Displays the Entity
glPushMatrix();
glTranslated(Pos.X,Pos.Y,0); // Translates the Entity to position
for(int i = 0; i < NumberOfLimbs; i++){ // Runs through and displays all the limbs
  Limbs[i].Draw();
}
glPopMatrix();
}
If this is Java use a lot of variables, but if Flash, then do.. uh.. something!
 
Well, I completely suck with photoshop/any of that stuff.
But if you're making an easy character/enemy creator, then I could help, by making some levels, enemies and characters and etc.., I'm pretty creative to do that kind of stuff.
 
Well, I completely suck with photoshop/any of that stuff.
But if you're making an easy character/enemy creator, then I could help, by making some levels, enemies and characters and etc.., I'm pretty creative to do that kind of stuff.
I'm actually planning on having a contest for people to make enemies and characters. The best few will recieve beta testing, and a free copy (if I sell it... Depends).

Also, it's a side scrolling rpg. I'm not sure if I will make levels or have a random generated world. There are pros and cons to both. The pros for custom levels is more depth to the game, while random worlds would be more freedom.

I'm kind of torn between what I should do. Part of me wants it to be a sandbox rpg, while the other wants more of a story. I also kind of want to make a turn based game. Which makes me wonder if I should make a paper-Mario-like game.... Goodness there are so many possibilities. I'm not sure which I should do... Perhaps I should make a poll...
 
Back
Top