Re: LOVE3D: For Realsies
Posted: Tue Nov 04, 2014 10:10 am
even with raw opengl calls, i could utilize it as 3D backgrounds for a 2D game, for example; that wouldn't need too much power.
From what I can see, I'd say it will be for a GTA1 or GTA2 clone. With curved roads and better car handling. And larger maps. And better train integration. And more interesting storyline.Karai17 wrote:As I said in another post, I make no illusions that LOVE is useful for the next Call of Duty or Grand Theft Auto.
I believe this is for the most part "good enough" when it comes to 2D games, and I'd hope it wouldn't rival unity as that alone would be a massive undertaking...miko wrote:I think no one expects it to rival unity or other real 3D engines, but for me the possibility for really simple 3D would be more than OK. I do not have the time to play with full 3D (models, worlds, etc), but would like to play with something easy and not time-consuming (and love2d is perfect for this)Jasoco wrote:Okay. When you release a fully playable game with a large open 3D world, that works on OS X and Linux, we'll all be very excited and happy and very eager to find out how you did it all.
I have built it succesfully on arch linux. The cube demo works, but for panzer I get:Karai17 wrote: Edit: Updated the demo to fix several major bugs (oops) and released the full source for the custom LOVE build (99.99% of it was already publicly available). If someone wants to build us a copy for OS X, that'd be swanky.
Code: Select all
Cannot compile pixel shader code:
0:1(12): warning: extension `GL_EXT_gpu_shader4` unsupported in fragment shader
p:1(1): error: #extension directive is not allowed in the middle of a shader
Code: Select all
GL_VERSION: 3.0 Mesa 10.3.2
GL_RENDERER: Mesa DRI Intel(R) Ivybridge Mobile
Code: Select all
-- I DO WHAT I WANT SLIME
-- YOU'RE NOT MY REAL DAD
ffi.cdef([[void *SDL_GL_GetProcAddress(const char *proc);]])
Yeah, Mesa doesn't work for this. We'd have to make LOVE use a newer GL version than it does. Mesa doesn't support the extension form of the functionality we use nor does it support #extension not being at the very beginning of the shader...miko wrote:I have built it succesfully on arch linux. The cube demo works, but for panzer I get:triggered by assets/shaders/fxaa.glslCode: Select all
Cannot compile pixel shader code: 0:1(12): warning: extension `GL_EXT_gpu_shader4` unsupported in fragment shader p:1(1): error: #extension directive is not allowed in the middle of a shader
Is it because I am running on Mesa?There is no GL_EXT_gpu_shader4 extension...Code: Select all
GL_VERSION: 3.0 Mesa 10.3.2 GL_RENDERER: Mesa DRI Intel(R) Ivybridge Mobile
Anyways, cube demo works great!
Edit: How can I paint cubes with a solid color?
Code: Select all
#ifdef VERTEX
attribute vec4 v_position;
uniform mat4 u_projection;
uniform mat4 u_view;
uniform mat4 u_model;
vec4 position(mat4 transform_projection, vec4 vertex_position) {
return u_projection * u_view * u_model * v_position;
}
#endif
#ifdef PIXEL
uniform vec4 u_color = vec4(1.0, 0.0, 1.0, 1.0);
vec4 effect(vec4 color, Image texture, vec2 texture_coords, vec2 screen_coords) {
return u_color;
}
#endif
This is my favorite comment in the whole codebase.clofresh wrote:Such an elegant, well documented codebase:
Code: Select all
-- I DO WHAT I WANT SLIME -- YOU'RE NOT MY REAL DAD ffi.cdef([[void *SDL_GL_GetProcAddress(const char *proc);]])
That's pretty much the actual intent of this, we're just doing what we like doing and taking it way too far!The sweet spot wouldn't be a Call of Duty kind of game, but maybe more of the Smash Bros or Don't Starve type of games which are mostly 2d with 3d in some spots.
One interesting use case I've seen other game devs do is create 3d models in Blender but export them into 2d animation sprites for their 2d games. Having the source model be in 3d lets them easily create new animations and different perspectives of existing animations which cuts down a lot of animation time. Being able to load the 3d models directly would cut out another step in that process. I'm assuming that Unity can do that with their 2d mode, but fuck Unity.