Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

1411414 Posts in 69360 Topics- by 58415 Members - Latest Member: sophi_26

April 16, 2024, 11:45:33 AM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsCommunityDevLogs[Greenlit!] Muddledash ~ multiplayer octopus racing
Pages: 1 2 3 [4] 5
Print
Author Topic: [Greenlit!] Muddledash ~ multiplayer octopus racing  (Read 28202 times)
nathy after dark
Level 8
***


Open Sourceress


View Profile WWW
« Reply #60 on: September 11, 2016, 08:52:00 PM »

Looking so good... that video is delightful. :D
Logged

rj
Level 10
*****


bad, yells


View Profile WWW
« Reply #61 on: September 11, 2016, 09:39:55 PM »

btw how do people like the new name? initially i threw "pode position" out there but i've gotten used to muddledash, i'm at peace
Logged

SafetySnail
Level 0
***



View Profile
« Reply #62 on: September 15, 2016, 10:19:03 PM »

@ Capntastic, you're definitely invited to the party
@Nathy, thanks so much! So happy Niall was able to get the game running smoothly enough to record gameplay on our rubbish machines. It was definitely a worry haha.

Well, I'm gonna do a pretty text heavy post this time, so if you're only here for gifs and pictures our website is filled with a bunch of them, please stop in!

So first up, as Niall mentioned he has now left Australia, leaving me to fend these dingos off all myself. It was a wild ride working on a game together in person after so many years only knowing each other as online entities.
We're both really happy with where we've taken this game so far and are excited to take on a new phase of development and make this game something really special.

Some big changes were made to the game right before Niall left, most notable of which is the addition of a present.
Since the first time we showed the game I'd been considering making some sort of battlemode. People loved messing around and bopping each other on the head but the thought of a whole other game mode just for that didn't seem worthwhile to me. It felt too tacked on.

The present brings a capture the flag type feeling to the race. Players want to be the pode to bring the gift to the party so naturally whenever possible they'll try to steal it from their competitors. This allows for a pretty unique wrestle race where players have to decide if they want the present or if they want to maintain their lead.

There is a problem with this though that we haven't quite figure out. Who should win? Right now the party room can be entered by anyone, but you don't necessarily have to be holding the present to be first in the race.
We've considered giving points to players based on who entered the room in what position, who brought the present, etc. as well as only allowing the door to the party room to be opened by the player with the present, but neither of these feel quite right yet. It's gonna take some more thinking because the present is just too fun to try and steal and there's no way we're getting rid of it now!
Suggestions as always are welcome!

As well as this we've also added a bunch of new plants, some rooms, re-worked some traps and with that we've decided to call our current build the official alpha.

I took this build to Beer and Pixels last Tuesday night and had a great time. We'd taken the game there last month and had a lot of great suggestions for how to make the game better or more interesting. It was cool to see some of the same people there again to try it out this time. We had an overall really positive response to the game with even more suggestions that I can't wait to get working on. People played a lot longer this time and it was really fun watching everyone battle over the present and throw their arms up in frustration whenever it was stolen from them. Can't wait to bring it back next month!

So with that, it's now full steam ahead (No pun intended) on getting this thing up on Greenlight!
Logged
SafetySnail
Level 0
***



View Profile
« Reply #63 on: September 17, 2016, 05:49:50 PM »

Hey guys! Thought I might try out some live streaming of level design, would appreciate the company!
http://www.ustream.tv/channel/tFRkxjcWpuN

edit* Short stream today, just seeing how it all worked out. Will be doing more of these in the future so stay tuned.
« Last Edit: September 17, 2016, 07:10:59 PM by SafetySnail » Logged
SafetySnail
Level 0
***



View Profile
« Reply #64 on: September 24, 2016, 05:41:12 PM »

Not too much to say about development lately. Been getting into a lot of room design so I thought I'd show one of my favourites from my recent session:


I'll be doing a room drawover stream on Tuesday night about 5pm AEST if anyone's interested. Be prepared to see one of the worst workflows you could imagine. I know it's bad.
Logged
SafetySnail
Level 0
***



View Profile
« Reply #65 on: October 01, 2016, 02:50:13 AM »

Getting into the nitty gritty stuff before we show the game at AIE's Game Day. Bug finding and UI work a plenty!
Here's some graphics I drew today to be coloured with Niall's magic paintbrush code so I don't have to repeat my very well rehearsed explanation of the controls to new players:


If you guys know of any other gamepad layouts I should account for please let me know, these are the only two I've seen around but I want to try to cover everything!
« Last Edit: October 02, 2016, 12:36:58 AM by SafetySnail » Logged
rj
Level 10
*****


bad, yells


View Profile WWW
« Reply #66 on: October 01, 2016, 03:11:31 PM »

steam controller! i feel like nobody uses them, but theoretically, they do exist
Logged

nathy after dark
Level 8
***


Open Sourceress


View Profile WWW
« Reply #67 on: October 02, 2016, 08:32:37 AM »

