Not logged inGosu Forums
Forum back to Help Search Register Login
Up Topic Gosu / Gosu Showcase / Anyone up for a Team Project?
1 2 Previous Next  
- - By ml Date 2013-10-17 06:45 Edited 2013-11-05 05:56


THIS GAME is now officially registered for the competition.

I noticed this competition on

It looks like up to three people are allowed on each team, and the timeframe of the competition is from October 1 through November 1. It is a competition to create a basic table tennis game.

We would be getting a late start, but I think this still allows enough time for a three-man team to put together a worthy project.

If a couple of other people are interested in helping out, I'd be interested in participating. Does this appeal to anyone else?

EDIT: The third member of the team is MIA, so there is a third spot on this team open if anyone wants to help.....

EDIT: The third team position has been filled.
Parent - By ml Date 2013-10-20 01:59 Edited 2013-10-20 02:24
I have assembled all of the basic needed parts for a good game of Power-Up-Pong. I have one other person signed up to help. There is still one opening to participate on a three-person team.

So far I've got two players, a ball, collision detection, stars for power-ups, and a referee (to keep things fair).

Basically the plan is to incorporate as many features as possible from the Is Your Game Juicy? video -- things such as screen shake, explosions, particles, etc. -- in the spirit of "There's no such thing as too many particles".

One of the suggestions in the "Juicy" video is to put eyes on everything. As it happens, these characters are currently lacking eyes....
Parent - - By arrow Date 2013-10-20 14:42
Sounds like fun, I haven't successfully bundled a gosu game yet but I love playing around with gosu. If the basic gameplay is in place there's plenty of work that can be done on the powerups and the juice. Random idea, the power ups could work in mario kart style where you collect one and fire it. Since the theme is time it could be some time altering spells.

I would like to hear what you want to do with the game.
Parent - By ml Date 2013-10-20 20:50 Edited 2013-10-20 22:31
Hey thanks for the ideas. I've come a little further along now. I've got more of the basic gameplay in place.

I haven't touched the power-ups yet, but my plan is that whenever the ball hits the referee, he will drop an item, which the players can pick up.

I'm thinking he would drop lots of stars, which the players use to fill a magic meter. Once the magic meter is full, they can execute a special power, such as creating an extra ball which only hurts the other player, or creating an extra clone of themselves.

As a less-frequent drop, I'm thinking "scrolls of wisdom", which enable the player to learn an ability, such as hitting the ball with their stick to make it go faster.

Collecting items which they can then fire mario-kart-style will fit nicely in this architecture. I'm thinking they would probably be potions and spells.

The competition requires that there be a score-counter and the game must end when the score limit is reached. I think a good way to implement this is with health bars, and once the player's health reaches zero, he dies.

As far as my overall plans for the game, I am just making it for the competition. Also, everything I have done so far is in Chingu -- not sure if you're tried it out or not...

I will push the code to github later in the day and post it here in case you want to get a look at what I've got so far.

EDIT: by the way, the competition requires a beginning/introduction. I'm thinking: a character selection screen, where each player can choose his character to battle with.
Parent - - By ml Date 2013-10-20 22:27
I put StickBall up on github: Github Link

In case you or anyone else wants to check it out.

In order to run it requires two gems: Gosu and Chingu

I assume you already have Gosu. If you don't already have Chingu, you can get it with:

$ gem install chingu

With that, all you need in order to try it out is to clone the git repo, and then use:

$ cd Stickball
StickBall$ ruby main.rb
Parent - - By arrow Date 2013-10-21 00:16
I've peeked a bit into the project and I'm still getting into how the game and chingu works.

I created a pure gosu lense flare before I saw your link to the project. I just tried putting one on the puck.
There's a fork on my git account here:

It's a lot more subtle than on the screenshot since it's easier to see when moving
Parent - By ml Date 2013-10-21 04:02 Edited 2013-10-21 05:14
NIIIIIICE! I just back from being out doing stuff. I'm going to check out the fork on github right now. ...

Just checked it out. Wow, that is insanely good. Looks like you were able to incorporate it in to work on Chingu just fine.

I'm going to start work on an Introduction gamestate.

