The (Public) Idea Wishlist

The original, free Ace of Spades game powered by the Voxlap engine. Known as “Classic,” 0.75, 0.76, and all 0.x versions. Created by Ben Aksoy.
25 posts Page 1 of 2 First unread post
Triplefox
Scripter
Scripter
Posts: 32
Joined: Thu Nov 22, 2012 5:28 am


I didn't see an idea thread, so I started one. Feel free to add whatever is on your mind for improving the game or the community or something something.

My own first priority for work on B&S is not on game features, but to help with sorting out the technical needs so that there's a clean slate - a "less hacky" Voxlap game first, and then to consider new additions and branches. I think this idea is more-or-less shared by our other devs.

Pyspades is kind of problematic in that respect since many(most?) of its popular scripts are based around protocol hacks. Overhauling it to get the things we want will break a lot of scripts. But the stuff that is still good - all the little bits of tuning and fixes and administrative features - would be a big loss to throw out. So it won't be a simple process of patching here and there; either we'll have "big ugly breaks" where a lot of scripts have to be maintained to keep up, or a new server gets developed in tandem with our existing one.

All that in mind, I have really "core" things on my wishlist, and I hope to work on some or all of them eventually, in some fashion.
  • * More flexible concepts of players and teams. 4 or more "real" teams + spectating(Yourself made a cool 4 teams script, but it really deserves a full treatment); eliminate hard caps on numbers of players; customizable team joining UI; allow an "AI-only" team to exist so that NPC characters can be made; allow players to be things other than deuces(Rats invading the trenches? Aliens pouring out of the UFO in Mesa?)

    * More flexible entities to allow for new game modes and to remove old hacks. More than one intel in the game, capture points and win conditions that don't involve the tents or intel, airstrikes that aren't grenades thrown by teleporting the player, customizable physics and collision parameters.

    * Moving some common /commands into client UI, and investigating a "structured" form of /command that transmits data via JSON or similar, reducing reliance on abusing the chat system. As it was implemented in pyspades, complex commands often implemented some ad-hoc parsing themselves, when what was really called for was something more like a type system that would translate an incoming string into usable data before it reached the command proper.

    * Miscellaneous protocol/API additions so that the server can provide the client with some new custom UI elements at connect time. Text and image positioning/updates and button menus are two obvious ones - in Iceball the core display functionality could be done via a Lua script + APIs, however it would be worth considering something custom that's not dependent on Lua(especially since a lot of things can be done just with a bit of text, menus, and an icon or two).

    * Some new goodies for server admins. This is something I've mentioned a few times in the past but never got around to. More statistics, and ultimately, some overall "popularity" and "playstyle" metrics that help sum up the type of game experience a server has, which can feed back into the community's decisions and hopefully grow the game further. The metrics shouldn't be intended just as "optimization" but also a tool to broaden the game and maybe discover new gameplay, simply by extrapolating how to hit certain values.
Chameleon
Modder
Modder
Posts: 601
Joined: Thu Nov 22, 2012 6:41 pm


Wow. So many ideas... I can add:
Contact Spadille author and insist releasing source code or make him change the default MasterServer IP adress, because now I can't connect to any servers, because Spadille doesn't "know" about BuildandShoot.com OR make the server list have column "server IP/URL adress".
(My AoS isn't on C: disk.)
HoboHob
Winter Celebration 2013
Winter Celebration 2013
Posts: 979
Joined: Mon Nov 05, 2012 5:02 pm


Yup. Just yup.

@Chameleon: StackOverflow (an admin on here) makes Spadille and he will fix it whenever (though I do agree he should make it open sauce)
rakiru
Coder
Coder
Posts: 1349
Joined: Sun Nov 11, 2012 12:26 pm


HoboHob wrote:
Yup. Just yup.

@Chameleon: StackOverflow (an admin on here) makes Spadille and he will fix it whenever (though I do agree he should make it open sauce)
As nice as that would be, I believe there are reasons it isn't.
[Bay12]Jake
Deuced Up
Posts: 32
Joined: Wed Nov 21, 2012 9:07 am


I'd like to see a couple more weapons added (a proper Light Machine Gun and a grenade launcher), but with server controls on how many of each type and moddable damage, range and magazine size. That would open up some really cool possibilities for scenarios and themed games, as well as eliminate all the pointless bickering about whether new weapons enhanced the game or not. (Don't like everyone having a sidearm? Turn them off in the server settings.)
danhezee
Former Admin / Co-founder
Former Admin / Co-founder
Posts: 1710
Joined: Wed Oct 03, 2012 12:09 am


