I was thinking of developing a very basic language that supports lwjgl. The main idea behind it would be that you can easily create a fairly complex project with very little code , especially for the graphics . So setting up a VBO in lwjgl is a long process require a lot of code with hundreds of different functions that you can use , to create a vbo in this language it could simply be Vbo i = Vbo.create(verticies,texture). It would also include basic input functions and also direct display handling that allow you to perform tasks such as a tick delay with one line of code. All vbos can be bound to this buffer with Vbo.assign(). and remove with Vbo.remove(). , note that the . is the equivelant of ;. Another feature I was thinking of implementing direct shader writing . So here is an example of what the syntax for it may look like.
(Name = "Example")...//Declare new functions and classes through brackets
Vbo object;
(init_{})...//parameters are stored within {} and indentation is done through ...
print{"This is an example"};//end the function call with a ;
load{};
...
(load{})...
Display.create{800,600,"Example"};
Display.starttick{60};
?<!object>... //an if statement
object = Vbo.create{v2d.list{0,0,1,1,1,0,0,1},Texture.load{"Test.png"}};//no creating objects simply function calls that return them
...
Vbo.assign{object};
Vbo.translate{object,60,60};
Vbo.update{object};
Vbo.createshader{shader-s};//write the shader directly into your code
Vbo.bindshader{shader-s};//built in error checking confirms wether it has been loaded in
...
(Shader = shader-s)...//very simple shader built directly into the code, this is the default shader that would be used if none were loaded
attribute vec2 vectex;
uniform vec2 transform;
uniform float scalar;
varying vec2 vecdata;
void main()
{
vec4 offset = vec4(position.x+transform.x,(position.y+transform.y),1,1);
gl_Position = offset;
vecdata = vectex;
}
...
...
That code would gladly render a vbo to the screen with the set texture , what do you think?