fallahn / crogine

SDL2 Based Game Framework
82 stars 12 forks source link

Golf: thoughts #70

Open gingerbeardman opened 1 year ago

gingerbeardman commented 1 year ago

thoughts... in order of seriousness

  1. make sure golf ball, shadow, flag/pole-shadow are always big enough to be visible
    • these can disappear or flash on/off depending on resolution you're running at, making it difficult to follow the action, watch the ball and shadow in this clip https://imgur.com/a/SapDWZs
  2. hook & slice seem to be the opposite of what I expect?
    • i'd expect hitting right of the centre marker to curve the ball left, and vice versa
  3. contrast of power meter on shadow when over bunker is low
    • certain points on the green/yellow/orange/red of the power meter are very close to the yellow of the sand with the shadow of the ui on it, which means the power meter disappears at times during the most important time when you are trying to set power
  4. speed up or switch off animations
    • speeding up the ball flight animation would be useful so i don't have to wait for ball to come to rest, I picked up this habit from Links 2004 and it was even possible as far back as New 3D Golf Simulation on MegaDrive ~1993
    • turning off or speeding up the morphing animations would also be good. the first time they are cool, the more i see them the more i want to skip them
    • there are pauses where nothing is happening on screen yet i am not in control, and have to wait for some other animation to happen
    • there's more time spent watching or responding to the ui than there is playing golf shots
  5. turn off stroke notification
    • again so there is less delay between shots, might make sense only in single player?
  6. option to turn off gimme
    • or let me see how close my approach was before calling it
fallahn commented 1 year ago

Feedback is always welcome! Although I admit I need to centralise the community a little more 😅 Currently the two main places for feedback are the comments section on the itch.io page or the Steam Community pages.

I'll make sure to note these points to see what I can do - I've actually had someone say they instinctively hammer the button to try skipping the transition and end up accidentally taking a bad shot 🙄

There's something odd about the ball/flag size, however, on closer inspection I've noticed it on my mac too... there's something called glPointSize and glLineWidth which are used to increase the ball/shadow/flag at a distance but the mac version appears to ignore it :/ Apple are notorious for trying to deprecate OpenGL so I'm worried it might be a driver issue (I have an Intel HD4000 GPU).

The gimme is actually off by default, it's under 'Rules' in the lobby. 'Under the Leather' takes a gimme at about 30cm and 'Under the Putter' extends it to ~1m. Not sure what's going on there

Hook and slice have been fixed in the latest update (out this week) 😁

gingerbeardman commented 1 year ago

Sweet! Looking forward to the update.

The only issue that affects play in any serious way is the ball/shadow/flag disappearing or flashing as the scene animates.

(have re-ordered the list above)

gingerbeardman commented 1 year ago

Here's some footage of my favourite golf game series (watch a minute or two at 2x speed, perhaps): https://www.youtube.com/watch?v=CRFmdbaHVAo

gingerbeardman commented 1 year ago
fallahn commented 1 year ago

Modding is highly encouraged! 😁 There's a mod_kit dir with all the resource files and asset descriptions in the repo. I started to document it a bit on the repo wiki too, although it's a bit out of date.

Oh, and I added fast-forwarding shots to the upcoming version today ;) Fast-forwarding transitions is proving to be non-trivial however...

gingerbeardman commented 1 year ago

WOOP

I don't mind the course transitions, they're fun.

The bits that bother me are the UI: panels that stretch in, you have to wait, sometimes interact, then watch them stretch out.

I noticed in the assets there's a bunch of billiard game assets and a video like the intro to star wars?

fallahn commented 1 year ago

Oh I see. You ought to be able to skip any of the notifications by hitting whichever key you've bound to action (default space bar) or the button on the controller. I suppose showing the player name doesn't make so much sense each turn if there's only one player though 😄

There's a clubhouse (not entirely complete - work on it is tentatively planned for 1.13) which you can unlock once you get a certain achievement (I forget which, it tells you when you try to select it from the 19th hole). It has billiards games, and a currently non-functioning arcade machine. You can find the arcade game here though.

gingerbeardman commented 1 year ago

All very cool!

To help with being able to see things at all times I've activated both ball trail (would prefer a line rather than sparkles) and anti-aliasing. Not ideal by any means, but it has helped keep things visible for me (I play on a non-retina external display if that's of any interest).

One more question: am I correct in thinking that hook/slice has not been swapped for putting? that still seems opposite to expectation for me.

And how do I edit the palette?

fallahn commented 1 year ago

