Want to learn Blitz, but I have a problem.
So, I want to learn Amiga Blitz. However I'm one of those types of people that simply cannot learn from reading large books that break everything down to a far too simplistic level.
everything from plumbing, woodworking, 3d imagery in life i've learned, I've learned from Videos, Pictures, working examples and physically doing it myself and breaking then repairing it afterwards! its the only way i'm able to obsorb information and turn it into a skill. I guess you could say it's a form of ADD? :nuts I dunno, but I guess recognising my faults is the best step in moving forwards. needless to say i was the annoying kid at school that got bored easily, bummed around but still got decent grades :lol I'm a logical thinker, and know how ifs, thens, whens, whiles etc work. I know I should break down my "grand design" into smaller pieces, and work on them one at a time, then move to another and put the pieces together. my biggest problem though is this: In my mind I have a vision of how the game will look, play, and sound... right down to the last detail. I've got as far as breaking it down into smaller pieces, but I think i'm breaking them down in the wrong way (see my mindmap on the game idea i have). Am I correct to break them down into elements the end user will experience? or should i be thinking more in terms of newscreen() display.this import.keyboard etc etc I guess i'm too much of a graphical thinker/learner. I'd love to find some videos explaining such things like "here's a chunk of code... this does this, but if i change this... then this happens" and you see it live on screen in the game or demo in the vid. there are loads about for pc, just not for amiga blitz. There's loads of links for manuals, code examples etc. Though nothing that'll really help me progress from psuedo code into a working prototype with Blitz. Any ideas? sources? links? |
Nowadays I pretty much just code rather than working things out cos it's kind of just become second nature but, in my experience, especially starting out or when you're attempting something a bit more complex, it's worth breaking down larger programming tasks into smaller steps and using pseudo code or descriptions to work out what you want to do and keep yourself logically on track.
This works for me coding in asm, which is literally a step by step coding method as all commands do one and only one thing, but I can't see how this wouldn't also work for Blitz or anything else. As to how to learn best - just do it would be my advice. You learn from your mistakes is what they say and it's true. Make things, struggle, fail, try something else and learn. Perseverance is the key. Eventually it'll come together. The important thing is to realise no one is suddenly a coder overnight with minimal effort. It takes some time and practice and there's *always* new things to learn and new ways to improve. It definitely helps if you find coding fun too. :) |
indeed. it's just the building blocks i'm struggling with. I know i want say, a sprite to move across the screen. it's going backwards and working out the best way of doing it that confuses me.
thake this guys video tutorials: http://www.youtube.com/watch?v=2a6GFoHOvc0 this is EXACTLY what i'm looking for in a tutorial. it's clear, concise, and shows you the direct result of the code. It's Blitz, but it's on windows. So i've a nasty feeling there'll be times where certain examples wont work or flat out just aren't possible on the amiga. So i'm tentative about absorbing too much from it incase i follow the wrong line of thinking when it comes to the amiga. are there any vids like this done on or for amiga blitz? |
If you already know how to program (and I assume you do based on the fact that you know things like if, then, while, etc.), then all you really need is a good reference manual about the language you want to learn. Learners material is only really suitable for people who want to learn programming from scratch, in my opinion.
Basically just try to write some simple programs by translating what you have in mind using the reference manual. This way you: 1) Depend mostly on your own mind, 2) Get hands-on experience, and 3) Avoid having to read those thick books (which few people like doing anyway). |
i have a basic understanding of programming. I'm really only at the equivalent of a 3 year old blurting out words that it's heard a few times and putting together a few basic words in a sentence.
things like arrays, and when to use them etc are beyond me. hmm perhaps i'm simply underestimating my skill level and looking for the wrong kind of learning material. :great |
right. i got the Ultimate Blitz CD... i'm going for it! :)
|
So I've got myself AmiBlitz 2.44
I figured the first place I should start is creating a screen. I know I need to define the screen before calling/creating it with InitCopList function. I just need to know the syntax of the type definition. The manual is a little short on this. i have an example file which calls it like this and i'd like to check if i'm breaking it down correctly: InitCopList 0,44,120,$13008,8,256,0 0 is the coplist designation, so if you want to split the screen horizontally into 3, you would list 0, 1, 2 etc 44 starts the screen from the 44th pixel from the top of the screen, down. 120 is the height in pixels going downward from the above position, essentially defining the bottom of that "window" inside the screen $ and the numbers are the "type" parameter (this is the bit i need more info on) 8 is the amount of sprites, and should always be 8 (does this mean i can only have 8 sprites/bobs at any one time on that copperlist???) 256 is the colour depth (in this case for AGA only machines???) 0 is the custom numbers (still awaiting development) in the manual the type definition is shown as this: Code:
#onebitplane= $01 so am i correct to assume that the string $13008 means hires mode, fetchmode3, with 8 bitplanes? thanks for any help given :great |
oh i also have a question...
if i split the screen into 2 playfields, can the colour pallettes be different? for example take monkey island. i assume the upper 2 thirds is one playfield, with it's own pallette, and the lower third, with the buttons and inventory is the other. but are they able to have completely different pallettes? so technically displaying 512 maximum colours on the "screen" at once? |
You can indeed have different palettes, but it will take some DMA time to load the new colours. If you really need 256 colours for your lower part, you will probably need several blank lines between them to give the copper the chance to load all the new colours.
|
Quote:
any ideas on the "type" question on the post above the one you just answered? also, is it possible to "float" a copperlist above the other, with a transparent background to show the lower one? so say i have the game filling the whole screen, but i want scores for each player overlaid... would this be efficient? |
just bumping this in the hope it catches someones eye while i'm still googling and thread skimming for confirmation of the "type" definition
EDIT bump cancelled... weird coincidence Graham! LOL |
Quote:
What I've done before is to have a title screen as CopList 0 so I'd use CreateDisplay 0, but for the game itself, I'd use Coplist 1 as the main play area, and CopList 2 for the status panel. I might put the panel on top rather than the bottom so in this case I'd use CreateDisplay 2,1. However, take care that you leave an appropriate gap between each CopList if you're displaying more than one at a time. The Blitz 2.1 manual advises the ypos of a lower CopList to be at least the above's ypos+height+3. Quote:
Quote:
Quote:
You can display as many Shapes as Chip RAM allows (and of course use a 'normal' palette and can be of any size) but obviously displaying and moving too many will slow your program down. Quote:
Quote:
Quote:
And also if you wanted Hires, it would be $13108, as Hires = $100 as you noted above. $13008 would be AGA colours, Fetchmode 3, Lores and 8 bitplanes. Quote:
|
Quote:
brilliant explanations Graham :great and weird i bumped the same second you posted! perfect timing :D Quote:
so if say in your example i had a rolling credits and higherscore as the intro on copperlist 0, and i wanted the status copperlist (2) to overlay the highscores on game over i could simply switch using CreateDisplay as 2,1 in your example to 2,0 ? |
Yes, that would work, making sure the ypos of each CopList was correct of course.
And yes the syntax is in order from top to bottom. |
right, time to enter Blitz mode and play with copper bars etc :great
|
Have fun - if you hit a problem just shout :)
|
will do :great
at the moment i'm playing with a vector circle and gradients example.. managed to change it from split screen to a single circle, resized and changed it from gradient to slowly dimming to black. Quote:
|
Ok I'm accidentally putting the system into a loop (possibly hanging it? i dont know, thats what i want to find out) while playing with integers and operators and i want to add a break-out to it as simply having a mousewait at the end isn't doing it.
Quote:
cheers to anyone that helps. i think i need a pdf of every function and it's syntax to print out and have to hand as it's getting silly now how crappy all the .guides are. mind you, said pdfs are probably just conversions of the guides! |
its probably the worst way to learn.. but some of the stuff i've done so far has been done by writing code to achieve what i want in its most basic form... then i start re-writing it to make it more efficient and to correct mistakes
fairly recently i re-wrote an entire program after tracing back a flaw which stopped me from controlling something.. it was horrible but it was a lesson and helped me overcome something else that had me completely stuck... the re-write also made me realise that was a better way to achieve the same goal really i am no coder... i enjoy thinking that fixing the code is kinda like a puzzle, the hardest part is keeping motivation in a project... |
that's definitely the way to go.
However i'm only playing with around 10-15 lines of code, and getting a feel for what does what and why in terms of drawing stuff on the screen. and in this case breaking it or getting it to do unexpected things. when it gets caught in a loop i'm having to reset the system and reload Blitz, and the code. would be nice to just break the routine using a while loop without having to reset the whole system. |
All times are GMT +2. The time now is 18:05. |
Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.