EDIT: by the way, @arrow does this mean you're in for forming part of the three-person team for the contest entry?

It will be interesting to come up with a way for the referee to drop items...

And we'll need some good health meters and magic meters...
Parent - - By ml Date 2013-10-21 06:27
Here's how the game entries will be scored (this is copied from the contest description):


Mandatory points -

10 - Start Screen
10 - Win/Lose Screen
20 - Graphics for the background, ball, and paddles (ie. not just a monochrome rectangle and ball)
05 - Scoring
10 - Sound effects
10 - Music
10 - Exit (key and screen)
05 - Theme
15 - Power ups
05 - Score limit

Optional points -

10 - Powerups
10 - Timer
10 - Variable score limits (ex: 5, 10, 100, infinity)
10 - Pause functionality
10 - Save functionality
15 - Animated background
15 - Difficulty settings (ie. Easy, Normal, Hard, Legendary)
20 - Level progression
20 - Different backgrounds and graphics for level progression


An animated background is one key area where work will be needed. I'm thinking something like a starfield, with parallax layers of stars.... Ideally there should be three different backgrounds for three different levels...

Here are more details about the contest:


The mandatory 3 powerups will be Time based. 2 of the mandatory power-ups are: Speed Up and Speed Down. You can apply these powerups as you see fit (ex: make the paddles move faster, make the ball move faster, or make the timer move faster).

Also, 2 additional and OPTIONAL powerups can be added as well. The 2 additional powerups can be anything you want them to be (ie. not does have to be Time-based) and they are optional.

Also it's totally up to you how the powerups are distributed to the players.

In other words, you determine how the powerups get on the board and how the players get the powerups. The 3rd mandatory powerup must be Time-based but you can make it whatever you want.

Because there is scoring, there must be a score limit that determines the winner.


Parent - - By arrow Date 2013-10-21 10:50 Edited 2013-10-21 12:05
I'm in for forming the three person team! I think it will be a good idea to start with getting the gameplay in place and then adding the juice.

Maybe I can get a little animation in place where the items fly from the referee to the field. I'll try it out. EDIT: Oh, I see you've already done that! What about I take a look on creating some progress bars for health and mana, what are you currently working on?

I was playing the game and thought it would be fun if you could also move to the other half of the field in the finished game, eg so you could both use a time slower to make it easier to hit the puck or get time enough to go to the other half and steal a nice powerup, or maybe even go and hit the referee for more powerups.
One juicy thing I would really like is if you could make the player (width) wobble on hit in a similar way the camera shake is done!
Parent - By ml Date 2013-10-21 22:43
Nice! Consider yourself part of the team!

I guess you've also noticed the introduction gamestate with character selection. I've got some music and sound effects in place, as placeholders. We can be on the lookout for other good audio.

Right now I am going to work on carrying over the selected characters from the Introduction to the playing field.

There are so many things to work on, so I'd say just pick whatever suits you and go for it. The character wobble would be a nice touch - especially for the referee. I think it could be done using something like @character.factor_x += @wobble.

If you were to work on health and mana, that would be fantastic!!! The entire GUI could use a good overhaul.

I think we should both keep adding in as many features as we can, and then work on merging everything together later as we go.

I'll probably keep working on the Introduction for right now. It still needs difficulty settings.

I'm also planning to experiment a little with adjustments to the velocity of the puck, so that it bounces in different directions depending on where it hits the character (head vs feet).

I just checked your git. Looks like there aren't any changes yet. I'll be looking forward to seeing more updates.
Parent - By ml Date 2013-10-21 23:46 Edited 2013-10-22 04:08
I have a good idea for the animated background - it could be like a sand pit - where the players leave a trail - like footprints.

EDIT: I just got the Player Selection working properly, and pushed the changes to github.

I was trying to figure out how to pass the variables from the CharWheel<GameObject class to the Field<GameState class, and then I cheated and used $constants and from there it was easy.

EDIT2: I have now added a wobble effect to the referee and pushed to github. This wobble leaves a lot of room for improvement but it gets the job done.

EDIT3: I have just merged in the LenseFlare(s) and pushed to github.