steam controller! i feel like nobody uses them, but theoretically, they do exist

I used one for the first time a couple weeks back playing games at another dev's house. So I guess some people do use them, although based on my anecdote, they might mostly be gamedevs.
Logged

Sustrato
Level 1
*


It's a good day to die.


View Profile
« Reply #68 on: October 02, 2016, 05:56:18 PM »

This looks like a really cute, fun game. I'll be keeping an eye on it. Assuming my bros will swallow their masculinity long enough to play it.
Logged

nathy after dark
Level 8
***


Open Sourceress


View Profile WWW
« Reply #69 on: October 02, 2016, 06:10:26 PM »

SWALLOW YOUR MASCULINITY.
Logged

rj
Level 10
*****


bad, yells


View Profile WWW
« Reply #70 on: October 02, 2016, 06:51:34 PM »

hot
Logged

SafetySnail
Level 0
***



View Profile
« Reply #71 on: October 02, 2016, 07:59:47 PM »

Logged
nathy after dark
Level 8
***


Open Sourceress


View Profile WWW
« Reply #72 on: October 03, 2016, 11:03:50 AM »

If this becomes an Easter egg in the game, I'll buy 20 copies  Hand Money Left
Logged

nialltl
Level 0
**


pode racer


View Profile WWW
« Reply #73 on: October 06, 2016, 10:21:01 PM »

hey!
after a sultry move to california I am now ready to emerge from my chrysalis a plump and boisterous game developer once more. if you'll lend me your eyes, I decided I'd like to talk a bit about how the camera works in game. I've been tweaking it a bit more recently and it's returned me to the right headspace. so!

 
camera cameraderie


essentially from the moment we decided to focus on non-fixed-screen multiplayer I was very conscious of how the camera should behave to accommodate players in different stages of the race. the whole respawn system didn’t come for a while but I knew that I was invariably going to have to deal with players in very different regions of the screen at any given point in time. so ignoring the dynamic tag-team respawns, the problem in essence has always been: how do we keep the relevant aspects of gameplay visible on screen at all times in spite of players having freedom of movement over the entire level?


dynamic zooming + velocity lookahead

the camera smoothly interpolates from its current position to the “true” (goal) position, which is determined from the players’ positions. the naïve way to get a goal position ignoring all positional information is just to take the average of player positions. this doesn’t make sense in a racing context however, as somebody at the back of the pack has the same amount of power as anybody else to drag the camera towards them.

Code:
// Naïve positional averaging
if (EqualPlayerPriority) {
    // Regular averaging of positions
    tx = 0;
    ty = 0;
    foreach (Player player in GameManager.ActivePlayers) {
        tx += player.transform.position.x;
        ty += player.transform.position.y;
    }
    tx /= GameManager.NumPlayersActive;
    ty /= GameManager.NumPlayersActive;
}

this way, if we have 4 players in game, they each get 0.25 or 25% of the positional influence. I actually use this just for the spawn room before races begin, since there’s not really a concept of a “leader” in that context and it’s nice to have a bit of motion alongside player movement from the get-go.
in the race itself, we don’t want somebody who’s ultra-fast to entirely eclipse the other players, nor somebody lagging behind to feel overly penalised too early. I store the players in a list sorted by their position in the race (I’ll make another post about how this is figured out since it actually turned out to be less straightforward than anticipated due to the room generation algorithm detailed in a previous post). the goal position is then weighted towards players in the lead, ensuring that the camera’s progressively following the “action” without straying too far from the pack.

the weighted camera positional update then looks a bit more like this:

Code:
// Weight camera priority towards players in the lead
float total = 0;
tx = 0; // goal x
ty = 0; // goal y

// playerOrderList is sorted from the leader at i = 0 to the furthest behind at i = totalActivePlayers
for (int i = 0; i < GameManager.playerOrderList.Count; i++) {
      Player player = GameManager.playerOrderList[i];

      // 'inverse' weight based on position - higher val for further forward players
      float contribution = GameManager.playerOrderList.Count - i;
      if (i == 0) contribution *= 2f; // Give double the standard weight to the leader

      total += contribution;

      // Update from position alone
      Vector2 pos = player.transform.position;
      tx += contribution * pos.x;
      ty += contribution * pos.y;
}

tx /= total;
ty /= total;


this works great except for in situations where players have very high velocities, in the case of e.g. slippy surfaces – since the camera’s position is smoothed out over time, in rare occasions the leader is able to accidentally run offscreen and get killed by a trigger volume (more on this below). so I just added a similarly weighted velocity offset to the positional update, smoothing this over the course of a few frames, to make sure it doesn’t end up looking absurdly shaky when players jump around.

the final ingredient paving the way to the current version is dynamic zooming. muddledash’s camera has a bunch of triggers associated with it:




to make a bit more sense of things, here’s a colour coded version of it:




the key areas to look at are the innermost 2, the teal and green.

