Master Sword: United (Urdual? Umpteenth Attempt?)

thesupersoup

Adventurer
Lead MSU Developer
MSS Developer
MSC Developer
MSU Developer
Jan 5, 2009
213
8
27
What's up.

The short of it: I'm making Master-Sword in Unity. You're invited to help. Feel free to skip The long of it: if it doesn't rumpel your stiltskin.

The long of it: I'm a full-time indie dev, and a full-time student. That's right, two full-times. I've discovered that the secret to catching the sunrise is to watch it set the night before and then start writing code.

My work has led to the development of Hubris: a flexible, open-source framework for Unity that reproduces many modern (and Source/GoldSrc specific) features:
  • A command-driven console with custom input manager and keymapping
  • A player controller built from the ground up to move and feel like a modern controller
  • NPC AI based on behavior trees (I say "based on" loosely. It's still a work in progress, let me know if you wanna hear all about it)
  • Three. "Many modern features" is like three features. There's probably more if I sat and thought about it longer but those are the big ones.
I've also started work on a network transport for the Mirror networking layer. Mirror was created to replace Unity's depreciated UNET. My transport wraps up Facepunch.Steamworks, which is a pretty sweet Steamworks API implementation for Unity, and makes Steamworks available to Mirror. Theoretically, at least. It's untested as of yet. I call my transport MirrorpunchSteam.


So I'm more than happy to be the one behind the cart, pushing it along until it gains the momentum to roll on its own. My projects above (and the others I listed too, I think) fall under the MIT license, which means they can be used by anyone for any purpose, commercial or non-commercial. Just bear that in mind if you decide to contribute. It would be great to have extra pairs of eyes and pull requests.


All that said, Hubris and MirrorpunchSteam are the foundation I'd like to build Master-Sword: United on. Hubris is being actively developed in tandem with a (non-Master-Sword) game I'm working on, and the core features are well tested enough at this point that I think they're a solid foundation to start with. I roughed up MirrorpunchSteam last week, and will be integrating it with the aforementioned game over the next few weeks, so soon it should be at least an alpha level of functional as well.

[End skip here]

devshot1.png
Your scientists were so preoccupied with whether or not they could, they didn’t stop to think if they should.


Master-Sword: United needs Level Designers; either porting over the geometry from Source .bsp or .map files (THIS IS THE IDEAL SOLUTION), or designing new levels from scratch (THIS IS LESS IDEAL BUT MORE REALISTIC). Master-Sword: United needs 3D Artists; I've ported over the existing models/textures into Unity... so we have a rat and a handful of weapons. If you know C#, we need you too. Also Sounds; Sounds are important.

If you love Master-Sword and can find it in your heart to be disappointed one last time, what have you got to lose?


My commitment—
Master-Sword: United, v0.1-alpha (By December 2019)

  • One map (not a familiar Master-Sword location, at least at first) Might be part of a familiar location
  • Single-player only (we'll see about possible LAN support; internet later)
  • Standalone launcher (No Steam integration, at least at first)
  • Local character save files
  • Three enemies, with item drops on death
  • All MS:S weapons implemented (the whole rusty family, I think, and a bow)
  • Proof-of-concept stats and skills (gain experience for performing actions, level up)
  • Proof-of-concept Inventory system (drag-and-drop item management; hands, packs)
  • Proof-of-concept Merchant system (sell items for gold, buy items)
 
Last edited:

thesupersoup

Adventurer
Lead MSU Developer
MSS Developer
MSC Developer
MSU Developer
Jan 5, 2009
213
8
27
@Xeropace what's this I hear about you doing an MS:U? What did your U stand for?
 
Last edited:

Thothie

Administrator
Staff member
Administrator
Moderator
Lead MSC Developer
MSC Developer
Apr 8, 2005
15,991
198
lost
@Xeropace what's this I hear about you doing an MS:U? What did your U stand for?
If that's a call for suggestions... When I first heard it, I couldn't help but think how syncratic the title "MasterSword: Unite" would be, if it were to continue the plot we hobbled together for MSS. Kinda encompasses the whole of the story's framework in one go, both on the the tragedy's end and solution's. It also rather encourages a certain overarching theme in any story of your own, should you wish to go there instead.
 

Xeropace

New Adventurer
MSC Developer
MSU Developer
Aug 23, 2005
408
3
It was for "United" or "Unity", as it was also a Unity version. Progress was reported somewhere in this thread. It was a massive work in progress name, just made it easier to reference between MS:C, MS:S and MS:U.

I had a basic centralised server for characters with auth, a master server + connecting system, you would load, be able to select a server then connect in as your character and be able to run around punching cubes with raycasts similar to MS:C. It also had chat. I think @Skillasaur helped me test it once.

In truth, the conversations in that topic then turned in to lots of people having lots of suggestions. This massively derailed me and also made me start to feel like I couldn't complete the vision everyone had. Notable around combat suddenly being physical and animation based (Like Chivalry, Mordhau, etc) Really I should have just kept going with my simple approach and iterated from there.

I was aiming to build a modern version of the exact same gameplay - but I think others pictured the game evolving a little more. Part of me likes how it is in MS:C though. It's complex enough but also simple enough for me to chill, chat and hang out whilst slaying stuff.
 
Last edited:

thesupersoup

Adventurer
Lead MSU Developer
MSS Developer
MSC Developer
MSU Developer
Jan 5, 2009
213
8
27
Care to merge then? If you've already got characters/servers working, that's another big chunk taken care of.
 

Thothie

Administrator
Staff member
Administrator
Moderator
Lead MSC Developer
MSC Developer
Apr 8, 2005
15,991
198
lost
I'd always assumed it was MS:Unity, and somehow didn't realize you were trying to differentiate when ya posted that. That, umm... That would be counterproductive, to say the least.

In truth, the conversations in that topic then turned in to lots of people having lots of suggestions. This massively derailed me and also made me start to feel like I couldn't complete the vision everyone had. Notable around combat suddenly being physical and animation based (Like Chivalry, Mordhau, etc) Really I should have just kept going with my simple approach and iterated from there.
Sh*t... My bad. I have this nasty habit of building on other people's ideas, based on some theme I think they've picked up on, in hopes that they'll just be inspired to do more of the same, and yeah, I occasionally break the object of my admiration in my selfish enthusiasm. Did it to Oyster, recently. After pulling on his poor teeth for days, trying to encourage and guide him to expand on his "Underkeep Quest System" himself, so he'd be more free to pursue his own vision, we finally got the damned thing working to his satisfaction, and then, being the idiot that I am... Rather than simply congratulating him and letting him move on, like I should have, I instead came up with a dozen critical suggestions on how to better achieve and deepen his theme (one often so illusive to me) - every one of which would involve even more of the same, painfully slow, step by step process, that he's been insisting he can't do all this time. So, all I really achieved, was to demonstrate to him just how bottomless the scripting pit is.

This is my inner bad parent at work. :mad:

Still, I think you had the talent to do as I suggested (assuming you liked the idea), and you weren't held up by a lack of prioritizing parts of the project, so much as by the fact you went at it alone. Even if you had wisely ignored me for practical reasons (which sometimes seems to be my primary function around here), ya just woulda been held up again down the road, with no one to drive with.

MSC "works", insomuch as it does, as there are dozens of community members coming in and out, donating both things and ideas, and, most importantly, motivation. We really do have a dev team over a hundred strong, they've just never been here all at once. Ya can't expect to pick up a multimedia torch like that, and carry it alone. The only sort of epic storytelling one can do that way, tend to be like novels, where such works are often just people beautifully expressing the pain of their loneliness. Multiplayer games, on the other hand, are places where people come together. They work best, when the design effort behind them reflects that. (I mean, we all dream of being an exception-to-the-rule monster like Notch, but that's definitely one of those wishes where, should you find a lamp, the genie doesn't have to put any effort into screwing you over - in addition to not being the sort of game this is.)

So, strongly suggest, integrate what ya got. One live MS:U project is better than two dead ones (well, three... I gotta look up the user who was working on that other).

...and also, don't worry about "the vision everyone has", we all know that not even Rockstar Studios could live up to that.
 

The Man In Black

Administrator
Staff member
Administrator
Moderator
Lead MSC Developer
MSC Developer
RiP
Jul 9, 2006
6,992
54
Dreaming is the easy part. You can find a million dreamers. Finding people who can actually do it is the hard part.

That being said, as any software developer knows, a certain amount of foresight is beneficial if you don't want to have to tear the whole system down or attach things with duct tape when you design the next part.
 

thesupersoup

Adventurer
Lead MSU Developer
MSS Developer
MSC Developer
MSU Developer
Jan 5, 2009
213
8
27
That being said, as any software developer knows, a certain amount of foresight is beneficial if you don't want to have to tear the whole system down or attach things with duct tape when you design the next part.
Agreed. Hence, Hubris. I designed it to be modular, granular, and flexible. There's lots of low-level classes with virtual or abstract methods to make things easy. Weapons are just derived InvItems which override the interact methods of the InvItem, and then weapon classes can be derived from there; the base NPC class can be derived into specific types of NPCs, even the player has a base class which is then derived, overriding the different interact methods with specific functionality (I was envisioning FPS, RTS, and RPG player controllers from the beginning). I've already got the backend done for a simple inventory, so adding RPG specific stats will be an easy extension of the current EntStats class, etc.

I'm also really proud of my console, simple as it is. It's relatively simple to add new commands and variables to do whatever is needed.

I wanted to make something that would help me quickly get the basics up and running for any sort of game I wanted to make, and to enable others to do the same. MS:U will be my RPG focused implementation of Hubris.
 

Skillasaur

New Adventurer
Alpha Tester
Jan 1, 2006
113
0
29
The two killers of personal projects - motivation and time. For what it's worth I admire everyone in this thread for the amazing work they've done, supporting or actively contributing to this wonderful game. (Also, my own contribution of a single map would never have seen the light of day without Thothie taking the reins.)
 

Thothie

Administrator
Staff member
Administrator
Moderator
Lead MSC Developer
MSC Developer
Apr 8, 2005
15,991
198
lost
A good framework and core design philosophy that generates its own path, even when you or your team loses their own, certainly helps - with discipline, you can hack on that forever, and eventually get something, regardless of your actual level of talent. Problem is, time is limited, and it's easy to get so absorbed in the puzzle at hand that you lose track of the vision, or so wrapped up in the vision, that the mountain of puzzles seems unsurmountable. If you have others around you to switch off between those inexorable human tendencies, it helps one ignore all that, and just build one's piece of the puzzle.

"Hubris" though... Kinda like it for the same reasons I like "MS:Unite", but it might be another case where it's ironically descriptive of both a good and bad thing. ...Not that I can talk.
 

thesupersoup

Adventurer
Lead MSU Developer
MSS Developer
MSC Developer
MSU Developer
Jan 5, 2009
213
8
27
It was hubris of me to attempt what I'm attempting at my level of software development expertise, but that's served as all the more motivation to succeed in whatever capacity.

@Xeropace You do have the first mover advantage. Do you want to maintain leadership of the initiative, share leadership, or defer leadership? I'm flexible.
I'll work on getting an Orc enemy implemented along with a sword as a proof-of-intent.
 

thesupersoup

Adventurer
Lead MSU Developer
MSS Developer
MSC Developer
MSU Developer
Jan 5, 2009
213
8
27
There wasn't a chaos axe in the Source engine models I imported, unfortunately.
 

Xeropace

New Adventurer
MSC Developer
MSU Developer
Aug 23, 2005
408
3
None of my code exists anymore. This was years ago and I threw it out, as I often do with a lot of my projects.

There was nothing in it I couldn't make again. Apart from maybe the networking stuff as that was all done using Bolt - which is now Photon Bolt (bought out by a competitor) and I have no idea if it's still any good/works.

The character/log in/central server, etc. was just some really small C# endpoints with a database behind it. I could write that stuff back up in a day. I was using Unity's built in, and rather simple, http form posting to send web requests between servers. Seemed to do the job.

My comment about getting derailed wasn't aimed at you Thothie - everyone was doing it. I then didn't know what I wanted to make and let myself lose my own vision.

As for me personally being on MS:U - I came back to help look at MS:C first. I'm happy to assist if there is an MS:U but I don't want to make any formal commitments.
 
Last edited:

Thothie

Administrator
Staff member
Administrator
Moderator
Lead MSC Developer
MSC Developer
Apr 8, 2005
15,991
198
lost
None of my code exists anymore. This was years ago and I threw it out, as I often do with a lot of my projects.
Gawds, people, don't do this! :oldcry:
I have code on this computer that's so old, I ported it from a 5.25" floppy, and have to run it on an emulator.

gawds_I_am_old.gif

Still, at least ya has someone ya can come to and bounce ideas off of. Rubber ducks help keep a fresh perspective, be they coders or laymen, and are often a godsend.
 

thesupersoup

Adventurer
Lead MSU Developer
MSS Developer
MSC Developer
MSU Developer
Jan 5, 2009
213
8
27
@Xeropace Good deal. I just wanted to make sure I wouldn't be stepping on any toes. Also that's rough, but no worries.

Ok, so here's the commitment I'm willing to make to start this party:

Master-Sword: United, v0.1-alpha (By December 2019)
  • One map (not a familiar Master-Sword location, at least at first) Might be part of a familiar location
  • Single-player only (we'll see about possible LAN support; internet later)
  • Standalone launcher (No Steam integration, at least at first)
  • Local character save files
  • Three enemies, with item drops on death
  • All MS:S weapons implemented (the whole rusty family, I think, and a bow)
  • Proof-of-concept stats and skills (gain experience for performing actions, level up)
  • Proof-of-concept Inventory system (drag-and-drop item management; hands, packs)
  • Proof-of-concept Merchant system (sell items for gold, buy items)
I will be making this as a secondary weekend project, both to my main game project and a semester full of coursework, so reasonably I can estimate release by December at the latest. Anyone who wants to come alongside and help is welcome, and will move that release window up in addition to possibly adding features.

Also, any prospective level designers, we need you. I'm determined to make the transition as convenient as possible, so here are a few tools for you to check out:

  • SaberCSG is an awesome pseudo-brush-based level design plugin for Unity. It's open source, and from my experience, relatively easy to use (once you cruise to the documentation to see how it does things differently)
  • I'm working on a "displacement map" style mesh editor plugin that I'm just calling MeshEdit. (This is just the proof-of-concept release for MeshEdit, I need to work up another that fixes some errors being thrown RE: mesh instantiation and makes selecting vertices easier/allows for subdivision of a surface.)
(I took care of the instantiation errors for MeshEdit today and pushed it up as v0.2)

Hopefully with those two tools, any experienced level designers will find the transition over to Unity acceptable. If there's any additional tools or features you'd like or that might make the job easier, let me know and I'll see what I can do.

Let's gooooooo!
 
Last edited:

thesupersoup

Adventurer
Lead MSU Developer
MSS Developer
MSC Developer
MSU Developer
Jan 5, 2009
213
8
27
We only really have the MS:S assets to work with at the moment, until we get some 2D and 3D artists onboard. That and any publicly available (PROPERLY LICENSED!) assets. I've purchased a bunch of assets from the Unity Asset Store for my endeavors, but I'm still trying to figure out what the process would be to share them with a team, if that's even something I can do.

What is it you'd be most excited to work on?
 

jon50559

Adventurer
RiP
Crusaders
The True Followers of the Lost
Mar 6, 2010
677
8
25
U S A
At the moment I'm rekindling my interest for level design. In the past I designed Idemark's Tower and Shender_East that are in MS:C (with plenty of help from Thothie/J-M!)

My intention is to sort of doodle and re-design some areas and things from the original game, see how it comes out, and keep adjusting to learn more of these toolsets. I don't have a programming background, and have pretty limited model / UV skills.
 

thesupersoup

Adventurer
Lead MSU Developer
MSS Developer
MSC Developer
MSU Developer
Jan 5, 2009
213
8
27
Beautiful! That would be much appreciated help.

The best place to start would be to download Unity, and try playing around with these tools:
  • SaberCSG - Closest tool I've found to replicating the Valve Hammer Editor's brush based level design functionality
  • MeshEdit - My work in progress Source Displacement Map style editor; it's still pretty rough around the edges but lets you turn a mesh into it's respective verts and edit them individually with the Move tool.
  • ProBuilder - Official Unity tool for pseudo-brush work. I don't have as much experience with it, but it may also help. You'd want to install this through Window -> Package Manager -> All packages -> ProBuilder.
Here's a few dev mats in a .zip to help with prototyping levels: https://drive.google.com/open?id=1bYGtdEPOympeBF3wewet_R0YHbzEccjM

Other than that, just peruse the Unity Asset Store for free grass textures and such. I'm investigating whether I can distribute assets I've purchased to a team. I definitely can't, so I'll be cruising for free assets we can use, and I'll see if I can't port over the existing MS:C textures to Unity.
 
Last edited:

thesupersoup

Adventurer
Lead MSU Developer
MSS Developer
MSC Developer
MSU Developer
Jan 5, 2009
213
8
27
Level Designers,

I now have all the (non-Half-Life specific, I hope...) textures extracted from MS:C .wad files, and I have a workflow for creating normal maps. If there are any specific textures you need please let me know, otherwise creating normal maps is fairly low on my priority list at the moment.

OpenGameArt might also save us some time, just make sure any textures you grab have appropriate attributions in a README or LICENSE file with the map or some such: https://opengameart.org/textures
 
Last edited:

Xeropace

New Adventurer
MSC Developer
MSU Developer
Aug 23, 2005
408
3
ProBuilder (back when it was a paid asset) is what I used for my pass at MS:U - it works a lot like brush editors, it had plenty of issues back then though so hopefully it's much better now. My only issue with it is, you needed quite a bit of Unity knowledge to use it - making it awkward to have "mappers" work on your game without them having full knowledge of the Project/Unity, rather than just mapping tools.

I can assist with textures, texture maps, shaders, etc.
 

Thothie

Administrator
Staff member
Administrator
Moderator
Lead MSC Developer
MSC Developer
Apr 8, 2005
15,991
198
lost
I know someone who actually made a mapping proggie for end users in his Unity game. It's just a terrain warper you drop a set of models and entities in through a menu though. Dunno if that's the sorta thing you'd be interested in enough for me to go pester him about - see if he can throw ya a bone.
 

thesupersoup

Adventurer
Lead MSU Developer
MSS Developer
MSC Developer
MSU Developer
Jan 5, 2009
213
8
27
@Xero Textures and shaders! From scratch, or modifying existing? Doesn't matter, we need 'em. What do you need from me to get started?

@Thothie That'd be great, if for no other reason than to see how he did it. If it works out of the box, all the better
 

Thothie

Administrator
Staff member
Administrator
Moderator
Lead MSC Developer
MSC Developer
Apr 8, 2005
15,991
198
lost
@Thothie That'd be great, if for no other reason than to see how he did it. If it works out of the box, all the better
I shall send the e-mail and report on the results. It's specifically tailored for a rather silly game, with deliberately blocky graphics, but I believe it launches as a seperate application. ...And I don't think he's yet in a position where he isn't allowed to share code.
 
Top