Overview Features Instructions Performance Forum Downloads Products OrderV4 Reseller Contact

Welcome to the Apollo Forum

This forum is for people interested in the APOLLO CPU.
Please read the forum usage manual.
VISIT APOLLO IRC CHANNEL



All TopicsNewsPerformanceGamesDemosApolloVampireAROSWorkbenchATARIReleases
Running Games and Apps.

How About Starting a Wiki for Amiga Game Devs?page  1 2 3 4 5 

Gunnar von Boehn
(Apollo Team Member)
Posts 4703
31 Mar 2020 11:20


Marlon Beijer wrote:

Gunnar von Boehn wrote:

 
Marlon Beijer wrote:

  It's a big task, but I think it would be worth it to have more developers that know how to make multi-Amiga-platform apps.
 

 
  But this makes learning much more complex.
  I can easily see that a beginner might get totally overwhelmed.
 

  Perhaps, but my goal was not for beginners. My assumption was at least some basic knowledge of C/C++ and common sense. :) System friendly stuff is pretty much the same on all platforms, with a few differences here and there.

I understood the topic of the thread here as "Amiga Game coding".

Gaming coding on AMIGA could include
- Understanding how to show PLANA Screens.
- Copper list coding
- Amiga Sprite coding
  Amiga Sprite Channel vertical re-usage
  Amiga Sprite Re-usage using Copper. => Spriteplayfield
- Play Music with PAULA
- 68k ASM

For none of these "lessons" C or C++ makes any sense.




Olle Haerstedt

Posts 102
31 Mar 2020 12:50


Hopefully we can include code snippets in more than one language.


Gunnar von Boehn
(Apollo Team Member)
Posts 4703
31 Mar 2020 13:23


Olle Haerstedt wrote:

Hopefully we can include code snippets in more than one language.

It surely does depend what you want to do.

For "real" Amiga game coding you really want to go for the HW.
This means if you want to code a game like "SHADOW of the BEAST".
Then 90% of the work is in the Copperlist, Sprite, Blitter, DMA logic... and this direct HW stuff can excellent be done in ASM.




Olle Haerstedt

Posts 102
31 Mar 2020 13:28


I'd say that what we want to do is to offer as many alternatives as possible for developers to create games on Amiga. Also, it's very possible to build libs in asm that can be used from C/Blitz/etc, so this should also be covered.


Olle Haerstedt

Posts 102
01 Apr 2020 09:12


For the wiki, since we're using github, I suggest that wiki pages contain snippets, while the source code contain complete examples that can be compiled.


Andrew Copland

Posts 113
01 Apr 2020 10:44


Gunnar von Boehn wrote:

Olle Haerstedt wrote:

  Hopefully we can include code snippets in more than one language.
 

 
  It surely does depend what you want to do.
 
  For "real" Amiga game coding you really want to go for the HW.
  This means if you want to code a game like "SHADOW of the BEAST".
  Then 90% of the work is in the Copperlist, Sprite, Blitter, DMA logic... and this direct HW stuff can excellent be done in ASM.
 
 
 

C can be used for structure of a program, ASM can be used for pieces. Don't ask people who can do C fairly easily to write an entire program in ASM, it's just not necessary.

The bit that's get executed 99% of the time, usually only take up 1% of the code, that bit can be ASM.


Gunnar von Boehn
(Apollo Team Member)
Posts 4703
01 Apr 2020 11:39


Andrew Copland wrote:

C can be used for structure of a program, ASM can be used for pieces.

It depends what you want to teach.

If you want to teach the coding of "genuine" Amiga effects like for example :
how to code a "checkboard-scoller"
Or how to make a "Sprite-Starfield"

Then you need some lines of ASM and you need to teach how Sprite-DMA works or how Copper works.



Andrew Copland

Posts 113
01 Apr 2020 12:11


Yes, but you don't need the whole program to be in ASM which, although powerful, is also universally agreed to be more difficult to teach and to learn than a higher level language.

