Deathsiege

http://images2.cdn.gamejolt.com/imgserver/game-header/950/15326_1.jpg

Welcome to Deathsiege! This is the first 3D game I have worked on, and its pretty much a prototype so most of you will probably find it boring. :stuck_out_tongue: I was kind of rushed to finish the game because its summer and I have to go to some places so if you have any suggestions/bug reports please post them here.

I will continue to update the game on my own time as much as I can to make it a fun game with high performance. Thanks for reading.

Here is the link:
https://app.box.com/s/gpgzlpxsgiakrd1y0aaf

The resolution stuff and GameJolt stuff don’t work yet, don’t worry about it for now. I didn’t have enough time to finish any of it.

In the post release versions, I will attempt to improve everything in the game: from gameplay to weapons to textures and models.

Wow! Looks really good! :wink:

What method are you using for 3D? Are you using OpenGL?

Yeah, I’m using LWJGL for all rendering.

Looks pretty good :).

The textures tough should all fit together, some textures are more detailed than other ones.
If you need someone to do pixel-art, I would be happy to do so ;D.

Yeah, I’m trying to get better at art, I’m no good at it. I made 3 more textures yesterday, and I’m going to put them in today, I’ll post something on that later. Most of the textures there are placeholders, like the gun and the building. I made the tree texture, gate texture, and the monster texture, so there’ll be more to see.

Looks pretty good, 3D siege sounds fun! Will this be multiplayer?
Also, those lines look kinda jagged - I only know 2D but antialiasing?

I’ll do antialiasing. And yes, there will be multiplayer, but that’s after single player comes out. I’m only going to want to do multiplayer if single player turns out to be good.

I’m still texturing the gates and the trees. Previously I used cones and cylinders, but that’s a hassle to texture, so for now I’m just going to use cubic polyhedrons.

Here are the gates. These are probably preliminary textures, but it looks good for me now.

Oh, and I’m using GL_NEAREST for loading textures at the moment. I’m still debating with myself whether to have a pixelly look or a smooth look.

Here is the code from the axe class.


glPushMatrix();
Vector3D hold = powner.getCamera().getHoldingPosition();

glTranslatef((float) hold.x, (float) hold.y, (float) hold.z);
glRotatef(powner.getCamera().getYaw(), 0, 1, 0);
glRotatef(-powner.getCamera().getPitch(), 1, 0, 0);

glTranslatef(0.5f, -0.75f, 0f);
glScalef(0.5f, 0.5f, 0.5f);

glRotatef(30, 0, 1, 0);

glCallList(Resources.getModel(6));
glPopMatrix();

hold is just a coordinate that represents the camera’s position plus the direction vector at some multiplication factor.

So the first set of translate and rotates aligns it in front of you. Dead ahead straight. Then after that, I translate it down and right to the bit. Then I scale it to its correct size. The last rotate is just so it looks like I’m holding it because the model axe faces down instead of upright. No idea why I did that.

I added view bobbing, but its controlled in another class, you just add the view bobbing factors before you render whatever you’re holding.

I could also provide some pixel art.

PM me if your interested.

Anyway, looks okay.
Seems like a good idea.

I would really get some better, and more consistent art though. The difference in resolutions makes my eyes hurt. :wink:

One thing I would really recommend is if you changed the sky color, and you could also enable GL_FOG.

I’d put this at the beginning of your main class.


    /** The distance where fog starts appearing. */
    private static final float fogNear = 12f;
    /** The distance where the fog stops appearing (nothing is shown here) */
    private static final float fogFar = 17f;
    /** The color of the fog in rgba. */
    private static final Color fogColor = new Color(0.7f, 0.8f, 1f, 1f);

And I’d put this in your method that you initialize OpenGL in,


        // Enables Fog
        GL11.glEnable(GL11.GL_FOG);

        {
            FloatBuffer fogColours = BufferUtils.createFloatBuffer(4);
            fogColours.put(new float[]{fogColor.r, fogColor.g, fogColor.b, fogColor.a});
            GL11.glClearColor(fogColor.r, fogColor.g, fogColor.b, fogColor.a);
            fogColours.flip();
            GL11.glFog(GL11.GL_FOG_COLOR, fogColours);
            GL11.glFogi(GL11.GL_FOG_MODE, GL11.GL_LINEAR);
            GL11.glHint(GL11.GL_FOG_HINT, GL11.GL_NICEST);
            GL11.glFogf(GL11.GL_FOG_START, fogNear);
            GL11.glFogf(GL11.GL_FOG_END, fogFar);
            GL11.glFogf(GL11.GL_FOG_DENSITY, 0.005f);
        }

Hope that helps a bit ;D

Yeah, sorry about that. Right now, there are 3 different art styles, 2 randomly from the internet, and 1 from mine. I’m redoing most of the textures right now, and if those turn out to be horrible, I’ll get some help from you guys.

Thanks from giving that code! I’m on my graphics-making computer right now, so I won’t be able to try it out right now, but I will as soon as I get back to coding(Saturday). Can’t wait to see how it’ll make it look better! :smiley:

I think I just might not use a skybox depending on the art style; pixelated skybox wouldn’t really be fascinating, would it?

I’ve done it before, not really a skybox, but something very similar.

It depends, if you can make it look good, it can give a really good feel to the game.

Here are the trees. You can cut them down!

P.S. I’ll just post a weekly update here to refrain from posting a lot of trash. I’ll post more frequent updates on my blog thing.

Neat! are you about to start texturing them?

Also, did you try the GL_FOG thing?

Uh, yeah, this should explain what’s happening:

Erm, did you do everything correctly? You are supposed to put the first block of code I sent in the beginning of your main class, the one you initialize OpenGL in. And as for the fog itself, the second block of code I sent you, you need to put that directly in the method you initialize OpenGL in. If you need to, increase the start and end distance of the fog.

Yeah, that’s all fine, but are there anything I need to disable or enable before rendering stuff?

Not that I know of.

Here is my entire renderGL() method:


   public static void renderGL() {
		GL11.glMatrixMode(GL11.GL_PROJECTION);
		GL11.glLoadIdentity();

		GLU.gluPerspective((float) 100, Game.width / Game.height, 0.001f, 1000);
		GL11.glMatrixMode(GL11.GL_MODELVIEW);

		GL11.glEnable(GL11.GL_TEXTURE_2D);
		GL11.glShadeModel(GL11.GL_SMOOTH);
		GL11.glClearColor(0.1f, 0.4f, 0.6f, 00.0f);
		GL11.glClearDepth(1.0f);
		GL11.glEnable(GL11.GL_DEPTH_TEST);
		GL11.glDepthFunc(GL11.GL_LEQUAL);
		
        GL11.glEnable(GL11.GL_FOG);

        {
            FloatBuffer fogColours = BufferUtils.createFloatBuffer(4);
            fogColours.put(new float[]{fogColor.r, fogColor.g, fogColor.b, fogColor.a});
            GL11.glClearColor(fogColor.r, fogColor.g, fogColor.b, fogColor.a);
            fogColours.flip();
            GL11.glFog(GL11.GL_FOG_COLOR, fogColours);
            GL11.glFogi(GL11.GL_FOG_MODE, GL11.GL_LINEAR);
            GL11.glHint(GL11.GL_FOG_HINT, GL11.GL_NICEST);
            GL11.glFogf(GL11.GL_FOG_START, fogNear);
            GL11.glFogf(GL11.GL_FOG_END, fogFar);
            GL11.glFogf(GL11.GL_FOG_DENSITY, 0.005f);
        }
}

Looking great! (as usual by these mini-projects here on JGO)
Would be cool to see a download or something like that.