- 41
- 5 423 192
James Lambert
Registrace 16. 06. 2007
I like coding games and retro consoles.
Here is my Patreon if you want to support the channel
www.patreon.com/JamesLambert
Here is my Patreon if you want to support the channel
www.patreon.com/JamesLambert
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
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?
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
"Impossible" Realtime Shadows on N64 Hardware
zhlédnutí 46KPřed 2 lety
"Impossible" Realtime Shadows on N64 Hardware
RIP
This looks like it's made in GoldSrc
Don’t portals get destroyed when the object their on moves?
that wpuldnt work because quantum Tunnels destabilize and Collapse when moving
There are moving portals in portal 2
Whao, now we can play with blurry fogs in VR! 😆
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.
But what if the portal stops half way through swallowing the object?
He actually made a second video about this. czcams.com/video/IfGHutEXw0s/video.htmlsi=0frD6o_56FRgzTuW
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.
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.
Ah, my favourite error message that means nothing to the user: "object reference not set to an instance of an object"
Fun fact: if you cross your eyes just right, you too can see this in 3D.
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.
Here is what I have so far github.com/lambertjamesd/spellcraft I don't know how much of this will apply to your environment
@@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.
@@james.lambert can you make this lib an installer, please?
Portal para Android
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.
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.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!
nice dob
goldsrc portal be like:
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.
Except that on Portal 2, you do attach portals to a surface that moves the portal with it.
@@james.lambert Yup, in a Neutotoxin Facility. Doesn't change the fact that they can't.
He says objectoriented is overrated and then makes his own object orientation😂
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
Yeah stale refference manipulation is what breaks OOT its serious stuff
"You might be optimizing code that only gives you nanoseconds of improvement." Kaze Emanuar: And?
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
Hey James random question, what mic is that? thank you
I'm not sure if you can publish a game that used proprietary engine on steam without contacting them directly...
do you think a game like Zelda: Phantom Hourglass for the NDS would run on N64?
I liked the old thumbnail and title better because it was more understandable
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.
Nice one.
Haven't cited KISS, Keep it simple stupid... Also KISS and dont OOP.
You always give off “smartest and most relaxed college professor” vibes. Always great videos!
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.
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)
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
@@ITR Ok, I stand corrected, I haven't used much of Unity, but that makes sense
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).
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.
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.
portal doesn't work on moving surface, it just dissapears if you start moving the platform
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.
"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.
Well, "keeping it simple" is hard. And "writing reusable code" is hard, so that you have then a simpler time ;)
such good advice, and explained so well. thank you.
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?
i probably will never understand why people care this much about the n64, but i'm glad people are working on it anyway.
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.
The game link is not available, could you pass another link?
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.
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?
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.
6:27 to be fair, the number still is a reference, its just a managed one.
That is true
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.
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.
I'm not a programmer and I understood what you said. Thank you! And looking forward to more of your game updates.
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.
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? 😀
More like a reverse ASMR. The constant noise was very distracting thoughout the video.
You're by far one of the coolest people out there.