English Amiga Board


Go Back   English Amiga Board > Main > Amiga scene

 
 
Thread Tools
Old 11 September 2021, 18:54   #1
chadderack
Registered User

chadderack's Avatar
 
Join Date: Jul 2021
Location: Sandy, UT
Age: 52
Posts: 229
High Level considerations when starting a...

This is typical of the way I think. Maybe it's also how you think when starting a game/demo/project

I have to understand a high-level view of what needs done; from there, parts can be subdivided down over and over (in a hierarchy) until you essentially get down to the bare metal.

For example... if starting a new game port (like the Black Tiger => Amiga port we are about to start)... I like to understand all of the higher level things that must be done in order to finish.

The following is an incomplete list for the BT project
(I've probably missed something very important here)
Code:
*****************************************************************************************
* GAME ASPECTS TO CONVERT:                                                              *
*****************************************************************************************

MAPS
  TILES
  LOCATIONS
  
INPUT

PLAYER
  SPRITE
    FRAMES
  STATS/VARS
  
PLAYER WEAPON
  SPRITE
    FRAMES

ENEMIES
  SPRITE
    FRAMES
	  CALLBACK DECISIONS (AI)
  STATS/VARS

OBJECTS (NON-ENEMY)
  SPRITE
    FRAMES
	  CALLBACK DECISIONS (AI)
  STATS/VARS

SCORES
  LOCATIONS
  
TEXT
  GLYPHS
  LOCATIONS
  STRINGS
  
SOUNDS

DEMO PLAY
Of course, each of those sections should be broken down (per project) to the point where you can begin work.

And then there's the fly-by-the-seat-of-your-pants method where you just dive in and hope for the best. I've done both. By far, it seems like I get further with the first method.

While watching the last ASMSKOOL demo video by Photon, I thought there's probably a high-level list of things to make sure are done when creating a game on the Amiga.

Guess I'll need to compile a list of such things; but Photon himself (IIRC) created kind of a starter project for the Amiga I can look at to discover this stuff.

I guess what I'm after is a terse list of the highest points to remember when starting an Amiga game/demo/project. (If it doesn't exist, maybe I'll create it )

What are your thoughts?
chadderack is offline  
Old 11 September 2021, 19:22   #2
deimos
Registered User

 
Join Date: Jul 2018
Location: Switzerland
Posts: 658
My thoughts:

Top down planning like this is fine if you can quantify everything, but you can't, otherwise software development would be done in factories.

Is there anything in the project that you've never done before? Or even better, something that no one else has done before? You can't plan that entirely upfront - you need to explore. This is different from the seat of your pants method, it's still planned, but the exact route is initially unknown. This is not a problem, software is science, not engineering. No amount of preparation will guarantee a result if you've not left your basecamp.
deimos is offline  
Old 11 September 2021, 19:38   #3
chadderack
Registered User

chadderack's Avatar
 
Join Date: Jul 2021
Location: Sandy, UT
Age: 52
Posts: 229
Quote:
Originally Posted by deimos View Post
My thoughts:

Top down planning like this is fine if you can quantify everything, but you can't, otherwise software development would be done in factories.

Is there anything in the project that you've never done before? Or even better, something that no one else has done before? You can't plan that entirely upfront - you need to explore. This is different from the seat of your pants method, it's still planned, but the exact route is initially unknown. This is not a problem, software is science, not engineering. No amount of preparation will guarantee a result if you've not left your basecamp.
Yeah, it's a chicken and egg problem every time isn't it? It's probably why Agile was invented.

I think getting moving is very important; but setting up a few signposts for yourself is a good way to make sure things aren't forgotten.
chadderack is offline  
Old 11 September 2021, 20:25   #4
chadderack
Registered User

chadderack's Avatar
 
Join Date: Jul 2021
Location: Sandy, UT
Age: 52
Posts: 229
The difference here is that when porting something, we already have a spec of sorts--the game that is being ported. So, in a sense, there is a finite list of things to do.

When reversing the source, the biggest job seems to be making sure that everything (that we want in our ported version) in the source is discovered.

For instance, with Black Tiger, we have to make sure we have remembered all of the hidden prizes that you find in the walls.

We don't have to worry about simultaneous play, or creating a Player 3 or 4 for instance, because Black Tiger has no simultaneous play and it's only 1 or 2 players.

...

When coding games/demos/projects on the Amiga, I'm certain there are things that are common to most games/demos/projects. The method for loading and running the executable from floppy, for instance.

These are the kinds of things I'm after. Yes, there will be things to discover... and the process of writing software is a process of REwriting software (refactoring).

I just want to make sure that (when starting the project) enough of a roadmap is in place that nothing is forgotten and that any time I might waste on some trivial piece isn't actually part of some known domain that others have already done and perfected (with source code available for download!)

Writing games is indeed an art and not an exact science.
chadderack is offline  
Old 11 September 2021, 20:37   #5
deimos
Registered User

 
Join Date: Jul 2018
Location: Switzerland
Posts: 658
Quote:
Originally Posted by chadderack View Post
Writing games is indeed an art and not an exact science.
I’d missed the part where that said you were recreating an existing game.

Good luck to you, but why not something new?
deimos is offline  
Old 11 September 2021, 21:07   #6
chadderack
Registered User

chadderack's Avatar
 
Join Date: Jul 2021
Location: Sandy, UT
Age: 52
Posts: 229
Quote:
Originally Posted by deimos View Post
I’d missed the part where that said you were recreating an existing game.

Good luck to you, but why not something new?
New games are great, but have little support outside of the group of people making them--especially initially. Black Tiger was a great game; it should have had a great Amiga port, but US Gold really didn't do a great port. On top of that, porting a great game is a great way to really hone your skills... focusing on getting things to a spec instead of shooting in the dark with a so/so game idea.

At any rate, let me illustrate the types of things I'm looking for in this particular port. Specs for both player and one of the enemies:

Code:
----------
  PLAYER  
----------
  SPRITE
    STANDING
      WITH ARMOR
        (FRAMES)
      WITHOUT ARMOR/POISONED
        (FRAMES)
    WALKING
      WITH ARMOR
        (FRAMES)
      WITHOUT ARMOR/POISONED
        (FRAMES)
    CROUCHING
      WITH ARMOR
        (FRAMES)
      WITHOUT ARMOR/POISONED
        (FRAMES)
    JUMPING
      WITH ARMOR
        (FRAMES)
      WITHOUT ARMOR/POISONED
        (FRAMES)
    FALLING
      WITH ARMOR
        (FRAMES)
      WITHOUT ARMOR/POISONED
        (FRAMES)
    FIGHTING
      WITH ARMOR
        (FRAMES)
      WITHOUT ARMOR/POISONED
        (FRAMES)
    CROUCHING AND FIGHTING
      WITH ARMOR
        (FRAMES)
      WITHOUT ARMOR/POISONED
        (FRAMES)
    JUMPING AND FIGHTING
      WITH ARMOR
        (FRAMES)
      WITHOUT ARMOR/POISONED
        (FRAMES)
    CLIMBING
      WITH ARMOR
        (FRAMES)
      WITHOUT ARMOR/POISONED
        (FRAMES)
    CLIMBING AND FIGHTING
      WITH ARMOR
        (FRAMES)
      WITHOUT ARMOR/POISONED
        (FRAMES)
    DYING
      WITH ARMOR
        (FRAMES)
      WITHOUT ARMOR/POISONED
        (FRAMES)
  STATS/VARS
    LIVES REMAINING
    X/Y MAP POSITION
    ARMOR INDEX
    WEAPON INDEX
    FLAG: POISONED
    FLAG: CLIMBING
    FLAG: LOSE DIRECTION
    FLAG: WEAPON ACTIVE
Code:
  ORANGE_SKELETON_0x1
    SPRITE
      FRAMES
	    CALLBACK DECISIONS (AI)
    STATS/VARS
	  HEALTH POINTS
	  VITALITY BARS
	  ENTITY CLASS
	  POINTER: NEXT ANIMATION FRAME
	  ANIMATION DURATION (CURRENT FRAME)
	  OFFSET: PLAYER SCORE FOR DEFEATING
	  FLAG: HAS WEAPON
	  FLAG: CAN ATTACK
	  FLAG: SCROLLING UPDATES ENEMY's X/Y
	  FLAG: IS BOSS
	  FLAG: FACING L/R
As you can see, there's plenty of room to forget things. There are more aspects to both the player and the enemy I described above. It would seem there needs to be a Game Bible of sorts to make sure every aspect is done.

I'm not the MOST organized guy ever; in fact, I'm usually quite messy. But I really like saving time even more than I like being messy

In a sense, jumping in with both feet and then backtracking to discover all of the things you missed might be a great way to move forward--but you may also waste an inordinate amount of time that could have been saved.
chadderack is offline  
 


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools

Similar Threads
Thread Thread Starter Forum Replies Last Post
Amiga library in high-level language TCH Coders. System 25 11 August 2021 01:35
High-level steps for dragging an image between 2 windows? Warty Coders. C/C++ 2 12 March 2021 19:43
Is there a high level copperlist decoder program? kamelito Coders. Asm / Hardware 10 02 January 2018 22:56
Pal and ntsc considerations jimmy2x2x Coders. General 3 03 December 2014 11:10
High-level Apps for SysSpeed tygre request.Apps 8 01 February 2013 06:11

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +2. The time now is 15:36.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2021, vBulletin Solutions Inc.
Page generated in 0.11119 seconds with 13 queries