Oh man, I am going to wait till sunday to post all of my ideas. I am visiting my parents and I didnt bring my computer.
Fluttershy
Build and Shoot's 1st Birthday
Build and Shoot's 1st Birthday
Posts: 165
Joined: Mon Nov 05, 2012 7:00 pm


Personally?
Actual weapon balance (which doesnt just consist of changing the smg)
buffed blocks (takes more hits to destroy with bullets)
HoboHob
Winter Celebration 2013
Winter Celebration 2013
Posts: 979
Joined: Mon Nov 05, 2012 5:02 pm


danhezee wrote:
Oh man, I am going to wait till sunday to post all of my ideas. I am visiting my parents and I didnt bring my computer.
Hah, me too.
Sasquatch
Mapper
Mapper
Posts: 141
Joined: Wed Nov 14, 2012 5:18 pm


Make bullets do FAR less damage to blocks. That way if people insist on having rapid fire guns (which I would protest), at least they wont be grief tools.

Bring back 100 block inventory.
Intel reveals location of enemies for a short time.
Press G to toggle grid on map.
Make text contrast with background, so that messages are readable against white blocks or on snow maps.

Stuff nobody will agree with:

Get rid of mini map in the corner.
Remove auto step.
danhezee
Former Admin / Co-founder
Former Admin / Co-founder
Posts: 1710
Joined: Wed Oct 03, 2012 12:09 am


I love the soccer script. I would love to see it modified so players can hit one another with the spade and cause the other player to get knocked back.
[Bay12]Jake
Deuced Up
Posts: 32
Joined: Wed Nov 21, 2012 9:07 am


Oh, yeah, another idea I had soon after deployable HMGs were announced. Ammunition boxes that have to be picked up from the tent and delivered to the gun's position in order to keep it in action, and are preferably visible in a similar fashion to the intel. Not only does it encourage players on the same team to work together, it opens up another avenue for neutralising an enemy HMG by disrupting the supply of ammunition.
danhezee
Former Admin / Co-founder
Former Admin / Co-founder
Posts: 1710
Joined: Wed Oct 03, 2012 12:09 am


The marquee:

A way to write messages with blocks. The idea for the marque was based off of seeing the marker script by hompy in game.

Having a way to write messages outside of chat opens of the door for near infinite possibles with scripts and game modes.

You could have the rules on permanent display.
You could show the team scores in real time at set position on the map.
You could have a training area.

pseudo code of how I imagine it would work
Code: Select all
Marquee script
 
#-----------------------------------------------
# It would be based off of Hompy's marker script
# each letter is 5 blocks wide by 7 blocks deep
# with one empty block of space between each letter 10 letters would fit in one grid cell
# if we implement rows there would be up to 8 rows as well, for 80 letters per grid cell
# -----------------------------------------------
 
WriteToMarquee(message, cell, row, direction, color):
       
        #-------------------------------------------
        # message is the message you want to display
        # cell is the starting grid coordinate location for the message
        # each grid cell is offset by 64 blocks
        # direction is the way the player will face in order to read the message
        #       north east south west
        # color of the text
        #
        # EXAMPLE
        #
        # WriteToMarquee("Danhezee has the intel!", "B3", 1, "east", enemy.color):
        #
        # The example above would write "DANHEZEE HAS THE INTEL" begining
        # in cell B3 on the upper most row and continue through to the next two grid cells.
        #--------------------------------------------
 
EraseMarquee(cell, row):
 
        #------------------------------------
        # Erases messages line by line
        # by drawing a line 64 blocks long
        # through the row appropiate row
        # and breaking a block
        #------------------------------------
