Minigolf game creation help thread

matthornbmatthornb Member Posts: 38
edited November -1 in Introductions
Hello. My name is Matthew Lyles Hornbostel. (see www.hornbostelresume.com for an overview of my art and video stuff - I actually have a bunch of websites and have done a lot of low-budget video and VFX work) I'm trying to make a minigolf game in Gamesalad, specifically one from an isometric perspective that uses a blend of miniatures and miniature-style CGI for graphics.

Unfortunately, I've never used GameSalad before, and this is a pretty ambitious first project for me to attempt with it. I may need your help to actually get it done.

The visual art and audio is the easy part of this for me. I'm going to sculpt a bunch of 1/18 scale miniature scenes for this, which will cost a few hundred dollars in materials. But it'll look interesting and stand out from other video games. I know that a real orthographic isometric perspective isn't possible in the physical world, but I've done some camera tests and am confident that I can approximate an isometric view.

The tough part is, or was, programming. I tried making a minigolf game in 2004 with Game Editor, and that one was full of bugs I could never manage to fix. I'm sort of an artist-type and find it difficult to think like a programmer and understand structured logic systems.

It's just not my strength. I prefer working with graphics.

Flash forward to today - I want to try making this type of game again, and I have some fresh visual and course design ideas.
My VFX background will help with the graphics, and I'm doing some research by playing minigolf, reading game design books, and trying to systematically nail down what makes a minigolf hole fun (or not) - while also brainstorming all kinds of fun visual elements and creative obstacles.

I think the iPhone market is promising, and that this concept - a minigolf game with a handmade miniature look rather than cartoon or 3d, might draw some attention, especially if it has well-designed courses with fun obstacles, and an intuitive control scheme.

I'm not going to have characters actually displayed, just the ball. This may cut out a bit of the complexity of development, plus I always felt that characters were superfluous and added little actual gameplay value, or worse, made the game seem childish.

I don't want this to be childish or annoying in any way. It'll be miniature golf, not "putt-putt".

I'm hoping to have a putting system where the player puts their finger on the ball and drags backward from it, then lifts their finger to hit the ball. Speed would be based on distance from ball to the place where the finger was lifted, direction would be the opposite of the direction from the ball to that point. While the player drags their finger, some sort of target is in the opposite direction and same distance from the ball, indicating where the ball will head and how fast.

Tricky to develop? Yes. But intuitive to play.

Then there are the other obstacles, which fall into five essential categories:

-Deflects ball. (The edges of the course, or a moving obstacle)
-Accelerates ball in a direction (slopes)
-Decelerates ball (sand pit, rough or sticky area)
-Moves ball along a path (a chute or tube, for instance)
-Destroys ball and forces it to reset. (water, other ball-destroying things.)

I might add a sixth obstacle type, the button, which when hit, moves, adds, opens, or in some way activates an object that formerly was inactive and didn't do anything. Having some obstacles appearing and disappearing, or moving, or doing something dynamic, would be great. I.e. the classic windmill hole where timing is important.

So I'm going to try to do this (a complete, well-made iPhone minigolf game) with GameSalad. It's a challenge.

I don't have loads of time to figure out how to fix all the bugs I'll encounter along the way, or successfully implement some of the more complex features, and would like some help as I progress through this project.

To that end, I'm opening this thread in which I will post my problems and questions as they come up. I don't know whether it's okay to discuss business here, and if it isn't, sorry, but I've got to say that I am willing to pay for answers given.

I feel that any people who help me to complete my project should be compensated somehow for their help.

I don't have a lot to give but I have several hundred dollars in a Paypal account and can send out small payments of $5, $10, $15, etc, in exchange for answered questions/resolved problems. (Paypal will be the means of payment for all of this.) The more involved and useful the solution/answer/response I get from you, the more I may pay. Whenever the game is actually released, I also intend to split a portion of whatever it earns among the people in this community who helped me get this app working and solved the roadblocks I couldn't get past myself, probably between 5-35% of the app's revenue. (portion size depends on how much help I end up needing)

