View Full Version : 18: CuteGod - Suro Suro, Happy Fun Time Love Island
Fengol
04-04-2008, 08:53 AM
I've been watching A LOT of anime just recently (seriously, someone please send help!) so the title of my game is Suro Suro, Happy Fun Time Love Island
I love god games so I'm going to work on this proto-type. My initial idea is to play a god (Suro Suro), helping people fall in love by manipulating the landscape so they can get together. This'll be further complicated by the fact that the little people will have to go on quests to find treasured objects for their intended loved ones and the player has to help them get it.
First off I'm going to work along to the proto-type as spec, so don't expect any uniqueness yet, but that's the aim. It could also change once I actually get further in the coding.
Downloads
v0 http://gamedev.openhazel.co.za/filecloset/download.php?id=439
v1 http://gamedev.openhazel.co.za/filecloset/download.php?id=444
v2 http://gamedev.openhazel.co.za/filecloset/download.php?id=448
Screens
http://i139.photobucket.com/albums/q312/Fengol/screenshot.jpg
Updates
v0
* Created map controller which manages stacks (piles of tiles)
* Stacks can be moused over and the top tile removed and added to the controller
* A moused over stack can have the controller's spare tile added to it (to a limit of 4 deep
v1
* Much better stack/tile selection
* Tiles are deleted instead of moved. Will revert back to moving tiles
v2
* Added clouds
* A little girl who randomly walks around the map (regardless of the tile heights)
* Tiles that the girl stands on can not be selected or other tiles placed on it
* Mousing over the girl brings up an empty speech bubble
To Do
* Figure out what I'm going to do, this puzzle idea doesn't look like it'll work
I like your idea, the quest system intrigues me, and I think it would be quite interesting to play :P
01DT!m3r
04-04-2008, 09:48 AM
very nice twist ,Fengol:) can't wait to try.
Thaumaturge
04-04-2008, 04:53 PM
That sounds like a very good idea, Fengol - I really like it!
Combine it with some well-designed game-boards to produce increasingly fiendish puzzles and you could have a really fun and challenging puzzle god-game. ^_^
Fengol
04-04-2008, 07:13 PM
Looking at the other prototype submissions on the Lost Garden website, I was very impressed with this submission (http://www.corsix.org/GodCute.rar). I love the way adjacent and connected tiles bounce up and down if they're on the same level. Definitely wanna steal that idea.
Thaumaturge
05-04-2008, 01:02 AM
Hmm... Perhaps it's just that it seems to run a little slowly on my computer, but I find that effect a little distracting...
It might be better, however, if, instead of all connected tiles on the level rising and falling as one, they instead rise and fall in an outward ripple, centred on the current tile. On the other hand, that too could cause problems when the cursor is moved over multiple tiles in a short space of time...
Perhaps a ripple or rise-and-fall only when selecting?
Come to that, what does the system presented in that game actually add? You're only selecting one tile, not all of them, after all...
Gazza_N
05-04-2008, 11:13 AM
Firstly, a hundred quinitillion internets to you for perfectly nailing the nonsensical Engrish title. I lol'd heartily. :D
Secondly, I really like the idea. It's sort of like Black and White, except the people are doing the quests for themselves, instead of you playing supernatural fetch. I obviously can't comment more until I see the finished prototype, but the concept looks promising. :)
Thaumaturge
05-04-2008, 05:49 PM
... instead of you playing supernatural fetch.
I love that description!
Fengol
06-04-2008, 08:45 PM
PLEASE HELP! My selection sucks :( Because my stacks don't really have any mask I can use to handle collision detection I'm checking to see if the mouse is in the same coordinates as the top tile. Unfortunately, as the stack gets bigger so it covers the stack behind but my code now selects 2 tiles.
You can downloaded my prototype from the first post.
Suggestions?
Gazza_N
06-04-2008, 09:42 PM
Suggestions?
How about creating a Z or depth variable in your tile object? Assign a value to this variable based on the y value of the base tile of the grid cell it's on. Then in your click event, check which tile has the highest value (obviously the closest cell will have a higher y value), and select it.
I hope that makes sense. :\
dislekcia
06-04-2008, 10:02 PM
Use the click events on actual tiles to select their parent stacks. You'll have to keep a pointer to the stack that a tile is part of in each tile. Then, once you've got a list of all the clicked on tiles, simply select the one with the stack closest to the bottom of the screen.
It would also probably be a good idea to have your stacks manage a boolean "selectable" variable in their tiles that's only turned on in the very top tile of a stack.
-D
Fengol
06-04-2008, 10:32 PM
How can i get a list of all clicked tiles?
dislekcia
07-04-2008, 01:10 AM
How can i get a list of all clicked tiles?
Have some control object at a really deep depth with a list in it. Tiles add themselves to this list when the Mouse Released event fires on them. The control object has a Global Mouse Released event in which it goes through the list and does whatever it needs to do before emptying the list again...
The control object's event will fire last due to its depth.
-D
Thaumaturge
07-04-2008, 06:24 AM
Hmm... When you say "depth", what do you mean? If you mean screen depth, and mouse events are fired off in order of depth, from closest to furthest (if I've inferred (and assumed ^^; ) correctly), then surely one could simply act on the first mouse click event fired off, set a global flag to indicate that it has been handled?
The flag would then be reset shortly afterwards, perhaps in the event of a deep controller object, as you suggested, or, depending on the way in which GameMaker handles such things, in a mouse-released event somewhere else, presuming that we could be sufficiently confident that one would always fire after a successful mouse-clicked event, and before the next mouse-clicked event.
I think that I'm correct in thinking that the desired tile should be the closest of the clicked tiles in z-order.
dislekcia
07-04-2008, 01:44 PM
Hmm... When you say "depth", what do you mean? If you mean screen depth, and mouse events are fired off in order of depth, from closest to furthest (if I've inferred (and assumed ^^; ) correctly), then surely one could simply act on the first mouse click event fired off, set a global flag to indicate that it has been handled?
The flag would then be reset shortly afterwards, perhaps in the event of a deep controller object, as you suggested, or, depending on the way in which GameMaker handles such things, in a mouse-released event somewhere else, presuming that we could be sufficiently confident that one would always fire after a successful mouse-clicked event, and before the next mouse-clicked event.
I think that I'm correct in thinking that the desired tile should be the closest of the clicked tiles in z-order.
What do you mean by a flag? Just setting a boolean "I've been clicked" variable would work, but it's better to store a pointer to clicked objects so that you can choose which object to perform the code you want to have happen on. Essentially Fengol has a problem where multiple objects meet the event-firing criteria (ie, mouse click on them) and he needs to prune those objects against each other to find the one that his logic needs to apply to... If you simply set a flag then you have to go through every object of that type on a release event, looking for the flag so that you can compare. If you store pointers, you only have to go through the objects that were actually clicked on, much more efficient ;)
Z-order is meaningless in GM, it's 2D remember?
-D
cairnswm
08-04-2008, 06:26 AM
Z-order is meaningless in GM, it's 2D remember?
2D doesn't make Z-Order meaningless - Z order is often used to order the items being drawn, from furtherest to nearest. To find the top item you use the one with the last drawn z-order. In GM this is called Depth (but its the same meaning as Z-order).
Fengol
08-04-2008, 09:25 AM
Version 0.1 is up on the first post.
Thanks to everyone for their advice on tile selection. I ended up using the tiles MouseEnter and MouseLeave events to manage a list in StackController which then dictates to the stacks which tile to highlight (see code in download).
I've been thinking, and I'm worried my puzzle idea of helping characters move around the map doesn't look like it'll be worthwhile. I'm going to finish up the prototype though and see what turns up.
FuzzYspo0N
08-04-2008, 11:30 AM
the gameplay works really nicely fengol, good job.
Thaumaturge
08-04-2008, 06:55 PM
What do you mean by a flag? Just setting a boolean "I've been clicked" variable would work, but it's better to store a pointer to clicked objects so that you can choose which object to perform the code you want to have happen on.
Heh, my apologies; a boolean would indeed apply, although "flag" is a more general term. The basic idea is boolean, however: "The first click has been processed, there is no need to process further!".
When you mentioned placing a control object at a very deep depth, I took that to mean z-/layer- order, as cairnswm mentioned, and from that guessed that GameMaker processes mouse clicks, at least, in layer-order from top to bottom. If that's the case, then it seems to me that you can get away with only knowing whether another tile has already responded to the mouse click event, since the first one is presumably the one that the player is more likely to mean.
(The same presumably applies to mouse-move events, and thus to indicator placement.)
However, given the confusion, I imagine that I misinterpreted you, or was mistaken in my logic. ^^;
dislekcia
09-04-2008, 01:59 AM
Heh, my apologies; a boolean would indeed apply, although "flag" is a more general term. The basic idea is boolean, however: "The first click has been processed, there is no need to process further!".
Flag is appropriate there, I just couldn't see what you'd use a single flag for. Reason below...
When you mentioned placing a control object at a very deep depth, I took that to mean z-/layer- order, as cairnswm mentioned, and from that guessed that GameMaker processes mouse clicks, at least, in layer-order from top to bottom. If that's the case, then it seems to me that you can get away with only knowing whether another tile has already responded to the mouse click event, since the first one is presumably the one that the player is more likely to mean.
(The same presumably applies to mouse-move events, and thus to indicator placement.)
However, given the confusion, I imagine that I misinterpreted you, or was mistaken in my logic. ^^;
Yes, GM uses object depth as a z-depth for processing events and objects, however because most of your tiles are going to be on the same depth plane (even though they might appear "above" each other during rendering) you're not guaranteed to always have to the "highest" screen depth tile be the one that's clicked first.
If you manually re-order the depth of the tiles (which is something usually done at object coding time and then left alone - but possible to alter on the fly) then yes, you'd be guaranteed a correct clicking order and the single flag approach makes sense :)
-D
Thaumaturge
09-04-2008, 03:57 AM
Aah, fair enough. I thought that the various tiles would be at different depths. Ah well.
Thank you for clarifying that. ^_^
Fengol
10-04-2008, 10:04 PM
v2 is now up on the first post. Only some small changes because I was sick with flu today and I couldn't lie in bed any more.
Note, there's a new screenshot too.
Thaumaturge
10-04-2008, 10:23 PM
It looks cool, Fengol - it's improving nicely, I think. ^_^
If I may ask, what problems do you see with the puzzle idea? It sounds reasonable, but I'm guessing that you've spotted some problems that I'm missing.
I'm sorry to hear about the 'flu; I hope that you recover quickly. :/
Powered by vBulletin® Version 4.2.4 Copyright © 2019 vBulletin Solutions, Inc. All rights reserved.