the above code is located here http://pastebin.com/HW4BkXDJ

The letters for for script.
Code: Select all
#BaseMarker is the base class for all the markers in the marker script
#LetterMarker inherits its stuff from BaseMarker
 
class LetterMarker(BaseMarker):
        # stuff goes here
       
class LetterA(LetterMarker):
        name = 'A'
        triggers = ['!A']
        s = """
   . X X X .
   X X . X X
   X X . X X
   X X X X X
   X X . X X
   X X . X X
   X X . X X
   """
 
class LetterB(LetterMarker):
        name = 'B'
        triggers = ['!B']
        s = """
   X X X X .
   X X . X X
   X X . X X
   X X X X .
   X X . X X
   X X . X X
   X X X X .
   """
 
class LetterC(LetterMarker):
        name = 'C'
        triggers = ['!C']
        s = """
   . X X X .
   X X . X X
   X X . . .
   X X . . .
   X X . . .
   X X . X X
   . X X X .
   """
 
class LetterD(LetterMarker):
        name = 'D'
        triggers = ['!D']
        s = """
   X X X X .
   X X . X X
   X X . X X
   X X . X X
   X X . X X
   X X . X X
   X X X X .
   """
 
class LetterE(LetterMarker):
        name = 'E'
        triggers = ['!E']
        s = """
   X X X X X
   X X X X X
   X X . . .
   X X X X .
   X X . . .
   X X X X X
   X X X X X
   """
 
class LetterF(LetterMarker):
        name = 'F'
        triggers = ['!F']
        s = """
   X X X X X
   X X X X X
   X X . . .
   X X X X .
   X X . . .
   X X . . .
   X X . . .
   """
 
class LetterG(LetterMarker):
        name = 'G'
        triggers = ['!G']
        s = """
   . X X X .
   X X . X X
   X X . . .
   X X . . .
   X X . X X
   X X . . X
   . X X X .
   """
       
class LetterH(LetterMarker):
        name = 'H'
        triggers = ['!H']
        s = """
   X X . X X
   X X . X X
   X X . X X
   X X X X X
   X X . X X
   X X . X X
   X X . X X
   """
       
class LetterI(LetterMarker):
        name = 'I'
        triggers = ['!I']
        s = """
   . X X X .
   . X X X .
   . . X . .
   . . X . .
   . . X . .
   . X X X .
   . X X X .
   """
 
class LetterJ(LetterMarker):
        name = 'J'
        triggers = ['!J']
        s = """
   X X X X X
   X X X X X
   . . . X X
   . . . X X
   X X . X X
   X X . X X
   . X X X .
   """
 
class LetterK(LetterMarker):
        name = 'K'
        triggers = ['!K']
        s = """
   X X . . X
   X X . X .
   X X X . .
   X X . . .
   X X X . .
   X X . X .
   X X . . X
   """
 
class LetterL(LetterMarker):
        name = 'L'
        triggers = ['!L']
        s = """
   X X . . .
   X X . . .
   X X . . .
   X X . . .
   X X . . .
   X X X X .
   X X X X .
   """
 
class LetterM(LetterMarker):
        name = 'M'
        triggers = ['!M']
        s = """
   X . . . X
   X X . X X
   X . X . X
   X . . . X
   X . . . X
   X . . . X
   X . . . X
   """
       
class LetterN(LetterMarker):
        name = 'N'
        triggers = ['!N']
        s = """
   X . . . X
   X . . . X
   X X . . X
   X . X . X
   X . . X X
   X . . . X
   X . . . X
   """
 
class LetterO(LetterMarker):
        name = 'O'
        triggers = ['!O']
        s = """
   . X X X .
   X X X X X
   X X . X X
   X X . X X
   X X . X X
   X X X X X
   . X X X .
   """
 
class LetterP(LetterMarker):
        name = 'P'
        triggers = ['!P']
        s = """
   X X X X .
   X X X X X
   X X . X X
   X X X X .
   X X . . .
   X X . . .
   X X . . .
   """
 