This seems reasonable to me. I'll make some effort to do things myself but I'm definitely willing to pay for your help on things I'm having trouble with.

Using GameSalad and paying you sure beats paying a professional iPhone programmer!

I can't say with any confidence that my 99-cent minigolf app will be a success, or when I'll finish it, of course, but on the off-chance that it one day is released and sells well, you could make a bit of residual income from my app in addition to whatever revenue your apps generate, by responding to my questions in this thread.

BTW, you can contact me at the email matthornb@triumphantartists.com.

My questions and problems will be posted here as I move forward in this project, but for now I'm not yet stuck on anything.

I'm just getting started on this project.

Also, if, when asking for help, I post a version with crummy graphics, that's because I'm trying to make sure all the game interaction features work before working on the graphics and audio.

I'll only deal with the pretty scenery after I know the game is essentially functional.

Comments

  • jhaasjhaas Member Posts: 233
    Sounds like a cool idea. The good news is that the 5 things you've listed above are handled very well with Game Salad.

    Deflects ball. (The edges of the course, or a moving obstacle)

    Create an actor call it "wall" - set the alpha value to 0 (makes it invisible) you can then create a collide behavior between the ball and wall. You can control how much bounce there is between ball and wall by setting the restitution attribute on both of those actors.

    -Accelerates ball in a direction (slopes)

    another "invisble" actor with a rule that says if ball collides with actor "slope" use the acceleration behavior relative to scene in whatever direction you choose.

    -Decelerates ball (sand pit, rough or sticky area)

    There's a drag behavior you can use for that

    -Moves ball along a path (a chute or tube, for instance)

    same answer as ball Deflects ball - by having obstacles on either side of the wall with collisions set up and minimal restitution the ball should roll nicely.

    -Destroys ball and forces it to reset. (water, other ball-destroying things.)

    Rule when ball collides with object use behavior Destroy.

    I'm sure if you play with the software a bit, you'll find you can probably do most of it yourself - and keep all your profits. :)
  • JGary321JGary321 Member Posts: 1,246
    Will work for food... o I mean will answer for food.... oo BAH! Will answer for free! There we go. =)

    We are a friendly bunch here (except for Quantum Sheep, be careful of him he time travels) & we will give all the help we can. We may not know it all, but what we can't help with one of the Mods will usually step in. However, I will say that make sure you at least spend time on each problem yourself. Maybe even start off creating a few small games just to get familiar with the software. It's extremely powerful software in the right hands. Anyways welcome aboard & have fun.

    -JGary
  • quantumsheepquantumsheep Member Posts: 8,188
    I'm sure I already told you next week not to mention my time travelling... ;)

    Dr. Sam Beckett never returned home...
    Twitter: https://twitter.com/Quantum_Sheep
    Web: https://quantumsheep.itch.io

  • matthornbmatthornb Member Posts: 38
    Hi, everybody! Good to hear your replies.

    I've had a good start to my GameSalad development experience. It really is a user-friendly yet powerful program.
    I must say I'm very impressed. I implemented the main menu, and I've successfully constructed the player menu (where there are a bunch of players listed, and you can check how many of them you want active in the game, and what colors their balls are.)

    It took me a little while to figure out that I needed to create and work with a variable, which I named "helddown", to make sure that a mouse click is registered as one single click and not as a bunch of clicks in a single split-second span!

    Figuring that out was the only thing that challenged me, but it wasn't too tricky.

    I know I could get into letting players enter their names, but I'll deal with that later.
    In any case, it was a great first day with GameSalad.

    Then today I tried creating a system to hit the ball. That may actually be the single most difficult part of the game development I'll have to face, and it's also one of the most, if not the most, essential parts of the game.

    Interactions existing so far include, essentially, code that says, if you click the ball, the X and Y positions of the ball are recorded into variables. When you let go of the mouse button, the position of your cursor at the time you lift the mouse button is recorded.

    Then two variables, direction and speed, are derived from those four coordinates. Direction being the direction formed by the pair of XY coordinates ('m not sure yet how to do this) and speed being proportional to the distance between the two coordinates, which requires use of a square root to do right, and I'm unsure of how to put in a square root in the Expressions box.

    But the idea is, that once direction and speed are determined, the ball moves in that direction and speed.

    And, also, making this that much more complicated, there'll be a guide graphic object of some kind which will only be visible and active while the ball is being aimed (after ball is clicked - mouse down over ball - and before the button is let go)

    That object will have to always note the ball position and the cursor position and be positioned in the opposite location from the cursor relative to the ball, there may even be several such guide objects at varying distances from the ball so that they form a dotted line.

    There also needs to be some way of ensuring that the player doesn't hit the ball from a distance (and thus, strength) greater than a certain amount, and that the targeting reticle(s) never stretch too far from the ball.

    That's a problem - how best to do that in GameSalad?

    I'm still puzzling over this large overall question of how to have the player hit the ball. It's complicated and it's essential to making the game work.

    Suffice it to say that whoever here can come up with a good solution to this problem in GameSalad, gets $25 and 4% of the finished game's revenue.
  • CodeMonkeyCodeMonkey Head Chef, Member, PRO Posts: 1,803
    >"There also needs to be some way of ensuring that the player doesn't hit the ball from a distance (and thus, strength) greater than a certain amount, and that the targeting reticle(s) never stretch too far from the ball."

    Use the min/sin/cos/magnitude/vectorToAngle math functions.

    I skimmed over the post and have this:

    http://gamesalad.com/game/play/7942

    Is that what you are looking for?

    If so, please send money to:
    Feed your game engineer @ Gendai Games

    j/k ;)
  • matthornbmatthornb Member Posts: 38
    LOL.

    CodeMonkey, that demo is a great start. It's not quite what I'd like to have in my game but it's pretty close.

    I take it you're an actual GameSalad developer, so while you're not asking for payment, I figure I'll be able to pay you and your team when my game is finished and I publish it (you are charging for the publishing app, I take it)

    So good, in any case. If nothing else, I'll at least list you, and GameSalad, in my game's credits - and in the credits of the demo.

    (I'm thinking of making a little 3-hole demo and releasing it as freeware, so people can get a peek at the game before buying a full version.)

    You guys are a generous bunch. I'm sitting here thinking I should pay you for your help, and you're helping for free even when I offer money. Thanks for that. If you change your mind later, though, I can always pay you.

    And yes, I am trying to do things myself first. These questions are just for the places where I'm stumped and can't figure out how to do something, and where I could really use some help.

    BTW, the relocate ball between locations may not always be mere deflection through a tube. I may want to have cases in which a ball essentially teleports, falls, or is sent flying along a path across an area in which there may not be any playable surface at all - or even traveling over a normally collidable obstacle! Making this more crazy is that there'll be some times where one of several such paths may be followed, depending on either the motion of the relocating object (ie. a swiveling cannon or launch ramp) or how fast the ball was traveling when it hit the thing (spring, etc) that sent it flying.

    That's the trick, and it's part of making this sort of game fun. Most obstacles may be simple deflection, acceleration, or friction, but I'd love to have more complex dynamic obstacles of various kinds scattered throughout the game every so often. Ones that move, that require timing, that can be triggered to active or inactive, or to different behaviors by a button, etc.

    All the input you guys are giving me is very encouraging. It looks like GameSalad is perfect for the type of game I'm making.
    The development of my project may turn out to be (relatively) easier than it normally would be given its complexity.

    That's largely because GameSalad is such a good tool.

    Question: With demos like the one you just linked to, is there a way to open them in GameSalad to see how they work?

    It's not enough to play your game, CodeMonkey, I want to be able to mess around with the source GameSalad project your game was made with so I can look at all the behaviors of the objects in it and use them as a template to build a similar (but somewhat different) ball-hitting system in my game.

    Can you send me your Pool Table GameSalad project?
Sign In or Register to comment.