#4 Goal counter in SpaceBall mode

open
nobody
Gameplay (1)
5
2011-03-05
2011-03-05
Anonymous
No

Hi,

This patch adds a new score: the goal counter.

Each time a player hits the ball (with his ship) or shots at it, it becomes the "possessor" of the ball. When the ball explodes on the opponent's home, the posessor wins a "goal point". If it touches his own planet, he loses a "goal point".

I made it a bit cleaner than the cannonkeeper patch (it uses a private attribute and a public method in Player instead of a public attribute ... I should also send a patch to correct that mistake in the provious patch.)

The "possessor" definition is not completly satisfying... if a player simply unsuccessfuly tries to avoid the ball to hit his own planet, he will be punished ... Maybe it should take the angle or a timer into account. It's also easy to "steal" a goal, but that's probably harder to fix (or maybe it can consider the strenght of the shots ...).

hope you like it.

I have other patch ideas but I don't have the list with me (I can only remember a "story mode" to develop the background of the great war).

PS1: French translation of the "Goal" statistics column included, and clean done this time :)
PS2: Do you by chance have/hang out on an irc channel ?
PS3: oh, I'll leave it up to you, but i just realised that the goal count is reset after each match ... maybe it shouldn't.
PS4: btw, with the 164th svn revision, I can't go past the final TabStats... I have to restart the game to continue. is it just me ? controls configuration issue ? (i use Space as the "Special" key.)
PS5: it's late now ...

Discussion


  • Anonymous
    2011-03-05

    oh crap, didn't see I wasn't logged in...

     
  • Mars-Core-Team
    Mars-Core-Team
    2011-03-05

    Hey thanks for your effort!

    I'm impressed how good you are doing with the code! As far as I can imagine, it has to be really difficult to get into this... Alright, we tried to name all methods and variables in a "speaking" way, but documentation is, well, a bit rare :D But you seem to have a good overview of what-does-what already...

    The problems you're mentioning are pretty much the same as there are with kill-counting. When killed someone another? When was it suicide? Should you really get a frag when someone else is shooting at your target, nearly killing it, but it gets destroyed by you, accidentally touching it? That's difficult, and in some places maybe impossible for a machine to judge. But of course, we should do the best to make these wrongly decided situations rare!

    Story was great, but... well that's a hell of work. There should be some scripting system, maybe even a map/level editor... Maybe we would need scrolling maps, because a screen is a bit small for a complete story... Felix and I will focus on network coding the next weeks/months. If you got the power and the time to create something like this: Awesome. If you're really planning to implement great stuff, we may give you write access to SVN, so we haven't to mess around with patches :D

    A IRC channel: We have non, but we will create one, as it already got requested multiple times :D

    The resetting of goals is ok. As you realized (PS4), we changed the rules of SpaceBall (and CannonKeep) a bit: Now you can adjust in the pre-game options with the slider "Point limit" the life of the planets (the slider will get renamed to "Planet Life"). No longer the amount of matches which have to be won. Additionally the ball reduces the planet life exactly by one (two if it was heated).

    This design decisions is based on the following pros and cons:

    Negative consequences:
    - there is no need anymore to smash the ball with a lot of power into the planet
    - maybe a match can be unfair, because it is settled on one map only

    Positive consequences:
    + the rules are more obvious: New players had a lot of problems figuring out what the aim of SpaceBall is (I dropped the ball onto their planet, but my team didn't score! Bug!)
    + no sudden change of the map anymore: New players often look puzzled at the screen, when they didn't realize that a planet exploded and the match switched to the next map
    + matches are shorter (If you have ever tried playing SpaceBall one vs one... it can last forever) Now you may specify that one has to goal three times and then the match will be won
    + sometimes it's fairer: A home planet cannot be protected from really fast balls by a big planet in front of it anymore
    + statistics are more useful: In the previous version, statistics were shown at the end of the last match, displaying stats of this last match... very useful :D
    + it integrates better with the other game modes, which are finished after one map, too.

    Hopefully you see our point, and you are ok with it :D Or you have additional ideas...
    So. Written a wall of text.

    Again, thanks a lot for your work!
    Simon.

     

  • Anonymous
    2011-03-05

    Ok, I understand now... that's right, it felt like something changed but I couldn't figure out what.
    Maybe there could be a message like "press enter to start a new game" or, in the menu, the "Restart the game" entry should be renamed "Start a new game" w/o confirmation if the game is already ended.

    To be completly fair, SpaceBall games should have 2 periods with the same map but homes switched. When there is a sun near a planet, it is especially unfair, imho.
    $ echo "I can try to patch that." >> TODO

    My sister (she loves mars and cannot wait for the network mode to be able to play online with me :p) gave me another idea: She wants complete statistics over time (like fancy graphics and stuff). Although that kind of things is more often seen on online FPS, maybe all events could be printed on the console (like "Marcus[BOT] killed deubeuliou with a shotgun" or "Marvin goaled", ...) and they can then be processed by scripts reading the output (or a file in which the output is written).

    A scripting engine would be awesome. It could later permit servers to easily create new modes :) I know that lua is pretty popular for ingame scripting engines.

    PS: I just remembered another mode idea ... nothing original but a CTF mode could be fun. with bigger maps or with less life maybe, though.