Hm, I'd have though not being on a retina display would help - scaling has been a been a bit of a pain. Still not really sure why you have the visibility problem however, the glPointSize and glLineSize parameters are automatically scaled up with the resolution - although as I previously mentioned it doesn't work on my mac mini, which is a driver issue and there's nothing I can do to fix it. Have you tried it with pixel scaling in the options disabled?

Hook/slice now actually adds side spin, which was missing before. So the ball still travels initially in the same direction as before but the spin causes it to curve back around. Putting doesn't impart sidespin (I couldn't find any references to people adding spin with a putter, but I'm happy to be corrected) so it still travels off left or right as it did before.

Editing the palette is more or less complicated depending on what you're trying to edit 😉 Sky colours are quite easy - in the skyboxes directory you can open the sbf file in a text editor and change the sky_top and sky_bottom values. These are RGB values, although normalised (0.0 - 1.0) not 0-255. They'll also automatically tint the clouds.

Trees can be edited similarly - open any of the tst files in the treesets folder and edit the colour in the same way. If you want to get really technical, on the main menu open the console and use the command tree_ed to launch the dev tools. They didn't actually work on the mac build last time I tried though, so you're on your own with that ;)

The course colours are stored in the textures in the images directory named light_sand.png fairway_dark.png and so on. They should be fairly obvious in an image browser. Opening them in photoshop or whatever and doing an HSL shift on them is probably the easiest route - that way you can apply the same shift to all the textures, as well as all the UI images in order to maintain a consistent palette (if that's what you prefer. Or just go nuts, it's up to you 😁).

gingerbeardman commented 1 year ago

Hmm, I'm not sure about the hook and slice. Check this image for the path the ball should take: https://golfbit.com/slice-vs-hook

If there's a dog leg going to the left, what would be the correct way to approach? Change point of impact to the right? Add some hook/draw? Both? I'm just having trouble understanding where the ball will go, it's a little different than the many other golf games I've played.

I just noticed button z (6; 7th button) on my Mega Drive USB controller brings up a debug power bar which allows you to do perfect max power.

Will take a look at modding.

Pixel doubling did help, I'll leave it on for now.

Just finished 18 holes - it crashed after the trophy screen - but it was much fun!

crash log text golf-2023-03-14-223230.ips.zip

fallahn commented 1 year ago

🤔 That was the curve I was aiming for. For example if the accuracy bar is to the left if the cente, it'll hit the ball left initially, but also on the left causing spin which curves it to the right. This is also what happens if you set the spin manually to the left or right, then hit the ball with the accuracy dead centre. The club you use also affects the sidespin - irons are more prone to it than woods, and wedges have little side spin. Back/top spin is the inverse of that - wedges react most and the driver the least. Maybe experimenting with it a bit on the driving range will help 😀

Is the power bar on the bottom right of the screen? If so that's the 'swingput' - with the button held you can use the thumbstick to draw back then swing at the ball. You can also do it with the mouse by holding the right mouse button (so not a mac mouse I guess 😅) and dragging the mouse back and shoving it forward again.

Thanks for the log - I'll check it out in the morning!

gingerbeardman commented 1 year ago

I'll look at the flight of the ball again. Maybe wind is mucking up my expectation.

Yes, the bottom right bar. With a digital controller, you get the option of zero or max power, so max power shot is doable every time.

You can have right mouse button on mac, I'll try it with that.

gingerbeardman commented 1 year ago

regarding the flow of animations

  1. pan to flag - can i interupt this and go straight to tee?
  2. two flips of minimap - why two flips? can this happen synchronously? can I interupt it and just get it to show final state for next tee?
  3. pan to tee
  4. name/hole banner
  5. minimap rotation - can this happen synchronously? ideally it would be ready at the same time i gain control for the shot
  6. shot

currently the sequence and order of these animations is very noticeable. the goal would be to make all the separate animations feel like one smooth cohesive transition.

course bug roving sands - hole 8, bunker near green - ball bounced on sand like on fairway, voice said in the woods, alert said splash! penalty shot

notes ball takes a lot longer to come to rest on green after approach than i would expect. not sure if this is property of the green slopes or ball physics?

fallahn commented 1 year ago

So the transition thing is a bit of a problem when it comes to speeding it up. It actually works similarly to games like tomb raider or god of war - where you're forced to press a button to make the character squeeze through some sort of narrow passage in the map. What's happening behind the scenes is that there's data being loaded for the next part of the map, which is why the player's view is being obscured, and the process takes a fixed amount of time - to ensure everything is correctly loaded out of sight. I've experimented with having the option to speed up the flyby by holding down a button, but what happens is that the transition completes before the loading does - causing the game to freeze at the end of the transition while the loading catches up. Not only is this incredibly jarring, it still takes the same amount of overall time for the loading to complete 😅 I'm sure it could be improved, however it's a hefty technical rewrite for which I don't have the time to tackle any time soon, and maybe even won't at all given the small gain in relation to the amount of work it would take...