If only a small part of the code needs to be in asm, then only have a small part of the code in asm. Be targetted in the approach.


Ray Couzens

Posts 53
01 Apr 2020 12:32


I'm no game programmer.  When I owned my Amiga500 in the 80's and 90's dabbled in C, and various flavours of BASIC.  Later in life became a programmer in industry, but far from the game programming world.  However, I don't program for a living now, so when I get my Vamp it will be fun to dabble.  I think a programming section would be very good and I can see the need to have specialised sections covering advanced sprite programming using ASM.  However, I can also imagine how good it would be to have a separate section on C programming which could include C and ASM.  This would only require a different heading so people could visit the appropriate section of the forum.  The most popular sections would become apparent over time.  Personally, I need to first brush up on programming an Amiga, it's been a long time!


Gunnar von Boehn
(Apollo Team Member)
Posts 4703
01 Apr 2020 12:46


Andrew Copland wrote:

    Yes, but you don't need the whole program to be in ASM which,
   

I think this what not we talk about here.
   
The point was that "genuine" Amiga coding means coding the Amiga HW.
And for this some short examples might help people.
 
If we want to teach Amiga demo or game coder effects,
then maybe we might want to teach and discuss the effect code in ASM
  as such Amiga demo coder effects are written in ASM in the first place.


Olle Haerstedt

Posts 102
01 Apr 2020 21:01


Samuel Crow wrote:

  Uh, why isn't the Wiki feature enabled in your GitHub project?  I'd join if you like.

Nice updates, Samuel, thanks! (No private messaging on github...)


Samuel Crow

Posts 385
01 Apr 2020 21:07


Olle Haerstedt wrote:
Nice updates, Samuel, thanks! (No private messaging on github...)

You're welcome!  Are you on any other Amiga forums where private messaging is available?  My preferred one is EXTERNAL LINK but I'm on others.



Tim Trepanier

Posts 106
02 Apr 2020 04:54


I'm a fan of data about data. a.k.a. metadata

I'm a programmer and would like to learn ASM. I find i learn new languages/systems best by playing with existing code before i try to do anything on my own.

Sample code is a great resource for me. Unfortunetly i've often run into problems with sample code because it has unknown dependencies. Does it work only with certain compilers, have minnimum CPU/FPU/RAM/OS, library or other requirements. I've often wasted time trying to figure out why something wouldn't work only to realized i was missing a piece of the creators development puzzle.

Whether it be source code, text editors, compilers, or whatever, provide as much info about each as possible. This really sames time in choosing development tools and learning new things without frustration.


Niclas A
(Apollo Team Member)
Posts 212
02 Apr 2020 06:46


Gunnar von Boehn wrote:

Olle Haerstedt wrote:

  Hopefully we can include code snippets in more than one language.
 

 
  It surely does depend what you want to do.
 
  For "real" Amiga game coding you really want to go for the HW.
  This means if you want to code a game like "SHADOW of the BEAST".
  Then 90% of the work is in the Copperlist, Sprite, Blitter, DMA logic... and this direct HW stuff can excellent be done in ASM.

Or you could say. game like "Worms Directors Cut" which is coded in blitzbasic.



Olle Haerstedt

Posts 102
02 Apr 2020 12:45


Tim Trepanier wrote:

  Sample code is a great resource for me. Unfortunetly i've often run into problems with sample code because it has unknown dependencies. Does it work only with certain compilers, have minnimum CPU/FPU/RAM/OS, library or other requirements. I've often wasted time trying to figure out why something wouldn't work only to realized i was missing a piece of the creators development puzzle.

This is a little bit of a dilemma, because you often want to write a snippet to highlight a special technique or feature, but a snippet won't compile on it's own. That why it's also important to include complete examples. Books are pretty bad for this, since you'd have to copy it by hand, but a wiki could do it easily (include both snippets and full, working examples).