class LetterQ(LetterMarker):
        name = 'Q'
        triggers = ['!Q']
        s = """
   . x x x .
   X . . . X
   X . . . X
   X . . . X
   X . X . X
   X . . X .
   . X X . X
   """
 
class LetterR(LetterMarker):
        name = 'R'
        triggers = ['!R']
        s = """
   X X X X .
   X X X X X
   X X . X X
   X X X X .
   X X X . .
   X X . X .
   X X . . X
   """
 
class LetterS(NumberMarker):
    name = 'S'
    triggers = ['!S']
    s = """
   . X X X X
   X X . . .
   X X . . .
   . X X X .
   . . . X X
   . . . X X
   X X X X .
   """
 
class LetterT(LetterMarker):
        name = 'T'
        triggers = ['!T']
        s = """
   X X X X X
   X X X X X
   . . X . .
   . . X . .
   . . X . .
   . . X . .
   . . X . .
   """
 
class LetterU(LetterMarker):
        name = 'U'
        triggers = ['!U']
        s = """
   X X . X X
   X X . X X
   X X . X X
   X X . X X
   X X . X X
   X X X X X
   . X X X .
   """
 
class LetterV(LetterMarker):
        name = 'V'
        triggers = ['!V']
        s = """
   X . . . X
   X . . . X
   X X . X X
   X X . X X
   X X . X X
   . X X X .
   . . X . .
   """
 
class LetterW(LetterMarker):
        name = 'W'
        triggers = ['!W']
        s = """
   X . . . X
   X . . . X
   X . . . X
   X . . . X
   X . . . X
   X . X . X
   . X . X .
   """
       
class LetterX(LetterMarker):
        name = 'X'
        triggers = ['!X']
        s = """
   X . . . X
   X . . . X
   . X . X .
   . . X . .
   . X . X .
   X . . . X
   X . . . X
   """
 
class LetterX(LetterMarker):
        name = 'X'
        triggers = ['!X']
        s = """
   X . . . X
   X . . . X
   . X . X .
   . . X . .
   . . X . .
   . . X . .
   . . X . .
   """
 
class LetterX(LetterMarker):
        name = 'X'
        triggers = ['!X']
        s = """
   X X X X X
   . . . . X
   . . . X .
   . . X . .
   . X . . .
   X . . . .
   X X X X X
the above code is located here http://pastebin.com/b9jVLq0G

Some concept art of what you could do with a marquee script:

Image

Image

Image
HoboHob
Winter Celebration 2013
Winter Celebration 2013
Posts: 979
Joined: Mon Nov 05, 2012 5:02 pm


Interesting idea... very interesting.
rakiru
Coder
Coder
Posts: 1349
Joined: Sun Nov 11, 2012 12:26 pm


I wrote a write-in-blocks thing for Minecraft - it's not hard, it's just effort.
Bobby Lemain
Deuced Up
Posts: 27
Joined: Wed Nov 28, 2012 8:45 am


-The ability to pick up and move the intel for both teams using the "use" hotkey like in Counter-Strike.
-Scrolling chat
-Different colors for admin messages, team, global, pm, to self, and things like votekick
-Double tapping tab keeps score window up so you can easily look at numbers of people to kick
-Keep track of the type of kill next to name in score window(?)
-I was trying to work on it myself but have to study for finals so gave up but: a script to just refill blocks endlessly
-Ability to add permissions from in-game like in Minecraft
-Ability to make new user-accounts with specified permissions in them in-game like "mod", "builder", etc.
-Ability (only for admin) to change passwords on other user-accounts in-game
-Change fly to something more like spectator mode
-Dynamic lighting that follows the clock of the server its on
-Bomb Defuse game-mode?
-Show team scores on top of screen at all times so you don't have to hit tab?
Last edited by Bobby Lemain on Sat Dec 01, 2012 7:37 am, edited 1 time in total.
25 posts Page 1 of 2 First unread post
Return to “Ace of Spades 0.x Discussion”

Who is online

Users browsing this forum: No registered users and 31 guests