Related to this is the update of the minimap. You'll notice the flip in the minimap happens at more or less the mid-point of the transition. This is because that's the first point at which the next hole model is ready, and the preview of it can be rendered to the minimap. It can't be done any sooner because the model is simply not loaded yet.

Now, the minimap rotation - that I can do something about. What appears to be happening here is that each time any player moves on the course the map rotates whichever the shortest distance is to align the player's view vertically. Now, if there are mostly clockwise (or mostly counter-clockwise) rotations, the overall rotation builds up... eg if it rotates 180 degrees 5 times between turns it's effectively wound up 2.5 rotations. When the hole resets it's told "ok, go back to 0 degrees" at which point it spins ridiculously like someone let go of a clockwork mechanism 😂 This should be quite easy to fix to make sure it never rotates more than 360 when resetting - I'll have it done for the next update (or maybe a small patch).

I'll also patch up the bunker, thanks for pointing it out 😃

Ball physics are tricky. There's a fine line between the ball rolling forever down the slope and it acting like it landed in toffee. There's currently a few second limit on any rolling behaviour to try and mitigate this, which I'll fine tune some more, but I also find it a bit jarring when the ball is rolling then suddenly just stops because of some internal timeout. I'll see how it goes 😉

gingerbeardman commented 1 year ago

Understandable one and all.

I hope you don't mind me spouting all these idea, I'm nit picking really.

It's a great game already, you should be very proud of it.

fallahn commented 1 year ago

I don't mind at all! 😁 The game wouldn't be what it is without the feedback I've had here, and on itch and Steam. In fact I'd probably have become bored and given up on it by now - as it is I'm having great fun developing it 🎆

gingerbeardman commented 1 year ago

So!

Still having fun!

fallahn commented 1 year ago

I actually worked on the power bar visibility this morning - attached is the updated sprite sheet if you'd like to drop it in to your copy and try it out. ui

That's incredibly annoying that it kicks you out just because wifi dropped out (understandable if you were playing online, but totally daft if you're only playing locally). The Steam version seems not to suffer because it uses a different networking library (which is Steam specific) - not sure what I can do about that though 😑 It won't save which hole you were on, true, but any XP you earned should be written to your profile immediately, and therefore not lost.

Glad you're still enjoying it, I'd love to see any modding efforts you make!

gingerbeardman commented 1 year ago

Thanks, I'll try the new UI.

I will eventually mod the palette from MegaDrive game New 3D Golf Simulation: Walaiae no Kiseki ...bluuuuuuuue skiiiiiiiiiiies. Which reminds me, those T&E SOFT games have random rain on some holes on certain courses which gives an overcast palette: so ahead of their time!

Data loss was more that I will have to play most of a round again on my trip through all the holes. No big deal I suppose.

Cheers!

fallahn commented 1 year ago

🤔 I did experiment with rain (and snow) some while back - in fact most of the code is still in there somewhere. I wonder if I could bring it back - but in a more meaningful way that just 'raining' (which is what my experiments more or less amounted to). Things have changed since and I could probably update sky colours dynamically, and even add fog! You've got the neurons firing now...

gingerbeardman commented 1 year ago

I've probably said it before I'd encourage you to play either the USA or Japanese version of Pebble Beach on MegaDrive to see how they did it back in the early 90s. Play using CPU 400% on PicoDrive core in RetroArch.

New power UI is improved, the only thing I noticed is that the black moving cursor is difficult to see when shooting from rough. Might help to produce a swatch of all grass colours in faded and non-faded state and position your UI in various over it to check when designing. Just a suggestion!

fallahn commented 1 year ago

Aha! Yes that's a good idea 😁

gingerbeardman commented 1 year ago

On Terdiman Cliffs:

Crashing:

Queries/wondering:

Modding:

Screen shot 2023-03-19 at 19 16 14

gingerbeardman commented 1 year ago

A different type of crash when my wifi was still up but no data was able to be send/received (mobile hotspot)

fallahn commented 1 year ago

hole 15, the ball was near the hole, very close, and seemed to be spinning horizontally like a spinning top, almost hovering, and then it jumped through time and space into the hole and I got a birdie

Was this a gimme? It'll whip the ball into the hole to get it out of the way of other players if so - does look kinda funky.

I can avoid the crash if i do not resize or move the window! Bizarre.

