Главная

Game Engine Programming: A Simple Package Format




Video quality The size Download

Информация о Game Engine Programming: A Simple Package Format


Название :  Game Engine Programming: A Simple Package Format
Продолжительность :   3.31.45
Дата публикации :  
Просмотров :   46 rb


Кадры Game Engine Programming: A Simple Package Format





Описание Game Engine Programming: A Simple Package Format



Коментарии Game Engine Programming: A Simple Package Format



No tux no bux
You want that memcpy in the put because otherwise you might get unaligned memory write which can crash the program depending on the cpu architecture
Comment from : No tux no bux


koosa
You're like the Da Vinci of modern gaming and i can just watch one of your sort of,, behind the scenes'' videos and just leave the comment That's pretty sweet
Comment from : koosa


→ to the knee
Middle endian is a thing For example, 32-bit integers on a PDP-11 0xcafebabe would be stored as 0xfe 0xca 0xbe 0xba
Comment from : → to the knee


Larandar
I know I come late, but I find myself asking: "Why not 'just' use a good TAR library both for creating and reading the package?" I feel like it fit most, if not all, the prerequisite?
Comment from : Larandar


Tim Treichel
This is great The problem was simple enough, so that I could understand everything and I learned a view things For example, at first I did not understand why the ToC would be at the end of the file intuitively I would defenitely think, that a ToC should be at the start of the file However, after your simple explanation it was obvious why having it at the end of the file is more efficient (when adding content later on) Furthermore you seemed to be in a good mood, which made this really enjoyable
Comment from : Tim Treichel


NKCSS
3:01:20 Why even keep /data/levels/ ? This is the levels package, right? You could specify a base path in the package header or something if you wanted to preserve that and just have arms_lengthv2/allentities as the file name (or, since everything is actually allentities right now, just arms_lengthv2)
Comment from : NKCSS


NKCSS
1:24:00 why not add a version number at the start? That way you don't have to just padd out 'reserved' stuff now; just implement what you need, version the load/create; that way you can just write what you need, when you need to update it later, you can if you want, and a migration/upgrade would just be read_specific_version, write_new_version (specify any additional data it would need)
Comment from : NKCSS


NKCSS
I thought you would build it in a way, that, while developing, if a file exists on disk, you'd load that, if not, read it from the package; that way, you can have your packaged up contents, but still work on stuff without having to constantly repackage, but from the first 14 minutes, it seems like you went for an on/off toggle approach I wonder why that is; will watch the other 3h15m to see if I find out 😊
Comment from : NKCSS


Tim Wheeler
Thanks for the video! It was nice and self-contained, with a lot of good best practices Loved how it all came together in the end on the real game The way Jai efficiently casts between types (and << thing to get bytes) makes me feel very data-aware as a programmer, something high level languages try to abstract away Your build times are blazingly fast Thanks for sharing
Comment from : Tim Wheeler


Isaac Lee
I feel like it's so rare that I find a video of Jonathan Blow not deeply in the middle of something Kinda refreshing watch someone cook something up relatively from scratch
Comment from : Isaac Lee


Limit Holdem
Are there links to the very first episodes of working on a package format?
Comment from : Limit Holdem


Stardidi
Out of curiosity: have you considered using hashes of the filename / IDs instead of a string path? That would allow for fixed-size Entry_Info and save some package/memory sizebrbrComplexity not worth the performance gains?
Comment from : Stardidi


slicxx
i remember sitting in a lecture at my university (Graz, Austria) first semester, was convinced lectures are importantbrive watched your channel before starting to study and looked up to Jonathan as a mentor!brbri skipped game-dev-days at my uni becuase i had a lecture - 2 days later i learned that you gave a talk at my small univerity while i was in a lecture without mandatory attendance, missing your talk It still hurts a few years later!brbrThanks for being such a great person, you care to share, it's just lovely
Comment from : slicxx


Spider
Welcome back! :)
Comment from : Spider


2nafish117
You can probably use this system to create save files too right?
Comment from : 2nafish117


antonofka9018
At 2:26:10, you're doing that ugly array cast Consider adding an array_cast(type, array) as a standard helper function, because array casts are quite common when working with memory at a low level brbrD has their normal casting mechanism handle that case In D, you can just do cast(byte[]) on a float array and it would do the same thing you did there This is arguably worse than having a function, because it adds more meaning to the already overloaded cast keyword brbrAnyway, my point is, I think the language should provide cleaner means of doing that sort of thing
Comment from : antonofka9018


Lloyd Goodall
Is there a strong reason as to why the TOC goes at the end of the file rather than straight after the header?
Comment from : Lloyd Goodall


Doru Min
12:10 I figured that we did streaming I/O (whether lines or chunks) because of disk latency and support for streams/pipes which are super prevalent in Unix command line applications Of course, streaming is often unnecessary complexity, but the difference from loading the file and executing the processing on the CPU is still orders of magnitude, so it's hard to make a definitive statement for all workloads
Comment from : Doru Min


SamuraiNak
Glad to see you back on YouTube Love your videos
Comment from : SamuraiNak