EDIT4: Basic Health Meter and Star Meter are in place. They need lots of work.
Parent - - By arrow Date 2013-10-22 08:12
I reviewed the wobble and mirroring of the player

I'm thinking it would be nice if would could find some creative commons music tracks and some sound effects for everything that happens

I found this track on jamendo
Parent - - By ml Date 2013-10-25 04:24
I just saw this post for the first time. I downloaded the music; I'll start incorporating it into the game.

We'll definitely need more sound effects.

Following is a good resource, recommended by wanderinweezard:
Parent - - By jlnr (dev) Date 2013-10-25 11:26
The 'standard' tool to generate sounds is SFXr which I've linked to somewhere in this board. It gets tiresome to play the hundredth game with the same noisy samples, but it's a good fallback for stuff that's hard to record naturally.
Parent - By ml Date 2013-10-26 04:40
I found it on google. That's pretty slick. Very good to know about.
Parent - - By arrow Date 2013-10-21 12:10
I found a bug where the puck gets stuck at the edge bouncing back and forth.

It's probably because

if x > screen_width
  velocity_x = -velocity_x
  x = screen_width # <= this line is missing so you risk the if statement returns true before the puck is off the edge again
Parent - By ml Date 2013-10-21 22:46
Good catch - I was aware of the problem, but I haven't tried to fix it yet.  When I very first started, the puck was constantly getting snagged on the players and referee.
Parent - - By ml Date 2013-10-22 02:59
Right now I'm up against a little bit of a wall, trying to figure out how to make a mirror image of the character .pngs. From my previous experiences, I would think that self.factor = -1 would take care of it, but in this case it is flipping the character upside down.

There must be a simple way to flip images horizontally in Chingu.... perhaps I am doing something wrong.
Parent - - By arrow Date 2013-10-22 06:12
Try self.factor_x = -1
Parent - - By ml Date 2013-10-22 09:25
Oh it was so easy! factor_x of course! Now it all makes sense.

I just pulled your updates, and it is looking fantastic!!! Wow, those stars look great and the eyeballs are marvelous!

I've got two working power ups on my most recent version - "speed" which makes the player move faster, and "chest_bump", which makes the ball slow down if they hit it right in the middle.

Also I've started experimenting with making the puck bounce differently depending on on if it hits the player in the head or the feet.

EDIT: by the way, there is a minor case-sensitivity issue with "keypress.ogg" vs "keypress.OGG".
Parent - - By arrow Date 2013-10-22 09:57
I just tried out the new gameplay and I really like the feel of it, it becomes a lot more challenging and the referee now becomes more of an obstacle so that you have to watch out for accidentally hitting him
Parent - By ml Date 2013-10-22 20:37 Edited 2013-10-22 21:38
It keeps getting better and better....

I have begun merging the eyeballs in to my version.

Ya, I think the new gameplay is better - although it could still use some refinement.

I'm thinking that for the third power-up, the puck's velocity could be affected by the player's velocity.

Once we get three total power-ups, we'll have almost all of the minimum requirements for a game entry.

The Introduction still needs a lot of work - especially selecting a score limit / health meter size at the beginning.

It still needs an ending gamestate. So much to do but I think we should be able to get it all in before the deadline.

We've basically got one week to go....

I just tried pressing the spacebar for the first time in several days.... Multi-Puck Frenzy!

EDIT: If you click on the thumbnail of the Frenzy, you can see an issue which is occurring with the eyes, pinpointed down to the exact moment.

I'll need to get rid of the comet tails.

Either one of us could start making Weapon drops, which occur more rarely from the referee. The Weapons could be activated with Right_Shift or Left_Shift.

Two weapons I have in mind: Fog of Darkness (covers opponent in dark mist for a limited time) and Stun (stuns other player for a limited time).

You can of course add any weapons you think would be good.
Parent - - By ml Date 2013-10-22 23:09 Edited 2013-10-23 08:02
I just checked your most recent version. The mouths are epic!

I added in a rare_drop function and pushed it to github. Right now it only drop hearts.

EDIT: Rare drops now include Stun and Mist. Changes $weapon1 to "stun", for example. Just pushed it to github.

Heading out for a while, will check back in later.