Windowing is weird on the mac. I can resize the window on mine, even though resizing is explicitly disabled (by resize I mean drag the corner). It also always reports a resolution of 640x480, regardless of the size. This could be part of the reason for the crash as the game expects a valid size to calculate the amount of pixel scaling / aspect ratio etc. There may be more info on the libsdl site, as this provides the window code.

if green slopes are too weirdly designed? never seen anything like the slopes on some of them!?

Yes. They're almost deliberately exaggerated because so many people complained they were too flat. I probably shouldn't have gone quite so overboard, but it's still fun to play I guess 😅

even with this, is putting too easy?

Also yes. Originally the wind had a much stronger effect and the player had to work to compensate for it, but there were lots of complaints about it, so it was substituted for wonky greens. Not sure what to do with it for the moment, so I'll leave it pending further feedback from other commenters.

getting the grasses the colour I'd like was easy, getting the billboards of tall grass in the rough was less so (still not managed it to my liking)

I had the exact same thing. Eventually I settled for setting the grass to the rough colour then turned the brightness down 0.01% or something silly. Looking good though!

would be amazing if there was a modding mode that live-reloaded the graphics as I was editing them and where i could switch between different seasons/weather/etc

That would certainly make my life easier! 😅

gingerbeardman commented 1 year ago

I don't think it was a gimme as I have those switched off. I'd have to check! I didn't consciously switch it in, and it wasn't announced as a gimme.

Interesting to read about your journey to good greens. You can't please everybody 😅

I'm interested in building a Rapa Nui (Easter Island) course, with Moai. Not just so your game can be listed on my website https://moai.games but I'll have to weigh up modding effort before I begin, so it might take me a while to be comfortable enough with it all.

fallahn commented 1 year ago

Oh! That would be very cool 😁 I will state though that an entire full size course takes weeks to make, playtest and refine - and that's without having to learn the process first. This is pretty much how the pitch n putt and beach courses came about, it was a way of condensing holes into smaller models to reduce the work load. However, I don't want to put you off trying! It just might be worth bearing in mind that smaller courses, or even courses with just 9 holes, might be worth tackling first. On the plus side you can use any textures/sprites/billboards you like without having to modify the existing ones 😄

Any modding questions - just ask! You can always join the group chat from the community page if you prefer real-time conversation (I'm about mostly in the evenings).

gingerbeardman commented 1 year ago

I appreciate the warning, in that case it's quite likely I won't do it 😆

gingerbeardman commented 1 year ago

I finished playing all courses last night, and to summarise what I feel about the game:

gingerbeardman commented 1 year ago

I've been playing a few rounds of Masters: Harukanaru Augusta for Windows (1998) and surprisingly it runs just fine on modern Windows (I'm playing it in a Win 11 ARM VM on my Apple silicon Mac!). QOL increases using IntegerScaler app to zoom 640x480 to 1280x960 on my external display, and JoyToKey allows me to use my gamepad rather than keyboard/mouse.

It's the end of the lineage that the Mega Drive games are part of, though by this point they were realtime 3D like your game.

https://archive.org/details/HarukanaruAugustaWindows/

I think you would like it a lot, and perhaps have a few takeaways after playing it as there are a lot of parallels with your game. Let me know if you run it!

I'll be back on our game after this palate cleanser.

Screen recording: https://twitter.com/gingerbeardman/status/1638244561116885002

fallahn commented 1 year ago

Thanks - I'll check it out when I have a moment. Looks like something I'd enjoy, but I don't want to scrutinise it too much because I don't trust myself to not be too heavily influenced by it (and other games) if you see what I mean. I have a tendancy, that I'd like to avoid, of saying 'Oh, X did this, Y did that' and then try to copy those things rather than come up with my own design solutions based on user feedback. Also comparing myself to other games like these often makes me feel a little inadequate 😅

gingerbeardman commented 1 year ago

That's quite understandable! No worries at all.

gingerbeardman commented 1 year ago

Is macOS support/builds abandoned since 1.11?

Any improvement in how it might build on ARM Macs?

fallahn commented 1 year ago

I haven't done anything specific to stop the mac builds working, but without hardware obviously I can't test for bugs etc. However there might, might be a chance that in the near future I'll have access to arm hardware - so there should at least be macOS builds available on itch. There might, might also be a chance of unofficial Steam builds (by which I mean it'll be available on Steam via the regular means, just not officially supported and may drop out again). But no promises 😅

gingerbeardman commented 1 year ago

Sure thing! No expectations here, and precious little time to play.

But, do keep me in the loop. Cheers and all the best

fallahn commented 1 year ago

Will do, thanks! :D

fallahn commented 11 months ago

M1 mac due to arrive this week... watch this space...