Building BIG games (and mmos) w/ unity

Поделиться
HTML-код
  • Опубликовано: 6 дек 2019
  • If you want to build large scale games in unity, unreal, or any other engine, these are 12 of the important rules you'll want to follow. We'll start with tips that I'd recommend for any type of game, single player, multiplayer, fps, rts, etc.. then transition into a few rules that are very specific to MMOs and online games. We'll talk a bit about solid principles, refactoring, cleaning code, testing, networking, what to trust, and a whole lot more.
    More Info: unity3d.college
    Join the Group: unity3d.group
    Patreon: / unity3dcollege
    Architecture Course: game.courses/game-architectur...

Комментарии • 254

  • @martin.m.kloeckener
    @martin.m.kloeckener 4 года назад +598

    General advice:
    01:21 1. Well named variables
    06:39 2. Coding standards
    08:20 3. Patterns
    10:30 4. K.I.S.S
    12:33 5. Refactoring
    MMO specific advice:
    17:50 6. Never trust the (network) client
    20:46 7. Single source of truth for player data
    24:39 8. Exploits
    26:50 9. Performance
    30:18 10. Network system
    32:28 11. Drive by data
    35:48 12. Tooling

  • @davidbaity7399
    @davidbaity7399 4 года назад +401

    "Create code as if the people who come along to maintain your code are psychopaths who know where you live."

    • @MathewunnamedWeymouth
      @MathewunnamedWeymouth 4 года назад +6

      Oh hey! lol funny seeing you here! haha Remember cache your data!

    • @Coeurebene1
      @Coeurebene1 4 года назад +6

      wait, aren't they?

    • @eddyeffy
      @eddyeffy 3 года назад

      literally leave your front door and keep markers to your toilet, hmm yeah, thats it

    • @echotube3111
      @echotube3111 2 года назад

      Makes sense to me

    • @michaelberna987
      @michaelberna987 2 года назад +8

      I've been working solo, so the threat of this is very real.

  • @IronFreee
    @IronFreee 2 года назад +14

    Last big project I join I was so pleased to learn that they decided to not put any comments (because you have to update comments and they don't do that), make no documentation and of course the project manager asked them not to talk to me. Such a nice, fun experience.
    If you want other people to join your existing project, make sure they spend more time contributing than trying to understand what is going on.

  • @JahoBBaMADMan
    @JahoBBaMADMan 4 года назад +94

    It's fantastic that you're not just saying "don't bother", regardless whether people actually follow through with building an MMO from scratch, it's still great to get an insight into building one and learn stuff on the way, and it would be great to know if you were to ever join a big company making an MMO down the line! Love your content!

  • @gearhorse
    @gearhorse 4 года назад +163

    "if you don't give designers the tools they need, they will figure out a hacky solution instead and kill game performance."
    Can confirm

  • @hardgames4104
    @hardgames4104 4 года назад +3

    Always good to listen to you. Even when one knows many of the points mentioned, there are always a few more you mention - and they have to be considered as well. Thank you for your great work!

  • @phirewind
    @phirewind 4 года назад +10

    One thing I've been doing a lot more of at work that may also apply to large game projects is putting a LOT more detailed comments and function summaries into everything I write. I know some people hate it, and the counter-argument is "if you write good clean code, it's readable so you don't have to explain what it does", which has its merit, and clean, readable code (most compact is not always most readable) is a vital skill. However, the problem I've had in maintaining and extending some apps is that even when you figure out WHAT it's doing, you may have no idea WHY it's doing something, or if it's even doing what it's supposed to at all, and reproducing it may or may not be the correct action. I'm helping a team that has been filtering old code into a newly refactored app for months, and they are constantly coming across things that we HAVE to spend far more time than expected just examining and debugging to understand better in small increments. With no codebase documentation, sometimes it's very hard to tell if a huge chunk of important-looking code was just a bad patch to work around something that is already obsoleted and isn't a factor at all, or if a seemingly useless piece of code actually controls a behavior that a product manager requested five years ago and somebody executed but nobody documented. Knowledge of intent is as important as knowledge of execution when it comes to maintenance and refactoring. And the bigger the app gets, the more important it becomes.

  • @audacityfilmsproductions5334
    @audacityfilmsproductions5334 4 года назад +17

    You’re straight forward and I respect and love that. Thank you brotha!

  • @dawidzyrek6481
    @dawidzyrek6481 4 года назад +6

    Perfect! Today was the first time in my current project that I felt it messy. Refactoring is comming

  • @oatcube3961
    @oatcube3961 3 года назад +1

    I just started my biggest project so far a few months back and started posting DevLogs on it. Just now saw this video and I'm happy that I've already been implementing most of the stuff described here. But still there are lots of new things for me to learn from your videos!

  • @AaronVictoria
    @AaronVictoria 2 года назад

    I love watching your videos because even as a 21 year coding veteran I struggle explaining things to people and you really help me find a simple way to explain things to friends or associates that I know that are getting. I'll listen to your videos, hear you explain something that I was struggling to explain to someone, and immediately message the person that asked me that question to give them a simpler explanation and it always helps them. Just wanted to say thanks for sharing these more simple explanations for things.

  • @ilmarinen79
    @ilmarinen79 4 года назад +5

    Great stuff! Definitely would love to hear about pretty much anything related to MMOs or even just developing simpler networked games. Some topics I might wonder about are: 1) different genres and their derived requirements for possible implementation architectures, 2) taking one MMO and just going over how it's generally structured or maybe going over one specific area in more detail, 3) could there be recommended road map to networked game development (technical aspects as well as team specs) as going from a "normal" game to an MMO is quite a leap, 4) MMO history and general problems and solutions developers have come up with 5) MMO future and possible advancements and tools that might help 6) recommended reading, books, resources.....I could go on and on I guess, sorry :)

  • @MrRedpearl
    @MrRedpearl 4 года назад +8

    This is great! I would love to hear more about security against hackers, cloud-based games, and managing game data/user profiles

  • @beaverjoe9171
    @beaverjoe9171 4 года назад +16

    I really learned lots from your youtube channel. Now I got several interviews, If I did not watch your tutorials and Solid principle series for more than one year, I think I will not get this interview, even a chance. Thanks so much!

    • @Ne0mega
      @Ne0mega 4 года назад +1

      I started watching Jason two years ago. SOLID is the reason why. I knew great truth when I saw it. Had no idea he did big time games at the time.

    • @luty462
      @luty462 3 года назад +1

      well your channel on bilibili is also very helpful and enlighting.

    • @beaverjoe9171
      @beaverjoe9171 3 года назад

      @@luty462 thx.

  • @mykilpee
    @mykilpee 4 года назад +6

    This has no ads.... And thank you for everything!!!! I have one project that breaks most of these rules. Different patterns for each object, empty objects, etc. Thinking of bombing it and starting over completely differently.

    • @sdporres
      @sdporres 4 года назад +2

      Don't bomb it. Fix it. It seems like more, but it will be less work. And keep your game runnable while you refractor.
      Do it, don't go back to zero. Remember Netscape? Yeah

  • @Trinks
    @Trinks Год назад

    Thanks for this Jason really needed this. A lot of structured information.

  • @JamesWjRose
    @JamesWjRose 3 года назад +4

    Don't abbreviate! As a business dev for 20+ years, this statement is so true and important.

    • @JamesWjRose
      @JamesWjRose 3 года назад

      @@kidmosey I have worked with multiple style guides and patterns, and I'm generally ok with a lot, so long as it's logic based, not "I feel this is the right pattern because."
      Have a great weekend

  • @GeorgeWinterborn
    @GeorgeWinterborn 4 года назад +7

    While variables can have whatever length, keep in mind that Windows has a 260 character path limit. Classes, often represented by separate scripts in Unity, and folder systems containing those scripts combined are limited to 260 characters.

  • @danm6189
    @danm6189 4 года назад +3

    Hey Jason thanks for this, really great. Those first minutes on general dev maintainability is just such a fantastic guide for all devs u could consider uploading it as standalone for all devs? Just brilliant :)

  • @excalibur._nzy
    @excalibur._nzy 2 года назад +1

    Thanks for making these videos man! theirs not too many informative videos on this that go into detail.

  • @sqwert654
    @sqwert654 4 года назад +1

    Thank you, great explanations of why you do things the way you do. These details are important to some one like me working 0ut in the bush, it helps avoid unseen un unknown pitfalls that waste weeks. Have been avoiding multiplayer in my game. But I really need take it into account and consider it. Have coded a 4 player game. That lamp is a very nice design.

  • @warlockCommitteeMeeting
    @warlockCommitteeMeeting 4 года назад +2

    Jason possesses that rare combination of personability and intelligence that coalesces into practical wisdom and the ability to lead.

  • @timw92
    @timw92 Год назад

    Not that I'm planning to build an MMO (I'll leave that for next week), I love watching your videos. I'm a complete novice I've only been at it a couple of weeks and learning the code is definitely taking time as I keep forgetting stuff, but as I look at the code and think "what do I need to type" or "what did I type wrong" I seem to slowly learn.
    Not sure if that's a good way to learn but it's working for me :) so thank you

  • @kerrybrown1192
    @kerrybrown1192 4 года назад +1

    Thanks Jason ... advice that applies to more then just mmos.

  • @512Squared
    @512Squared 2 года назад

    Naming things well... as soon as you said that Jason I knew where you were coming from and why it absolutely needs to be put at the very top.

  • @LONlG
    @LONlG 4 года назад

    Great tips to keep in mind, for sure. Love the videos.

  • @HadiLePanda
    @HadiLePanda 4 года назад +4

    Thanks for the tips!
    Would love to see videos on code architecture and systems in a rpg-like game please ^^

  • @joecornelius9807
    @joecornelius9807 2 года назад

    As a developer working for someone who has no understanding of the development process I was looking for a video to help highlight some details about code struct. This is perfect. Thanks

  • @JackPS9
    @JackPS9 4 года назад +6

    The game I'm currently taking another try at, most of my programming time is tools to allow me to pump out enemies, items, levels and such.
    Trying to use Unity's UIElements though so kinda hitting sections where I can not progress further due to the field not being fully implemented yet. But instead of just waiting I move onto the next tool after I put in a comment in my code and in my task list.

  • @CaffeineInjected
    @CaffeineInjected 4 года назад +1

    Love your channel and content Jason. Ty

  • @NOPerative
    @NOPerative 4 года назад

    Coding style and organization policies.
    Good habits.
    Excellent video.

  • @toadill
    @toadill 4 года назад

    Thank you so much for this video. I'm always trying to learn new things.

  • @ObsessiveGames
    @ObsessiveGames 2 года назад

    Thank you for these tips, really appreciate it.

  • @alexchesser5209
    @alexchesser5209 4 года назад +5

    You made an offhand comment the other day about putting all your UI in a scene so it can be loaded additively. I'd like to see that in more detail.

  • @ToySeeker
    @ToySeeker 11 месяцев назад

    Im interested in Game Design, Game Architecture, and MMO Thanks Jason!

  • @AyyyyyyyyyLmao
    @AyyyyyyyyyLmao 4 года назад +3

    Game architecture and optimisations are insanely valuable to me so the more coverage the better!
    My current preference leans more to RPGs and mobile games than MMOs. Mainly because net code scares me, but I still enjoy the architecture side of that.
    And have you ever thought of offering source code to your patrons?

  • @TYNEPUNK
    @TYNEPUNK 4 года назад

    amazing videos man, im making a local player open world thing but most still applies.

  • @castlecodersltd
    @castlecodersltd Год назад

    I really enjoyed this. Thank you, some very useful advice, even for someone who has been programming for 20+ years ☺

  • @seansopata5121
    @seansopata5121 4 года назад

    I carried over my web dev paradigm of atomic CSS to my c#. It's helped immensely.

  • @HeyMakedonsky
    @HeyMakedonsky 4 года назад

    Would love to see more MMO stuff!

  • @DarkDiaspora
    @DarkDiaspora 4 года назад

    Dude thank you for your share, appreciate you.

  • @RiorXD
    @RiorXD 4 года назад

    12:39. So in my experience i find it easier to refactor as i go. Some times new behaviors dont always go as planned to ill write it in a basic unoptimised way to get it working then refactor and make it clean and gove it propper events and functions as needed. In small increments this only takes a minute or two to do and it has helped greatly with the preformance on my end overall

  • @michaelberna987
    @michaelberna987 2 года назад +1

    In middle school, I used to modify server side games using the client. 😁 Now they've started using Jason's advice moreso, so it's more difficult.

  • @Pedro_Marangon
    @Pedro_Marangon 3 года назад +1

    About the variable naming, sometimes I use the first letter of the class name as the variable name when it's something I'll use constantly and to make things compact (like, if I have a private Transform variable being the transform of the script, then I'll just do " private Transform _t; ".

  • @Yuki-rh1ie
    @Yuki-rh1ie 4 года назад +2

    more mmo and big open world architecture!

  • @AyyyyyyyyyLmao
    @AyyyyyyyyyLmao 4 года назад

    ALSO
    A tutorial demonstrating the net code for a 1v1 turn based game would be a dream. Something along the lines of chess or checkers, but in unity and maybe with photon?
    It's a big topic but you're perfect at covering those and breaking then down.

  • @andythedishwasher1117
    @andythedishwasher1117 2 года назад +4

    I'm really interested in hearing your insights on single-player rpg architecture options, particularly when it comes to organizing skill systems, character models, and item stats in such a way that artists with no coding knowledge can plug their assets in seamlessly.

    • @andythedishwasher1117
      @andythedishwasher1117 2 года назад +1

      I did get a lot out of your video on scriptable objects, which seem to be a key element in this process with Unity, but I would really like to learn more about the different design patterns for rpgs and how they affect artist flow.

  • @zeroone8548
    @zeroone8548 4 года назад +1

    an awesome video . i joined in a big project and i was thinking about this exact topic what are the things i should follow so that i dont mess up their existing codes . its like u read my mind lol . thank u so much

  • @user-jk2bj5gr5e
    @user-jk2bj5gr5e 4 года назад +2

    1:05 Haha! Glad someone actually got what it takes to talk about large-scale and MMO stuff seriously and not just discouraging everyone with "don't do it". Thanks, Jason!

  • @user-fn2nc8ys7r
    @user-fn2nc8ys7r 4 года назад

    I’m just now creating an 100 multiplayer game of battle royal by myself and it’s also my first big project. The video is very helpful for me. Carve in my heart, “Don’t trust clients.”

  • @seansopata5121
    @seansopata5121 4 года назад

    One habit I've gotten into in my own code is prefixing "core" variable types. Examples:
    public float fMovementSpeed;
    public static int iFingerBone;
    public Vector3 v3MovementDirection;
    public bool bMovementEnabled;
    This way, anywhere in the code, I know exactly what type of data is stored in v3MovementDirection, or fMovementSpeed. There is no confusion. The name of the var indicates it, if you name it right, but having that prefix has sped things up for me.

  • @johnterpack3940
    @johnterpack3940 Год назад

    I would also add "have a mission statement, and stick to it". I'm not a dev, though I am kicking around ideas. But as a player I can tell you one of the most frustrating things is for a game to morph over time. It's fine to get into an early access game and deal with it changing as it gets built. But I have several games in my library that were established titles that I walked away from because they added this or took away that seemingly at random. Set rules for what the game is about, abide those rules. Changing things willy-nilly, or to chase some trend, will only alienate some portion of the playerbase you've built.

  • @joshuareeves9985
    @joshuareeves9985 4 года назад +4

    Good stuff. Thanks Jason. Do you do one-on-one mentoring with people? I would love to shadow you for a day or even just watch you do live problem solving.

    • @Unity3dCollege
      @Unity3dCollege  4 года назад +5

      I have in the past but generally just don't have the time available right now (too much going on w/ courses and mmo development) :)

  • @CodingWithUnity
    @CodingWithUnity 4 года назад +22

    I use the "naming things bad for job security" as a joke, its so funny when people take it seriously. Great video!

  • @Shinobi31415926
    @Shinobi31415926 4 года назад +1

    Love the MMO stuff and would love to see some coding!

  • @vast634
    @vast634 2 года назад

    I put private variables on a longer class that are only used by one or a small set of function above the function that uses it. Having a large blob of private variables on top detached from the logic that uses it can also look confusing, and requires jumping around in the code a lot more.

  • @toadill
    @toadill 4 года назад

    I'm glad I seen this video the last video I saw was from a channel where they were saying it's insane to try to build a mmo by yourself in unity. It kind of killed my motivation. Now I don't feel that way thanks Jason.

  • @N1ghtR1der666
    @N1ghtR1der666 4 года назад +1

    I would love to see an up-to-date beginners video or series on making multiplayer games with a sever client environment

    • @Bunny99s
      @Bunny99s 3 года назад

      Well, that's actually an issue because "multiplayer game with server client environment" and "beginner" just don't play well together ^^. Before you approach creating multiplayer games you should already be comfortable creating games. Then the first entrance into any kind of networking would be to add a server hosted highscore system. I'm also not sure what up-to-date means in this context. The fundamentals of networking hasn't changed during the last 40 years. Networking on its own isn't that complicated once you understand the basics. However this has more to do with understanding the technology, topology and hardware of networks and hasn't to do that much with programming.
      Well in theory you could simply use a network library with a higher level of abstraction and you don't necessarily understand how it works, however that makes any kind of design decision or bug fixing extremely difficult. Personally I 100% agree on the quote from Ryan Hipple: "Never fix a bug you don't understand":
      ruclips.net/video/raQ3iHhE_Kk/видео.htmlm34s
      (ps: I can highly recommend the whole talk).
      In order to write efficient and safe network code you just have to understand the fundamentals and limitations of the transport layer and protocols you're using (latency, handshake, MTU size, routing, NAPT, ...)
      There are many network "tutorials" out there, however tutorials are not meant as a recipe for "how to create a network game". Tutorials are meant to teach individual concepts based on an example. So they should help you to learn and understand the concepts and not to provide you something you can copy more or less line by line. A lot of example are just simple straight forward implementations without much of security or sanity checks.

    • @N1ghtR1der666
      @N1ghtR1der666 3 года назад

      @@Bunny99s fair enough, I still want the series

  • @DrBotwing
    @DrBotwing 3 года назад

    The best refactoring formula I've ever heard is "Make the change easy, then make an easy change" (Sorry, can't remember the author name). It's basically the same as you advised but said in a nice straight (refactored) way)).
    Basically, it means that there is almost never a dedicated time for refactoring. So whenever you need to make a change in a messy code, make the code nice and clean first (refactor it) and then make your nice and easy change.

  • @MedusaZenovka
    @MedusaZenovka Год назад

    One point to add would be to not build in a monolithic fashion. Stuff like the Character Editor, a building system or other gameplay mechanics don't need to depend on each other or should depend on each other as less as possible in your code. That makes it easier to change stuff without breaking your game.
    What also is really helpful is to seperate code so files don't have thousands of lines of code. C# with its partial classes is very, very, very powerful in that. In my own projects for example I use 1 class that holds everything that is relevant for the updates while another file for example holds more specialized functionallity and another one holds setups for my gameObject.

  • @RocketPunches
    @RocketPunches 3 года назад +1

    I was told in a college course by a professor that writing obtuse code is a way to ensure job security in like 2010.

  • @drednac
    @drednac 4 года назад +1

    I was thinking the same thing for a very long time about 80 character limit and considered it ridiculous but some time ago I have change my mind completely. It's not actually about very very old screen limitations BUT a reading efficiency. It's about how our brain works and this rule is also used for articles on the websites to retain most people on the page and so on. It's simply easier for our brain to read paragraphs with lines under ~80 lines.

    • @Unity3dCollege
      @Unity3dCollege  4 года назад +2

      I completely agree there on the entire line length, probably didn't state it well enough.
      The bigger point was that you don't want to limit variable names and truncate them in the name of saving space... and instead use more lines with longer names.
      Going too far to the right makes it hard to read as well.. it's what convinced me to start putting parameters on separate lines (once they hit the 80 or 120 character line in rider :)

  • @SarahStarmer
    @SarahStarmer Год назад +1

    A friend of mine worked on the NHS database. He was employed with no prior experience at a low wage and once the work was completed they sacked him and the entire team. After the database crashed they reemployed him freelance at a much higher rate. If you want job security working for a private-public-partnership (PPP), do a bad job.

  • @alikhamesy9891
    @alikhamesy9891 4 года назад

    Hi jason, I had question about how you think large teams could work well together. Recently I attended a 48hr game jam/hackathon. I'm well versed in git but new to untiy and we used Github's gitignore for unity and yet we ran into constant meta file conflicts, missing sprite errors and missing animation keyframes. How does a large team use untiy and git? or do they at all? I head that it's best to use prefabs and have a 'build' machine put everything together into a scene, but then we couldn't figure out how to attach stuff to a prefab script, like attaching the main camera to a script in main player for example.

  • @iangraham6730
    @iangraham6730 4 года назад +1

    Apparently I need glasses.. (love the eye test decor 😁)

  • @AdredenGaming
    @AdredenGaming 4 года назад +7

    How about game ai. Atm I am a modder for 7 days to die. The game seems to run well unless there are more then 60 zombie. Possible things to look for could be helpful

  • @BDSmithTrucking
    @BDSmithTrucking 4 года назад +5

    "Cram it in there. Shove it in. Bam bam bam."

  • @jakubsprega6935
    @jakubsprega6935 3 года назад +17

    There are two hard things in computer science: cache invalidation, naming things, and off-by-one errors.

    • @PragmaticCommoner
      @PragmaticCommoner 2 года назад +2

      But that’s 3 things…oh wait, is this a computer guy joke?

    • @TheManiacTechno
      @TheManiacTechno 2 года назад +2

      Haven’t seen this one in a while. Nice

  • @urzytkownikYT
    @urzytkownikYT 4 года назад

    thats very true that you gotta refactor your old code CONTINOUSLY. countinous small refactorin is better that big one even if its once.

  • @IceGrenade
    @IceGrenade 4 года назад

    Totally agree. I write stuff out as modular and descriptive as possible so that the code can pretty much be read like a book. I make it modular because then it is easy to extend in future :) That code you featured there was horrible haha. Have seen worse sadly!

  • @rmt3589
    @rmt3589 Год назад +1

    34:15 Do you have a video on data driven? I never heard that term before.

  • @ParabellumStoria
    @ParabellumStoria 3 года назад +1

    As Richard Garriot (creator of Ultima Online) said: Remember the client is in the hand of the enemy!

  • @whoshotdk
    @whoshotdk 3 года назад +1

    Gotta be honest, I still keep my line.length

  • @nafurachan9061
    @nafurachan9061 4 года назад

    I love this. I am currently in the industry and it's rare to see this kind of talks where you're talking about actual way to manage large projects and large teams. Mostly people just caters to those who's trying to get into game development, not the actual people in the gamedev.
    I learn a lot from this, thank you. Looking forward for future large team Unity game management like this.

  • @presidentmariachi4287
    @presidentmariachi4287 4 года назад

    I understand the job security angle. I had the same thought as an early freelancer.
    I even made spaghetti on purpose until I decided it was best to work for reputable people and follow best practices.

  • @justinwhite2725
    @justinwhite2725 3 года назад

    In my project I had created a class called ContentID In one namespace. That namespace is basically generic tools I use across most projects. In another namespace I wound up creating a new class that either inherits from it or otherwise refers to it. I named it - ContentID.
    So now I'm constantly having to figure out weather I'm using a Shiva Code. ContentID or a Prism. ContentID. And I'm also using bolt so renaming them at this point would break too many things.
    Tip #1 is super important.

  • @MoonLiteNite
    @MoonLiteNite 3 года назад

    @18:54
    When i was like 11 years old, microsoft Ants... i kinda knew a bit of c++ and then found a free memory editor. Found out i could easily just change my score, then everyone in the game would see me as the winner....
    Same thing foe the maps. I was able to break about the map files, grid based with lots of extra stuff, maybe layers? but i found out dozens of the tile pallet hex codes, and learned of the build in CRC, so -1 here meant -1 some place else. Well my map could be totally different than other players. So i could just make a flatmap, tons of high point food. While everyone else had the hard map to play on. They just saw my ants walking on water, through grass, picking up items that aren't there.
    No i never cheated, did lots of testing and learning on the stuff in private games with my sister.

  • @boot-strapper
    @boot-strapper 2 года назад

    what are your thoughts in writing game clients in javascript? Indie games particularly.

  • @jimmyc9925
    @jimmyc9925 3 года назад

    Im watching this video, and yes im just like your grandad Ive been building my own house for the last six years. So yes i can really relate to what your saying about a team : )

  • @vikingghost117
    @vikingghost117 2 года назад

    I am constantly reminded that I still know nothing :P. Good advice/rules/standards!

  • @kevin_raney
    @kevin_raney 4 года назад +1

    Zone line duping was very common back to UO.... Funny that vanguard still had the same problem...

  • @sicksharkx92
    @sicksharkx92 4 года назад

    @jason Weimann Could you show a practical example of tooling and refactoring with Driven by Data pattern? thank you!

  • @toadill
    @toadill 4 года назад +1

    Maybe build a series of small projects that will relate to the final project the mmo.

  • @jahoopyjaheepu497
    @jahoopyjaheepu497 4 года назад +1

    Great video. I'd love to see you do some networking tutorials, even if they're just very basic.

  • @Nick-rq4gy
    @Nick-rq4gy 3 года назад

    Stay motivated to build your game, stay positive!

  • @rmt3589
    @rmt3589 Год назад +1

    9:05 What game design pattern book? Is there a link to read it free online?

  • @mach5406
    @mach5406 3 года назад

    LoL about the bad coding. I use to use short variable names of 1-3 characters long as it was quick to type and I could finish an app in 1-3 days. But that was when I was young and could easily mentally track every variable. I also wasn't used to going back to old apps and updating or changing them. Now I'm with the program and the challenge is how explicit can I be so as to prevent head slapping and wall banging. Some programs sound simple and start small then a ton of features get added and then you need all the help you can get in recognising what does what.

  • @RealNekoGamer
    @RealNekoGamer 2 года назад

    Been trying to reverse engineer a game engine from 1998, and so far I'm starting with the file formats. Off the bat though, there's obviously a lot of data in, say, a saved game file, that I have no clue about, while some of it may be a byte with a value of 3 followed by the string "Bob", which could be the player's name, consisting of 3 characters as dictated by the preceeding byte value. For everything else, and say I'm using Python which has no typing, I try to give myself hints as best as I can, like "uint0C" being a mostly-unknown variable but that I know is an unsigned int located at offset 12.

  • @Ryan-xq3kl
    @Ryan-xq3kl 3 года назад

    do you have a video demonstrating multiplayer coding?

  • @Jinjer188
    @Jinjer188 4 года назад

    Thanks! I thought this is gonna be another 45 min video about why you shouldn't even do an mmo :D I've worked with Nakama server and it's probably the best option if you don't wanna write networking from scratch, it's dockerized, you can cluster it if you know Go, it's amazing. But I still don't get how AAA companies do server-side physics! Do they actually run a simulated client or have the licence to run something like PhysX or Havok on their server? Let's say something like Fifa, there are 11v11 games and it's all simulated physics and animations, you obviously can't trust clients for physics so you need to simulate it on your server, do you actually write the whole physics calculations (it's a LOT!) on your server? Or you run something like a headless client for each game? You need Determinism too, so that both client and server give you the same result. Do you write your own deterministic physics system? I'd really appreciate it if you could give me a source for physics or maybe talk about it on your channel?

  • @Eric_The_Cleric
    @Eric_The_Cleric 3 года назад +1

    I don't know if you have covered it, but I'd like to hear your take on coding for random generation/roguelikes and how to not destroy performance while randomly generating.

    • @blockify
      @blockify Год назад

      Multi threading :)

  • @justinwhite2725
    @justinwhite2725 3 года назад

    @3:48 is it an inventory system where you can use items by clicking on them?
    Edit: sweet! I was right! But then... It looks kind of a lot like code I might make so... (PInv was obviously Player Inventory.)

  • @ShawnBlais
    @ShawnBlais 3 года назад

    Curious why the many parameters thing is still considered an anti-pattern now that we have named params? What's really the difference between using a struct or not now?

  • @AdjointGaming
    @AdjointGaming Год назад

    I am really interested in making a game like Eve Online but single player wise. I tried Unity a few months ago and now I switched to Unreal and I am testing it. I am afraid that I am missing a lot of knowledge to make such a game. I will need a lot of guidance but I will see how it will go ...

  • @jerms_mcerms9231
    @jerms_mcerms9231 Год назад

    I know this is old, but is there any chance you could talk about fighting games?

  • @puppetreview5546
    @puppetreview5546 3 года назад

    What you guys use for server.. Node.js or Java or UNET ? what is the good option for a multiplayer unity game?

  • @MathewunnamedWeymouth
    @MathewunnamedWeymouth 4 года назад +1

    I wish I had a personal line to your brain!

  • @Xcrypt1991
    @Xcrypt1991 4 года назад

    TERA also had this UI issue aroud launch, you couldn't play pvp decently because UI caused an incredible amount of delay. It just completely took the fun out of it for me and I quit shortly after, even having invested several days/weeks of time getting to max level.

  • @zeredagames810
    @zeredagames810 3 года назад

    since i started that was the key to my learning was well named everything. This way all of my code was readable like English (almost). Nothing dove me more nuts then getting code in a package that i couldn't understand and then would refuse to use because it didn't make sense.