EDIT: I added basic spell-casting abilities to the players, with the LEFT SHIFT and RIGHT SHIFT.  Right now it just casts "stun" every time.

Also, holding down Right Ctrl or Left Ctrl causes the player to creep (move slowly).
Parent - - By arrow Date 2013-10-23 10:18
I've experimented with writing a mist shader using ashton! I'm thinking that you can parse an area where the mist will be clear (around the caster) but if both players cast mist there will be no clear area

Parent - - By ml Date 2013-10-23 23:30 Edited 2013-10-24 04:40
That is fantastic. I'm going to see if I can merge it in with the spell drops I've been setting up.

EDIT: I just officially registered us for the competition:

I'm going to post a question on to ask if we can submit the ruby code (hopefully they won't require us to compile to .exe and .app). Not sure if you've ever compiled to .exe but I know I never have... well, not successfully anyway...

EDIT: Hey good news, I've got a third team member signed up.
Parent - - By jlnr (dev) Date 2013-10-24 03:41
'Compiling' to an .app is trivial if one of you is on a Mac. :) You can even do it by hand instead of setting up Releasy, it's just a matter of copying files and editing a tiny bit of XML (Info.plist):

But I'm not sure if the Windows toolchain is in good shape right now...
Parent - By ml Date 2013-10-24 04:43
Hey thanks for the tip. The third team member is on a mac. This is good.
Parent - - By ml Date 2013-10-25 04:07 Edited 2013-10-26 05:49
I heard back from one of the judges, and he said "it shouldn't be a problem" (to just submit just the ruby code), but he's going to talk to the other judges to make sure...

Sounds like we might not have to compile.....

In case we DO end up having to compile -- I read the following comments from allcaps and lol_o2 a while back:

"I've been just using ocra to make an .exe for windows friends.  It works fine for Gosu games on Windows.  Just "ocra gosu_game.rb" and then exit the game after it starts, spits out an exe.  "gem install ocra" to get it.  Dunno if it works on other platforms, but it works great on Windows."

"There are random bugs on different computers when using advanced Open GL stuff (like framebuffers), so sharing Gosu games, at least on Windows, is fully possible only with pure Gosu. Just saying."

Not sure how all of this relates to the present project, but worth being aware of.

I have been making progress and pushing to github as I go. I'm getting close with the Introduction.

I have the spells set up now so that a player throws a spell, and when it hits the opponent it activates for a set time period (i.e. 2000 milliseconds).

I have never used ashton, and I have no idea how to parse/mask the mist, but the third team member has experience with shaders and he's going to take a look at it.

It's coming together. We're almost there. Only a few days left....
Parent - - By wanderinweezard Date 2013-10-25 09:19
I pulled the project down and tried it out - it's very cool!  You guys are doing a great job.  Keep it up and good luck with the competition!
Parent - By ml Date 2013-10-26 04:41 Edited 2013-10-26 05:42
Thanks weezard! Your support is greatly appreciated!
Parent - - By arrow Date 2013-10-25 14:26
I can create some pure gosu mist then. I just pushed the mist with a clear_x area permanently stuck to player2. I won't be looking much a the project this weekend but I'll create some more through the week before the deadline.
Parent - - By ml Date 2013-10-26 05:17
Hey that mist mask looks really good. The third team member (fritzherald) is planning to look at the mist shader tomorrow.

Do you think ashton would create difficulties for compiling to windows, based on lol_o2's comment? The feedback I'm getting from the judges is that they would accept a Ruby submission, but would prefer a compiled .exe and .app....

No worries if you're busy this weekend. Every little bit helps. Do you have any experience compiling to .exe? I am on Linux and I have failed every time I have tried to compile. If you are able to do some tests on compiling to Windows, that would be a big help which would relieve some pressure. Maybe the ashton shader will compile okay as long as it doesn't use frame-buffers?... (I am totally ignorant about gl.) Fritzherald is on a Mac and will be able to take care of the .app compile. In a pinch, we could include the mist shader on the .app and not on the .exe ....

