List of *FREE* game programming resources
Graphics Gale
Graphics Gale is an excellent editor designed specifically for pixel art (IE sprites). The freeware version is perfect for making game graphics
(the professional version just adds the ability to export to various windows formats such as *.ico, *.ani).
A feature I really liked is animations, this has to be the coolest feature, you can setup, and edit animations in real time, so you can preview what your sprite would look like animated in game, and even refine it.
Graphics Gale is an excellent editor designed specifically for pixel art (IE sprites). The freeware version is perfect for making game graphics
(the professional version just adds the ability to export to various windows formats such as *.ico, *.ani).
A feature I really liked is animations, this has to be the coolest feature, you can setup, and edit animations in real time, so you can preview what your sprite would look like animated in game, and even refine it.
The link does not work(can't find server) ... Typo prb ?arenth wrote:Graphics Gale
Graphics Gale is an excellent editor designed specifically for pixel art (IE sprites). The freeware version is perfect for making game graphics
(the professional version just adds the ability to export to various windows formats such as *.ico, *.ani).
A feature I really liked is animations, this has to be the coolest feature, you can setup, and edit animations in real time, so you can preview what your sprite would look like animated in game, and even refine it.
EDIT: solved ....
Last edited by redcrab on Jul 26, 2006 8:23, edited 1 time in total.
-
- Posts: 52
- Joined: Jun 23, 2005 7:19
- Location: Nanaimo, BC
The program I use, CMK 1999, has this feature also-- It's extremely useful, I think I'd lose my patience working on long animations without it.arenth wrote:A feature I really liked is animations, this has to be the coolest feature, you can setup, and edit animations in real time, so you can preview what your sprite would look like animated in game, and even refine it.
That and the snap-to-grid function for creating tilesets and mockups... Those two features are what keeps me from using a more advanced program (such as photoshop) for the majority of my art.
By the way, that link works just fine for me.
Fractals, ray-tracing etc:
http://www.mandelbrot-dazibao.com/Main/Main.htm
Wonderful site with QB programs.
The ray-tracing program has been ported to FB by Antoni Gual.
http://www.mandelbrot-dazibao.com/Main/Main.htm
Wonderful site with QB programs.
The ray-tracing program has been ported to FB by Antoni Gual.
I ran upon this today. I like it. It allows you to create your own wood textures, and it's pretty versatile. It would be great for such things as RPG wall textures, billiard tables, etc...
http://www.spiralgraphics.biz/ww_overview.htm
http://www.spiralgraphics.biz/ww_overview.htm
Great site for fonts you can use in your games. Link goes to TV/Movie/Band fonts.
http://www.typenow.net/themed.htm
http://www.typenow.net/themed.htm
heres an awsome site with sound:
http://freesound.iua.upf.edu/
they have alot of random sounds but more then half need some form of sound editing to fit you'r needs.
http://freesound.iua.upf.edu/
they have alot of random sounds but more then half need some form of sound editing to fit you'r needs.
-
- Posts: 101
- Joined: Mar 30, 2006 15:58
This site contains info for all sorts of 3D and 2D Graphics: http://www.petesqbsite.com/ The BEST tutorials I've found on there have been Matthew Knight's tutorials. They don't use code but explain it in such a way that it helps you retain the knowledge.
Hope it helps ^_^
Hope it helps ^_^
-
- Posts: 785
- Joined: May 28, 2005 9:19
- Location: Finland
Here's some code to dump .B3D(Blitz3D) files...
Since our Rogue3D project needs bones and weight maps, we've been experimenting with different file formats that support them. Hopefully, we will finally get finished with a Lightwave loader, but that's turning out to be a beast from hell, with very large horns.
Anyway, I haven't tested it with any models, but hopefully it works ok. It was ported from some example I found somewhere. I just can't remember where now.
Since our Rogue3D project needs bones and weight maps, we've been experimenting with different file formats that support them. Hopefully, we will finally get finished with a Lightwave loader, but that's turning out to be a beast from hell, with very large horns.
Anyway, I haven't tested it with any models, but hopefully it works ok. It was ported from some example I found somewhere. I just can't remember where now.
Code: Select all
Const False = 0, True = Not False
#define Chunk_ID(a,b,c,d) ( ((a)) OR (b SHL(8)) OR (c SHL(16)) OR (d SHL(24)))
#define Chunk_2String(_Chunk) CHR$(_Chunk)+CHR$(_Chunk SHR 8)+CHR$(_Chunk SHR 16)+CHR$(_Chunk SHR 24)
#define ID_BB3D Chunk_ID( ASC("B"), ASC("B"), ASC("3"), ASC("D") )
#define ID_TEXS Chunk_ID( ASC("T"), ASC("E"), ASC("X"), ASC("S") )
#define ID_VRTS Chunk_ID( ASC("V"), ASC("R"), ASC("T"), ASC("S") )
#define ID_ANIM Chunk_ID( ASC("A"), ASC("N"), ASC("I"), ASC("M") )
#define ID_KEYS Chunk_ID( ASC("K"), ASC("E"), ASC("Y"), ASC("S") )
#define ID_BRUS Chunk_ID( ASC("B"), ASC("R"), ASC("U"), ASC("S") )
#define ID_TRIS Chunk_ID( ASC("T"), ASC("R"), ASC("I"), ASC("S") )
#define ID_MESH Chunk_ID( ASC("M"), ASC("E"), ASC("S"), ASC("H") )
#define ID_BONE Chunk_ID( ASC("B"), ASC("O"), ASC("N"), ASC("E") )
Declare Sub b3dExitChunk()
Declare Sub Read_String( Byval File_Num As Uinteger, Byref tString As String )
Declare Sub b3dSetFile( Byref file As Uinteger )
Declare Function Dump_B3D() As Integer
Declare Function b3dReadByte() As Byte
Declare Function b3dReadInt() As Integer
Declare Function b3dReadFloat() As Single
Declare Function b3dReadString() As String
Declare Function b3dReadChunk() As String
Declare Function b3dChunkSize() As Integer
Dim Shared As Integer b3d_Stack(100), b3d_file, b3d_tos
Dim As Uinteger File_Num = Freefile
b3dSetFile( File_Num )
Open "Models/B3D/Test_Cylinder.b3d" For Binary As #File_Num
Dim As String Chunk
Dim As Integer Version
If b3dReadChunk()<>"BB3D" Then
Print "Invalid b3d file"
End If
Version = b3dReadInt()/100
Print Version
If Version>0 Then
Print "Invalid b3d file version"
End If
Dump_B3D( )
Close #File_Num
Sleep
Function Dump_B3D() As Integer
Dim As String tname, Chunk
Dim As Integer flags, n_frames, n_keys, sz, frame, blend, n_texs, k, j, tex_id
Dim As Integer tc_sets, tc_size, n_verts, brush_id
Dim As Integer v0,v1,v2, n_tris, n_weights, vertex_id
Dim As Single fps = any, fx = any, weight = any
Dim As Single key_px = any, key_py = any, key_pz = any
Dim As Single key_sx = any, key_sy = any, key_sz = any
Dim As Single key_rw = any, key_rx = any, key_ry = any, key_rz = any
Dim As Single x_pos = any, y_pos = any, z_pos = any
Dim As Single x_scl = any, y_scl = any, z_scl = any
Dim As Single w_rot = any, x_rot = any, y_rot = any, z_rot = any
Dim As Single rot = any, lfa = any
Dim As Single red = any, grn = any, blu = any, alp = any, shi = any
Dim As Single x = any, y = any, z = any
Dim As Single nx = any, ny = any, nz = any
Do While b3dChunkSize()
chunk = b3dReadChunk()
Print "Chunk: " & chunk & " size =" & b3dchunksize()
Select Case chunk
Case "ANIM"
flags = b3dReadInt()
n_frames = b3dReadInt()
fps = b3dReadFloat()
Print "Animation Flags/fps " & flags & "/" & fps
Case "KEYS"
flags=b3dReadInt()
sz=4
If flags And 1 Then sz=sz+12
If flags And 2 Then sz=sz+12
If flags And 4 Then sz=sz+16
n_keys=b3dChunkSize()/sz
If n_keys*sz=b3dChunkSize() Then
Print "keys " & n_keys
'read all keys in chunk
While b3dChunkSize()
frame = b3dReadInt()
If flags And 1 Then
key_px = b3dReadFloat()
key_py = b3dReadFloat()
key_pz = b3dReadFloat()
End If
If flags And 2 Then
key_sx = b3dReadFloat()
key_sy = b3dReadFloat()
key_sz = b3dReadFloat()
End If
If flags And 4 Then
key_rw = b3dReadFloat()
key_rx = b3dReadFloat()
key_ry = b3dReadFloat()
key_rz = b3dReadFloat()
End If
Wend
Else
Print "Illegal number of keys!!!"
End If
Case "TEXS"
While b3dChunkSize()
tname = b3dReadString()
flags = b3dReadInt()
blend = b3dReadInt()
x_pos = b3dReadFloat()
y_pos = b3dReadFloat()
x_scl = b3dReadFloat()
y_scl = b3dReadFloat()
rot = b3dReadFloat()
Print tname
Wend
Case "BRUS"
n_texs=b3dReadInt()
'read all brushes in chunk...
While b3dChunkSize()
tname = b3dReadString$()
red = b3dReadFloat()
grn = b3dReadFloat()
blu = b3dReadFloat()
alp = b3dReadFloat()
shi = b3dReadFloat()
blend = b3dReadInt()
fx = b3dReadInt()
For k=0 To n_texs-1
tex_id=b3dReadInt()
Next
Print tname
Wend
Case "VRTS"
flags = b3dReadInt()
tc_sets = b3dReadInt()
tc_size = b3dReadInt()
sz=12+tc_sets*tc_size*4
If flags And 1 Then sz = sz + 12
If flags And 2 Then sz = sz + 16
n_verts=b3dChunkSize()/sz
If n_verts*sz = b3dChunkSize() Then
Print "vertex count: " & n_verts
'read all verts in chunk
While b3dChunkSize()
x = b3dReadFloat()
y = b3dReadFloat()
z = b3dReadFloat()
Print x,y,z
If flags And 1 Then
nx = b3dReadFloat()
ny = b3dReadFloat()
nz = b3dReadFloat()
End If
If flags And 2 Then
red = b3dReadFloat()
grn = b3dReadFloat()
blu = b3dReadFloat()
lfa = b3dReadFloat()
End If
'read tex coords...
For j=1 To tc_sets*tc_size
Dim As Single t
t = b3dReadFloat()
Next
Wend
Else
Print "Illegal number of vertices!!!"
End If
Case "TRIS"
brush_id = b3dReadInt()
sz=12
n_tris = b3dChunkSize()/sz
If n_tris * sz = b3dChunkSize() Then
Print "Triangle count: " & n_tris
'read all tris in chunk
While b3dChunkSize()
v0 = b3dReadInt()
v1 = b3dReadInt()
v2 = b3dReadInt()
Wend
Else
Print "Illegal number of triangles!!!"
End If
Case "MESH"
brush_id = b3dReadInt()
Print "Brush ID " & brush_id
Case "BONE"
sz=8
n_weights = b3dChunkSize()/sz
If n_weights * sz = b3dChunkSize() Then
'read all weights
Print "Weights " & n_weights
While b3dChunkSize()
vertex_id = b3dReadInt()
weight = b3dReadFloat()
Wend
Else
Print "Illegal number of bone weights!!!"
End If
Case "NODE"
tname = b3dReadString$()
x_pos = b3dReadFloat()
y_pos = b3dReadFloat()
z_pos = b3dReadFloat()
x_scl = b3dReadFloat()
y_scl = b3dReadFloat()
z_scl = b3dReadFloat()
w_rot = b3dReadFloat()
x_rot = b3dReadFloat()
y_rot = b3dReadFloat()
z_rot = b3dReadFloat()
Print "name = " & tname
End Select
Dump_B3D() 'load the sub_chunks
b3dExitChunk() 'exit this chunk
Loop
Return True
End Function
Sub b3dSetFile( Byref file As Uinteger )
b3d_tos=0
b3d_file = file
End Sub
Function b3dReadByte() As Byte
Dim As Byte rbyte
Get #b3d_file,, rbyte
Return rbyte
End Function
Function b3dReadInt() As Integer
Dim As Integer rInt
Get #b3d_file,, rInt
Return rInt
End Function
Function b3dReadFloat() As Single
Dim As Single rFloat
Get #b3d_file,, rFloat
Return rFloat
End Function
Function b3dReadString() As String
Dim As String T
Dim As Byte ch
Do
ch=b3dReadByte()
If ch=0 Then
Return T
End If
T+=Chr$(ch)
Loop
End Function
Function b3dReadChunk() As String
Dim As Integer k, sz
Dim As String Tag
For k=1 To 4
tag+=Chr$(b3dReadByte())
Next
sz = b3dReadInt()
b3d_tos+=1
b3d_stack(b3d_tos) = Seek(b3d_file)+sz
Return Tag
End Function
Sub b3dExitChunk()
Seek b3d_file, b3d_stack(b3d_tos)
b3d_tos-=1
End Sub
Function b3dChunkSize() As Integer
Dim As Integer rint
rint = b3d_stack(b3d_tos)- Seek(b3d_file)
Return rint
End Function
Sound/Audio
MilkyTracker - Freeware, 100% FastTracker 2 compatible clone with many improvements over the original. Able to export to .XM, .MOD and .WAV file types, import an enormous variety of mod types and load any file type as a sample. Ported to nearly every OS imaginable including Pocket PC. The author has stated he plans on releasing it as open source as soon as he's finished developing it as much as he cares to.
ChibiTracker - Open source ImpulseTracker 2 clone. ImpulseTracker picked up where FastTracker 2 left off, allowing more channels, new effects including filters, and stereo samples. ChibiTracker has included reverb as a new effect though, at the cost of ImpulseTracker 2 compatibility.
More to come later...
MilkyTracker - Freeware, 100% FastTracker 2 compatible clone with many improvements over the original. Able to export to .XM, .MOD and .WAV file types, import an enormous variety of mod types and load any file type as a sample. Ported to nearly every OS imaginable including Pocket PC. The author has stated he plans on releasing it as open source as soon as he's finished developing it as much as he cares to.
ChibiTracker - Open source ImpulseTracker 2 clone. ImpulseTracker picked up where FastTracker 2 left off, allowing more channels, new effects including filters, and stereo samples. ChibiTracker has included reverb as a new effect though, at the cost of ImpulseTracker 2 compatibility.
More to come later...
-
- Posts: 84
- Joined: Feb 03, 2007 2:37