Sam Lee
Nit-pick: I think you missed a reserved u32 in the TOC header struct (bytes 4-7 are non-explicit padding)
Comment from : Sam Lee


FlyingScarf
Hi Jonathan, I hope you are doing wellbrI’d like to thank you for your work on The Witness and for sharing these videos on Youtube brbrSometimes technical about game design, programming and sometimes more on the human side, talking about mental health, perception and development, they are relevant and quite welcome!brbrThanks!
Comment from : FlyingScarf


Spongman
by reserving memory for a file (instead of just mmapping it) you're forcing the VM system to page that file out to swap instead of just being able to discard it if you have a read-only file on disk, and you're fine with it remaining so, you're pretty much ialways/i better off mmapping the file than loading it into memory appropriate use of madvise and FILE_FLAG_SEQUENTIAL_SCAN is advised
Comment from : Spongman


Aldric Bocquet
What's with the "" in the function name (1:56:02) ? Is it ignored by the compiler to let the dev align the function names properly ?
Comment from : Aldric Bocquet


Темирбек Рахимгалиев
OMG! I'm so happy!
Comment from : Темирбек Рахимгалиев


Jkauppa
you could just zip it
Comment from : Jkauppa


Dima Rich
Soog these blogs are back You gave me some ideas and inspired me a lot
Comment from : Dima Rich


bruterasta
0:50 all_paint_data only one per level, total count 705 - excuse me what?
Comment from : bruterasta


bruterasta
Holly shit official upload
Comment from : bruterasta


junosoft
Is the source available? Would it be available?
Comment from : junosoft


Celia
Oh yes, the "simp" format
Comment from : Celia


Serge Solkatten
Yesssssss
Comment from : Serge Solkatten


Sam Auciello
I'm less familiar with this language; what does the [] array syntax do?
Comment from : Sam Auciello


Rick
Nice to see you back on YouTube!
Comment from : Rick


Georgi Hadzhiev
My man uploaded in 360p
Comment from : Georgi Hadzhiev


TheTasteful Toastie
Wonderfully put:br"This is actually a very true thing across all software development: When you're solving a specific problem you can often be very efficient, and when you're solving a general problem you often can't be very efficient, because efficiency requires assumptions, or invariants you can guarantee, and the more general you are trying to be, the fewer invariants you can guarantee" - Jon Blow 2022
Comment from : TheTasteful Toastie


Double
Great topic
Comment from : Double


Menko
For those interested, Twitch VOD link until YouTube finishes processing something other than 360p: wwwtwitchtv/videos/1267465449
Comment from : Menko


32 gigs
Welcome back on YouTube, king
Comment from : 32 gigs



Похожие на Game Engine Programming: A Simple Package Format видео

Game Engine Programming: Animation File Format, part 2. Game Engine Programming: Animation File Format, part 2.
РѕС‚ : Jonathan Blow
Download Full Episodes | The Most Watched videos of all time
Job Letter Format for class 11 and 12 | Letter writing in English | Job Application Format Job Letter Format for class 11 and 12 | Letter writing in English | Job Application Format
РѕС‚ : Apex Coaching Center
Download Full Episodes | The Most Watched videos of all time
Format of email writing 2023 || Email writing format Format of email writing 2023 || Email writing format
РѕС‚ : SAZ education
Download Full Episodes | The Most Watched videos of all time
Procedure Oriented Programming and Object Oriented Programming - Java Programming Tutorial Procedure Oriented Programming and Object Oriented Programming - Java Programming Tutorial
РѕС‚ : Ekeeda
Download Full Episodes | The Most Watched videos of all time
This game engine is essential if you want to create a video game #opensource #gamedev #programming This game engine is essential if you want to create a video game #opensource #gamedev #programming
РѕС‚ : Coding with Lewis
Download Full Episodes | The Most Watched videos of all time
Is Unity a bad game engine!? ?‍?? #technology #programming #software #gamedev #gaming Is Unity a bad game engine!? ?‍?? #technology #programming #software #gamedev #gaming
РѕС‚ : Coding with Lewis
Download Full Episodes | The Most Watched videos of all time
What GAME ENGINE should you use? ? #programming #tech #code #software #gamedev #technology #gaming What GAME ENGINE should you use? ? #programming #tech #code #software #gamedev #technology #gaming
РѕС‚ : Coding with Lewis
Download Full Episodes | The Most Watched videos of all time
Game Engine Programming: Fog of War 1 Game Engine Programming: Fog of War 1
РѕС‚ : Jonathan Blow
Download Full Episodes | The Most Watched videos of all time
Adding an Engine Runtime (Play/Stop Buttons) | Coding a 2D Game Engine in Java #39 Adding an Engine Runtime (Play/Stop Buttons) | Coding a 2D Game Engine in Java #39
РѕС‚ : GamesWithGabe
Download Full Episodes | The Most Watched videos of all time
Knapsack Problem using Dynamic Programming Part I | Dynamic Programming | Lec 65 | DAA Knapsack Problem using Dynamic Programming Part I | Dynamic Programming | Lec 65 | DAA
РѕС‚ : CSE Guru
Download Full Episodes | The Most Watched videos of all time