Brainstorming done
Power to stage one emitters in three...two...one
8-bit is quite a bit of a challenge if one wants to use a 3D engine like Panda3D, one could go mad trying to do that... so I've gone mad before the start just to save myself some time.
The idea I had is to use 3D graphics, just like I would do normally and then use a filter to make it look like in the olden days. Here's a mock-up on how it should work (in GIMP for now, but the shader shouldn't be that difficult to make- even for me):
As far as gameplay goes I decided to do a caveman beat'em-up. I don't know where the idea came from, but when I think of old games I think of titles like Cadillacs and Dinosaurs(not 8-bit but well...) and Prehistorik... the Iron Maiden track 'Quest for Fire' could also be blamed.
The plan for today is:
- Write and test a retro shader
- Make a character with MakeHuman
- Write a loader-setup thing
- Find a retro/pixel font
- Find some music
- Find or make some textures (grass, rock, tree, etc)
(log in to comment)
Comments
I don't mind if someone is doing the exact same thing as I do, in fact that makes me feel I'm doing the right sort of thing ;)
Anyways... I think I'm done for today. Thanks to MakeHuman I've got a player model ready(even with some animations!), a basic environment, a shader that makes things look 8-bitish. This is a in game screenshot:
The loader-setup thing isn't yet functional, but I think I got it looking bad enough (in a good, 8-bit sort of way):
Didn't find any music I like yet, but I got a nice font. It's called PressStart2P and it's under the SIL Open Font License, 1.1, so it should be ok to use. If anyone is in need of a font like this, here's a link:
http://www.dafont.com/press-start-2p.font
The 'crt' effect can be replaced with a 'dot matrix' or droped, the pixels can be bigger:
I think that's 8-bit enough.
For the music I found a Iron Maiden 'Quest for Fire' midi file, and it sounds not bad at all. But the midi file has an unknown legal status and I don't think I should use it. :(
The shader is very simple, and the techniques are just straight from the interweb.
Pixelization:http://coding-experiments.blogspot.com/2010/06/pixelation.html
Posterization:
http://www.geeks3d.com/20091027/shader-library-posterization-post-processing-effect-glsl/
The last effect is just multiplying by a texture that simulates a old monitor.
//Cg //Cg profile arbvp1 arbfp1 void vshader(float4 vtx_position : POSITION, float2 vtx_texcoord0 : TEXCOORD0, out float4 l_position : POSITION, out float2 l_texcoord0 : TEXCOORD0, uniform float4 texpad_tex0, uniform float4x4 mat_modelproj) { l_position=mul(mat_modelproj, vtx_position); l_texcoord0 = vtx_position.xz * texpad_tex0.xy + texpad_tex0.xy; } void fshader(float2 l_texcoord0 : TEXCOORD0, uniform float4 k_param1, out float4 o_color : COLOR, uniform sampler2D tex0 : TEXUNIT0, uniform sampler2D scanline : TEXUNIT1) { float dx = k_param1.z; float dy = k_param1.w; vec2 coord = vec2(dx*floor(l_texcoord0.x/dx), dy*floor(l_texcoord0.y/dy)); float nColors = k_param1.x; float gamma = k_param1.y; float4 texCol = tex2D(tex0, coord); float3 tc = texCol.xyz; tc = pow(tc, gamma); tc = tc * nColors; tc = floor(tc); tc = tc / nColors; tc = pow(tc,1.0/gamma); float4 scaneline_effect = tex2D(scanline, l_texcoord0); o_color.xyz = tc*scaneline_effect.xyz; o_color.w = 1; }
m0dem on 2014/05/11 13:47:
Thats one of the things I thought of when I heard 8-Bit > outdated > cavemen, but we're probably not going to do anything related to that. :) Good luck. -M0dem