The (other) immediate challenge is getting it to activate only when @mist == true from the player1 or player2 classes.
Parent - - By jlnr (dev) Date 2013-10-26 05:32
Compilation is not the issue with ashton/shaders, but not all GPUs will render shaders the same. So even when everyone is running your game straight from the Ruby source, the results might be different.

In lol_o2's case, this caused bugs, but of course that depends on how you use ashton.
Parent - - By ml Date 2013-10-26 05:47
I guess one possible solution would be -- once we get it to the debugging stage -- to try to get like ten different people to try it out on Windows, and see if it causes problems for anyone...
Parent - By Spooner Date 2013-10-27 12:39
Make sure you force the use of the oldest version of GLSL (as I did in the example shaders that come with Ashton). If a machine won't run those, then they can't run shaders at all...(and they are probably a toaster). If you run with GLSL 4.3 then expect it not to work anywhere except on new gaming machines.
Parent - - By arrow Date 2013-10-27 16:17 Edited 2013-10-27 16:31
You can activate and deactivate the mist by setting the alpha if you haven't already noticed! (edit: @mist.alpha = something between 0.0 and 1.0)

I'm on a mac but I'm borrowing a windows machine and I'll try to make the .exe work
Parent - By ml Date 2013-10-28 03:27
@arrow, that is fantastic to hear that you can give a try with the exe. I haven't really touched the shader yet. I'm still scrambling to finish the introduction, fix the gui, and add an ending.

@spooner, thanks for the helpful tip.
Parent - - By ml Date 2013-10-27 08:35
I've been making some good progress on several different fronts. I've upgraded the introduction a lot and it is now possible to select the Opponent (CPU or Player 2). I've also moved forward on getting some animated backgrounds in there.

I was able to get the eyes screwed into place so that they don't jiggle when the screen shakes (and when the referee moves).

I'm going to look at the mouths and try to figure out if there's a way to make it so that they don't disappear completely when their mood is medium.

A feel a big weight off my shoulders now that the opponent selection is in place. The project now has all the minimum requirements for the competition.

The power-ups still need some work. Right now they are kind of confusing.
Parent - - By arrow Date 2013-10-27 16:14 Edited 2013-10-27 16:19
You could simply draw a line in the middle of the mouth. Then when the factor_y is 0 and the mouth image disappears the line is still visible
Parent - By ml Date 2013-10-28 03:29
Good call. I will do this.
Parent - - By ml Date 2013-10-30 12:19 Edited 2013-10-30 12:35
Well we are now down to the absolute wire on any final improvements to the game (of which many are needed)....

Probably the biggest thing right now is to see if we can compile. Fritzherald made some good contributions over the weekend, but he's had something come up now, and I don't think he'll be able to help compile to .app as originally planned.

Arrow, any chance you could take a look at compiling to .app as well as .exe?  If you are slammed and can't get a look at it, it's okay but it would be way preferable to submit a compiled version for any judges who don't already have Ruby installed.

Other than that I'm just running through and trying to finish up all the half-complete features which are already in place but need to be smoothed out quite a bit before submission.
Parent - - By arrow Date 2013-10-30 22:18
I've already successfully created an .app! I'll update it to the latest version and take a look at the exe
Parent - By ml Date 2013-10-31 01:50 Edited 2013-10-31 03:17
That is fantastic news!! The current version is almost done but not quite. I'm going to keep slugging away at it -- I especially need to make an ending. I think I'll be wrapped up in another ten hours or so. The competition deadline is tomorrow at midnight. They didn't specify a timezone, so I'm hoping it's not based on the Australian time zone....

EDIT: By the way, did you make an image for the .app icon? I can work on one if you don't already have one.

EDIT: I think if we're able to get it wrapped up prior to midinght, Gosu-standard time, we ought to be in pretty good shape. The Gosu clock is a few hours ahead of where I am. Anyway, I'm making good progress. I ought to have something pretty close within another six or seven hours or so.
Parent - - By ml Date 2013-10-31 16:06 Edited 2013-10-31 21:29
Hey just a quick update. Everything has really fallen into place. I just need to make like three last final changes, and then I'll be finished on my end. I estimate another hour or two. If you're able to compile to .app, that will be awesome. If you've had success with the .exe, fantastic, but if not, it's cool because Ruby is really easy to install on Windows. Either way we're in good shape.

