100 Procedural Game Competition
Blitz3D Forums/Blitz3D Programming/100 Procedural Game Competition
| ||
I posted a message in another thread about having a competition to create a 100% procedural game. This means that the game would have no external content(no images,B3D files, etc.) People seemed to like the idea, so I think we should do it. Any ideas on what you think the rules should be? I'm thinking... * The entire game must be one bb file * No packed resurces, like image files converted to data, or code * No DLLs I'm thinking of a time span of maybe two weeks. What do you think !!!Update!!! Revised Rules * Can be 2d or 3d * No packed resurces, like image files converted to data, or code * No Purchased Libs * No DLLs * Program can not create any external files during runtime. * No External file references |
| ||
I like the idea... although I'm a little pre-occupied with Alien Breed at the moment. |
| ||
You know I did 2 competitions like this before (before Blitz3d)? The two winners were LineOf7s and his circular pong type game (featured music and sound fx), and Micheal Ritzenbiscuitstains and his RSI shooting game (he later made 'Juno Nemesis' - http://www.mking.com/juno/ ). Would be interesting to see what people could do in 3D. Good luck with it. |
| ||
I'd say allow includes -- it's bloody tough to work in just one file. Aside from that it sounds good. |
| ||
I think the inclusion of libraries would make it far too easy. Making it a challenge is kind of the point. |
| ||
Nah ...no includes sounds good to me. How about two weeks starting Monday and entries posted on this thread by 12.00 midnight Sunday 7th? I take it the game can be 2d or 3d ? |
| ||
Yep, I have no problem with that. |
| ||
Since when has using Include been the inclusion of libraries? I`d agree with morduun, allow people to use includes to keep code tidy, especially seeing as though there is no limit to length and there are no external files. Good luck to the entrants. |
| ||
Doesn't a "no includes" rule give those people using the original IDE rather a disadvantage ( since it's practically unusable with source over 100k and gets pretty iffy with anything over about 20k if it's in the wrong mood. ) |
| ||
I take it the game won't be using sound effects then? :) |
| ||
Ok, I see your point about the includes. I guess that can be allowed. I just want to avoid having fancy purchased systems like swift shadow system, and the like, because that provides an unfair advantage to those that have those libs. |
| ||
I just want to avoid having fancy purchased systems like swift shadow system, and the like, because that provides an unfair advantage to those that have those libs. Good point. You could specify something like "no 3rd party code longer than 10 lines" or something so that people can still use little snippets of code without being able to use an entire system. |
| ||
Or just how about 'all your own code, period' -- Syb hit the nail on the head about why I wanted to use includes. |
| ||
It should be possible to have sounds as long as they are generated procedurally, saved and loaded at startup. |
| ||
no external file creation. That means sure you can have sounds - but you don't need them as external files. Remember chip-sounds? You can create them very easily with Blitz. |
| ||
BlackD - chip sounds? Any examples of this? If I remember, when I was doing TANX - it was Rob Farley who gave me some pointers on creating a wav in code but this involved saving the data and loading it again so not an option. |
| ||
oh yeah! hehe, would love to see this done in blitz |
| ||
Damn.. I thought you could use streams as files. Well, you CAN but only for reading/writing operations, not for operations like PlaySound. Okay - I guess sound is harder than I thought. :) Created a wave okay, and dumped it into a memory bank, but can't yet see any way to play that without a) writing a file, or b) calling a library. Grr. :) Well - we could always cheat and put 16KB of "FF" in Data statements in our EXE, find the data in the EXE and then write from memory bank to that position to play a sound, and thus create no external files. ;) But meh.. Why oh why can't you play streams! That sux. :) Unless, you use TCP streams on 127.0.0.1 to make Blitz thinking its opening up a file on a location, meanwhile you're actually just feeding the stream from a memory bank. Hmmm.. /me goes to play around some more.. You *can* create chip sounds easily with Blitz.. its just PLAYING them without writing a file thats a pain. Grr :D Sample sin wav function.. of course you have to write the wav header first of all, then its just a matter of math. samples=44100 volume=900 frequency=400 For n = 1 To samples divider=samples/frequency sample=(Sin(2*Pi*n/divider) * volume) WriteByte wave,sample Next |
| ||
lol, Creative minds work better in a limits space. |
| ||
So, do we allow sounds to be created procedurally as above but save as .wav's, load into memory then delete or just go with the no sound option? We could spot the cheats a mile away!! |
| ||
i still think blitz should allow memory access via "real" poke and peek commands :/ |
| ||
Want to vote on lifting the ban on creating external files? |
| ||
only creating WAV i think- just so we can use music. |
| ||
U planning on creating a 10 mb Jean Michelle Jairre masterpiece Cygnus coupled with a pong clone :) |
| ||
Hes my fave artist you know! and, the way i used to make music (on the bbc and a synth), thats not actually very impossible- Ive already written a synth in BB that used VB as a front end. Lost the source yonks back :( |
| ||
Might as well lift the ban on creating external files. What's the harm afterall? It IS all still procedural. As long as everyone posts their code at the end we can make sure they're not cheating. :) Even creating image files.. whats a problem with that? I mean - theres going to be nothing in those images except what they draw to them. Now creating image files would be useless - unlike sounds, you can draw directly to an image in memory. With sounds however, there is no way (well there is a way and I'm testing it but it involves writing an HTTP server in Blitz and it seems an absurd length to go to) even if you create all sounds procedurally, to actually play them without writing out files. Same with models - I say, let them write a mesh out to a file if they want - they've had to create the mesh in code. The only danger is someone writing a conversion function to convert an entire model to DATA statements, then writing them all out at the start of the program. I just hope people understand the "no packed resources" means, NOTHING converted to data. Only to code. If you can create a pretty tiling texture in code - feel free, but don't draw it in PaintBrush, then convert it to data statements or whatever - same with models, sounds, etc. I'm gonna start working on my entry now. When you think the rules are 100% clear, post the thread again. :) Rules as I understand them at this stage: Procedural Programming Competition - 2D or 3D welcome. - No resources packed into the EXE either in any form (as DATA, or in any appended method) - All resources (sounds, images, meshes, etc) must be generated by code. (eg. AddTriangle, CreateImage, etc) - All code must be your own, this is a competition of your programming abilities, not those of someone who posted to code archives or whatever. - No calls to external libraries. Included .bb files of your own are welcome, but no DLLs, .decls, etc. - Files may only be written out in instances where it is impossible to utilize a function of Blitz without writing a file. All the file in the data must be generate by code. Examples of uses for this: ... Sounds. ... Save game files. ... OpenMovie (if you use animated GIFs.. I don't see anyone generating an AVI in runtime :)) ... LoadMD2 (remember though, the contents of the model must be generate by code, not DATA statements, so again I don't see people using this, but its here to illustrate the point.) - No references to any files NOT created by your program. Ie, you can't decide to use DING.WAV as a sound effect simply because it's there. Prize: A months supply of sausage rolls, kindly donated by Puki. +BlackD |
| ||
Ok, I like that. Let's lift the ban on creating external files at runtime. How about allowing level information to be stored at data in the program? I think that should be allowed. Or perhaps it might be better to force the coded issue. |
| ||
Level data should be allowed to be stored as data. It's not a packed resource. I mean, sure - it "can" be, but only in the sense that you can create a level editor which will create the data statements for you - in which case you need the level editor in the first place. You're not saving any time. The alternative (dim map(100,100):map(1,1)=tree:map(1,2)=grass:etc) is silly. :) Anything that would naturally be stored as data, of course, should be. We're just trying to avoid people packing information generated externally in as data, and I think most people understand that. +BlackD |
| ||
you can generate level data using fractals i suppose? but use DATAS for that, i think its good... |
| ||
Say, i started mine and realised id already made the game once before on the BBC (where external files were darn impossible unless you wanted the player to keep hitting play n rewind :/ |
| ||
I think when you submit the game, all the includes should be compressed into 1 bb file then post the code on this forum. Then you could just copy the code into the editor and run it. What do you think? Is there a limit to the amount of text a forum post can handle. |
| ||
i would do that anyway, but older IDEs seem to screw up with it. |
| ||
Procedural Programming Competition I'm good with these being the final rules. I say it officially starts Monday and ends two weeks from then. If you guys all agree then I will post a new thread of this as the official final rules. - 2D or 3D welcome. - No resources packed into the EXE either in any form (as DATA, or in any appended method) - All resources (sounds, images, meshes, etc) must be generated by code. (eg. AddTriangle, CreateImage, etc) Although level defination data (like array data is valid) - All code must be your own, this is a competition of your programming abilities, not those of someone who posted to code archives or whatever. - No calls to external libraries. Included .bb files of your own are welcome, but no DLLs, .decls, etc. - Files may only be written out in instances where it is impossible to utilize a function of Blitz without writing a file. All the file in the data must be generate by code. Examples of uses for this: ... Sounds. ... Save game files. ... OpenMovie (if you use animated GIFs.. I don't see anyone generating an AVI in runtime :)) ... LoadMD2 (remember though, the contents of the model must be generate by code, not DATA statements, so again I don't see people using this, but its here to illustrate the point.) - No references to any files NOT created by your program. Ie, you can't decide to use DING.WAV as a sound effect simply because it's there. |
| ||
DORGH! I ALREADY STARTED >.< Does that mean my entry cannot be the above now? :'( |
| ||
Oooh oooh.. big question - multiple entries allowed? :D +BlackD |
| ||
Note to folks: No references to any files not created by your program That also means: no fonts. You gotta create your own pixel fonts in runtime, or else use default font. I say.. BRING ON THE PIXEL FONTS. :D +BlackD |
| ||
http://www.blitzbasic.com/codearcs/codearcs.php?code=1149 Does that count for my entry? |
| ||
No.. sorry. :) 1. There is a two-week time limit. Prior created work can't be judged as such. 2. It's got fonts.. but mainly #1 Although it's really up to Craig. I guess he's running the comp. If he accepts it, then fine. +BlackD |
| ||
what about what i just started for this? is that classed as prior created work? cuz i started it yesterday specially for this :( |
| ||
Hehe Cygnus - in that case, you gotta post your finished product two days early. ;) +BlackD |
| ||
wooo! okiedokie then, i can continue working on it. :D |
| ||
hehe.. a procedural anime pic. :) Pity blitz doesn't have built in FILL commands. Coloring with rects looks crap.. :) Works in Blitz3D or BlitzPlus.. cause its simple. :P Am I winning? ;) +BlackD |
| ||
Hehehe, nice BlackD :) |
| ||
feck, thats amazing! |
| ||
So.. no Data statements? That would make a lot too easy maybe. But then is this allowed ? Dim array(9, 9) aray(0, 0) = 16 aray(0, 1) = 12 aray(0, 2) = 16 aray(0, 3) = 0 etc Instead of Dim aray(9, 9) for y = 0 to 9 : for x = 0 to 9 Read array(x, y) next : next Data 0, 14, 0, 8, 16... |
| ||
It doesn't say no data, just you're only not allowed to pack resources in as data. In other words, you can't write a routine to convert an image to pixel color values and save them as data. DATA for conversation dialogues, maps, etc, are welcome. The few exceptions would be where DATA is the equivalent of a packed resource. For instance, using DATA to build images, or meshes. It is possible for people to cheat, but we're hoping they won't. Just like the line saying "all your own code". We can't necessarily judge if every routine in your program IS all your own code. If someone cheats, they may or may not be caught, but in the spirit of the community and the competition - hoping nobody will. Besides - if you're caught cheating, Puki won't give you the sausage rolls. Anyway, if you do slip up and do something not allowed by the rules - it doesn't matter. :) You'll still make a cool game and share it for everyone.. it just means you won't be TEH WINNAH! +BlackD |
| ||
heres an update.... |
| ||
Nice work Cygnus! Can't wait to try it. :) |
| ||
Well, I'l put it up soon.... dont know if i should wait till the end of the compo to show you lot tho! Includes soundFX (through Sound chan,vol,pitch,length command, similar to the BBC system's sound) Anyhoo, i gota fix one last bug in a football game now- Catch you later :/ *hopes the boss will be happy* BlackD, Who is actually running this compo? lol! |
| ||
hehe.. Craig. :) But he doesn't seem to be around a lot. Maybe he's work on an entry. :D Comp officially starts tomorrow so he should start a new thread then and maybe clean up the rules a bit to answer some of these people's questions. +BlackD |
| ||
Yeah, I gotcha. I'll start the thread now. |
| ||
the data rule should be simply, -No DATA statements where use thereof are the equivalent of a packed resource (eg, pixel data, mesh data, sound data). Character info, maps, etc are welcome. I think that makes it plain for everyone. |
| ||
WOOOT! BEER!!! :D Mmm, i think we should wait for noels final post. |
| ||
Your boss gives you beer? GET ME A JOB THERE! :) |
| ||
I'm not at work- Im helping someone- Its actually 12.12am here now. >.<... Just got ONE final bug before the game can be published.... ^.^ :D |
| ||
ahh the UK. :) I'm from Kircaldy but now in Sydney.. go figure. Anyway.. off to work now.. won't see the official post for 8 hours.. dammit :) |
| ||
heh, good morning/afternoon :P... im gettin drunk on somebody's beer in the fridge now!!! i dun get it ya know- are you half day ahead, or behind the UK? |
| ||
ahead.. quarter past 9 on sunday morn here. Only the yanks are behind the UK. :) |
| ||
hmm craig.. why must it be one .BB file? The problem I have is this.. my program will be too big to be one .BB file in Blitz3D IDE. Sure I can copy/paste it all together in notepad, but then I can't test it (or the debug functions) in Blitz before submitting.. |
| ||
i agree with BlackD on this one. |
| ||
I think when I submit my entry I'll just have two versions.. 1) single .bb file - untested 2) as includes |
| ||
that sounds....like... a plan. :D yeah, maybe we should do that But to be honest, its not very easy to cock up merging the include files- if you just copy the entire thing where youre "include" line is? |
| ||
Yeah, but if it's too big for Blitz3D IDE then the people who are meant to be evaluating it won't be able to load it unless they're using another IDE which supports bigger files or by doing a command line compile, either of which is a big hassle. So.. both versions for me. :) |
| ||
yeah. i see youre point :/ and darnit im having trouble with my AI- you know, when its so inteligent it doesnt follow your instructions? :P |
| ||
Teeheheheheeee I'm so excited about this. Can't wait to finish my game. :) Hows it going Cyg. Btw - just WHO is competing in this? So far I only know of two people. >_< +BlackD |
| ||
and darnit im having trouble with my AI- you know, when its so inteligent it doesnt follow your instructions? :P Ahh yeah, the old "hell no i'm not going over there, that's in direct line with player(x,y) and he'll be able to shoot me.. i'm going to stay over here and live instead.." |
| ||
going well, but i need to implement A* and i just cant get it to work!!! (its a git that i cant just wonder off to BC.com n get some routines- but thatd be cheating. hehe) My theme is quite humerous though- a group of chavs fighting for 'shrooms ^.^ (hey, i had to come up with something with the graphics I had generated!) And hows your entry? |
| ||
mm.. title screen is almost done.. (I wish I was joking..) Hehe.. basically, I'm writing a few routines for use in the title screen that I'll be using in the rest of the program. So I'm working on bunches of it at once. :) Hope it all comes together at the end.. Got four .bb's so far. :) main.bb, functions.bb, routines.bb, renders.bb |
| ||
i have.. soundsystem.bb (a BBC style sound emulator v2 ive re-written for this game.. and it STILL doesnt work well) arpegiator.bb- That arpegiates notes in the soundsystem and game.bb- the main game. Because ive rushed it i think ive buggered the sound system up :/ but the games working quite well. those 'shroom munchers sure do fight! |
| ||
Aww - I wish I could find all my old speccy routines for filling areas and doing some fancy text stuff. That would be really easy to convert! IUf I hadnt messed around and 'improved' (i.e. added external textures etc.) My BallBlazer remake, that coulda been in here :) |
| ||
A preview of a routine I did some work on in the last hour. Almost getting it right.. now just gotta draw the frame. :) Spent 5 hours programming tonight (not programming this, thank god!) so want to share something.. :) I've got over 30k of code already.. glad I'm using includes. :) (oh yeah, and move the mouse around) +BlackD |
| ||
Nice one, BlackD... i wish i could put all myheart into writing that many Line commands! hehehe... Looks great! |
| ||
lol.. yeah. I'm writing a text file to go with the distro. It's got under the section "the hardest bits": "- The world map. A pencil, some graph paper with screen coordinates written down the side and along the top, a map of the world printed to a projector sheet laid over the top, and a helluva lot of typing (mainly using a multiple copy/paste applet). This took about four hours to enter in correctly. On the other hand, the tv-like screen background for that scene took 20 minutes." |
| ||
i for one, cant wait to try your entry. il do some work on mine a bit later tonight. Anyone like Boulderdash/Bomberman/pacman? picture them all together? hehehe >.< Well, from the other bits of code ive seen, ive been beaten solid.. but this is still great fun! dont you think? :D |