Well, I'm just saying my 5 year old and 3 year old already duke it out on DBZ Boudoki, and they're pretty good!
The game is geared towards that range because of it's simplicity. You basically traverse your way through a maze. Simple.
So update: I've been revising the code and testing and have come to a conclusion, the editor is too complicated. So I'm rethinking the design and how it works, and I think I've come up with a new concept that will work.
Here's the old code for anyone interested in how it worked:
Remstart **************************************
Dungeon Maze Map Editor
Created BY: Josh Mooney 2009
**************************************** Remend
Rem Setup Screen ******************************
Set Display Mode 1440,900,16
rem Set Window On : Set Window Layout 1,1,4
rem Set Window Title "Dungeon Maze Map Editor [V0.1]"
Sync Rate 0: Sync On : Sync Rate 30
Autocam Off : Hide Mouse
Rem Setup Variables ***************************
Rem Map Type Variables
Type MapStats `types for map
Name As String `map name
SizeX As Integer `map's size in x direction
SizeZ As Integer `map's size in z direction
Pallete As String `map tile pallete
Tile as Integer `map tile code
Event as Integer `map event code
ObjectA as Integer `objecta number
ObjectB as Integer `objectb number
Endtype
Dim Map(20,100,100) As MapStats `set map variables to stats
`[max 20 quick saved maps at 100x100]
Rem Setup Default Map
Map(1,1,1).Name = "Default.dmp"
Map(1,1,1).SizeX = 10
Map(1,1,1).SizeZ = 10
Map(1,1,1).Pallete = "Default.plt"
For MapX = 1 to 10
For MapZ = 1 to 10
Map(1,MapX,MapZ).Tile = 0
Next MapZ
Next MapX
Rem Object Type Variables
Type ObjectStats
Name As String `object name
PosX As Float `x cordinate position
PosZ As Float `z cordinate position
StateA As Integer `state of object [conditions based on type]
StateB As Integer `state of object [conditions based on type]
StateC As Integer `state of object [conditions based on type]
EndType
Rem Tile Creator Variables
Dim Tile(1000) as ObjectStats
For a = 1 to 1000
Tile(a).StateA = 0
Next a
Rem Cursor Variables
Dim Cursor(2) as ObjectStats `1=3d 2=2d
Cursor(1).Name = "Selection Cursor"
Cursor(1).PosX = 0
Cursor(1).PosZ = 0
Cursor(1).StateA = 0
Cursor(1).StateB = 0
Cursor(1).StateC = 0
Rem Camera Zoom
Zoom# = 100
Rem Setup Scene *******************************
Backdrop On : Color Backdrop 0 `backdrop settings
Rem Grid
Make Matrix 1,(Map(1,1,1).SizeX)*10,(Map(1,1,1).SizeZ)*10,Map(1,1,1).SizeX,Map(1,1,1).SizeZ `opening grid
Set Matrix 1,1,0,0,0,0,0,0 `setup matrix for grid look ****{{replace graphic
Position Matrix 1,-5,0,-5 `position grid
Rem Cursor
Make Object Cube 1,10 `make cursor object *****************{{replace graphic
Set Object 1,0,1,0 : Color Object 1,RGB(255,0,0) `setup cursor
Position Object 1,Cursor().PosX,5,Cursor().PosZ `position cursor
Rem Camera Object
Make Object Cube 2,1 `make cube object for camera to follow
Set Object 2,0,1,0 : Color Object 2,RGB(0,255,255) `setup cam object
Position Object 2,0,0,0
Rem Load Pallete ***********************[Replace]
Make Object Cube 10,10 : Color Object 10,RGB(255,255,255)
Position Object 10,-10,5,0
Rem Main Engine *******************************
Do
Rem Input Device Test *****************[remove]
Set Cursor 0,0
print "joystick x "+str$(joystick x())
print "joystick y "+str$(joystick y())
print "joystick z "+str$(joystick z())
print "joystick up "+str$(joystick up())
print "joystick down "+str$(joystick down())
print "joystick left "+str$(joystick left())
print "joystick right "+str$(joystick right())
print "joystick fire a "+str$(joystick fire a())
print "joystick fire b "+str$(joystick fire b())
print "joystick fire c "+str$(joystick fire c())
print "joystick fire d "+str$(joystick fire d())
print "joystick fire 4 "+str$(joystick fire x(4))
print "joystick fire 5 "+str$(joystick fire x(5))
print "joystick fire 6 "+str$(joystick fire x(6))
print "joystick fire 7 "+str$(joystick fire x(7))
print "joystick fire 8 "+str$(joystick fire x(8))
print "joystick fire 9 "+str$(joystick fire x(9))
print "joystick slider a "+str$(joystick slider a())
print "joystick slider b "+str$(joystick slider b())
print "joystick slider c "+str$(joystick slider c())
print "joystick slider d "+str$(joystick slider d())
print "joystick twist x "+str$(joystick twist x())
print "joystick twist y "+str$(joystick twist y())
print "joystick twist z "+str$(joystick twist z())
print "joystick hat angle(0)"+str$(joystick hat angle(0))
print "joystick hat angle(1)"+str$(joystick hat angle(1))
print "joystick hat angle(2)"+str$(joystick hat angle(2))
print "joystick hat angle(3)"+str$(joystick hat angle(3))
Rem Other Variables
Print "*************************************"
Print "Map: ";Map(1,1,1).Name
Print "Pallete: ";Map(1,1,1).Pallete
Print "CursorX: ";Object Position X(1)
Print "CursorZ: ";Object Position Z(1)
Print "Cursor StateA: ";Cursor(1).StateA
Print "Cursor StateB: ";Cursor(1).StateB
Rem Control Code ******************************
If Joystick Fire A()= 1
Gosub camera_control
Else
Gosub cursor_control
Endif
Rem Place Object *********************[update]
If Joystick Fire B() = 1
If Map(1,int(Cursor(1).PosX),int(Cursor(1).PosZ)).Tile = 0 `check if tile is empty on map
For TileCheck = 1 to 1000 `check for tile object number
If Tile(TileCheck).StateA = 0 Then ObjectC = TileCheck+100 : Tile(TileCheck).StateA = 1 : Exit
Next TileCheck
Clone Object ObjectC,10 : Position Object ObjectC,Object Position X(1),Object Position Y(1),Object Position Z(1)
Map(1,int(Cursor(1).PosX),int(Cursor(1).PosZ)).ObjectA = ObjectC `set object number to map array
Map(1,int(Cursor(1).PosX),int(Cursor(1).PosZ)).Tile = 1 `set object type to array
Else
`play error sound
Endif
Endif
Rem Remove Object ********************[update]
If Joystick Fire C() = 1
If Map(1,int(Cursor(1).PosX),int(Cursor(1).PosZ)).Tile = 1 `check if tile is filled on map
If Object Exist(Map(1,int(Cursor(1).PosX),int(Cursor(1).PosZ)).ObjectA) = 1
Delete Object Map(1,int(Cursor(1).PosX),int(Cursor(1).PosZ)).ObjectA `delete object
Map(1,int(Cursor(1).PosX),int(Cursor(1).PosZ)).Tile = 0 `reset tile array
Endif
Else
`play error sound
Endif
Endif
Rem Exit Program **********************[update]
If Joystick Fire X(9) = 1 Then End
Rem Camera Control ****************************
Set Camera To Follow Object Position X(2),Object Position Y(2),Object Position Z(2),0,Zoom#,Zoom#,5,0
Point Camera Object Position X(2),Object Position Y(2)+5,Object Position Z(2)
Rem Camera Zoom *****************************
If Joystick Twist Z() < 22767 `zoom in
Zoom# = Zoom# - 1
If Joystick Twist Z() < 1000
Zoom# = Zoom# - 4
Endif
Endif
If Joystick Twist Z() > 42767 `zoom out
Zoom# = Zoom# + 1
If Joystick Twist Z() > 55535
Zoom# = Zoom# + 4
Endif
Endif
If Zoom# < 10 Then Zoom# = 10 `check zoom range
If Zoom# > 1000 Then Zoom# = 1000
Sync
Loop
Rem Cursor Code *******************************
cursor_control:
Rem Cursor Stat Update
Cursor(1).PosX = (Object Position X(1)+10)/10
Cursor(1).PosZ = (Object Position Z(1)+10)/10
If Joystick X() < 300
If Joystick X() > -300
Cursor(1).StateA = 0 `reset cursorx state if at rest
Endif
Endif
If Joystick Y() < 300
If Joystick Y() > -300
Cursor(1).StateB = 0 `reset cursory state if at rest
Endif
Endif
Rem Movement X Position ***********************
If Joystick X()>300 `check joystick move in x
If Joystick x()>950 `continues movement
If Object Position X(1) < ((Map(1,1,1).SizeX)*10)-10 Then Move Object Right 1,10
Else `step movement
If Cursor(1).StateA = 0
If Object Position X(1) < ((Map(1,1,1).SizeX)*10)-10 Then Move Object Right 1,10
Cursor(1).StateA = 1
Endif
Endif
Endif
If Joystick X()<-300 `check joystick move in x
If Joystick x()<-950 `continues movement
If Object Position X(1) > 0 Then Move Object Left 1,10
Else `step movement
If Cursor(1).StateA = 0
If Object Position X(1) > 0 Then Move Object Left 1,10
Cursor(1).StateA = 1
Endif
Endif
Endif
Rem Movement Z Position ***********************
If Joystick Y()>300 `check joystick move in y
If Joystick Y()>950 `continues movement
If Object Position Z(1) > 0 Then Move Object 1,-10
Else `step movement
If Cursor(1).StateB = 0
If Object Position Z(1) > 0 Then Move Object 1,-10
Cursor(1).StateB = 1
Endif
Endif
Endif
If Joystick Y()<-300 `check joystick move in y
If Joystick Y()<-950 `continues movement
If Object Position Z(1) < ((Map(1,1,1).SizeZ)*10)-10 Then Move Object 1,10
Else `step movement
If Cursor(1).StateB = 0
If Object Position Z(1) < ((Map(1,1,1).SizeZ)*10)-10 Then Move Object 1,10
Cursor(1).StateB = 1
Endif
Endif
Endif
Rem Return to main loop
Return
Rem camera control ***************************
camera_control:
Rem Set camera to cursor position *************
If Joystick Hat Angle(0) = 0
Position Object 2,Object Position X(1),Object Position Y(1),Object Position Z(1)
Endif
Rem Movement X Position ***********************
If Joystick X()>300 `check joystick move in x
Move Object Right 2,1
If Joystick x()>950 `continues movement
Move Object Right 2,2
Endif
Endif
If Joystick X()<-300 `check joystick move in x
Move Object Left 2,1
If Joystick x()<-950 `continues movement
Move Object Left 2,2
Endif
Endif
Rem Movement Z Position ***********************
If Joystick Y()>300 `check joystick move in x
Move Object 2,-1
If Joystick Y()>950 `continues movement
Move Object 2,-2
Endif
Endif
If Joystick Y()<-300 `check joystick move in x
Move Object 2,1
If Joystick Y()<-950 `continues movement
Move Object 2,2
Endif
Endif
Rem Return to main loop
Return
I've started on the new editor and am aiming to complete it by Friday...if all goes well.
Here's some basic concepts of the editor to show how it's going to be different:
I've also started to redesign the main characters to show them a bit younger. Right now he looks roughly 11-13. There is a female character as well, she is a sorta mage character.
I've also came up with a final name: Maze Keeper.
Anyway, back to coding. Later.