James Lambert
James Lambert
  • 41
  • 5 423 192
When You Can't Use Unreal Engine To Make A Game
Brilliant link to get 30 days free and 20% off an annual subscription
brilliant.org/JamesLambert/
I teach you principles that I have learned over the years to help you succeed in making your own game engine when you can’t use out of box engines like Unity, Unreal Engine, and Gadot.
Patreon
www.patreon.com/JamesLambert
zhlédnutí: 20 448

Video

Powered by N64 Hardware | Mario 64
zhlédnutí 58KPřed měsícem
Brilliant link to get 30 days free and 20% off an annual subscription brilliant.org/JamesLambert/ I teach you how I created a VR rom hack for Mario 64 that runs on real N64 hardware with an Oculus Rift DK1. Rom patch to try it out yourself github.com/lambertjamesd/sm64/releases Get Bzzzt on Steam store.steampowered.com/app/1293170/BZZZT/ Patreon www.patreon.com/JamesLambert VR powered by N64 cz...
Can Portal 64 be saved? - Libdragon
zhlédnutí 105KPřed 2 měsíci
Use my link www.displate.com/jameslambert or my discount code JAMESLAMBERT to access my special promo on all designs 1-2 are 27% OFF 3 are 37% OFF. Available for one week only. Discount applied automatically at check out when using my link, (excl. Limited Editions, Lumino and Textra). Video edited by Joe Lambert The new game I am working on is here github.com/lambertjamesd/spellcraft Patreon li...
VR powered by N64
zhlédnutí 149KPřed 4 měsíci
I used my USB to N64 adapter to connect an Oculus DK1 to my N64 and this was the result. Edited by Joe Lambert
Making an NES to N64 controller adapter
zhlédnutí 24KPřed 5 měsíci
I created an NES to N64 controller adapter so I could play with the power glove. It didn't go so well. Edited by Joe Lambert
What happened to Portal 64?
zhlédnutí 196KPřed 6 měsíci
It has been a fun ride. I have really enjoyed working on this project. I am sad to see it end like this but I am excited for whatever new future project I do next. Thank you all for your support. Edited by Joe Lambert
Portal 64: First Slice, is out of beta
zhlédnutí 256KPřed 6 měsíci
Portal 64 first slice is out of beta. I really polished up the portal gun, rounded the portals, fixed some z fighting issues. Support the project here www.patreon.com/JamesLambert Console and controller mod by bloodykieren x.com/bloodykieren Video edited by Joseph Lambert Latest Portal 64 ROM Download lambertjamesd.github.io/RomPatcher.js/index.html
How I optimized Portal to run on the Nintendo 64
zhlédnutí 586KPřed 8 měsíci
Play World of Warships here: wo.ws/47grrw6 Thank you World of Warships for sponsoring this video. During registration use the code HSF2023 to get for free: 200 doubloons, 1 million credits, 7 Days of Premium Account time, HSF commander Misaki Akeno, and HSF commander Irizaki Mei. Applicable to new users only. Here I talk about how I optimized the game, the challenges with rumble pak, and transl...
What happens if the portal stops moving halfway? | Portal Paradox
zhlédnutí 30KPřed 8 měsíci
Grab Atlas VPN for just $1.70/mo 6 months extra before the BLACK FRIDAY deal expires: get.atlasvpn.com/JamesLambert 👈 Here I explore the details of the portal paradox and what happens if the portal stops halfway through the cube Video edited by Joseph Lambert Latest Portal 64 ROM Download github.com/lambertjamesd/portal64/releases
I fixed the portal gun, added particle effects, and more | Portal 64 0.12.0
zhlédnutí 75KPřed 9 měsíci
I finally fixed the portal gun, added particle effects, and added signage to the levels. Video edited by Joseph Lambert Latest ROM Download github.com/lambertjamesd/portal64/releases N64 Homebrew Resources discord.gg/WqFgNWf n64.dev/#community If you want to code using the official N64 SDK crashoveride95.github.io/n64hbrew/modernsdk/index.html lIf you want to use an open source SDK libdragon.dev/
How I implemented MegaTextures on real Nintendo 64 hardware
zhlédnutí 330KPřed 10 měsíci
This demo showcases a technique I came up with for the last N64Brew gamejam. You can download the ROM here github.com/lambertjamesd/n64brew2023/releases The stain glass windows were created by Caitlin G Cooke caitlingcooke.art/ The music for the demo was done by Jeff Nichter @jtn191 jtn191
Vertex Lighting, Security Cameras, and More | Portal 64 0.11
zhlédnutí 162KPřed 10 měsíci
Lots of polish for the game including vertex lighting Latest ROM Download github.com/lambertjamesd/portal64/releases N64 Homebrew Resources discord.gg/WqFgNWf n64.dev/#community If you want to code using the official N64 SDK crashoveride95.github.io/n64hbrew/modernsdk/index.html lIf you want to use an open source SDK libdragon.dev/
How I added a USB port to the Nintendo 64 (Because I didn't want to buy the mouse)
zhlédnutí 116KPřed 11 měsíci
I created a device that lets the N64 work as a USB host. So far it only supports a boot mouse but more functionality could be added in the future with only software changes. Source code for the project is here github.com/lambertjamesd/n64-usb
Portal64 now has a menu and lets you customize controls
zhlédnutí 43KPřed rokem
There are now menus for Portal64 including save files and control Latest ROM Download github.com/lambertjamesd/portal64/releases/tag/v0.10.0 N64 Homebrew Resources discord.gg/WqFgNWf n64.dev/#community If you want to code using the official N64 SDK crashoveride95.github.io/n64hbrew/modernsdk/index.html lIf you want to use an open source SDK libdragon.dev/
Portal 64, The First Slice, is now in beta
zhlédnutí 97KPřed rokem
Portal 64, The First Slice, is now in beta
Chell can now die on Nintendo 64 hardware!
zhlédnutí 22KPřed rokem
Chell can now die on Nintendo 64 hardware!
I rewrote Portal from scratch and solved the Portal Paradox
zhlédnutí 722KPřed rokem
I rewrote Portal from scratch and solved the Portal Paradox
Chell has arrived in Portal64! (and why it is nearly impossible to optimize her mesh)
zhlédnutí 233KPřed rokem
Chell has arrived in Portal64! (and why it is nearly impossible to optimize her mesh)
How are toon shading and dynamic shadows possible on the N64?
zhlédnutí 77KPřed rokem
How are toon shading and dynamic shadows possible on the N64?
Portal with N64 Reveal Trailer
zhlédnutí 139KPřed rokem
Portal with N64 Reveal Trailer
5 test chambers done but now I am doing something else | Portal64
zhlédnutí 25KPřed rokem
5 test chambers done but now I am doing something else | Portal64
How can the N64 handle fast moving objects? | Portal64
zhlédnutí 521KPřed rokem
How can the N64 handle fast moving objects? | Portal64
How can the Nintendo 64 run portal?!? | Portal64
zhlédnutí 887KPřed 2 lety
How can the Nintendo 64 run portal?!? | Portal64
Portal Demake for Nintendo 64 | Buttons and Doors
zhlédnutí 47KPřed 2 lety
Portal Demake for Nintendo 64 | Buttons and Doors
Portal Demake for Nintendo 64: Portal Gun
zhlédnutí 209KPřed 2 lety
Portal Demake for Nintendo 64: Portal Gun
Portal Demake for Nintendo 64: First time walking through portals
zhlédnutí 22KPřed 2 lety
Portal Demake for Nintendo 64: First time walking through portals
Portal Nintendo 64 Demake: First Step on Physics Engine
zhlédnutí 24KPřed 2 lety
Portal Nintendo 64 Demake: First Step on Physics Engine
Portal Graphics Test on Real Nintendo 64 Hardware
zhlédnutí 22KPřed 2 lety
Portal Graphics Test on Real Nintendo 64 Hardware
Realtime Toon Shading on N64 Hardware
zhlédnutí 14KPřed 2 lety
Realtime Toon Shading on N64 Hardware
"Impossible" Realtime Shadows on N64 Hardware
zhlédnutí 46KPřed 2 lety
"Impossible" Realtime Shadows on N64 Hardware

Komentáře

  • @Klemorius
    @Klemorius Před 4 hodinami

    RIP

  • @realgptv01
    @realgptv01 Před 3 dny

    This looks like it's made in GoldSrc

  • @UV_54633
    @UV_54633 Před 4 dny

    Don’t portals get destroyed when the object their on moves?

  • @izombiemushroom8661

    that wpuldnt work because quantum Tunnels destabilize and Collapse when moving

  • @philboul7243
    @philboul7243 Před 9 dny

    Whao, now we can play with blurry fogs in VR! 😆

  • @bashcatz
    @bashcatz Před 10 dny

    If all else fails, do a 2005 Valve move and port it to the original Xbox. Its probably a horrible idea... but you _did_ get it to work on the N64.

  • @superkuchen3785
    @superkuchen3785 Před 11 dny

    But what if the portal stops half way through swallowing the object?

    • @tigereyeproductions6102
      @tigereyeproductions6102 Před 11 dny

      He actually made a second video about this. czcams.com/video/IfGHutEXw0s/video.htmlsi=0frD6o_56FRgzTuW

    • @james.lambert
      @james.lambert Před 10 dny

      If it stops fast enough and the object is brittle i could split in half. If not then the part that passed through would pull the rest of the cube but at a slower speed.

  • @harrypotamus4968
    @harrypotamus4968 Před 11 dny

    The "solution" in a fan made demake. If you're going off what happens in game, then the real answer is that it gets stuck without going through.

  • @celebraces2
    @celebraces2 Před 12 dny

    Ah, my favourite error message that means nothing to the user: "object reference not set to an instance of an object"

  • @somecuntxxx
    @somecuntxxx Před 12 dny

    Fun fact: if you cross your eyes just right, you too can see this in 3D.

  • @nowicando7651
    @nowicando7651 Před 12 dny

    you said you are making your own engine? can you release some? I will be trying to get JavaScript to run with this. send me some.

    • @james.lambert
      @james.lambert Před 12 dny

      Here is what I have so far github.com/lambertjamesd/spellcraft I don't know how much of this will apply to your environment

    • @nowicando7651
      @nowicando7651 Před 10 dny

      @@james.lambert #include <stdio.h> int main() { const struct { void (*log)(const char *); } console = { .log = printf }; console.log("Hello world from an edge of JavaScript"); } we have to get this lib to provide the ability to understand JavaScript. I want to use your lib in the future.

    • @nowicando7651
      @nowicando7651 Před 12 hodinami

      @@james.lambert can you make this lib an installer, please?

  • @user-pg3jr4dc6w
    @user-pg3jr4dc6w Před 12 dny

    Portal para Android

  • @James_Kosmo
    @James_Kosmo Před 12 dny

    Idk if it is possible, but lately I've been experimenting with re-coding a game through the game it self, for example in Minecraft each block has a binary code to identify it, there is a way to "combine" the first part of one block and the last part of another, therefore combining two blocks into a new , deferent one. What I'm saying is that couldn't you glitch the game when you use an id? With classes I don't think its possible, but with ids it can be done.

    • @james.lambert
      @james.lambert Před 12 dny

      I'm not entirely sure what you are asking but I if there are two separate configurations for a block then you want two separate pieces of information on the block. I would also not use the entity/gameobject system for each individual block. I would have a single game object manage groups of blocks.

    • @James_Kosmo
      @James_Kosmo Před 12 dny

      @@james.lambert I wrote the comment while in a hurry. What I meant was that you can glitch games into doing something else by doing certain actions. For example in super Castlevania, you can skip the whole game by performing a boosted jump and enter the next screen, if you do that the game checks the state of the character through a number. For example if the player is idle the number is 1, if he attacks 2 etc. The game is designed for the character to enter in the walking state but if you enter in the attacking state the game gets confused since the number happens to glitch the game. If it used classes (which was impossible) then this wouldn't have happened. It is very complicated to explain, I hope that I cleared things out. If not , just search super Castlevania Speedrun and I think you will understand that I'm saying.If you are reading this love your vids!

  • @hyacinth1351
    @hyacinth1351 Před 13 dny

    nice dob

  • @naufalam7840
    @naufalam7840 Před 13 dny

    goldsrc portal be like:

  • @morosov4595
    @morosov4595 Před 14 dny

    Portals cannot be moved, as they are not wormholes, but quantum tunnels (portal gun is officially called "Quantum tunneling device"). The energy comes from the miniaturized black hole that's inside the Portal Gun. The Quantum Teleportation concept is used.

    • @james.lambert
      @james.lambert Před 13 dny

      Except that on Portal 2, you do attach portals to a surface that moves the portal with it.

    • @morosov4595
      @morosov4595 Před 13 dny

      @@james.lambert Yup, in a Neutotoxin Facility. Doesn't change the fact that they can't.

  • @LeopoldPeters
    @LeopoldPeters Před 14 dny

    He says objectoriented is overrated and then makes his own object orientation😂

  • @SpaghettiEnterprises
    @SpaghettiEnterprises Před 15 dny

    Ugh I felt this. Was looking at some stuff today that I wrote a few years ago and hoo boy... Definitely solving some imaginary problems there

  • @RealTal.
    @RealTal. Před 15 dny

    Yeah stale refference manipulation is what breaks OOT its serious stuff

  • @legoboy7107
    @legoboy7107 Před 15 dny

    "You might be optimizing code that only gives you nanoseconds of improvement." Kaze Emanuar: And?

  • @inxomnyaa
    @inxomnyaa Před 16 dny

    That is very much like my current ECS works (in PHP. OOP is definitely overrated) 👍🏻 I wish i would've had that advice earlier, I've always added more and more features 😅 Though, i have developed that behavior because i kept rewriting everything in my code, especially APIs

  • @xxsemb
    @xxsemb Před 17 dny

    Hey James random question, what mic is that? thank you

  • @zanagi
    @zanagi Před 17 dny

    I'm not sure if you can publish a game that used proprietary engine on steam without contacting them directly...

  • @salcarreiro6756
    @salcarreiro6756 Před 17 dny

    do you think a game like Zelda: Phantom Hourglass for the NDS would run on N64?

  • @admiralAlfonso9001
    @admiralAlfonso9001 Před 17 dny

    I liked the old thumbnail and title better because it was more understandable

  • @PauLtus_B
    @PauLtus_B Před 17 dny

    I always find it painful to see how many massive budget games are still just made with the Unreal engine. These games have so many resources yet they're still not building an engine that would specifically serve the game they're creating. I really wonder how many unnecessary calculations are constantly being made.

  • @CYON4D
    @CYON4D Před 18 dny

    Nice one.

  • @MasterZeroFX
    @MasterZeroFX Před 18 dny

    Haven't cited KISS, Keep it simple stupid... Also KISS and dont OOP.

  • @MatthewBakke
    @MatthewBakke Před 18 dny

    You always give off “smartest and most relaxed college professor” vibes. Always great videos!

  • @flythereddflagg
    @flythereddflagg Před 18 dny

    I'm not sure I want to go back and refactor my code but this makes a lot of sense. Especially the entity ID system.

  • @diskpoppy
    @diskpoppy Před 18 dny

    For anyone wondering: the approach that unity uses is generally called Entity Component System (ECS), and it's not even associated with OOP, rather tending to be used alongside data-oriented design (the approach could be summarized as: for every subsystem responsible for a given component, build a flat array of the relevant data from the relevant entities, that is then simply looped over without any pointer chasing)

    • @ITR
      @ITR Před 11 dny

      Not really, unity uses more of an object oriented component system, with low separation of data and logic and higher complexity if you try to use composition. Unity DOTS however has a proper ECS system, but most unity developers don't know how to use it

    • @diskpoppy
      @diskpoppy Před 11 dny

      @@ITR Ok, I stand corrected, I haven't used much of Unity, but that makes sense

  • @deconimus2393
    @deconimus2393 Před 18 dny

    It is perhaps noteworthy that the components pattern mentioned around 3:40 is also possible in C, even though C is not an object oriented language. Simply by using instances of structs and pointers. E.g. have a struct GameObject, which has pointers of structs Damageable etc. If the damageable pointer is NULL, the gameobject doesn't have that component and so on. In this particular case of an N64 game this exact implementation of the pattern might be inefficient due to memory limitations though (not sure).

  • @RC-1290
    @RC-1290 Před 18 dny

    Writing re-usable code is hard, because you don't know how you'll want to re-use later, and you're likely to end up with code that's annoying to use twice. It's much easier to write the same-ish code twice, and compress them into one if it makes sense.

    • @lexacutable
      @lexacutable Před 6 dny

      I absolutely disagree. Writing reusable code is a habit, and you can develop an instinct for how to write pretty much anything in a reusable way. It's not really a case of trying to decide what you'll want to reuse and maybe getting it right or wrong.

  • @temakov3r
    @temakov3r Před 19 dny

    portal doesn't work on moving surface, it just dissapears if you start moving the platform

  • @jimmyhirr5773
    @jimmyhirr5773 Před 19 dny

    You're not the only one critical of object-oriented programming. I've heard that many authors of high-performance game engines eschew object-oriented programming. Instead they do what's called data-oriented design. They say it is more performant because it reduces memory accesses and improves cache locality. In some cases, it makes it possible to use SIMD instructions.

  • @jimmyhirr5773
    @jimmyhirr5773 Před 19 dny

    "Write reusable code" conflicts with "only solve problems you have right now" and "keep it simple." The desire to write reusable code is what causes writing a game engine instead of a game. The way I avoid this is by extracting reusable code. I write code without thinking about reuse, and if I notice duplication, I remove it by refactoring. This is easy to do in the refactor step of the Red-Green-Refactor TDD loop.

    • @SnakeEngine
      @SnakeEngine Před 18 dny

      Well, "keeping it simple" is hard. And "writing reusable code" is hard, so that you have then a simpler time ;)

  • @TRUSTLBLACKMETAL
    @TRUSTLBLACKMETAL Před 19 dny

    such good advice, and explained so well. thank you.

  • @megan_alnico
    @megan_alnico Před 20 dny

    I remember an old Gamasutra article talking about a game having a lot of issues with its physics engine. A new person came in and made the observations that even though it was a 3D game, all the collisions could be done in 2D instead. The new code was simlle and efficient and got the job done. I think about this kinda thing a lot when people talk about using off the shelf game engines. How much is your engine doing that is unnecessary for your game?

  • @ellielikesmath
    @ellielikesmath Před 20 dny

    i probably will never understand why people care this much about the n64, but i'm glad people are working on it anyway.

  • @anon_y_mousse
    @anon_y_mousse Před 20 dny

    My tip for writing a game for a limited system is to A) don't do it B) if you really insist then use one of the open source engines such as Doom [1-3] or Quake [1-3] and go from there. However, I do completely disagree with you regarding object oriented programming in C. You absolutely can do it and I do it all the time. There are only two concepts in programming that you should always say no to using and that's recursion and recursion. For all else, moderation is the key. Use a moderate amount of the concepts, only as they apply to the problem you're trying to solve. Towards that end, you absolutely can create an object system for your game engine, but if you're targeting an N64, maybe consider something much more simple.

  • @omarnahumvazquezvillasenor8357

    The game link is not available, could you pass another link?

  • @neoqueto
    @neoqueto Před 20 dny

    I wish it were as simple as supplying an emulator along with the ROM with the Steam package, but without a BIOS, Valve wouldn't even consider such absurd roundabout distribution, that's a poor user experience, that's something they never had to consider supporting. Unfortunately Portal 64 is just a drop in the ocean to Valve.

  • @lfarrocodev
    @lfarrocodev Před 20 dny

    A question about one entity doing something to another one (eg. damage). Is an unit authoritative enough to direct apply damage to another one? Or that's up to another system?

    • @james.lambert
      @james.lambert Před 19 dny

      I would say that depends on what your game needs. I found it typically works fine for one actor to directly apply damage to another.

  • @marksmod
    @marksmod Před 20 dny

    6:27 to be fair, the number still is a reference, its just a managed one.

  • @insu_na
    @insu_na Před 20 dny

    And now to make it scalable use a message queue paradigm 🤣🤣 Edit: I'm mostly joking because I don't know what N64 systems are capable of and most of my game dev knowledge comes from server-side code. I'm nevertheless curious if zeromq or the like can run on N64. Tho given that N64 seems to be single-threaded I doubt there's much efficiency to gain here, except maybe to simplify the code required for batch processing of multiple events as an optimization.

  • @NickEnchev
    @NickEnchev Před 20 dny

    One thing to add to your "don't optimize now" remarks, I tend to follow the same ruleset, and then love running my engine through something like perf or the performance analysis tools inside Visual Studio or Xcode (instruments) to check how much time my code is spending in various functions. Quickly helps me find performance bottlenecks and narrows down potential optimization points.

  • @thenamelessavenger
    @thenamelessavenger Před 21 dnem

    I'm not a programmer and I understood what you said. Thank you! And looking forward to more of your game updates.

  • @MrVampify
    @MrVampify Před 21 dnem

    The second rule in my opinion is the most important rule in all of programming. At my work, we have a colleague who was tasked with making an automation script for our infrastructure, related to our monitoring. I had a couple other colleagues berate him with feature requests. I kept telling him, if a feature is not needed for the usability of the task, it can be made later. I am now re-writing it from scratch because it became a complex unmovable and unusable spaghetti code with hard-coded values that were inflexible, and dependant on external systems. I wrote the entire thing in 3 classes, and can be configured with 1 configuration file. I have added 2 features since, which allow us way more flexibility and not only automate what needed to be automated, but we can extend the original capabilities of what we were using. Simple, is better than capable.

  • @BSzili
    @BSzili Před 21 dnem

    Out of curiosity, why do you hold a microphone stand that was meant to put on at able in your hand, bashing the cable into it? Is this programming ASMR? 😀

    • @philcoast1031
      @philcoast1031 Před 20 dny

      More like a reverse ASMR. The constant noise was very distracting thoughout the video.

  • @jakeparkinson8929
    @jakeparkinson8929 Před 21 dnem

    You're by far one of the coolest people out there.