Ultimate Amiga
Network Boards => AMOS Language Discussion => AMOS Factory => AMOS Professional Forum => Topic started by: selur on April 24, 2008, 10:25:32 PM
-
Hi there
During last year i was lurking around and observing amiga scene and...
I'm thinking about creating a group similar to "Underground Arcade"
http://undergroundarcade.blogspot.com/2008/04/underground-arcade-introduction.html
(their projects seems real and looking very good )
...a group of AMOS fans to creating hi-quality games for classic Amiga (OCS/ECS) in AMOS ofcourse.
However I don't want to involve all AMOS fans to this project beacuse I know that only well cooperate small group can be effective.
All we need is a small group of skilled musicians, graphic artists and programmers.
But we need active members with quite much free time. (I guess this is biggest problem)
So are there any volunteers ? ???
-
Hi:
Yes, I am interested. I am both graphic artist and programmer. I also have some free time to spend in making new amiga classic games.
Cheers!!!
rednova
-mobilis in mobile-
-
Fine Rednova!
So we are now 2 ;) , if we reach minimum 4 members we can start build our team.
...anyone else ?
-
Hello everyone.
I'd like to throw my hat into the ring here. I've been a programmer for the past 15 years. Sadly I haven't touched AMOS is about 10 years. I bought Amiga Forever, and found this wonderful web site. I've got AMOSProfessional up and running on an emulated Amiga 1200, but can easily reconfigure to use the OCS/ECS.
My strengths are in technical writing, and programming (not a very good graphics person). You can see some of my work on my developers Blog at http://blog.pishlo.info (http://blog.pishlo.info). My profession is C# development using the .Net framework. But I've been a long time Basic fanatic and the only reason I don't own an Amiga right now, is because we lost my last one in a fire.
I'm also running my own web server, and CVS. So we could probably use that to synch files.
-jim
-
In order to use CVS, the source files need to be stored as plain text. Amos stores the files as tokenized text with a few built-in bank structures.
-
Hi Nesstar
Well... I think that is the point of creating this Team.
Some of us did not use AMOS for years and some of us (like me) bought Amiga not quite long time ago (I'm old owner of A500 but bought A1200 last year). Most important is experience which u gained from other projects or platforms.
In Team will be easier to learn old stuff (and the new one) much faster then do it by single. And the most important thing is that the one programmer can write med-size game in minimum one year . In team we can do it faster and better. Many amiga projects failed because time of development was too long. So that is the point not to make another project which will fail because programmer get bored with it. :-\
and ...about our communication
I wanted it to be done like e-book, so we will use *.txt files (each of us will be reading about problems and solutions) with additional *.iff/*.png (to show how it works) and AMOS sources.
What we need is a server with pasworded acces to these files and possibility to uploading own files.
For main discussion we will use these forum just we make a special topic about it.
-
Sounds like a great idea!
-
hey folks I'm dumb :D
I didn't notice that we have CHAT option in our forum. So ofcourse we will also use this chat to communicate...
Still we need a skilled graphic artist (mostly good spriter) !
-
i think you should team up with Underground Arcade, and share resources / users. There is not a great number in their team, and their end goal is simply to produce Amiga games.... there are no other 'requirements' than being interested, and eveyone is treated equally.
i am not convinced a small group is the best way at all, but that is would be better to have a large group, where only a certain number of people work on the projects they are interested in. It seems silly to me, to not try and group both teams together, when we are already working along similar lines with similar goals.... maybe all the people working on AMOS projects will largey be from here, and you guys can find your extra graphicians / musicians etc from there.
surely this helps everyone?
I know the underground arcade team are interested in having games programmed in AMOS, but some of the people lack the appropriate skills, which is where i think a few of you guys might be good to help out.
Such rivalry in such small amiga communities, is in my opinion, stupid and pointless.... surely its the end goal that is important?
-
Ok after conversation with Hungry Horace i've decide to post this
1) If someone is interested to support "Underground Arcade" he should contact with them.
2) If someone is interested to creating our AMOS GROUP then should read news at this topic.
And we don't want to rival with "Underground Arcade" so we don't pick up projects like shot'em up and platformer game which are currently development by them (also think that AMOS is not fast enought to shot'em ups we will prefer turn base projects or simple arcade with static screens).
However we need one musician and also good spriter to activate our team... may some of u have contac to ppl who will take this position.
-
There is a sprite artist on AmigaWorld.net with the user-name of Roquefort who wants to make a fight game. I can't say there is much quality of his artwork but he's got a willing attitude. As for the music, I might be able to crank out a few tracks for you.
-
Hi Samurai
I've just read Roquefort topic and I think he will not be interested. He want to make an beat'em up game with side scrolling which is not our target (especially in hires mode). However I can't send him even a message cos I dont have account there and don't want to register everywhere I can :)
As for the music ...thats good news ! But can u tell me what kind of "crank out" you be able... ;)
-
If you want an example of my music and font making capabilities, check out the "Ribbons and Curls" demo on this website. I wrote it myself in AmosPro.
-
Woow this scroll is quite impressive as an amos scroll. I wonder how did u do this. I remember that standard amos scroll was a crap (I don't have any extensions so i couldn't run it from AMOS).
And ..well music is quite simple but it's not bad (did you use midi to creating it or some kind of protracker ?)
-
Hello again.
I had a little time to kill today so I banged out a *very rough* draft of a game in AMOS. I'm sure you've probably all played, or at least, heard of "The Same Game". You can play a javascript version online here: http://javascript.internet.com/games/same-game.html (http://javascript.internet.com/games/same-game.html)
As I mentioned mine is VERY rough draft. The code is not optimized. There may be some bugs. There are no graphics (it's all done in text). But the game play is there and eager to be expanded upon.
You can download the Ascii listing, as well as the AMOS source code, and a compiled version of the game here. (http://filestore.pishlo.info/storage/other/samosAmos.zip)
Here's the code:
'***************************************************
'** **
'** SAMOS GAMOS (Same Game, Different Platform) **
'** **
'** By The Team **
'** **
'***************************************************
Screen Open 0,640,200,16,Hires
Palette $0,$A40,$FFF,$F00,$F0,$F,$90,$B0B
Curs Off : Flash Off
Cls 1
'Grid holds all tiles
'32 across by 20 high
Dim GRID(32,20)
'Some basic initialization
SCORE=0
SKILLLEVEL=1
'Get highscore (if any)
Proc _LOADHIGHSCORE
HIGHSCORE=Param
'Stack for holding search results
'A string is being used so that in can grow, and amos will do the memory
'allocation/re-allocation for us.
STACK$=""
OFFSETX=8
OFFSETY=3
CELLWIDTH=2
CELLHEIGHT=1
GRIDX=0
GRIDY=0
DELCHAR=10
GRIDWIDTH=31
Global GRIDWIDTH,SCORE,HIGHSCORE,STACK$,SKILLLEVEL,GRID(),GRIDX,GRIDY,DELCHAR
'Setup the display
Locate 0,0 : Print "sAmos gAmos"
Print "Brought to you by: The Team"
Proc _SHOWSCORE
Proc _INITGRID
Proc _DISPLAYGRID[OFFSETX,OFFSETY,CELLWIDTH,CELLHEIGHT]
MOUSEDOWN=0
Do
If Mouse Key=2 Then Exit
If Mouse Key=1 and MOUSEDOWN=0
MOUSEDOWN=1
Proc _CALCGRIDPOS[OFFSETX,OFFSETY]
If GRIDX>=0 and GRIDX<=31
If GRIDY>=0 and GRIDY<=19
V=GRID(GRIDX,GRIDY)
If V<>0
Proc _DOSEARCH[GRID(GRIDX,GRIDY),GRIDX,GRIDY]
Proc _UPDATEGRID
Proc _DISPLAYGRID[OFFSETX,OFFSETY,CELLWIDTH,CELLHEIGHT]
End If
End If
End If
End If
If Mouse Key=0 Then MOUSEDOWN=0
_SHOWSCORE
Loop
'Procedure Definitions
'--------------------------------------------------------------
Procedure _LOADHIGHSCORE
'Load high score if available.
HIGH=0
FILENAME$="HighScore.dat"
If Exist(FILENAME$)=-1
Open In 1,FILENAME$
Input #1,HIGH
Close 1
End If
End Proc[HIGH]
'Set HighScore
Procedure _SAVEHIGHSCORE[HSCORE]
FILENAME$="HighScore.dat"
If Exist(FILENAME$) Then Kill FILENAME$
Open Out 1,FILENAME$
Print #1,HSCORE
Close 1
End Proc
'Pop the first character from the stack.
Procedure _POP
COORDS$=""
If Len(STACK$)>0
COORDS$=Left$(STACK$,2)
STACK$=Right$(STACK$,Len(STACK$)-2)
End If
End Proc[COORDS$]
'Push coordinates onto the end of the stack
Procedure _PUSH[_X,_Y]
STACK$=STACK$+Chr$(_X)+Chr$(_Y)
End Proc
'Radomize Grid
Procedure _INITGRID
For Y=0 To 19
For X=0 To 31
GRID(X,Y)=Rnd(SKILLLEVEL*4)+2
Next X
Next Y
End Proc
'Display Grid
Procedure _DISPLAYGRID[_X,_Y,_CW,_CH]
For Y=0 To 19
For X=0 To 31
XPOS=_X+(X*_CW)
YPOS=_Y+(Y*_CH)
For R=1 To _CH
Paper GRID(X,Y)
Locate XPOS,YPOS
Print String$(" ",_CW)
Next R
Next X
Next Y
Paper 1
End Proc
'Shift collumn down
Procedure _SHIFTDOWN[_COL]
Repeat
FOUND=0
For Y=19 To 0 Step -1
If GRID(_COL,Y)=DELCHAR
Inc FOUND
If Y>0
For Y2=Y To 1 Step -1
GRID(_COL,Y2)=GRID(_COL,Y2-1)
Next Y2
End If
GRID(_COL,0)=0
End If
Next Y
Until FOUND=0
End Proc
'Shift grid down
Procedure _UPDATEGRID
For X=0 To 31
Proc _SHIFTDOWN[X]
Next X
Proc _SHIFTLEFT
End Proc
'Shift grid to left
Procedure _SHIFTLEFT
Repeat
FOUND=0
For X=0 To GRIDWIDTH
Proc _COLEMPTY[X]
If Param=0
Inc FOUND
For X2=X To 31
For Y=0 To 19
If X2<31
GRID(X2,Y)=GRID(X2+1,Y)
Else
GRID(X2,Y)=0
End If
Next Y
Next X2
Dec GRIDWIDTH
End If
Next X
Until FOUND=0
End Proc
'Check to see if column is empty
Procedure _COLEMPTY[_COL]
FOUND=0
For Y=19 To 0 Step -1
If GRID(_COL,Y)<>0 Then Inc FOUND
Next Y
End Proc[FOUND]
'Display scores
Procedure _SHOWSCORE
SC$="Score: "+Str$(SCORE)
HS$="High Score: "+Str$(HIGHSCORE)
Locate 80-Len(SC$),1 : Print SC$
Locate 80-Len(HS$),0 : Print HS$
End Proc
'Compute grid position from mouse
Procedure _CALCGRIDPOS[_OFFX,_OFFY]
XCPOS=(X Mouse-129)/8
YCPOS=(Y Mouse-50)/8
GRIDX=XCPOS-4
GRIDY=YCPOS-3
End Proc
'The great search begins
Procedure _DOSEARCH[_VAL,_X,_Y]
If _Y>0
If GRID(_X,_Y-1)=_VAL
GRID(_X,_Y)=DELCHAR
Proc _PUSH[_X,_Y-1]
End If
End If
If _X<31
If GRID(_X+1,_Y)=_VAL
GRID(_X,_Y)=DELCHAR
Proc _PUSH[_X+1,_Y]
End If
End If
If _Y<19
If GRID(_X,_Y+1)=_VAL
GRID(_X,_Y)=DELCHAR
Proc _PUSH[_X,_Y+1]
End If
End If
If _X>0
If GRID(_X-1,_Y)=_VAL
GRID(_X,_Y)=DELCHAR
Proc _PUSH[_X-1,_Y]
End If
End If
'Print Len(STACK$)/2
'Input K$
Proc _PROCESSSTACK[_VAL]
End Proc
'Search for all elements on the stack
Procedure _PROCESSSTACK[_VAL]
While STACK$<>""
Add SCORE,5
_POP
COORDS$=Param$
X=Asc(Left$(COORDS$,1))
Y=Asc(Right$(COORDS$,1))
GRID(X,Y)=DELCHAR
Proc _DOSEARCH[_VAL,X,Y]
Wend
End Proc
-
@selur
The way the scroller works is that the vertically scrolling portion that shows the back of the letters are stored in computed sprites so they are displayed more than once by using the copper.
The horizontally scrolling part are a double-wide screen that does Icon Paste to the first and second half of the screen simultaneously so that when the left edge of the screen is reached, the right half contains identical data and can the offset can be set to the right edge without displaying any seams.
The "fold sprite" is sprite 0 because it overlaps everything. Since it is pure opaque black I just rendered a 5-sided polygon and grabbed it at startup. It is tall enough that the vertical scrolling sprites are completely covered by the "fold sprite" before they disappear to be recycled to the next letter in the scroller.
The music was done in MilkyTracker on Windows and converted to Protracker using Octamed Soundstudio 1.03c on Amiga and ModPlug Tracker on Windows. There was no MIDI interface used nor was it sequenced on a midi program. The chords were all oversampled as .WAV files from .XI instruments using the wave export feature of MilkyTracker.
The font data was created using the AmosPro Object Editor and uses a 16 color image for each letter.
-
Nesstar you don't need to paste whole listing. Just upload it to "downloads" section ;)
Samurai this is not very clear for me :-[ but I guess this is some kind of trick. Also don't know what is MilkyTracker but this is no important in that moment... I'm just glad that you decided to support us.
-
MilkyTracker is a music program for many operating systems including Windows, Linux, MacOSX, and AmigaOS 4.0.
The only extension I used on the Ribbons and Curls demo was the AMCAF extension. I mostly used it to replace multiplications with bit shifts and used the Protracker player routines from AMCAF instead of the buggy Track Play in AmosPro.
-
Here some good news !
My familiar programist also will participate with this.
Also found a small group of ppl who want in too !
However I don't know them so I don't really know what they can. Now we are almos ready to start .(however I'm still looking for skilled graphic leader)
So this is end of this thread.
If someone wants to join then sign here please.
New topic with the information will be named "Amos Group project".
#Samurai
Is AMCAF really so necessary ?
-
@selur
Regarding AMCAF:
AMCAF contains some of the easiest to implement functions of the processor and operating system in a friendly way. AMCAF and TurboPlus will probably be the first two extensions to be added to Mattathias Basic's Amos compatibility mode. Using AmosPro without extensions may sound nice in practice but the performance really stinks!
In particular the Lsl and Lsr commands replace 80 clock cycle multiplies and divides with 4 clock cycle bit-shifts making everything MUCH faster on anything older than an '060 .
Also the Track Load command is buggy in that it sometimes doesn't load samples into Chip RAM causing a crash as soon as Track Play is called. An alternate music player is definitely needed. AMCAF provides this.
Also, any routine that does individual pixel operations will suffer under traditional Point and Plot functions since the main processor has to do a chunky to planar or planar to chunky operation on each pixel, one at a time. AMCAF supplies batch conversions to and from chunky-pixel modes allowing even the Turbo Point and Turbo Plot functions supplied by AMCAF to be replaced by the even faster Peek and Poke commands.
-
Hi,
I'd love to be a part of this project too. I'm a fairly good programmer and can occasionally compose music.
The only problem is that I already have half a dozen AMOS-related projects on the go, but I'm sure I could squeaze in one more :)
Regards,
Lonewolf10
-
Hello
All of us had many ideas and projects, but thats why we decided to unite forces and focus on one common project.
Ofcourse if we will succes then we will probably pick another project (I hope), but we need now focus on this one and rather only one.
-
Guys !!
The situation has change a little ... we need to talk asap !