NEngine - Nishu Game Engine

This is my latest project, NEngine, or Nishu Game Engine. Its my pet project for the next month or so, and after that it will be put to use to create a game for christmas for my girlfriend! Its purpose is to be flexible, yet fast, high level, and graphically appealing. Currently I have support for:

-Spritesheets
-Texures
-Creating basic primitives
-Immediate mode & display lists
-Coloring
-Screens and changing screens
-Basic camera

I started the library yesterday (10/26/2013), so I unfortunately didn’t have time to set up advanced code like VBOs and shaders. That’s on my to-do list. I will be keeping deprecated code as the aim of the engine is to provide you with flexible code, not just modern styles. It will be a 2D library strictly, unless I really want to give 3D a go. I have already set up a small demo, but its nothing more than a moving rectangle. The library is approximately 10% finished (by my advanced calculations! :slight_smile: ), so I will not be uploading a test version for a few days!

What I want to have done

-Textures, spritesheets, advanced image manipulation
-Easy animator
-Shader support
-Advanced rendering techniques (modern opengl)
-GUI
-Support for all kinds of file types
-Maybe basic networking
-Other stuff I can’t think of right now

Here is the demo, which creates a square in immediate mode, colors it and moves it using the camera:


package com.nishu.tree;

import static com.nishu.nengine.base.graphics.GL11.*;

import java.util.Random;

import com.nishu.nengine.base.Game;
import com.nishu.nengine.base.graphics.camera.Camera;
import com.nishu.nengine.base.graphics.color.Color4f;
import com.nishu.nengine.base.graphics.geom.Shape;
import com.nishu.nengine.utilities.Screen;

public class Tree extends Screen {

	private static Game game;
	private Shape shape;
	private Camera camera;

	Random rand;

	@Override
	public void initGL() {
	}

	@Override
	public void init() {
		camera = new Camera(game.getWidth(), game.getHeight());
		shape = new Shape();

		rand = new Random();
	}

	@Override
	public void update() {
	}

	@Override
	public void render() {
		clearScreen();
		camera.translate(rand.nextInt(20) - 10, rand.nextInt(20) - 10);
		pushMatrix();
		begin();
		shape.createColoredSquare(new Color4f(0, 0, 1, 0), game.getWidth() / 2, game.getHeight() / 2, 32);
		end();
		popMatrix();

	}

	@Override
	public void resized() {
	}

	@Override
	public void dispose() {
	}

	public static void main(String[] args) {
		game = new Game("Tree", 1280, 720, 60);
		game.addMainScreen(new Tree());
		game.start();
	}

}