Arkadiusz Kwaśny

Posts 10
02 Apr 2020 22:37


My team is working on a voxel-based game for Amiga. None of us is fluent in asm and without using C we would not start the game at all.
By starting with C we've managed to get together a demo of our game and gathering interest in the community.
We are sure that all the calculations and drawing will have to be moved to asm, we are working on it at the moment. Still, 80% of the game code will remain in C.
Actually you can create smooth voxel games if you target 68030 and above with just pure C. We will be adding asm just to cover the slowest amigas.


Gunnar von Boehn
(Apollo Team Member)
Posts 4703
02 Apr 2020 22:42


Arkadiusz Kwaśny wrote:

  My team is working on a voxel-based game for Amiga.
 
  Actually you can create smooth voxel games if you target 68030 and above with just pure C
 

 
  Yes Voxel games are nice.
 
  Regarding the C and 68030 -
  it of course depends a lot what your quality goal is.
  If you can reach the quality of my Voxel with C on an 68030 then you will highly impress me.
 
 
  Long time ago I also wrote some Voxel stuff for Amiga  which looked like this.
 
 
   
   
   
   
   
   
    Voxel games have their own charm.
    And we have not many nice Voxel games.
    But Voxel games typically use very little or none at all "AMIGA features".
   
    Copper, planes scrolling, playfields, sprites .. all this is very little used on Voxels games.


Manfred Bergmann

Posts 179
03 Apr 2020 08:15


Niclas A wrote:

 
Gunnar von Boehn wrote:

 
Olle Haerstedt wrote:

    Hopefully we can include code snippets in more than one language.
   

   
    It surely does depend what you want to do.
   
    For "real" Amiga game coding you really want to go for the HW.
    This means if you want to code a game like "SHADOW of the BEAST".
    Then 90% of the work is in the Copperlist, Sprite, Blitter, DMA logic... and this direct HW stuff can excellent be done in ASM.
 

 
  Or you could say. game like "Worms Directors Cut" which is coded in blitzbasic.
 
 

 
  Agreed.
  I think it depends on the type of game for which language can (or should) be used.
  Of course any type of game can be coded with ASM.
  But a) not all people are comfortable with ASM, in particular to get something done in a reasonable amount of time.
  And b) many games can be good to play and be proper "Amiga games" that are done with higher level languages.
 


Gunnar von Boehn
(Apollo Team Member)
Posts 4703
03 Apr 2020 09:00


Niclas A wrote:

Or you could say. game like "Worms Directors Cut" which is coded in blitzbasic.

Lets clarify this to prevent "confusion".

The Author wrote the 1st proof of concept in Blitz and he used some editors that he write in Blitz. We can surely assume that the important game render routines are written in ASM.

Therefore you say rightfully also say that Worms was written in ASM.




Gunnar von Boehn
(Apollo Team Member)
Posts 4703
03 Apr 2020 09:16


Lets be crystal clear here:

What makes the AMIGA special - is the AMIGA custom chipset.
This chipset offers playfields, sprites, Copper ...

Games like "Lionheart" or "Shadow of the Beast" were only possible because the coders fully understood the Amiga chipset.
If you want to enable yourself to code something like this, then you need to learn how the Amiga works.

The Hardware reference manual should be your bible.
Reads it, and re-type the ASM example in it to get a feeling of how the Amiga chipset works. Understanding the Amiga is the basis for all your coding.

Regarding C, and ASM.
Yes you can code a game in C. This is clear.
But a good programmer will be able to write faster ASM than any existing C compiler.

This means writing the main work routines in ASM will make your game significantly faster.
Look at DIABLO tunign last year, look at NEOGEO, look at QUAKE.
As soon a good coder starts hand ASM tuning - games often get 2 times faster then the C code was before.

If you think you will never be a good coder then no need to learn ASM. But if you want to become a good coder than mastering ASM is important.



posts 83page  1 2 3 4 5