05 May 2022, 17:20 | #121 |
Registered User
Join Date: Apr 2021
Location: Germany
Posts: 97
|
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.
|
05 May 2022, 20:34 | #122 |
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 |
26 June 2022, 22:20 | #123 |
Registered User
Join Date: Apr 2021
Location: Germany
Posts: 97
|
@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 |
27 June 2022, 08:40 | #124 |
Registered User
Join Date: Oct 2007
Location: Athens , Greece
Posts: 1,840
|
great progress!
|
27 June 2022, 10:14 | #125 |
Targ Explorer
|
Looking polished! You mentioned Amiga37, have you set that as a goal date for a playable version?
|
27 June 2022, 11:12 | #126 |
Registered User
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. |
27 June 2022, 12:02 | #127 | |
mä vaan
Join Date: Nov 2001
Location: Finland
Posts: 1,653
|
Quote:
Next icehockey game? |
|
27 June 2022, 13:32 | #128 |
Registered User
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 |
27 June 2022, 17:53 | #129 |
Registered User
Join Date: Jun 2019
Location: netherlands
Posts: 96
|
Is starting to really look very well
Great job! |
27 June 2022, 18:31 | #130 |
Registered User
Join Date: Jan 2020
Location: oslo/norway
Posts: 1,607
|
Nice update
Looking forward to gameplay and beta-testing |
22 July 2022, 14:32 | #131 |
Registered User
Join Date: Apr 2021
Location: Germany
Posts: 97
|
@Paulthetall
@nikosidis Thanks @nikosidis Soon... @all Upcoming video teaser: Coding standard situation handling CPU player does a decent job already, btw. |
22 July 2022, 14:51 | #132 |
Targ Explorer
|
Dan, have you considered selling space on the advertising boards to some of our real Amiga stores and Mags?
|
23 July 2022, 17:31 | #133 |
Registered User
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. |
23 July 2022, 22:28 | #134 | |
Targ Explorer
|
Quote:
I hear you! Just put shout outs to your favourite Amigans |
|
14 August 2022, 18:29 | #135 |
Registered User
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 |
14 August 2022, 21:24 | #136 |
Registered User
Join Date: Oct 2021
Location: England
Posts: 1,172
|
still like those updates, looks really good.
|
15 August 2022, 17:52 | #137 |
Registered User
Join Date: Oct 2007
Location: Athens , Greece
Posts: 1,840
|
wow, such a long list of additions/improvements!
|
15 August 2022, 20:15 | #138 |
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. |
15 August 2022, 21:48 | #139 |
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! |
16 August 2022, 12:28 | #140 |
Registered User
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. |
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 |
|
|