I'll post here once I've finished the final updates - probably in about an hour or two.....

EDIT:  I FINISHED ALL THE FINAL REVISIONS. The game is ready for the competition. It is ready for compiling. I am going to go ahead and submit the game in its github form on the forum. We have until midnight to make any needed changes. To submit a compiled version, we have to post it before midnight as well.

EDIT: I was just cleaning up the code a little - commenting out and deleting unused sections of code - and I suddenly got a huge performance boost - from about 35 fps to 60! I'm going to need to adjust all the velocity parameters because right now everything goes way too fast. What is your timeframe today for working on compiling? It will probably take me another hour or so to readjust all the velocity settings...

EDIT: Hey Arrow, here is where things stand right now: the current version on my github is the version that runs at like 35 fps. Aside from running at a low framerate, the game is in excellent shape. I had something come up and I have not been able make adjustments to the normal framerate version, but I believe that I should be able to get it all figured out within about three hours (after I finish taking care of stuff that came up). I'm not sure what your availability is this afternoon/evening. If you're going to be busy later, you could try compiling the 35 fps version and see if it works and call it good. If you'll be available later, I expect to have a better, more reliable, 60-fps-ish version ready to go in a few hours.
Parent - - By arrow Date 2013-10-31 21:36
I'm available and I'll start looking on packaging the game right now
Parent - - By ml Date 2013-10-31 23:09
That is wonderful news! I just got back in and I'm going to take a swing at changing all the velocities, although I'm interested to know your opinion. If it works fine as is, we could just leave it at 35 fps. Regardless, I'll be here recalibrating everything just in case.
Parent - - By arrow Date 2013-10-31 23:59
I'm getting too tired, if you can submit the exe tomorrow maybe I'll take a look at packaging it correctly.
There's the .app zipped in my git rep
Parent - By ml Date 2013-11-01 01:42
All right!!!! Nice work!! I'll post it to the finals board. I doubt they'll let us submit the exe tomorrow so I wouldn't worry about it. Ruby is really easy to install on Windows anyway. Mac was going to be the bigger obstacle, but you've taken care of that! This is an excellent team effort! Hip hip hooray!
Parent - By ml Date 2013-11-01 02:46
K the finals post is up. Now all we need is for at least three judges to be able to get it to work on their computers. The game turned out really well. There are lots of good touches but my favorite is the players' eyes. They turned out awesome.
Parent - - By ml Date 2013-11-01 20:40 Edited 2013-11-02 01:28
About the .exe..... (and the .app)....

I've spent some time today on the PUTT forum, and I think that having a compiled exe would be good for other contestants so they can check out the game without installing Ruby if they choose. Also, today I heard back from the first person who tried to run StickBall at home on a PC and they said that... (dun dun dun)..... gem install ashton failed. Not a big deal and it will probably work on most of the judges' computers, however, I went ahead and pushed a StickBallClone to github, so that there is a version without ashton which people can try out if their computer is a "toaster".

I would have just updated the normal StickBall repo on github, but I think I don't think I should make changes to that repo right now because the game's deadline has passed. So I created StickBallClone. The clone repo also includes velocity adjustments which I made late yesterday (which are not currently included in the original StickBall repo).

In case you are interested in checking out the changes but don't want to re-download all the media files, here is a list of the main differences:

1 - in Gemfile
#gem "ashton"

2 - In main.rb:4
#require 'ashton'

3 - In rb/field.rb
# several changes, primarily in collision detection but also in setup and update

4 - In rb/beginning.rb
# a few changes in setup

If you feel up to the challenge, it would be pretty cool to have an exe version (with ashton deactivated to be on the safe side). Actually it would be really cool. Actually it would be awesome.

EDIT: fyi upon further investigation, it sounds like the issue with ashton is not compatibility, but dependency: ashton requires Ruby dev-tools. I'm waiting to hear back from the guy who was trying it, to see it works for him with dev-tools installed.
Up Topic Gosu / Gosu Showcase / Anyone up for a Team Project?
1 2 Previous Next  

Powered by mwForum 2.29.7 © 1999-2015 Markus Wichitill