Building BIG games (and mmos) w/ unity

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.kloeckener4 жыл бұрын

    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

  • @sdporres

    @sdporres

    4 жыл бұрын

    Thank you

  • @blackcatpirates8134

    @blackcatpirates8134

    4 жыл бұрын

    Thanks

  • @rpgilagamedev4839

    @rpgilagamedev4839

    4 жыл бұрын

    very usefull

  • @michaeldavidowitz2389

    @michaeldavidowitz2389

    3 жыл бұрын

    This is so useful!

  • @dasheck0876

    @dasheck0876

    2 жыл бұрын

    Searched the comments for this. Thanks

  • @davidbaity7399
    @davidbaity73994 жыл бұрын

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

  • @MathewunnamedWeymouth

    @MathewunnamedWeymouth

    4 жыл бұрын

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

  • @Coeurebene1

    @Coeurebene1

    4 жыл бұрын

    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 жыл бұрын

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

  • @JahoBBaMADMan
    @JahoBBaMADMan4 жыл бұрын

    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!

  • @IronFreee
    @IronFreee2 жыл бұрын

    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.

  • @hardgames4104
    @hardgames41044 жыл бұрын

    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!

  • @gearhorse
    @gearhorse4 жыл бұрын

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

  • @audacityfilmsproductions5334
    @audacityfilmsproductions53344 жыл бұрын

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

  • @phirewind
    @phirewind4 жыл бұрын

    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.

  • @beaverjoe9171
    @beaverjoe91714 жыл бұрын

    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 жыл бұрын

    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 жыл бұрын

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

  • @beaverjoe9171

    @beaverjoe9171

    3 жыл бұрын

    @@luty462 thx.

  • @mykilpee
    @mykilpee4 жыл бұрын

    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 жыл бұрын

    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

  • @dawidzyrek6481
    @dawidzyrek64814 жыл бұрын

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

  • @oatcube3961
    @oatcube39613 жыл бұрын

    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!

  • @GeorgeWinterborn
    @GeorgeWinterborn4 жыл бұрын

    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.

  • @ilmarinen79
    @ilmarinen794 жыл бұрын

    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 :)

  • @excalibur._nzy
    @excalibur._nzy2 жыл бұрын

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

  • @danm6189
    @danm61894 жыл бұрын

    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 :)

  • @Trinks
    @Trinks Жыл бұрын

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

  • @MrRedpearl
    @MrRedpearl4 жыл бұрын

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

  • @AaronVictoria
    @AaronVictoria3 жыл бұрын

    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.

  • @sqwert654
    @sqwert6544 жыл бұрын

    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
    @warlockCommitteeMeeting4 жыл бұрын

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

  • @LONlG
    @LONlG4 жыл бұрын

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

  • @HadiLePanda
    @HadiLePanda4 жыл бұрын

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

  • @CaffeineInjected
    @CaffeineInjected4 жыл бұрын

    Love your channel and content Jason. Ty

  • @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

  • @toadill
    @toadill4 жыл бұрын

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

  • @JackPS9
    @JackPS94 жыл бұрын

    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.

  • @kerrybrown1192
    @kerrybrown11924 жыл бұрын

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

  • @JamesWjRose
    @JamesWjRose3 жыл бұрын

    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

  • @ObsessiveGames
    @ObsessiveGames2 жыл бұрын

    Thank you for these tips, really appreciate it.

  • @512Squared
    @512Squared2 жыл бұрын

    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.

  • @castlecodersltd
    @castlecodersltd Жыл бұрын

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

  • @AyyyyyyyyyLmao
    @AyyyyyyyyyLmao4 жыл бұрын

    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?

  • @RiorXD
    @RiorXD4 жыл бұрын

    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

  • @joecornelius9807
    @joecornelius98072 жыл бұрын

    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

  • @alexchesser5209
    @alexchesser52094 жыл бұрын

    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.

  • @andythedishwasher1117
    @andythedishwasher11172 жыл бұрын

    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 жыл бұрын

    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.

  • @TYNEPUNK
    @TYNEPUNK4 жыл бұрын

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

  • @Pedro_Marangon
    @Pedro_Marangon3 жыл бұрын

    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; ".

  • @DarkDiaspora
    @DarkDiaspora4 жыл бұрын

    Dude thank you for your share, appreciate you.

  • @NOPerative
    @NOPerative4 жыл бұрын

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

  • @AyyyyyyyyyLmao
    @AyyyyyyyyyLmao4 жыл бұрын

    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.

  • @ToySeeker
    @ToySeeker11 ай бұрын

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

  • @zeroone8548
    @zeroone85484 жыл бұрын

    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

  • @seansopata5121
    @seansopata51214 жыл бұрын

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

  • @michaelberna987
    @michaelberna9872 жыл бұрын

    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.

  • @HeyMakedonsky
    @HeyMakedonsky4 жыл бұрын

    Would love to see more MMO stuff!

  • @seansopata5121
    @seansopata51214 жыл бұрын

    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.

  • @CodingWithUnity
    @CodingWithUnity4 жыл бұрын

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

  • @SarahStarmer
    @SarahStarmer Жыл бұрын

    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.

  • @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.

  • @user-jk2bj5gr5e
    @user-jk2bj5gr5e4 жыл бұрын

    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!

  • @vast634
    @vast6343 жыл бұрын

    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.

  • @user-fn2nc8ys7r
    @user-fn2nc8ys7r4 жыл бұрын

    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.”

  • @joshuareeves9985
    @joshuareeves99854 жыл бұрын

    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 жыл бұрын

    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) :)

  • @N1ghtR1der666
    @N1ghtR1der6664 жыл бұрын

    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": kzread.info/dash/bejne/pJWFlcuBmKjFe84.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

  • @drednac
    @drednac4 жыл бұрын

    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 жыл бұрын

    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 :)

  • @jakubsprega6935
    @jakubsprega69353 жыл бұрын

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

  • @PragmaticCommoner

    @PragmaticCommoner

    3 жыл бұрын

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

  • @TheManiacTechno

    @TheManiacTechno

    2 жыл бұрын

    Haven’t seen this one in a while. Nice

  • @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
    @RocketPunches3 жыл бұрын

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

  • @DrBotwing
    @DrBotwing3 жыл бұрын

    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.

  • @Shinobi31415926
    @Shinobi314159264 жыл бұрын

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

  • @BDSmithTrucking
    @BDSmithTrucking4 жыл бұрын

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

  • @PeskySteelskull

    @PeskySteelskull

    3 жыл бұрын

    I legit read this as he said it lol

  • @Yuki-rh1ie
    @Yuki-rh1ie4 жыл бұрын

    more mmo and big open world architecture!

  • @toadill
    @toadill4 жыл бұрын

    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.

  • @IceGrenade
    @IceGrenade4 жыл бұрын

    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!

  • @AdredenGaming
    @AdredenGaming4 жыл бұрын

    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

  • @ParabellumStoria
    @ParabellumStoria3 жыл бұрын

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

  • @iangraham6730
    @iangraham67304 жыл бұрын

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

  • @toadill
    @toadill4 жыл бұрын

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

  • @urzytkownikYT
    @urzytkownikYT4 жыл бұрын

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

  • @whoshotdk
    @whoshotdk3 жыл бұрын

    Gotta be honest, I still keep my line.length

  • @nafurachan9061
    @nafurachan90614 жыл бұрын

    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.

  • @alikhamesy9891
    @alikhamesy98914 жыл бұрын

    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.

  • @presidentmariachi4287
    @presidentmariachi42874 жыл бұрын

    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.

  • @rmt3589
    @rmt3589 Жыл бұрын

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

  • @kevin_raney
    @kevin_raney4 жыл бұрын

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

  • @justinwhite2725
    @justinwhite27253 жыл бұрын

    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
    @MoonLiteNite4 жыл бұрын

    @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.

  • @sicksharkx92
    @sicksharkx924 жыл бұрын

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

  • @Jinjer188
    @Jinjer1884 жыл бұрын

    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?

  • @boot-strapper
    @boot-strapper2 жыл бұрын

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

  • @Nick-rq4gy
    @Nick-rq4gy3 жыл бұрын

    Stay motivated to build your game, stay positive!

  • @rmt3589
    @rmt3589 Жыл бұрын

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

  • @mach5406
    @mach54063 жыл бұрын

    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.

  • @zeredagames810
    @zeredagames8103 жыл бұрын

    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.

  • @jimmyc9925
    @jimmyc99253 жыл бұрын

    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 : )

  • @Eric_The_Cleric
    @Eric_The_Cleric3 жыл бұрын

    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 :)

  • @GarrethandPipa
    @GarrethandPipa3 жыл бұрын

    I was guessing it was using a item in an inventory. 40 years ago it was a fairly common practice to truncate variables and functions names. So I have a leg up on guessing. code intent.

  • @vikingghost117
    @vikingghost1172 жыл бұрын

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

  • @jahoopyjaheepu497
    @jahoopyjaheepu4974 жыл бұрын

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

  • @Ryan-xq3kl
    @Ryan-xq3kl4 жыл бұрын

    do you have a video demonstrating multiplayer coding?

  • @RealNekoGamer
    @RealNekoGamer2 жыл бұрын

    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.

  • @Xcrypt1991
    @Xcrypt19914 жыл бұрын

    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.

  • @ShawnBlais
    @ShawnBlais3 жыл бұрын

    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?

  • @shytut
    @shytut4 жыл бұрын

    Obfuscating variable names was an old school method of preventing or making packet spoofing harder.

  • @random_precision_software
    @random_precision_software4 жыл бұрын

    Yea it becomes a monster it turns into a monster. It happens to me..I put it on the backburner until I get people asking me" have you done any more "on that game.. I have 3 BIG games on the go and 2 mobile games that I should be doing.

  • @random_precision_software

    @random_precision_software

    4 жыл бұрын

    @Skepz my games..ive got 2 ..Uridium 2 and Times of hersey .

  • @random_precision_software

    @random_precision_software

    4 жыл бұрын

    @Skepz on itch.io as random precision software random-precision-software.itch.io/

  • @toadill
    @toadill4 жыл бұрын

    I see this underscore for local variables which I wasn't taught. I do like to be structured but conventions can be soooo boring.

  • @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 ...