English Amiga Board


Go Back   English Amiga Board > Main > Amiga scene

 
 
Thread Tools
Old 05 May 2022, 17:20   #121
Daytona675x
Registered User
 
Daytona675x's Avatar
 
Join Date: Apr 2021
Location: Germany
Posts: 97
Smile

Did lots of "boring stuff" like menu enhancements and actual soccer logic the last couple of weekends. Here's a peek at the fully functional tournament editor. Similarities to SWOS are in the nature of things Will do a new progress video asap.
Attached Thumbnails
Click image for larger version

Name:	CupEditor.png
Views:	218
Size:	40.2 KB
ID:	75506  
Daytona675x is offline  
Old 05 May 2022, 20:34   #122
nikosidis
Registered User
 
Join Date: Jan 2020
Location: oslo/norway
Posts: 1,607
Nice to see you are still working on this!

Looking forward to new video
nikosidis is offline  
Old 26 June 2022, 22:20   #123
Daytona675x
Registered User
 
Daytona675x's Avatar
 
Join Date: Apr 2021
Location: Germany
Posts: 97
Cool

@nikosidis
Sure thing

@all
New wip video #27 (tournament logic and screens, many details)

[ Show youtube player ]

This time I concentrated not so much on the ingame playfield engine but more on all that other necessary stuff, mostly the menus and tournament logic. Therefore the new video is maybe a bit boring to watch Nevertheless it's a very huge step forward because from now on "only" the actual match gameplay is missing, everything else is in place (well, apart from bug fixes and polishing and some music and more sfx, of course).

- Several general menu-system enhancements. Added text-input fields. Optional support for two simultan input cursors so that two players can navigate certain menus simultanously, e.g. inside team selection. Each menu-screen can have its own palette of 16 ARGB colors now. Etc.

- Save-game-manager-screens. There are 5 slots for each tournament type (cup and league). You can name and start a new game and load or delete existing tournament states.

- Team selection screen now fully functional. The exact behaviour depends on the context (friendly match 1p/2p, cup, league).

- Team names editor screen added (cup, leage). After the teams have been chosen you are free to modify their names. Those names are stored inside the respective same-game.

