06 January 2012, 15:31 | #1 |
Registered User
Join Date: Dec 2011
Location: Northamptonshire, UK
Age: 41
Posts: 1,236
|
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? 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 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? |
06 January 2012, 16:01 | #2 |
gone
Join Date: Apr 2007
Location: completely gone
Posts: 1,596
|
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. |
06 January 2012, 16:08 | #3 |
Registered User
Join Date: Dec 2011
Location: Northamptonshire, UK
Age: 41
Posts: 1,236
|
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: [ Show youtube player ] 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? |
06 January 2012, 17:47 | #4 |
Computer Nerd
Join Date: Sep 2007
Location: Rotterdam/Netherlands
Age: 47
Posts: 3,751
|
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). |
06 January 2012, 17:57 | #5 |
Registered User
Join Date: Dec 2011
Location: Northamptonshire, UK
Age: 41
Posts: 1,236
|
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. |
06 January 2012, 18:17 | #6 |
Registered User
Join Date: Dec 2011
Location: Northamptonshire, UK
Age: 41
Posts: 1,236
|
right. i got the Ultimate Blitz CD... i'm going for it!
|
07 January 2012, 17:48 | #7 |
Registered User
Join Date: Dec 2011
Location: Northamptonshire, UK
Age: 41
Posts: 1,236
|
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 #twobitplanes= $02 #threebitDlanes= $03 #fourbitplanes= $04 #fivebitplanes= $05 #sixbitplanes= $06 #sevenbitplanes= $07* #eightbitplanes= $08* #smoothscrolling= $10 ;set if you will be scrolling the bitmap #dualplavfield= $20 ;enable dual playfield mode #extrahalfbrite= $40 ;forces 6 bitplane display into ehb mode #ham= $80 ;display in ham #lores= $000 #hires= $100 #superhires= $200 #loressprites= $400 #hiressprites= $800* #superhiressprites= $c00* #fetchmode0= $0000 #fetchmode1= $1000* #fetchmode2= $2000* #fetchmode3= $3000* so am i correct to assume that the string $13008 means hires mode, fetchmode3, with 8 bitplanes? thanks for any help given Last edited by diablothe2nd; 07 January 2012 at 18:34. |
07 January 2012, 18:37 | #8 |
Registered User
Join Date: Dec 2011
Location: Northamptonshire, UK
Age: 41
Posts: 1,236
|
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? |
07 January 2012, 18:44 | #9 |
2 contact me: email only!
Join Date: May 2001
Location: Auckland / New Zealand
Posts: 3,182
|
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.
|
07 January 2012, 18:52 | #10 | |
Registered User
Join Date: Dec 2011
Location: Northamptonshire, UK
Age: 41
Posts: 1,236
|
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? |
|
07 January 2012, 22:17 | #11 |
Registered User
Join Date: Dec 2011
Location: Northamptonshire, UK
Age: 41
Posts: 1,236
|
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 |
07 January 2012, 22:17 | #12 | |||||||
Moderator
Join Date: Jul 2004
Location: Norwich, Norfolk, UK
Age: 37
Posts: 11,167
|
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. No, that's physically impossible to 'overlay' coplists. The only way to do such a thing would be to use a dual-playfield display, so you'd have a 'foreground' and 'background' bitmap on-screen at the same time. But that seems a bit of drastic unless you want to severely limit the number of colours on screen (eight colours for each bitmap on ECS, and 16 on AGA). I'm pretty sure there's plenty of hardware trickery for games that do overlay scores etc onto the actual game screen, probably involving sprites, but that's beyond me I'm afraid. |
|||||||
07 January 2012, 22:23 | #13 | |
Registered User
Join Date: Dec 2011
Location: Northamptonshire, UK
Age: 41
Posts: 1,236
|
actually that wasn't in my .guide ... maybe i have an old/outdated version. that explains why i couldn't find a logical reason for it being in 10's of thousands lol.
brilliant explanations Graham and weird i bumped the same second you posted! perfect timing 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 ? Last edited by Graham Humphrey; 07 January 2012 at 22:35. Reason: Back-to-back posts merged |
|
07 January 2012, 22:35 | #14 |
Moderator
Join Date: Jul 2004
Location: Norwich, Norfolk, UK
Age: 37
Posts: 11,167
|
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. |
07 January 2012, 22:38 | #15 |
Registered User
Join Date: Dec 2011
Location: Northamptonshire, UK
Age: 41
Posts: 1,236
|
right, time to enter Blitz mode and play with copper bars etc
|
07 January 2012, 22:41 | #16 |
Moderator
Join Date: Jul 2004
Location: Norwich, Norfolk, UK
Age: 37
Posts: 11,167
|
Have fun - if you hit a problem just shout
|
07 January 2012, 23:03 | #17 | |
Registered User
Join Date: Dec 2011
Location: Northamptonshire, UK
Age: 41
Posts: 1,236
|
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:
|
|
07 January 2012, 23:57 | #18 | |
Registered User
Join Date: Dec 2011
Location: Northamptonshire, UK
Age: 41
Posts: 1,236
|
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! |
|
08 January 2012, 00:14 | #19 |
95th User
Join Date: May 2001
Location: Brighton/UK
Age: 48
Posts: 3,120
|
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... |
08 January 2012, 00:19 | #20 |
Registered User
Join Date: Dec 2011
Location: Northamptonshire, UK
Age: 41
Posts: 1,236
|
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. |
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
Thread Tools | |
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
I want to learn about Workbench | mancity | support.Apps | 26 | 21 May 2012 06:14 |
Wanting to learn Blitz Basic on real Amiga | Adropac2 | request.Other | 20 | 20 August 2008 07:30 |
Blitz Basic 2.1 problem with reading a CD32 joypad | Graham Humphrey | Coders. General | 10 | 09 August 2008 09:24 |
How did you learn to program | BippyM | Coders. General | 80 | 01 April 2007 19:25 |
A little lesson to learn about Pong | MethodGit | Retrogaming General Discussion | 7 | 07 December 2001 13:03 |
|
|