Bouldermax competition!

BlitzMax Forums/BlitzMax Programming/Bouldermax competition!

CS_TBL(Posted 2007) [#1]
Ok, who's in? It's a large one for sure.. :P

The objectives:
- Make the classic Boulderdash in BMax (you may use top-notch gfx tho, no reason to use pre-1985 gfx)
- should naturally include the classic ingredients: Rockford, amoebas, fireflies, squares, hard walls, soft walls, earth, diamonds, rocks, stone -> diamond converting walls.
- no modules other than the ones that come standard with BMax (it should work for everyone who just downloads bmax for the first time, with recent syncmod tho)
- no MaxGUI for essential parts, e.g. if you want to run it on a canvas in a window, make an alternative version. It should work for all BMax users.

No prize money, just eternal fame and you might actually save a coin or two for not hanging out in the pub by doing this! (perhaps BRL can brag a bit about it on the frontpage, being examples of what can be done with a standard BMax?)


altitudems(Posted 2007) [#2]
I like this idea, except for the no loading part. Change that and I may compete.


CS_TBL(Posted 2007) [#3]
Well, you could see it as a subcompetition: what gfx could you produce only using blitz commands. But I rather wait for other comments about this subject.


Who was John Galt?(Posted 2007) [#4]
I will be interested to see the results, but sounds like too much work for a mini compo so I'm not competing.


ImaginaryHuman(Posted 2007) [#5]
I really want to do a boulderdash game eventually but I am a little bit put off by the having no media angle. How are you supposed to come up with better graphics than the originals if you can't even use any bitmaps at all? Although, I suppose you can use Data statements?


CS_TBL(Posted 2007) [#6]
hm.. I might drop that line then, tho it'd be fun to see what ppl could do just with scripts 'n such.


altitudems(Posted 2007) [#7]
Award extra points for not loading media?


Damien Sturdy(Posted 2007) [#8]
Hey, a bit like my mushroom collector in B3D? :P


QuietBloke(Posted 2007) [#9]
If you say no media... does that mean the level data must be embedded in the game as well ?

Anyways... what if the game must be able to run with no media but if it is supplied it can use it ?

That way those who cant get hold of good media can still be judged on a level pegging with those who can ?

Or.. come up with a standard spec for the media and you can have two compo's. One can be for the artists in here to generate the best graphics/sounds/music and another for the programmers to code the game itself ?

Still sounds like a big compo.. what is the time frame ?


Grey Alien(Posted 2007) [#10]
For me, no loading would limit it a lot. Mind you I don't have time to enter but I'll watch the contest with interest. I always wanted to make one of these games.


CS_TBL(Posted 2007) [#11]
No time frame decided. But I've done some attempts to make a Boulderdash myself, the basics were usually done in one day, including some simple gfx, and simple map generation. In the end it's just updating each x,y coord of a map according to its content, stuff like that is done rather quickly.

But if there's too much moaning about no-loading, then I guess I'll drop it..


LarsG(Posted 2007) [#12]
what about if you allow for incbin'd stuff, and limit the exe size to 2 megs or something?


CS_TBL(Posted 2007) [#13]
Dunno whether size is very important here. *if* there would be a no-loading rule it would purely be to have an additional competition: media-generation using blitz commands. But if that'll scare ppl, then the only competition left is the dash code itself. Whether one uses 100kB media or 4MB, I don't think that's much of an issue. Naturally, for sake of challenge, if there are two entries with identical quality then the game with the least amount of media is preferred.


Grey Alien(Posted 2007) [#14]
I persnally think any media restriction rules will scare away contenders but them maybe not having those rules will scare away "hardcore" contenders - who knows which number is the biggest.

What are you judging exactly? The code only or the whole game. If the "game" then identical quality "gamplay" but better media should win. Why would you judge gameplay only anyway?

From an outsider point of view I'd like to see some great boulderdash games and some interesting twists and it'll make them a lot more interesting to test if they have nice media imho. Then the compo can be talked about on lots of gaming blogs where it might only get a few mentions if the media is all code-generated and thus potentially a bit pap-looking.


Grey Alien(Posted 2007) [#15]
btw my framework isn't a module and it uses standard Blitz Max modules so it could be used, yay!


Gabriel(Posted 2007) [#16]
btw my framework isn't a module and it uses standard Blitz Max modules so it could be used, yay!


Only if you wanted your users to distribute the full source. I think the module restrictions were designed to allow anyone who wants to to download the source of the game and compile it. Otherwise the MaxGUI restrictions make no sense.

I have to finish work on another shader pack over the weekend and then it's back to my ongoing project, so I doubt I'd enter. The media restrictions wouldn't put me off though. The module restrictions might though, as I prefer to use HGE to Max2D.


CS_TBL(Posted 2007) [#17]
Oh, I didn't have the intention to be the jury or something, I rather compete with a B.D. of my own. I rather think the audience should vote. I'm only here to kickstart a competition because otherwise nothing ever happens here. The 256byte challenge was quite fruitful, perhaps this one could be as well.
But if I'd be the jury I think I would formost look at the artwork and polish and how it plays. Technically the game isn't hard to make and gfx also aren't supercomplex, we're not talking RPG's, shooters, or platformers here.
And, as you know me, a good tune is important .. :P

btw, about your framework: the idea is that ppl post full sources and optionally a link to required media, not just compiled .exe files. So I dunno whether your framework is non-public or not, but I might forsee a problem then.. :P


CS_TBL(Posted 2007) [#18]
btw, about the gameplay and media thing: All I was meaning to say that when two games have the same overall quality (gameplay, media etc.) then the game with less media is more impressive, from a technical/art point of view. Same drill as those 64kB competitions @ demo parties. They're usually far more impressive than "ordinary" demo competitions.
Or another one: what's more impressive: Second Reality on PC, or on C64?

But I estimate the chance of have two or more equal-quality games zip anyway, so I wouldn't worry about it.


Derron(Posted 2007) [#19]
First: The graphics...they are some sprites created using BM-commands:


Now the code...a bit unstructured - but for about an hour of coding I think its ok.

You may use it as base for your version of the competitions game. So some "untalented" (more than I ;D) may come around with the rules too. Because everything is "scripted" - you can easily change colors etc.

SuperStrict

Function DrawScrew(x:Int,y:Int)
  SetColor 100,100,100
  DrawOval(x-1,y-1,10,10)
  For Local i:Int=1 To 8
    Local col:Int=150+i*10
	SetColor col,col,col
	DrawOval(x+i/2,y+i/2,8-i,8-i)
	SetColor 70,70,70;DrawLine(x+1,y+2,x+5,y+6)	
	SetColor 200,200,200;DrawLine(x+3,y+2,x+6,y+5)	
  Next
End Function

Graphics 640,480
SetBlend ALPHABLEND
Const BlockW:Int=40, BlockH:Int=40

'border block
SetColor 140,140,140
DrawRect(0,0,BlockW,BlockH)
DrawScrew(5,5);			DrawScrew(BlockW-12,5)
DrawScrew(5,BlockH-12);	DrawScrew(BlockW-12,BlockH-12)
SetAlpha 0.5;SetColor 255,255,255; 	DrawLine(1,1,BlockW,1,True); DrawLine(1,1,1,BlockH,True)
SetAlpha 0.25;SetColor 0,0,0;		DrawLine(BlockW-1,1,BlockW-1,BlockH,True); DrawLine(1,BlockH-1,BlockW,BlockH-1,True)
SetAlpha 1.0;SetColor 255,255,255
Global gfx_BorderBlock:Timage= TImage.Create(BlockW,BlockH,1,0,0,0,0); gfx_BorderBlock.pixmaps[0] = GrabPixmap(0,0,BlockW,BlockH)
'''

'bg
SetColor 120,100,40
DrawRect(0,0,BlockW,BlockH)
For Local i:Int=1 To BlockH Step 6
  Local rndInt:Int = Rand(30)
  SetColor rndInt+90,rndInt+70,rndInt+50
  For Local j:Int = 1 To BlockW Step 5
    SetAlpha 0.5
	DrawOval(i+Rand(2),j,Rand(10),Rand(5))
  Next
Next
SetAlpha 1.0;SetColor 255,255,255
Global gfx_BgBlock:Timage= TImage.Create(BlockW,BlockH,1,0,0,0,0); gfx_BgBlock.pixmaps[0] = GrabPixmap(0,0,BlockW,BlockH)
'''

'diamond
SetColor 0,0,0
DrawRect(0,0,BlockW,BlockH)
Local j:Int=0
For Local i:Int = 1 To (BlockW / 2)
   j:+1
   SetColor j*5+100,Rand(50)+200,Rand(50)+200
   DrawLine(BlockW/2 -i,j,BlockW/2 +i,j,True)
   DrawLine(BlockW/2 -i,BlockH-j,BlockW/2 +i,BlockH-j,True)
Next
   Local k:Int = 0
   SetColor 255,255,255   
   While k<>3
   If k=1 Then k=2
   SetAlpha 0.5
   DrawLine(BlockW/2,1,BlockW/2 +(k-1)*20,BlockH/2,True)
   DrawLine(BlockW/2,BlockH,BlockW/2 +(k-1)*20,BlockH/2,True)
   SetAlpha 0.75
   DrawLine(BlockW/2,1,BlockW/2 +(k-1)*14,BlockH/2,True)
   DrawLine(BlockW/2,BlockH,BlockW/2 +(k-1)*14,BlockH/2,True)
   SetAlpha 0.90
   DrawLine(BlockW/2,1,BlockW/2 +(k-1)*7,BlockH/2,True)
   DrawLine(BlockW/2,BlockH,BlockW/2 +(k-1)*7,BlockH/2,True)
   k:+1
  Wend
SetAlpha 1.0;SetColor 255,255,255
Global gfx_Diamond:Timage= TImage.Create(BlockW,BlockH,1,0,0,0,0); gfx_Diamond.pixmaps[0] = GrabPixmap(0,0,BlockW,BlockH)
'''
'ball
SetColor 0,0,0
DrawRect(0,0,BlockW,BlockH)
For Local i:Int =1 To BlockW/2
  SetAlpha 1
  Local j:Int=i*1.5
  SetColor j*2+80,j+80,j*0.8+80
  DrawOval(i,i,(20-i)*2,(20-i)*2)
  SetColor 0,0,0
  SetAlpha Rand(5)*0.05
  For Local k:Int =0 To 15
  DrawOval(Rand(BlockW),Rand(BlockH),Rand(3),Rand(3))
  Next
Next
SetAlpha 1.0;SetColor 255,255,255
Global gfx_Ball:Timage= TImage.Create(BlockW,BlockH,1,0,0,0,0); gfx_Ball.pixmaps[0] = GrabPixmap(0,0,BlockW,BlockH)
'''
'player
SetColor 0,0,0
DrawRect(0,0,BlockW,BlockH)
 SetColor 100,80,40; 	DrawOval(BlockW/2-BlockW/4,BlockH-8,BlockW/2,BlockH/3) 			'shoe
 SetColor 50,40,15; 	DrawLine(BlockW/2,BlockH-8,BlockW/2,BlockH) 					'shoe middle
 SetColor 70,55,25; 	DrawLine(BlockW/2-1,BlockH-8,BlockW/2-1,BlockH) 				'shoe middle
 SetColor 90,130,220;   DrawOval(BlockW/2-BlockW/4-1,BlockH/2+1,BlockW/2+2,BlockH/3)	'arms
 SetColor 50,90,180;    DrawOval(BlockW/2-BlockW/4+1,BlockH/2+1,BlockW/2-2,BlockH/3)	'arm bordering (to make it different to body)
 SetColor 240,210,110;  DrawOval(BlockW/2-BlockW/4,BlockH/2-10,5,5) 		'ear (left)
						DrawOval(BlockW/2+BlockW/4-5,BlockH/2-10,5,5) 		'ear (right)
 SetColor 200,170,80;   DrawOval(BlockW/2-BlockW/4+1,BlockH/2-9,3,3) 		'ear (left)
						DrawOval(BlockW/2+BlockW/4-4,BlockH/2-9,3,3) 		'ear (right)
 SetColor 240,210,110;  DrawOval(BlockW/2-BlockW/4,BlockH/2+10,4,4) 		'hand (left)
						DrawOval(BlockW/2+BlockW/4-4,BlockH/2+10,4,4) 		'hand (right)
 SetColor 100,140,240;  DrawOval(BlockW/2-BlockW/4+2,BlockH/2,BlockW/2-4,BlockH/3+2)	'body
 SetColor 50,70,120																		'dots on body
 For Local i:Int = 0 To 2
						Plot(BlockW/2-2 ,BlockH/2+4+i*3); Plot(BlockW/2+1 ,BlockH/2+4+i*3)
 Next
 SetColor 240,210,110;  DrawOval(BlockW/2-BlockW/4,BlockH/2-10,BlockW/2,BlockH/3) 		'head
 SetColor 250,220,130;  DrawOval(BlockW/2-4,BlockH/2-6,8,7)								'nose
 SetColor 200,140,240;  DrawOval(BlockW/2-2,BlockH/2-4,4,3)								'nose
 SetColor 20,20,100;	DrawOval(BlockW/2-BlockW/4 + 4,BlockH/2-10+3,3,3)				'eyes
 						DrawOval(BlockW/2+BlockW/4 - 7,BlockH/2-10+3,3,3)
SetAlpha 1.0;SetColor 255,255,255
Global gfx_Player:Timage= TImage.Create(BlockW,BlockH,1,0,0,0,0); gfx_Player.pixmaps[0] = GrabPixmap(0,0,BlockW,BlockH)
'''
'bug
SetColor 0,0,0
DrawRect(0,0,BlockW,BlockH)
 SetColor 100,100,100;  DrawLine(BlockW/2-12,4,BlockW/2+13,BlockH/3*2)				'legs top
						DrawLine(BlockW/2-14,BlockH/3+1,BlockW/2+16,BlockH/3+1)		'legs middle
						DrawLine(BlockW/2-13,BlockH/3*2,BlockW/2+15,4)				'legs bottom
 SetViewport(0,0,BlockW/2,BlockH)
 For Local i:Int = 0 To BlockW/3
 SetColor 180+i*5,100+i*5,80+i*5;  DrawOval(BlockW/2-BlockW/4+i,2,BlockW/2-i,BlockH/3*2+3)	'body
 Next
 SetViewport(0+BlockW/2,0,BlockW/2,BlockH)
 For Local i:Int = 0 To BlockW/3
 SetColor 180+i*5,100+i*5,80+i*5;  DrawOval(BlockW/2-8,2,BlockW/2-i,BlockH/3*2+3)	'body other half
 Next
 SetViewport(0,0,640,480)
 SetColor 150,70,50;  DrawLine(BlockW/2+1,2,BlockW/2+1,BlockH/3*2+3)		'body half segmenter
 SetColor 160,80,60;   DrawLine(BlockW/2,2,BlockW/2,BlockH/3*2+3)			'body half segmenter
 SetColor 100,100,100;  DrawOval(BlockW/2-7,BlockH/3*2-1,16,12)				'teeth
 SetColor 0,0,0; 		DrawOval(BlockW/2-4,BlockH/3*2+1,10,12)				'teeth center (cut)
 SetColor 160,160,160;  DrawOval(BlockW/2-5,BlockH/3*2-1,12,6)				'head
 SetColor 0,0,0;  		DrawOval(BlockW/2-5+2,BlockH/3*2+1,2,2)						'eye
 						DrawOval(BlockW/2+5-2,BlockH/3*2+1,2,2)						'eye
SetAlpha 1.0;SetColor 255,255,255
Global gfx_Bug:Timage= TImage.Create(BlockW,BlockH,1,0,0,0,0); gfx_Bug.pixmaps[0] = GrabPixmap(0,0,BlockW,BlockH)
'''

'key
SetColor 0,0,0
DrawRect(0,0,BlockW,BlockH)
 SetColor 255,190,30;   DrawOval(BlockW/2+BlockW*0.15,BlockH*0.45,BlockW*0.25,BlockH*0.4) 'ring
 						DrawRect(BlockW/2-BlockW*0.20,BlockH*0.6,BlockW*0.4,BlockH*0.10)
 						DrawRect(BlockW/2-BlockW*0.20,BlockH*0.6,3,BlockH*0.20) 		 'beard
 						DrawRect(BlockW/2-BlockW*0.10,BlockH*0.6,3,BlockH*0.15) 		 'beard
 SetColor 0,0,0;   		DrawOval(BlockW/2+BlockW*0.15+3,BlockH*0.45+2,BlockW*0.25-6,BlockH*0.4-4) 'ring cut
SetAlpha 1.0;SetColor 255,255,255
Global gfx_Key:Timage= TImage.Create(BlockW,BlockH,1,0,0,0,0); gfx_Key.pixmaps[0] = GrabPixmap(0,0,BlockW,BlockH)
'''
SetBlend ALPHABLEND
'entry
SetColor 0,0,0
DrawRect(0,0,BlockW,BlockH)
 SetColor 80,30,10;   	DrawRect(0,0,BlockW,BlockH)
SetAlpha 0.5;SetColor 255,255,255; 	DrawLine(1,1,BlockW,1,True); DrawLine(1,1,1,BlockH,True)
SetAlpha 0.5;SetColor 0,0,0;		DrawLine(BlockW-1,1,BlockW-1,BlockH,True); DrawLine(1,BlockH-1,BlockW,BlockH-1,True)
SetAlpha 1.0
 SetColor 150,150,150;  DrawOval(BlockW/2+BlockW*0.15-3,BlockH*0.45-3,BlockW*0.25,BlockH*0.4) 'ring
 						DrawRect(BlockW/2-BlockW*0.20-3,BlockH*0.6-3,BlockW*0.4,BlockH*0.10)
 						DrawRect(BlockW/2-BlockW*0.20-3,BlockH*0.6-3,3,BlockH*0.20) 		 'beard
 						DrawRect(BlockW/2-BlockW*0.10-3,BlockH*0.6-3,3,BlockH*0.15) 		 'beard
 SetColor 80,30,10; 	DrawOval(BlockW/2+BlockW*0.15+3-3,BlockH*0.45+2-3,BlockW*0.25-6,BlockH*0.4-4) 'ring cut
SetAlpha 1.0;SetColor 255,255,255
Global gfx_Entry:Timage= TImage.Create(BlockW,BlockH,1,0,0,0,0); gfx_Entry.pixmaps[0] = GrabPixmap(0,0,BlockW,BlockH)
'''
'entryOpen
SetColor 0,0,0
DrawRect(0,0,BlockW,BlockH)
j = 0
For Local i:Int = 0 To BlockW/2-1
 j:+ 1*(BlockW/BlockH)
 SetColor Rnd(155)+50,Rnd(155)+50,Rnd(155)+40
 DrawRect(i,i,BlockW-i*2, BlockH-j*2)
Next
SetAlpha 1.0;SetColor 255,255,255
Global gfx_EntryOpen:Timage= TImage.Create(BlockW,BlockH,1,0,0,0,0); gfx_EntryOpen.pixmaps[0] = GrabPixmap(0,0,BlockW,BlockH)
'''
SetBlend ALPHABLEND

Repeat
Cls
For Local i:Int = 4 To 14
  DrawImage (gfx_BorderBlock, i*BlockW,0)
  DrawImage (gfx_BgBlock, i*BlockW,BlockH+1)
  DrawImage (gfx_Diamond, i*BlockW,BlockH*2+1)
  DrawImage (gfx_Ball, i*BlockW,BlockH*3+1)
  DrawImage (gfx_Player, i*BlockW,BlockH*4+1)
  DrawImage (gfx_Bug, i*BlockW,BlockH*5+1)
  DrawImage (gfx_Key, i*BlockW,BlockH*6+1)
  DrawImage (gfx_Entry, i*BlockW,BlockH*7+1)
  DrawImage (gfx_EntryOpen, i*BlockW,BlockH*8+1)
Next
DrawText("Border:",5,BlockH*1-20)
DrawText("BgBlock/Earth:",5,BlockH*2-20)
DrawText("Diamonds:",5,BlockH*3-20)
DrawText("Ball:",5,BlockH*4-20)
DrawText("Player:",5,BlockH*5-20)
DrawText("Bugs:",5,BlockH*6-20)
DrawText("Key:",5,BlockH*7-20)
DrawText("Entry (Key needed):",5,BlockH*8-20)
DrawText("Entry (open):",5,BlockH*9-20)
Flip
Until KeyHit(27)



bye
MB


Grisu(Posted 2007) [#20]
^^ now that is some cool code... 8)


Grey Alien(Posted 2007) [#21]
wow great code for drawing the graphics!

Ah yes thanks for the clarification about the source beeing freeware - you are correct that my framework should be used in that case.

CS_TBL: I see what you mean on the media thing now.


QuietBloke(Posted 2007) [#22]
So.. is anyone entering this competion ?
Do we get to see any Work in progress stuff anytime soon ?
I might just get distracted from what Im working on and give it a go myself.


Grey Alien(Posted 2007) [#23]
Maybe if CS_TBL setup a mini website for it with details and entries?


CS_TBL(Posted 2007) [#24]
I don't have a mini website. :P Everyone may do so nonetheless. See me only as 'bringer of the idea', not as 'master of ceremonies' or 'owner of the competition'.

As for the rules, I guess I'll drop the no-loaded-media thing then eh..


Derron(Posted 2007) [#25]
why? gfx is provided (see some postings before) - so although untalented scripters could produce a nice gameplay...

Without doing much gfx-coding you can use your time straight to produce the game(play)... faster coding - faster results.


bye
MB


CS_TBL(Posted 2007) [#26]
The majority requested to drop that rule.. democracy!


AltanilConard(Posted 2007) [#27]
It might be a bit to though for me yet, but I'll give it a shot. I do think you shouldn't drop the no-loaded-media thing! The lazy people can allways use MichaelB's awesome code ;)


CS_TBL(Posted 2007) [#28]
There are more ppl who wanted to drop it than that there are ppl who liked the restriction, note that you can still generate all your gfx if you like.. it's not forbidden to *not* load anything..


AltanilConard(Posted 2007) [#29]
Yea you're probably right, but I allready spent a few hours creating the graphics with Max2D. Maybe it could be worth a small bonus?


CS_TBL(Posted 2007) [#30]
Well, that's up to those who'll judge I guess. Perhaps taking votesheets is wise, or perhaps asking several experienced/respected forum members to act as jury?


deps(Posted 2007) [#31]
How about if the people in the competition vote? Everyone have one vote and voting on your own entry is forbidden.

I'm a bit interested in this compo. When will it start? I have a busy schedule but I haven't done some coding in ages...


CS_TBL(Posted 2007) [#32]
That voting thing could also be an idea yea. (all of us in the Green room :D ) Compo starts any day.. there's no deadline set, perhaps if enough ppl "sign-up" here we could set a democratic deadline?


deps(Posted 2007) [#33]
How about this? We start at June 1, or a couple of days later if someone doesn't want to rush things. The semi official end date is on July 1. Give or take a couple of days. Voting begins soon after and the winner is announced on August 1.

No need for exact date and time for it. Just don't cheat too much and everyone will be happy. :)
It's ok if someone really-really-pretty-please-with-sugar-on-top needs and extra day or two. As long as things isn't delayed too much.


Grey Alien(Posted 2007) [#34]
Sigh, I wish I could enter this, but it would be WAY too much of a distraction. The problem with making games as your day job is there is no time to enter competitions for fun :-(


CS_TBL(Posted 2007) [#35]
The basic algo (all the AI things) could be done in a weekend tho. I know, I've done so .. with ripped MSX gfx.. the only things I've never done are enemies (fireflies/squares) and amoebae.


Damien Sturdy(Posted 2007) [#36]
Boulderdash- hmm.... if I was free for a couple days this would take 2 days thereabouts.

Been a while since i've been free for that long though!


deps(Posted 2007) [#37]
So... Are we doing this? Anyone started yet?


QuietBloke(Posted 2007) [#38]
lol... I have made a start... I dont get much free time so Ive managed about 4 hours so far.. and in fact after about 2.5 hours coding I decided to scratch the code and start again !
Not much to show for my efforts so far. I have loads of behind the scenes code done but nothing to show for my efforts except a bunch of debug statements.
Its not pretty either.. its just a single big source file.. and as Im in a bit of a rush there arnt anywhere near as many comments as I like.
Im planning of having an inbuilt editor so maybe when I have that part working(ish) I may post my code so-far and see if anyone fancy's designing some levels for it as Im just a coder and have never been good at the design side of things.


deps(Posted 2007) [#39]
I haven't started yet. But I might give it a shot this weekend.
Anyone else? It's not much of a competition if there is only two coders competing. :)


AltanilConard(Posted 2007) [#40]
I'm trying to make the AI for the fireflys now, but it's all pretty buggy.


CS_TBL(Posted 2007) [#41]
Nnaturally I think I give it a shot.. I think that the amoebae are the most tricky to do btw. The fireflies and squares are actually quite simple.


AltanilConard(Posted 2007) [#42]
I thought that to first. The problem is I never played the classic boulder dash, only clones, so I don't really know how they behave. The firefly moves clock-wise by the sides of the map right? But when he is moving to the left, en the player diggs a hole beneath him, will he start moveing down? (wich means he will be moving counter clock-wise)


CS_TBL(Posted 2007) [#43]
-iirc- It's following walls at the left side from the perspective of the object, so 'left hand', if you get my point.


AltanilConard(Posted 2007) [#44]
Ok I get it, it shouldn't be to hard indeed, thanks for making it clear.


AltanilConard(Posted 2007) [#45]
I'm afraid I won't be able to complete my entry, since I'm leaving on vacation the day after tomorrow. I thought I would be able to complete it but problems popped up and I've been very busy with exams lately. I will just post my entry, that is not even half completed here, I don't think it's far enough to be counted in the competition but you guys may decide.

There are quite some bugs in it, escpecially the primitive collision detection of the boulders, I'm planning to totally rewright that part, also the boulders dont fall of to the left and right, that's something I will still have to add if I find some time. The AI of fire flys is done but there is no collision detection with them and the player yet. Graphics 100% created with the DrawRect command :P There are 3 colorschemes so far and if I, sometime, am going to create new levels I will probably add more so that every level has it's own colorscheme :)

There are 2 levels that can be quite fun, the 3th one is more a small test for the firefly AI.
So, here's the code:

Just paste and run

It's probably the most complex thing I have ever coded lol. Please leave a comment


Scaremonger(Posted 2007) [#46]
Nice start Conard.

I'm not going to be able to compete in this one. This time of year is always very busy for me.

I am interested if anyone is going to produce sound without media.


CS_TBL(Posted 2007) [#47]
The no-media rule has been dropped eh.


Damien Sturdy(Posted 2007) [#48]

I am interested if anyone is going to produce sound without media.



It's possible. i've done it- but as CS_TBL said, that rule got dropped.


CS_TBL(Posted 2007) [#49]
The droppings have been requested .. :P


Scaremonger(Posted 2007) [#50]

I am interested if anyone is going to produce sound without media.

It's possible. i've done it- but as CS_TBL said, that rule got dropped.



Shame that rule has been dropped; it was the challenging bit.

So Cygnus; how did you do it? Did you use a load of inline Data, or generate the wave envelopes from code?


QuietBloke(Posted 2007) [#51]
aye.. I was just about to start figuring out how to do some sort of sounds without any media.
any hints ? :)

Conard - I had a quick go with your code last night.. thats a pretty good start. Nice Graphics too.


Blitzplotter(Posted 2007) [#52]
@MichaelB - fantastic piece of coding for one hour...... I'm not worthy {;-) , even if they dropped the 'no-loading' pre-requisite - I reckon the judge(s) would be somewhat swayed by an individuals coding prowess wrt image creation.


CS_TBL(Posted 2007) [#53]
Of course image generation is more impressive than image loading, esp. when the images are good. Most ppl here however requested to drop that rule. Perhaps after this challenge a new game challenge with *everything* in code, no media etc.. perhaps a simpler game type..


Damien Sturdy(Posted 2007) [#54]

So Cygnus; how did you do it? Did you use a load of inline Data, or generate the wave envelopes from code?



generate a Wave file in memory. Load it using standard commands.

I dont have the game in blitzmax but check out the mushroom collector B3D game which uses the blitz3D version of my sound system to do the same thing.