- Match preparation screen added. Here you can either select one of two predefined shirt-colors per team or manually edit the RGB values. You may also select the teams' formations. The game's duration in minutes can modified too, as well as the adboard's text, so if playing a tournament on some event the current players can put some greetings there Depending on context there are more options available, e.g. if you're playing a friendly match you can also select extra time and penalties (for cup and league those settings are defined by the tournament's rule set). Formation and team-color settings are persistent and will be available for the team's upcoming matches in that cup / league.

- Tournament editor added. Much like SWOS' DIY tournament. You can define up to 6 tournament rounds, each round either as a group- or a knockout-phase. You're pretty free regarding the number of teams which should qualify for each upcoming stage. Of course the editor takes care that you don't enter invalid rulesets. The tournament's name can be edited; it's shown on e.g. the trophy's plaque. Also, the number of actual games to be played during the tournament is being displayed. When creating a competition for an event like e.g. Amiga37 I found this info to be rather vital as you can easily underestimate the impact a rule change like "4 groups of 4 teams" vs. "2 groups of 8 teams" may have on the tournament's duration...

- Tournament round info screen. If it's a group-based round you'll see the different groups with the respective teams and all those stats like number of matchs played, wins, draws, losses, goals scored, goals taken and points scored. If it's a knockout-round you'll see a list of the matchs with its respective winners / losers marked accordingly.

- Tournament matches info screen. Here all matches of the current round are shown. For past matches the result is shown, upcoming matches are marked red and the very next match is marked green. You can toggle between this and the round info screen at any time.

- Important feature if playing a World Cup on an event like e.g. the upcoming "Amiga 37" : if possible you can postpone the next match if your opponent is currently at the toilet or the bar Alternatively you may also enforce a draw (if no knockout round) or a win of team A or team B.

- Tournaments either auto-save themselfs after every match (default behaviour, there's an on/off toggle in the options menu) or, if auto-save is disabled, a simple save-button is being displayed in the tournament info screens. This is why the save-game-manager shows first before you start a tournament - because that way you are forced to reserve a save-game-slot from the very beginning.

- Trophy screen added. Nothing too fancy, nice HAM8 trophy with ball (sourced from free stock photography) with simple golden-glowing dynamic winner info on the plaque.

- Implemented all the necessary soccer rules logic. Be it tournament ruleset validation, fair match distribution, game statistics processing, winner determination (depending on points, goal-difference, etc., down to how many red/yellow cards received), table sorting, you name it.

- Reworked the little player lemmings a bit: no black outline anymore, added trousers and eyes. Still needs some more love.

- There were countless details to take care of, e.g. the 3-characters short team IDs aren't just composed out of the first 3 characters of the team name but chosen to make sure that they are always distinct for a match (remember: you can edit your team's name, and if there are several "Daniel" around during a cup you don't want to have DAN vs DAN :P ); the shirt-colors are automatically pre-chosen from the std. and alt. colors when entering the prepare-for-match-screen so that they are most distinct while trying to keep the home team's std. color; the team-color-markers during a match are slightly darkened if they are very bright so that the team's short name which is drawn on top remains well readable; etc. etc.

- Lots of internal code cleanup, fixes and many optimizations for stuff that won't be touched anymore. Also, most of the logic / menus have been optimized for size because on a stock Amiga I really don't want the code to unnecessarily eat up too much precious Chip RAM.

Cheers,
Daytona675x
Daytona675x is offline  
Old 27 June 2022, 08:40   #124
vulture
Registered User
 
Join Date: Oct 2007
Location: Athens , Greece
Posts: 1,840
great progress!
vulture is offline  
Old 27 June 2022, 10:14   #125
DDNI
Targ Explorer
 
DDNI's Avatar
 
Join Date: Mar 2006
Location: Northern Ireland
Posts: 5,431
Send a message via ICQ to DDNI Send a message via MSN to DDNI
Looking polished! You mentioned Amiga37, have you set that as a goal date for a playable version?
DDNI is offline  
Old 27 June 2022, 11:12   #126
Daytona675x
Registered User
 
Daytona675x's Avatar
 
Join Date: Apr 2021
Location: Germany
Posts: 97
@vulture
@DDNI
Thanks, guys

@DDNI
Yes, the plan is to have a little tournament at the Amiga37 event.

The minimum todo-list for this plan to succeed is to add a decent CPU player (so that all your team players move in an intelligent fashion, this is already half-through), good joystick controls and handling of special situations like throw-in, corner-kick etc.
Daytona675x is offline  
Old 27 June 2022, 12:02   #127
utri007
mä vaan
 
Join Date: Nov 2001
Location: Finland
Posts: 1,653
Quote:
Originally Posted by Daytona675x View Post
@vulture
@DDNI
Thanks, guys

@DDNI
Yes, the plan is to have a little tournament at the Amiga37 event.

The minimum todo-list for this plan to succeed is to add a decent CPU player (so that all your team players move in an intelligent fashion, this is already half-through), good joystick controls and handling of special situations like throw-in, corner-kick etc.
I tried to look donate button from http://www.cherry-darling.net/ but couldn't found?

Next icehockey game?
utri007 is offline  
Old 27 June 2022, 13:32   #128
Daytona675x
Registered User
 
Daytona675x's Avatar
 
Join Date: Apr 2021
Location: Germany
Posts: 97
@utri007
Thanks for trying, but the Cherry-Darling project was terminated back in 2015, IIRC. Somehow the site survived but is not maintained since then.
"Next icehockey game?" LOL, let's finish this one here first
Daytona675x is offline  
Old 27 June 2022, 17:53   #129
Paulthetall
Registered User
 
Join Date: Jun 2019
Location: netherlands
Posts: 96
Is starting to really look very well
Great job!
Paulthetall is offline  
Old 27 June 2022, 18:31   #130
nikosidis
Registered User
 
Join Date: Jan 2020
Location: oslo/norway
Posts: 1,607
Nice update
Looking forward to gameplay and beta-testing
nikosidis is offline  
Old 22 July 2022, 14:32   #131
Daytona675x
Registered User
 
Daytona675x's Avatar
 
Join Date: Apr 2021
Location: Germany
Posts: 97
Cool

@Paulthetall
@nikosidis
Thanks

@nikosidis
Soon...

@all
Upcoming video teaser:
Coding standard situation handling CPU player does a decent job already, btw.
Attached Thumbnails
Click image for larger version

Name:	Zwischenablagebild (3).png
Views:	167
Size:	51.0 KB
ID:	76067  
Daytona675x is offline  
Old 22 July 2022, 14:51   #132
DDNI
Targ Explorer
 
DDNI's Avatar
 
Join Date: Mar 2006
Location: Northern Ireland
Posts: 5,431
Send a message via ICQ to DDNI Send a message via MSN to DDNI
Dan, have you considered selling space on the advertising boards to some of our real Amiga stores and Mags?
DDNI is offline  
Old 23 July 2022, 17:31   #133
Daytona675x
Registered User
 
Daytona675x's Avatar
 
Join Date: Apr 2021
Location: Germany
Posts: 97
@DDNI
I considered it but then I dismissed that idea, for several reasons:

- at least for now it's limited to a single line of plain text or an equivalently sized 2 color graphic, so most likely not too interesting to any company anyway.
- I made the adboard's text editable, so there's not much to sell here anymore
- and I prefer not having any companies being involved here.

It's just for fun, to make that otherwise unused / more or less unusable area a bit more vivid at a comparably low resource pricetag.
Daytona675x is offline  
Old 23 July 2022, 22:28   #134
DDNI
Targ Explorer
 
DDNI's Avatar
 
Join Date: Mar 2006
Location: Northern Ireland
Posts: 5,431
Send a message via ICQ to DDNI Send a message via MSN to DDNI
Quote:
Originally Posted by Daytona675x View Post
@DDNI
I considered it but then I dismissed that idea, for several reasons:

- at least for now it's limited to a single line of plain text or an equivalently sized 2 color graphic, so most likely not too interesting to any company anyway.
- I made the adboard's text editable, so there's not much to sell here anymore
- and I prefer not having any companies being involved here.

It's just for fun, to make that otherwise unused / more or less unusable area a bit more vivid at a comparably low resource pricetag.

I hear you! Just put shout outs to your favourite Amigans
DDNI is offline  
Old 14 August 2022, 18:29   #135
Daytona675x
Registered User
 
Daytona675x's Avatar
 
Join Date: Apr 2021
Location: Germany
Posts: 97
wip video #28, getting close...

[ Show youtube player ]

Too lazy to write technical details today, just enjoy

Now it's time to get serious: we got an almost decent CPU player! This and many many missing pieces of the actual gameplay have been added. Also, there were some improvements to the playfield engine once more.

In this video you see CPU vs CPU gameplay. Note that I added some heavy "random fuzz", e.g. shot becoming stronger / higher than desired, otherwise the AI would almost never create a corner or throw-in situation by itself and the video would be quite boring...

The following has been implemented:

- the depth calculations are more accurate now (2 bits of extra precision). This most of all results in smoother zooming of all the white field markers which also has the additional positive side-effect that the overall performance increases because you simply have to modify less of those from one frame to the next.

- Fix: with some optimizations I made long ago I broke the far half-circle drawing: if you were close the far goal then that half-circle would not be drawn correctly. No idea when I made that bug, must be there since months - and I never saw it happen (even though it always does). That's definitely a good example of routine-blindness :P

- about 10k less RAM used by the circle-drawing tables without any quality / performance penalty.

- about 40k less RAM used by the playfield-copperlists by having less distance-color-shades for all those crowd-layers. There's no visible quality reduction. The spared RAM is better used for things for which it MAKES a visible difference, e.g. for adding more crowd / adboard zoom steps.

- vertical camera movement's delay a tiny bit higher.

- some optimizations in the playfield-white-markers code. One table gone, cheaper bitfield instead. And one less A-register used in the grass-copper-adjuster.

- AI: low-level functionality to command a player to move from its current location to some arbitrary position on the field. The player then runs to that position much like a human player would, by approaching the destination with a sequence of alternating diagonal and straight runs. The actual movement takes minimal CPU time per frame.

- AI: function to command all players to go to their initial formation-based positions. This one is used before a kick-off is initiated.

- AI: function to command all players of a team to move x meters away from the ball. This one is important for special situations like kick-off or corner-kick etc. to make sure that the opponent leaves enough space for the ball-owning team.

- AI: function to command the one or two nearest field players to move close to the ball. This one is also used for special situations like kick-off etc.

- AI / controls: functionality to find the "best" team player into the rough direction in which the ball-owner is currently facing. That's the player which is used to pass the ball to, if commanded to do so. Which one is "best" is determined by an internal score. Right now this is just the closest one, later that score will be computed so that the one with the best tactical position gets selected.

- AI decision making: when in ball possession the AI tries to approach the opponent's goal and to get into a decent goal-shot position. If such a good position is reached (distance okay, angle okay) it will make a goal shot.

- AI decision making: the AI uses the nearest player to the ball to attack if not in ball possession.

- AI: function to command all players to leave the playfield. This is used when the match ends or for half-time.

- AI: more or less the same thing, just the other way around: all players enter the playfield and walk to their kick-off positions.

- when passing the ball the game computes a fitting kick-acceleration depending on the target's distance / position. Will get some more love, but quite good for a first try.

- when running with the ball the player's velocity is somewhat reduced.

- added a marker for the pass-to-candidate player. For that one the respective team's current-player-marker sprite is being reused. If the two markers happen to end up being on colliding display rows, then the pass-to-marker is moved accordingly, of course.

- added some missing details, e.g. whistle if there's a goal, subtle fan-sound pitch change depending on ball position, the in-game messages like "KICK OFF" or whatever are now localized, player-markers are hidden in situations where no control is possible (e.g. after goal), etc.

- And yes, even though the game is being designed for 50 fps on stock A1200 / CD32 machines, I didn't forget that most Amiga fans have some sort of accelerator in place: if FastRAM is detected, then the crowd's and the adboard's zooming is even smoother

- different adboard-color depending on the respective team's color.

- half-time handling implemented. Game timer stops, the players leave the playfield and curtain closes, sides switch, curtain opens while players re-enter the playfield, game continues with a kick-off of the other team.

- new options menu items: stop or limit time for standard-situations (default 10 Sec.), if the time limit exceeds the ball is kicked / thrown automatically; switch sides on kick-off (default off, ignored for 2p serial); half-time on/off (default on).

- included ptplayer for music playback. Many thanks to Frank Wille for making this and for providing it for free. There's no music yet though, that's being worked on But everything is set up and technically working.

- added credits / greetings scroller to the title screen.

- Fix: there was a bug with the marker-sprites if the pass-to marker belonged to an entity that was outside the bottom view area. In such a case the entities' y-display-coordinate is 0 which confused the marker-sprite DMA chaining.

- ball animation now reflects direction and velocity.

- Corner-kick handling added. Here you can manually adjust some sort of kick-curvature. It was heavily inspired by Goal! which IMHO offers the most interesting solution here. All that code has been designed to be also used for free-kick situations later. The curve is calculated using the real ball physics, so it's as accurate as possible. Unfortunately drawing the curve wasn't straight forward: drawing everything as BOBs is only possible if the curve doesn't reach a certain height because the respective target bitmap is just not there above the adboard... So if one or more curve-dot has to be drawn at such a location those have to be drawn as sprites. Luckily the nature of the curve makes sure that those dots most often don't vertically overlap at such critical heights, so I can get away with DMAing sprite 0 which is otherwise used for the ball (which is definitely not flying at that time...) and sprite 1 which is also used for the corner stick (which is always below those dots). That vertical overlap is of course also the reason why I cannot ALWAYS use a sprites for the line - if it's e.g. straight horizontal, well, then practically all dots overlap. There are still rare situations where one or two dots will vanish, but for now I'll live with that.

- Once I had the corner-kick-handling in place I trashed the former simple throw-in solution I already had in place and used the curvature-thingy for that too. With a little tweak, like in Goal!, to allow throwing the ball to the ground.

- another option: demo-mode on/off (default off). If this is on then the game will enter a demo-cycle if there's no user input for 30 seconds. This means that it will show title, main-menu and in-game (CPU vs CPU) for about 20 seconds each in a loop until there's user input again. I added this for events like the upcoming Amiga37.

- In general the AI has been designed for optimal / minimal performance overhead per frame. The only thing which is done in every frame for every entity is updating its position using a stepping which has been calculated some frame before. The tactical decision where to move (and how to get there) is only done once for each entity every ~ 0.5 seconds right now, with the exception of the ball-owner (if it's a CPU player) and the players closest to the ball; in a nutshell the players try to approach the ball if not in ball posession, while those farer away are limited by their formation positions which are also moved depending on the ball position. The calculation of AI internals like the before-mentioned passing-score etc. are also spread across over multiple frames. That way we're at 50 frames per second now as before on a stock A1200

All in all and just as predicted, the AI is actually the easiest part to code here. While it probably requires a bit more tweaking to be a real challenging opponent, it's already quite good for a human vs human match where it has to make sure that your team members behave adequately by moving according to the team's formation, targetting the ball, moving to decent passing positions etc.

This is what I needed to be able to run a human vs human tournament at the Amiga 37

Next thing to do:
a little more AI tweaking, adding remaining standards (e.g. goal kick) and most of all:
real joystick controls

Cheers,
Daytona675x

Last edited by Daytona675x; 15 August 2022 at 09:44. Reason: Added technical info
Daytona675x is offline  
Old 14 August 2022, 21:24   #136
DisasterIncarna
Registered User
 
DisasterIncarna's Avatar
 
Join Date: Oct 2021
Location: England
Posts: 1,172
still like those updates, looks really good.
DisasterIncarna is offline  
Old 15 August 2022, 17:52   #137
vulture
Registered User
 
Join Date: Oct 2007
Location: Athens , Greece
Posts: 1,840
wow, such a long list of additions/improvements!
vulture is offline  
Old 15 August 2022, 20:15   #138
nikosidis
Registered User
 
Join Date: Jan 2020
Location: oslo/norway
Posts: 1,607
This is way impressive! Will the player names be shown on top of the screen when they have the ball?
It would be cool if possible to edit player names and save. Also change skin color.
nikosidis is offline  
Old 15 August 2022, 21:48   #139
Hedeon
Semi-Retired
 
Join Date: Mar 2012
Location: Leiden / The Netherlands
Posts: 1,994
At some of the goals, the keeper was nowhere to be seen.

I am not seeing it in the list above, so just mentioning it :-)

Great job!
Hedeon is offline  
Old 16 August 2022, 12:28   #140
Daytona675x
Registered User
 
Daytona675x's Avatar
 
Join Date: Apr 2021
Location: Germany
Posts: 97
@DisasterIncarna
@vulture
@nikosidis
@Hedeon

Thanks guys

@nikosidis
For the initial release (or Souverän Soccer 1 ) there won't be player names or different skin or hair colors. The reasons are as well technical as private design decisions. On a stock A1200 I currently don't have enough resources left to handle those extra colors. Also, personally I'm more the arcade game type of guy. As such I always skip such adjustments in other games, I just wanna kick and not customize the look of a few objects Same goes for player names or so.
So for this release I drew the line here. It's just the teams and the general formation and the players only differ by their team's shirt color, of course.

@Hedeon
Eagle eye Yes, the keeper logic is totally missing yet. While the keeper usually stays at his goal because he's excluded from the std. behaviours, it is still possible for him to leave if he gets the ball, because then he can decide to run - and if he loses the ball then he will possibly stay where he is, which is far away from the goal... Well, it's wip.

@all
[ Show youtube player ]
Btw., the game has sound of course, I just forgot to plug the audio jack into the framegrabber and didn't notice because I had the stereo turned off

Last edited by Daytona675x; 16 August 2022 at 12:48.
Daytona675x 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
[WIP] Creeping Me Out! Mixel project.Amiga Game Factory 348 05 October 2023 09:21
WIP: Stormlord Ultron project.Sprites 5 25 January 2016 20:13
M.O.V.I.E. Spriteset - WIP invent project.Sprites 2 11 July 2014 04:58
PC WORLD calls sensible soccer the best soccer games of all times! pbareges Retrogaming General Discussion 11 28 June 2010 09:25
WIP-titles Tim Janssen Nostalgia & memories 11 15 January 2002 03:07

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 06:56.

Top

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.
Page generated in 0.10394 seconds with 14 queries