kagato
Member
- Joined
- Jan 28, 2008
- Messages
- 303
I think this is a great idea. I've thought of doing something similar on the PSP (my current homebrew platform), but haven't acted on it yet. So I might as well share my ideas here.
Warning: long post. Brain dump follows.
There are several minigame-games around, like Mario Party and WarioWare, but my favourite is Bishi Bashi.
You could say it's the "purest" example, in that it consists entirely of minigames (no world map or boardgame getting in the way), so that's where I'm drawing my inspiration.
What do people think? Too much information?
Warning: long post. Brain dump follows.
There are several minigame-games around, like Mario Party and WarioWare, but my favourite is Bishi Bashi.
You could say it's the "purest" example, in that it consists entirely of minigames (no world map or boardgame getting in the way), so that's where I'm drawing my inspiration.
- The main program provides the overall game engine, menus, and a scripting environment. (lua, fenix, python, whatever -- lua's my personal preference.)
I'd use a compact scripting language over native binaries for the minigames -- for ease of development and maybe portability, but mostly so you can sandbox the environment the games run in. If you're offering downloadable executables during the game, a bit of security is worth having. It should also help keep the minigames nice and small.
- I'd also encourage a standard format for all the games -- ie, each game must provide a logo/icon, display instructions, return a score within a known range (eg. 0-10 points) for aggregate scoring, respect a given time limit, etc. So instead of completely handing over control to the minigame, maybe the main game calls the help() or game() function for each frame of the loop, and controls the other factors externally.
- At the main menu, you can pick Single Player or Multiplayer; Multiplayer options are Take Turns, Join Net Game or Start Net Game.
Game types are Pick a Game (single player only), Play [N] Games (where N is a selectable #), Marathon (play every game) or Tournament (Multiplayer only, #games determined by #players).
- Games can support a minimum and maximum number of players. Most games should support a minimum of 1 player, but may require 2 or more for versus-style games if the developer doesn't include AI players. Likewise, most games should support multiple players (perhaps via splitscreen for solo-style games). If the current number of players isn't supported by the game, it isn't listed for selection.
(Take Turns requires 1 player support, as only one person plays at a time.)
- You're then presented with the game selection grid. Pick a Game launches that game immediately, and returns to this screen again afterwards; other modes let you select as many games as are needed (or select Random Play and let the program pick them for you), and plays through until finished.
- If you've joined a net game, and you don't have all the minigames, you are asked if you want to download them. If Yes, they are added to your game library, otherwise you are disconnected from the server.
- If you're playing Take Turns, each player is asked to enter their name (and optionally select an avatar, if supported). For all other game modes, this info can be stored in the game settings.
- Now the minigames are played in random order. First the instructions are displayed, the game is played, then the aggregate score table for that round is shown. (In Take Turns, each player sees the instructions and plays, and the scores are shown once everyone's played that round.)
- Finally you get the pretty end-game graphics and final player scores, and you're returned to the main menu.
What do people think? Too much information?