1. Post #201
    Dementei's Avatar
    May 2009
    5 Posts
    This game mode is really good, it's really fun, got it on my server as my default game mode.
    Join up if you want to play: 66.61.66.187:27015 - GarryWare:. Come and play!

    Also was wondering if there are any more mini-games available?
    Thanks.

  2. Post #202

    April 2012
    1 Posts
    Hi !



    Have you guys ever played Wario Ware ? That stupid great game where you have to perform actions in a short timespan ?

    Well, as I am a fan of this series of games, I've thought I could try to make a gamemode where every Lua coder could contribute by adding their own minigame !

    It's still an early prototype, but I'm in need of feedback.

    We are not recruiting, but you can submit your scripts if you made one !

    _____________________________________________
    Essential Links

    Download
    The game is available but still in a prototype status.
    Garry's Mod Beta contains a "stable revision" of our SVN.



    If you want to take part in the experimental revision with maybe new minigames but also code tweak and on-work gameplay changes, use this:
    [list][*] Create a folder called "garryware" in "SourceMods/garrysmod/gamemodes/".[*] Use this SVN on the folder : http://subversion.assembla.com/svn/garryware[/list]


    If you people desire, you can join Garry Ware Steam Community Group.

    Changelog
    SVN Changelog
    _____________________________________________

    In descendant chronological order :

    Most recent YouTube videos :

    GarryWare Two


    Old (Garry Ware One, but on a public server)
    Revision 161 with 24 players (public).





    Older YouTube videos :


    Gameplay with 24-32 players

    What new minigames (2):

    What new minigames :

    Real gameplay footage, at an early stage :




    _____________________________________________

    What is that game?
    It's a game where you play very rapidly a series of microgames. Every microgame lasts from 4 to 12 seconds, and requires the player to be very active.

    Can you name example of microgames?
    [list][*] Don't move ! : You have 3.5 seconds to hide, and then don't move or don't get hit by other player's thrown crowbars for 2 seconds ![*] Break 1 chair ! : Chair spawns in the map, but there is not enough for all the players. Break at least one ![*] Watch the props ... Stand on the missing prop ! : Dryers randomly spawns on boxes. Watch them all, and the one will be disappearing, so rush on the box to earn a point ! You could also block the others players from jumping on the box.[/list]
    How many microgames are there?
    There are currently 34 microgames. It is possible to make minigames for it just by placing your script in a folder that will be automatically loaded.

    Currently available minigames:
    
    Added wares (33) : "alarmcrates" "avoidball" "barrelroll" "battery" "bigcrate" "breakallcrates" "buildtothetop" "bullseye" "calc" "calcthink" "catchball" "chair" "climb" "dontmove" "findthemissing" "flee" "forest" "getoncolor" "hlss" "jumpbox" "meloncrates" "melonharvest" "memorycrates" "paparazzi" "pickupthatcan" "rightorder" "rocketjump" "rollingcolor" "shootcolor" "sprint" "touchsky" "tryclimb" "_empty" 
    Author [wares] :   [1 wares]   Kilburn [8 wares]   Kelth [5 wares]   Frostyfrog [1 wares]   Hurricaaane (Ha3) [17 wares]   xandar [1 wares]  
    
    

    Where to download it ?
    The game is available but still in a prototype status.
    [list][*] Create a folder called "garryware" in "SourceMods/garrysmod/gamemodes/".[*] Use this SVN on the folder : http://subversion.assembla.com/svn/garryware[/list]
    Outdated screenies :
    http://www.hurricaaanes.info/ai/garryware_test1.jpg
    http://www.hurricaaanes.info/ai/garryware_test2.jpg


    Technical details about making minigames
    What do I need ?
    First, you need an idea. You need to stay within this nomenclature :
    - All players are equal. You give them the same weapons and the same abilities.
    That means, no "haunted" minigame where a player needs to flee from the other players.
    - Players can't get damage or be killed.
    - Presence of an item disappears when the minigame ends.
    - Player must win or fail at a minigame. No draw game is possible.

    The minigames
    Basically, a minigame is composed of 2 phases :
    - The Warmup period, where players winning or losing isn't defined. For example, in the "Don't move", it's the time where the players can still move without being penalized.
    - The Action period, where a trigger gets activated. In the case of "Stand on the missing prop !", it's the time when a hidden landmark is used to find all the entities in a box. If a player gets in the bix, he wins.
    - The time required for the warmup and the action phases are defined during the warmup using a function.
    - You can hook functions by naming the function using the hook name as the WARE method name.

    The map
    The map contains hidden landmarks used for the coder in order to spawns entities in or use them for detection. There are:
    - On the boxes.
    - Over the boxes.
    - Over the boxes in the sky level.
    - In the cross of the corridors.
    You can get the list of all the entities in a table using a function.

    The victory states
    When a minigame starts, an "Achieved" status is set : It determines if the player starts with a winning scenario or a losing scenario. It can take 3 values :
    false : The player starts as a loser and much complete something to win.
    true : The player starts as a winner, but needs to avoid doing something.
    nil : The player starts as a loser, but won't know if he won until the end of the minigame. (Currently, only one minigame uses this.)

    During the minigame, a player Achieved status can dynamically change. When he completed a certain thing (bad or good), we can change his Achieved status and Lock his state. Locking validates the point for a player, and prevents that player from changing their Achieved state and/or lock multiple times. You can't unlock a player's status, there is no point.
    Something else can also be done : We can Lock the status a player currently have.

    When a minigame ends, a function in the minigame is called to do some stuff.
    AFTER this function has been called, every player that doesn't have their status Locked, gets it Locked.
    That means it is possible to change someone's Achieved state at the very end of the minigame, which is useful for games like "Break all crates !" or "Stand on a missing prop !".

    Where do I put my minigames ?
    In
    garrysmod\gamemodes\garryware2\gamemode\wareminiga mes
    all files will be loaded automatically. Create a new file in there with your nickname.

    I need to play all your minigames to finally test my own ! Can I test my minigame rightaway ?
    Yes :
    "ware_debug 1" : Enables debug mode, no waiting time before game starts, only one minigame game plays repeteadly.
    "ware_debugname dontmove" : Replace dontmove with the name of your minigame to debug.
    Other options :
    "ware_debug 2" : Enables complete game mode with no waiting time (Solo mode)
    "ware_debug 3" : Enables complete game mode with no introduction minigame (Beware : the introduction minigame is not a useless phase : It helps players to perform a double-model caching so that game doesn't stutter.

    Beware ! These settings sticks on server shutdown. Be sure to put debug to "0" when you don't need it anymore !

    Do you want to contribute?
    Read the minigame examples and don't hesitate to post your minigames.

    Here's an example of the "Calc" minigame :
    WARE.Author = "Hurricaaane (Ha3)"
    WARE.Room = "none"
    
    WARE.CorrectColor = Color(0,0,0,255)
    WARE.ChatCorrect  = Color(0,192,0,0)
    WARE.ChatWrong    = Color(192,0,0,0)
    WARE.ChatBleh     = Color(192,192,0,0)
    WARE.ChatRegular  = Color(255,255,255,0)
    
    function WARE:Initialize()
    	GAMEMODE:SetWareWindupAndLength( 2 , 8 )
    
    	GAMEMODE:SetPlayersInitialStatus( false )
    	GAMEMODE:DrawInstructions( "Prepare to type in the chat ..." )
    	
    end
    
    function WARE:StartAction()
    
    	local a = math.random(10,99)
    	local b = math.random(10,99)
    	self.WareSolution = a + b
    
    	GAMEMODE:DrawInstructions("Calculate : "..a.." + "..b.." = ?")
    	GAMEMODE:PrintInfoMessage( "Calculate", " : ", a.." + "..b.." = ?" )
    	
    end
    
    function WARE:EndAction()
    	GAMEMODE:DrawInstructions( "Answer was "..self.WareSolution.." !" , self.CorrectColor)
    	
    	GAMEMODE:PrintInfoMessage( "Answer", " was ", self.WareSolution.." !" )
    end
    
    function WARE:PlayerSay(ply, text, say)
    	if not ply:IsWarePlayer() then
    		if (text == tostring(self.WareSolution)) or string.find(text, tostring(self.WareSolution)) then
    			return false
    		end
    		return
    	end
    	
    	if text == tostring(self.WareSolution) then
    		local initialLocked = ply:GetLocked()
    	
    		ply:ApplyWin( )
    		if ( ply:GetLocked() and not(ply:GetAchieved()) ) then
    			chat.AddText( self.ChatBleh, ply:GetName(), self.ChatRegular, " thought ", self.ChatWrong, "he could have multiple tries." )
    		elseif initialLocked and ply:GetAchieved() then
    			chat.AddText( self.ChatBleh, ply:GetName(), self.ChatRegular, " has found ", self.ChatBleh, "the correct answer ... but no need to say it twice." )
    			
    		else
    			chat.AddText( self.ChatBleh, ply:GetName(), self.ChatRegular, " has found ", self.ChatCorrect, "the correct answer !" )
    		end
    		return false
    		
    	else
    		ply:ApplyLose( )
    		
    		if string.find(text, tostring(self.WareSolution)) then
    			local txtReplace = string.Replace(text, tostring(self.WareSolution), "<answer>")
    			chat.AddText( self.ChatBleh, ply:GetName(), self.ChatRegular, " said \"" .. txtReplace .. "\" ... ", self.ChatWrong, "not quite right !" )
    
    			return false
    		end
    	end
    end
    


    "Don't move" minigame :
    WARE.Author = "Hurricaaane (Ha3)"
    
    function WARE:Initialize()
    	GAMEMODE:SetWareWindupAndLength(3.5,2)
    	
    	GAMEMODE:SetPlayersInitialStatus( true )
    	GAMEMODE:DrawInstructions( "Don't move !" )
    	return
    end
    
    function WARE:StartAction()
    	for k,v in pairs(team.GetPlayers(TEAM_HUMANS)) do 
    		v:Give( "ware_weap_crowbar" )
    	end
    	return
    end
    
    function WARE:EndAction()
    
    end
    
    function WARE:Think( )
    	for k,v in pairs(team.GetPlayers(TEAM_HUMANS)) do 
    		if (v:GetVelocity():Length() > 16) then v:ApplyLose( ) end
    	end
    end


    We are awaiting feedback. Feel free to tell us what you think. Also, you may want to come and play that game with a lot of people, so get on the Facepunch Test Server (get informed here : http://www.facepunch.com/showthread.php?t=702614 ) which contains a stable revision of Garry Ware. If you would like to play the experimental version, I'd suggest you Vent Mod Server : 78.129.250.5:27016

    Also, please note that this gamemode uses modified entities of other gamemodes to test ideas fast, but it'll come a time when those weapons will be real custom ones.

    Thanks for reading !


    Thanks for a great gamemod =)
    But i hawe a question how do i translate it to other language?
    Reply With Quote Edit / Delete Reply Windows 7 Israel Show Events Dumb Dumb x 6 (list)

  3. Post #203
    Gold Member
    LedZepp's Avatar
    June 2012
    233 Posts
    I started a new server for this :D 50.31.22.201:27015 if you want to check it out!
    Reply With Quote Edit / Delete Reply Windows 7 United States Show Events Dumb Dumb x 2 (list)