if we detect a player in the teal area it implies that they’re significantly away from the goal camera position, which is roughly the center point of the screen (aside from the positional weighting). so this will tell the camera to zoom further out as long as at least one octopus is occupying a teal trigger’s zone. there’s a limit on this of course, just to prevent the camera zooming out indefinitely.
the green area reacts in essentially the opposite way, but it’s a bit more forgiving towards the far-behind players: a zooming in will only occur when all currently active octopodes are within its trigger volume. this means that the camera is a lot more likely in an average game to be zoomed quite far out, but it has the added benefit of really emphasising how close the race is getting when players are all clustered near each other. I do this just by keeping a list of players currently within the zoom-in area, and compare it against the number of players currently active – that is, initialized in-game and in the race.




the red area is a death trigger for players just offscreen, which in turn adds them a list to be respawned at a later date by another player.
and finally, the purple outline is specifically for the gift – it’s got a lot more yield on how far off-screen it can go before disappearing. this comes into play in places where the gift isn’t in anybody’s hands, and it can roll offscreen – it’s very jarring to run after a gift and find that it’s disappeared into thin air!



¿where did it go?

 
the speed at which the camera zooms out is also quite context dependent. when players enter a down-transitioning room or hit an up-transitional booster I signal the camera to zoom way out, which allows people to plan their route ahead a little and overall just feels fairer. this needs to happen quite rapidly just due to the speed of the falling / soaring podes involved. after a transition the zoom rate slows back down for regular play.




I’m accomplishing these smoothing transitions using the absolute classic:

Code:
// smoothVal in range (0, 1)
value += (target – value) * smoothVal

which you should also be multiplying by Time.deltaTime if you’re running outside of FixedUpdate (ie in framerate-dependent code, if using anything other than Unity). for the rapid booster / down room transitions I go as far as smoothing the ‘smoothVal’ variable itself! when there’s a lot of frenetic motion it helps to ease these transitions out a bit so people’s eyes don’t have to jerk around.

and there you have it! that’s more or less how it’s currently implemented. through more playtesting some constants might change here and there but it’s more or less what I’d call the final version.



player in "front" has more of an influence on the camera (indicated by rectangular trigger areas) when jumping at the start


we’ve got a couple of deadlines coming up where Kieryn (aka SafetySnail – it’s time he gets unmasked) will be showing the game off at some events, we’ll have more concrete info on that soon. it’s a great development motivator! hopefully these tech posts are interesting, and if anyone has any specific implementation questions about what we’ve shown so far I’m happy to delve into it more. right now I’m mostly working on getting some UI elements in place and multi-controller support, so I will jump on any excuse to interact with other humans.
« Last Edit: October 06, 2016, 10:28:37 PM by nialltl » Logged

octopus racing -- Muddledash  |  first person skating -- flow state  |  twitter
SafetySnail
Level 0
***



View Profile
« Reply #74 on: October 08, 2016, 11:44:53 AM »

In celebration of World Octopus Day please enjoy a lovely assortment of delectable gifs.










I'd also like to mention that Muddledash will be shown at AIE GameDay this coming Friday, and I'll be attending GCAP for the full 3 days (Oct 31 - Nov 2), would love to see some of you guys there if you're in Sydney/Melbourne!
Logged
nialltl
Level 0
**


pode racer


View Profile WWW
« Reply #75 on: October 10, 2016, 11:48:10 PM »

I don't have much to add just now as I'm mainly working on game flow for AIE Gameday but this just happened and I think it's important that you see


Logged

octopus racing -- Muddledash  |  first person skating -- flow state  |  twitter
Hephep
Level 1
*



View Profile WWW
« Reply #76 on: October 11, 2016, 01:16:13 AM »

All this thread was fun, joy and cuteness and then I got to this last post, and the nightmare begun  Screamy
Logged

MereMonkey
Level 2
**


Creator of Music


View Profile WWW
« Reply #77 on: October 11, 2016, 03:24:52 AM »

This game is looking adorable/great fun you guys!!
Logged

My Site  -  My Twitter - *GASP* MY SPINACH PUFFS!
SafetySnail
Level 0
***



View Profile
« Reply #78 on: October 28, 2016, 06:58:06 PM »

Hey everyone! Quick update here with a few little gifs to keep it interesting.
I'm bringing Muddledash to Melbourne International Games Week from Monday-Thursday and would love for as many people to play it there as possible! Unfortunately we were unable to organise any specific place to show the game so I'll be wandering around GCAP and all over the CBD doing some guerrilla playtesting.
If anyone wants to meet up and hang shoot me a message, would love to meet some peeps.

Anyways, gifs were promised so here's a little look at the re-working I've been doing on up room corner cases. Trying to get a nice flow to them.




Logged
rj
Level 10
*****


bad, yells


View Profile WWW
« Reply #79 on: October 28, 2016, 09:53:58 PM »

DAMN i love those loopies
Logged

Pages: 1 2 3 [4] 5
Print
Jump to:  

Theme orange-lt created by panic