Creating Minecraft in Python [with the Ursina Engine]

แชร์
ฝัง
  • เผยแพร่เมื่อ 3 ธ.ค. 2024

ความคิดเห็น • 1.8K

  • @LoganMeyers03
    @LoganMeyers03 3 ปีที่แล้ว +610

    Dear TH-cam Algorithm,
    You have FINALLY given me a good suggestion, one that has actually had a high value to it, one that I actually really enjoyed.
    No but actually this is a great tutorial, and I really like it! Thanks!

    • @_lun4r_
      @_lun4r_ 3 ปีที่แล้ว +4

      69 likes 😎

    • @LoganMeyers03
      @LoganMeyers03 3 ปีที่แล้ว

      @@_lun4r_ lol yea

    • @kremlinbasement7768
      @kremlinbasement7768 3 ปีที่แล้ว +8

      69: 💩📉
      Stack and 5: 😀📈

    • @ShiroCh_ID
      @ShiroCh_ID 3 ปีที่แล้ว +1

      agreed here

    • @tariqs.111
      @tariqs.111 3 ปีที่แล้ว +1

      Yeah TH-cam has some great, high quality content, it just takes some time to find it

  • @china0018
    @china0018 3 ปีที่แล้ว +736

    "Mom can I buy minecraft?"
    "No"
    "Fine. I'll do it myself."

    • @mehakbrar3944
      @mehakbrar3944 3 ปีที่แล้ว +8

      Lmao 🤣 🤣

    • @parthacodes5893
      @parthacodes5893 2 ปีที่แล้ว +1

      Right I have might mine carft without money I was a hacker front before only

    • @limeedhot
      @limeedhot 2 ปีที่แล้ว +3

      @@parthacodes5893 ur grammar is so good im proud of you

    • @funwithalbi2425
      @funwithalbi2425 2 ปีที่แล้ว +1

      why would you ask someone if you can buy something with YOUR money

    • @funwithalbi2425
      @funwithalbi2425 2 ปีที่แล้ว +2

      @@parthacodes5893 you don’t know how hacking is really. i know cyber security

  • @mkglory2410
    @mkglory2410 4 ปีที่แล้ว +2018

    my snake game project had 250+lines, and he created a "minecraft" in 90 lines, well life aint easy.

    • @akgang602
      @akgang602 3 ปีที่แล้ว +22

      🤣🤣 Lamao

    • @LtdJorge
      @LtdJorge 3 ปีที่แล้ว +191

      Using an engine tho

    • @sauliustb
      @sauliustb 3 ปีที่แล้ว +157

      quality of a project can't be measured in number of lines. If you have a different coding style you can easily create more lines without reducing or even improving readability.
      Also, (still at the start of the video, so not sure what's in the Pynecraft game), snake needs quite a bit of logic that a minecraft clone doesn't need, whereas snake also needs a world to move in...

    • @grimm5751
      @grimm5751 3 ปีที่แล้ว +25

      @@sauliustb Agree with you on the first part, not sure if i do on the last though.

    • @mariocamspam72
      @mariocamspam72 3 ปีที่แล้ว +24

      in python 250 or 90 lines can be the exact same speed because interpreter (and by exact same speed i mean very slow)

  • @MrWinotu
    @MrWinotu 2 ปีที่แล้ว +1

    My 9 year old child wants to learn programming because of this movie! He believed it's possible to do it and wants to create a game like Minecraft. Yo are amazing! Thanks a lot.

  • @potayto2271
    @potayto2271 4 ปีที่แล้ว +412

    This channel is criminally underrated

    • @pizzapie2071
      @pizzapie2071 4 ปีที่แล้ว +3

      For real god

    • @yusufnusrat
      @yusufnusrat 3 ปีที่แล้ว +3

      agree i think he is going well in 3 days he got 140 subs which is great for small channels and i am sure one day this channel will be great and have more subs :-)

    • @hmm5170
      @hmm5170 3 ปีที่แล้ว +1

      Its because he doesnt post often, if he posts often then he would get hundreds of thousands of subs

    • @Pirater666l
      @Pirater666l 2 ปีที่แล้ว

      Lol the video has 1.4 m visits, do you want us to make him a party or something?

    • @potayto2271
      @potayto2271 2 ปีที่แล้ว

      @@Pirater666l gee, I wonder if those views happened after I commented that more than a year ago.

  • @alzeay204
    @alzeay204 3 ปีที่แล้ว +604

    Making Minecraft...
    Him: 'So lets first begin with a circle'
    Me: *visible confusion*

    • @skindedream9293
      @skindedream9293 3 ปีที่แล้ว +30

      **confused screaming**

    • @GelleSzebasztian
      @GelleSzebasztian 3 ปีที่แล้ว +9

      So let's make a square.. Let's type uhm.. Circle! Then a circle is drawn on the screen!

    • @Cynadyde
      @Cynadyde 3 ปีที่แล้ว +9

      first i started with a circle, then i erased some of the details, and tada, minecraft

    • @keshav_trr
      @keshav_trr 3 ปีที่แล้ว

      *_-yeah-_*

    • @hperm6230
      @hperm6230 3 ปีที่แล้ว +4

      Bro you are one of the people on youtube who makes comments that are not copied from other videos. This is the type of comment that makes me have a little laugh. If I could pin this comment then I would!

  • @parthgupta4850
    @parthgupta4850 4 ปีที่แล้ว +96

    Sir this is the only video to make Minecraft with python, this video will get million views, I can bet.

    • @sanderdrack
      @sanderdrack 3 ปีที่แล้ว +3

      You bet wrong at least for now

    • @parthgupta4850
      @parthgupta4850 3 ปีที่แล้ว +3

      @@sanderdrack yes but only for now

    • @zyugyzarc
      @zyugyzarc 3 ปีที่แล้ว +2

      there are other videos of how to make cubes with pyopenGl and pyglet but this is the best one.
      yes i had to search for this, it didnt pop up in my recs

    • @parthgupta4850
      @parthgupta4850 3 ปีที่แล้ว +2

      @@zyugyzarc yeah

    • @ionrael
      @ionrael 3 ปีที่แล้ว +2

      There were other minecraft clones made in phyton, but i can't remember who did it, but I remembered to watch it a couple of years ago

  • @Concon-bu4bp
    @Concon-bu4bp 3 ปีที่แล้ว +29

    This is by far the coolest thing ive seen in coding so far. Especially with how simple it is

  • @pauliuscernius5820
    @pauliuscernius5820 4 ปีที่แล้ว +56

    I was searching for graphic libraries while ago for python (as pygame feels a bit too basic) and was unlucky for some time, but month later your video popped up almost accidently and showed this awesome library that i had no idea about, so thank you kind sir for showing this to us!

  • @Shadow-sc8tn
    @Shadow-sc8tn 4 ปีที่แล้ว +36

    I‘ve learned flappy bird, snake game, GTA2 car in this channel, and now I'm learning create 3d objects in python !

  • @nightfallalicorn4246
    @nightfallalicorn4246 ปีที่แล้ว +2

    This is quite fascinating. I like how this engine simplifies the process of making a game in an easy-to-learn language like Python with very little code. It removes the complicated parts of 3D Math, collusion, player camera, etc while just leaving the programmer just attaching the objects (Entity) and setting up their properties. I hadn't seen anything this light. I think this engine has great future potential.

  • @kavinbharathi
    @kavinbharathi 4 ปีที่แล้ว +55

    You can never know everything, I was just getting bored of pygame and this pops out of nowhere, and btw your channel is extremely underrated, and by that I mean *EXTREMELY* underrated...

  • @Ziad_Agamy
    @Ziad_Agamy 3 ปีที่แล้ว +2339

    Minecraft java edition: ❌
    Minecraft python edition: ✅

    • @ionrael
      @ionrael 3 ปีที่แล้ว +200

      *LAG INTENSIFIES*

    • @blylzz
      @blylzz 3 ปีที่แล้ว +12

      🤣🤣

    • @eliewilhelm
      @eliewilhelm 3 ปีที่แล้ว +44

      Well... there is Minecraft Pi.

    • @JayRain
      @JayRain 3 ปีที่แล้ว +39

      how 2 get 3 FPS on good GPU's simulator

    • @kaan732
      @kaan732 3 ปีที่แล้ว +5

      Minecraft pi edition is that

  • @beatpapes
    @beatpapes 4 ปีที่แล้ว +39

    This channel has advanced and skyrocketed with unexpected great tutorials from you, I've never expected minecraft to be replicated with python until now thanks to you!

    • @IsaacWilsonIsaac
      @IsaacWilsonIsaac 3 ปีที่แล้ว +1

      About 8 years ago, there was a guy named fogleman made a Minecraft “clone” in python with the pyglet library.

  • @SateLight
    @SateLight 3 ปีที่แล้ว +4

    A very nice tutorial! I never thought you can make a 3D game so simple in Python using Ursina

  • @mixlaproduction
    @mixlaproduction 4 ปีที่แล้ว +1583

    WOW, I wasn't expecting this at all! With a few more key features you can make this game pretty gameable. Keep it up, C!

    • @LtdJorge
      @LtdJorge 3 ปีที่แล้ว +110

      It's not C, it's Python

    • @_alfie_phillips_2058
      @_alfie_phillips_2058 3 ปีที่แล้ว +43

      @@LtdJorge He wasn’t referring to the programming language C, the youtubers name begins with C

    • @hrushikeshkale68
      @hrushikeshkale68 3 ปีที่แล้ว +7

      @@_alfie_phillips_2058 understand the code

    • @sangramjitchakraborty7845
      @sangramjitchakraborty7845 3 ปีที่แล้ว +37

      @@_alfie_phillips_2058 yes. That's the joke.

    • @JupiterVortex
      @JupiterVortex 3 ปีที่แล้ว +2

      @@LtdJorge C is the first letter of this channel name..

  • @samehoodie
    @samehoodie 3 ปีที่แล้ว +57

    *starts coding Minecraft from a circle*
    Mojang:
    "Understandable, have a good day."

  • @gondola3465
    @gondola3465 3 ปีที่แล้ว +7

    Luv how this video is both a tutorial and a demonstration for ursina

  • @zandgall1837
    @zandgall1837 3 ปีที่แล้ว +1

    27:21 it's probably HSV or HSL so changing the first value doesn't do anything unless it's saturated; which also explains the last value controlling it's greyness

  • @akshayc4145
    @akshayc4145 4 ปีที่แล้ว +16

    It is top grade, top class content you are delivering...with the most humble way possible..
    You are gonna make it like the Fat dino channel..I'm one of his early subscribers..
    But he is more of an entertainment oriented(I didn't make games with unreal)..your's is truly amazing, with explanations to every single step..
    I can't imagine the amount of effort you're taking...
    What to say, if I'm starting a channel in youtube, this will be the benchmark..
    Millions of love..

  • @MichaelJaikaran
    @MichaelJaikaran 3 ปีที่แล้ว +1

    I really apprecaite your tutorials. Often creators make a tutorial and don't explain what the key functions do. This was so helpful.

  • @samixpunch9678
    @samixpunch9678 4 ปีที่แล้ว +6

    I am so glad I found this channel I learned a lot of stuff from it. I hope you make another ursina tutorial

  • @aymancassim8944
    @aymancassim8944 3 ปีที่แล้ว +1

    Is it me or this man's voice makes you wanna stay and learn?
    Great vid man!

  • @benaissadjer5599
    @benaissadjer5599 4 ปีที่แล้ว +8

    man u're awesome i'm broke asf and i want to learn this things to see u showing this info free u're great keep going all love and respect to u sir

  • @espio3364
    @espio3364 3 ปีที่แล้ว +2

    That Block Placing and Destroying Sound is really satisfying for some reason

  • @DroidZed
    @DroidZed 3 ปีที่แล้ว +61

    Small update on the new version of Ursina and this video : if you want to specify a color and change the shading do as follows:
    color = color.Color(color.hsv(hue,saturation,random.uniform(.9,1.0))) # the third parameter is value , check the HSV color system for more info .... if you also question as this is only a tuple with 3 elements : check the Color class and you can see that there is a forth default argument a = 1 ! No need to meedle with that only if you know what you're doing.
    The cause of this if you did like in the vid there would be an error thrown just before the game renders anything and yall get confused : the constructor of the Color class expects a Vec4 (as Color enhreits from Vec4 basically) and you can notice this in the init function of Color.
    Hope it helps !

    • @aerotics8775
      @aerotics8775 3 ปีที่แล้ว +1

      Hey, Do you know how to get the 'assets/block' file?
      I dont see it on the github

    • @supansup
      @supansup 3 ปีที่แล้ว

      Hello, can anyone help me? I am trying to download the block thing from github and there are 2 files for the block and they are both code and not images or textures. How would I go about downloading them?

    • @supansup
      @supansup 3 ปีที่แล้ว

      Hi @@aerotics8775. Have you figured it out yet? I am having this same problem. I If you have figured it out can you please help me?

    • @nurunnahar4398
      @nurunnahar4398 ปีที่แล้ว

      @@supansup actually the block file is Grass_block.blend

  • @AntonioLatronicoDeveloper
    @AntonioLatronicoDeveloper 3 ปีที่แล้ว +2

    I created the same structure in FTEQW and it took over a month and.. with Ursina you did it in less than an hour! This engine, if the developer will keep adding vital features(skeletal animations, particle emitters, pool system, etc.) from Panda3d, it will become my engine of choice. Thanks A LOT for sharing this tutorial, keep it up the great work!

  • @kahwigulum
    @kahwigulum 2 ปีที่แล้ว +9

    Ursina comes with it's own sky function. Sky() does everything you have here without having to create a custom class for it.

  • @whoami6107
    @whoami6107 3 ปีที่แล้ว +3

    Finally someone shedding more light to ursina

  • @AleksanderFimreite
    @AleksanderFimreite 3 ปีที่แล้ว +7

    To supply a possible answer to what confused you at around 27:18...
    It's most common to define colors in the RGB color space. But there are quite a lot of other popular color spaces also.
    This one looks like it might be using one called HSV. (Hue, Saturation, Value)
    Hue is a range of 0 - 256 (possibly 255), While Saturation and Value are both 0.0 - 1.0

  • @ghosthitthose8681
    @ghosthitthose8681 3 ปีที่แล้ว

    This is probably the best tutorial you will get online

  • @RohanKumar-zd3pc
    @RohanKumar-zd3pc 4 ปีที่แล้ว +349

    NO WAY i didnt knew we can create anything 3d in Python

    • @ruchi727
      @ruchi727 4 ปีที่แล้ว +2

      yah!

    • @safi3968
      @safi3968 3 ปีที่แล้ว +52

      Ever heard of Opengl binding? There is opengl binding for almost every language.

    • @pixeltochi4961
      @pixeltochi4961 3 ปีที่แล้ว +30

      @@safi3968
      People judge a programming language on how it looks and how popular is it sadly :(

    • @grimm5751
      @grimm5751 3 ปีที่แล้ว +49

      You can basically create anything in Python, albeit it's a bad idea to.

    • @pixeltochi4961
      @pixeltochi4961 3 ปีที่แล้ว +25

      @@grimm5751
      Nah there are big names who uses python a lot and the low speed of python doesn't matter that much in most cases.

  • @sedeyoung
    @sedeyoung ปีที่แล้ว

    I’d love to show my support for these videos. Thank you for this amazing, engaging, and informative content!!

  • @uncannypronkstudios
    @uncannypronkstudios 4 ปีที่แล้ว +171

    Ursina looks more like an advanced version of turtle

    • @abualasif
      @abualasif 3 ปีที่แล้ว +8

      what did he sayyyyyyy

    • @seamuskills
      @seamuskills 3 ปีที่แล้ว +21

      accept turtle isnt a game engine

    • @primalaspid7197
      @primalaspid7197 3 ปีที่แล้ว +3

      😂😂

    • @apurvakumardani172
      @apurvakumardani172 3 ปีที่แล้ว +1

      It is a child version of panda3d

    • @hacker64xfn99
      @hacker64xfn99 3 ปีที่แล้ว +1

      @@apurvakumardani172 Child version ? That makes no sense, it is just programming in 2D, I bet it would take u 7 weeks to complete a full snake game u sloww

  • @ikryxxdev4756
    @ikryxxdev4756 3 ปีที่แล้ว +2

    Tips if you want to expand this:
    -implement chunks
    -after chunk implementation, add infinite world
    -give blocks tags, for example, what sound is played when you punch them
    -show what item is selected
    -implement transparent blocks
    -the basic ui stuff. Pause and settings menu, Inventory slots f.e.

    • @RRareGaming
      @RRareGaming 3 ปีที่แล้ว

      Then..
      -add naturally spawning structures
      -add mobs
      -add the nether
      -add the end
      -add more bloks

  • @simon_aviation
    @simon_aviation 2 ปีที่แล้ว +3

    To everyone, who doesn't know how to close ursina:
    app = Ursina()
    def input(key):
    if key == "escape":
    quit()
    put that in you code and press esc in the game

  • @pack1206
    @pack1206 3 ปีที่แล้ว +1

    Amazing! I finished the entire program! God bless you and god bless your channel :D

  • @nostalgia5031
    @nostalgia5031 3 ปีที่แล้ว +33

    HOLY I DIDN'T REALIZE THAT URSINA WAS THIS POWERFUL :O

    • @sinistergeek
      @sinistergeek 3 ปีที่แล้ว +1

      same here!! I realized it rn!!hahaa

    • @mlgsupergamer948
      @mlgsupergamer948 3 ปีที่แล้ว

      ITS OVER 9000!!!!!!!!!!!!!!!!

  • @akramelomrani8728
    @akramelomrani8728 3 ปีที่แล้ว

    This is incredible the game engine is so easy (as you said much more than pygame even the sound is easy) also the voice timing and the method of teaching is great

  • @KweenAhlem
    @KweenAhlem 3 ปีที่แล้ว +245

    please do more video on the Ursina Game Engine pleaaaase

    • @balaji.n7819
      @balaji.n7819 3 ปีที่แล้ว +3

      yeah ursina is better than pygame...

    • @sarthakarora2897
      @sarthakarora2897 3 ปีที่แล้ว +1

      @@balaji.n7819 Yes really it is very difficult in pygame

    • @balaji.n7819
      @balaji.n7819 3 ปีที่แล้ว

      @@sarthakarora2897 it's very tough to open a window, and add entity

    • @sarthakarora2897
      @sarthakarora2897 3 ปีที่แล้ว

      @@balaji.n7819 Are you talking about pygame??

    • @balaji.n7819
      @balaji.n7819 3 ปีที่แล้ว +1

      @@sarthakarora2897 yep

  • @1_and_only_Crjase
    @1_and_only_Crjase 3 ปีที่แล้ว

    You don't know how grateful I am for this video. Thank you.

  • @seven.v5
    @seven.v5 3 ปีที่แล้ว +30

    Me: Mom, can we get Minecraft?
    Mom: We have Minecraft at home.
    Minecraft at Home:

    • @shelby255
      @shelby255 3 ปีที่แล้ว +3

      Hahahhaha funny omg comedy 100

    • @seven.v5
      @seven.v5 3 ปีที่แล้ว

      @@shelby255 :)

    • @Hypcronite
      @Hypcronite 3 ปีที่แล้ว +2

      Me: Mom, can we get Minecraft?
      Mom: Yeah, sure.
      Minecraft at the store:

  • @TheSnsdgood
    @TheSnsdgood 3 ปีที่แล้ว

    i swear this is the best tutorial i have ever seen

  • @shrick69
    @shrick69 3 ปีที่แล้ว +3

    i love that you do random coloring to blocks. this need to the real minecraft too. :)

  • @DJStompZone
    @DJStompZone 2 ปีที่แล้ว +1

    In regards to the thing with `Button()` requiring `parent=scene` while `Entity()` doesn't, here's a fun fact!
    The `scene` parent attribute tells an entity that it lives in 3d space, `Entity` just happens to have `scene` as the default value for `parent`. Here's the fun part: `scene` isn't the only available parent! Whether you're instantiating an Entity or a Button, you can pass `parent=camera.ui` instead to use 2D (UI) space!
    Buttons are more commonly used in this way, which is why the constructor leaves it up to you to specify which parent to use (but Entity's doesn't).
    For the record: I learned about ursina from this video, earlier today, so I've gotta say... Definitely 6/5 stars for the good tip and great tutorial!
    +subscribed

  • @gligoradrian784
    @gligoradrian784 2 ปีที่แล้ว +6

    This was beautiful.
    When I saw the title, I expected 1FPS, since PETHON SLOW.
    But now I found an awesome coding channel. Good luck!
    😁

    • @byojuwon
      @byojuwon 2 ปีที่แล้ว

      The engine probably runs off c extensions, otherwise it would be too slow

    • @gligoradrian784
      @gligoradrian784 2 ปีที่แล้ว

      @@byojuwon 🤣🤣

    • @ryanstewart531
      @ryanstewart531 2 ปีที่แล้ว

      yeah, obviously it breaks down when you're loading too many blocks, but even java minecraft has to load by chunks, I wonder if you can compile this and make it even faster

    • @ugochanneltv5600
      @ugochanneltv5600 2 ปีที่แล้ว

      @@byojuwon the core of the engine was written in c++

  • @fentables
    @fentables 3 ปีที่แล้ว +2

    hippity hoppity, your code is now *presses ctrl+v* my property!

  • @ZenoDovahkiin
    @ZenoDovahkiin 3 ปีที่แล้ว +3

    So regarding the thing at around 9:50, I don't know Ursina, so I don't know if it caches loaded textures in some way, but loading a texture from file at each call could otherwise create a new texture instance every time at runtime. For textures that are reused very often, this might have a performance impact, so unless Ursina handles this already, I would advise people to do as the video does and use one variable for the texture unless you need to make instance specific modifications.

  • @sanjayyyy.6
    @sanjayyyy.6 10 หลายเดือนก่อน +1

    OMG, this kinda looks better than actual minecraft

  • @jac278
    @jac278 3 ปีที่แล้ว +5

    I think the colour values are HSV:
    Hue changed the colour but with no saturation it didn't change,
    The Hue was 0 which is usually red when you changed saturation,
    And the grey change was the Value (or Lightness)

  • @MrRyanroberson1
    @MrRyanroberson1 3 ปีที่แล้ว

    28:00 it is hue, saturation, brightness. Hue is an angle on the color wheel, saturation is percent of that color instead of white, and brightness is a final multiplier. Black is (h,s,0), grey and white are (x,0,brightness), and for any kind of pink or red you use (0,x,1)

  • @eranbroide3003
    @eranbroide3003 3 ปีที่แล้ว +36

    Names it test_Square, makes the shape a circle

    • @aw1lt
      @aw1lt 3 ปีที่แล้ว +2

      *im about to do whats called a pro gamer move*

  • @markojotovic8991
    @markojotovic8991 ปีที่แล้ว

    Wooow. As game developer i didn't know about python engine like this.. wow man thank you very much for this powerful engine 😊 you made my day

  • @HomeofLawboy
    @HomeofLawboy 3 ปีที่แล้ว +4

    A bit late, but that color.color() probably expects HSV values, first is Hue, second is Saturation, third is Brightness

  • @leya73
    @leya73 2 ปีที่แล้ว

    I just started learning python and this seems so easy because you are a wonderful teacher! I'm going to finish the course so I can do this.

  • @parthgupta4850
    @parthgupta4850 4 ปีที่แล้ว +5

    22:17 what I was not believing that it was so easy!!!

  • @kodd10
    @kodd10 3 ปีที่แล้ว

    Wow! So simple! Ursina is beautifully clean!

  • @Uroboros303
    @Uroboros303 3 ปีที่แล้ว +6

    Python is an easy language, I almost learned it

    • @jakubfrei3757
      @jakubfrei3757 2 ปีที่แล้ว

      You almost learnt it? What does it mean ?

  • @Necr0h
    @Necr0h 2 ปีที่แล้ว

    Thank you for this fantastic tutorial ! I realised all steps following your explanations and everything is clear
    I don't have errors and the game is working. Thank you :)

  • @raidedcluster
    @raidedcluster 3 ปีที่แล้ว +28

    The only thing I know in Python: print("Hello World")

    • @rc8s289
      @rc8s289 3 ปีที่แล้ว

      @@NoobieYT You assumed that print is only in lua??

    • @йцукен5959
      @йцукен5959 3 ปีที่แล้ว

      but here is writed(modifered):
      from ursina import *
      from f11func import *
      xlay=int(input('X plate size? '))
      zlay=int(input('Z plate size? '))
      tl=(xlay+zlay)*4
      print('Total blocks:',tl)
      ylay=int(input('Y layers? '))
      tl=tl*ylay
      print('Total blocks:',tl)
      v=input('Not flat? [1/0] ')
      input('Any enter...')
      BP = 0
      k = color
      from ursina.prefabs.first_person_controller import FirstPersonController
      class Hand(Entity):
      def __init__(self):
      super().__init__(
      parent=camera.ui,
      model='square'
      )
      class BVoxel(Button):
      def __init__(self, position=(0, 0, 0), texture='grass.png', colr=255, colg=255, colb=255, alpha=255, sc=(1,1,1), model='cube'):
      super().__init__(
      parent=scene,
      position=position,
      model=model,
      origin_y=0.5,
      texture=texture,
      color=rgb(colr,colg,colb,alpha),
      scale=sc)
      def input(self, key):
      if self.hovered:
      if key == 'left mouse down':
      voxel = BVoxel(position=self.position + mouse.normal, texture='download.png', colr=255,colg=255,colb=255,alpha=255)
      if key == 'right mouse down':
      destroy(self)
      if held_keys['z']:
      BVoxel(position=self.position + mouse.normal, texture='cg.png', colr=100,colg=100,colb=100,alpha=120)
      if held_keys['f']:
      BVoxel(position=self.position + mouse.normal, texture='fb.png', colr=255,colg=255,colb=255,alpha=255)
      if held_keys['x']:
      BVoxel(position=self.position + mouse.normal, texture='glowium.png', colr=random.randint(0,255),colg=random.randint(0,255),colb=random.randint(0,255),alpha=255)
      if held_keys['c']:
      BVoxel(position=self.position + mouse.normal, texture='grass.png', colr=random.randint(0, 200),
      colg=255, colb=random.randint(0, 200), alpha=255)
      if held_keys['v']:
      BVoxel(position=self.position + mouse.normal, texture='brick.png', colr=255,colg=255,colb=255,alpha=255)
      if held_keys['q']:
      app.saveCubeMap('ss32_#.png', 0)
      app.save_cube_map()
      app.saveSphereMap('ss32_#.jpg', 0)
      app.save_sphere_map()
      if held_keys['e']:
      app.loader()
      app = Ursina(
      )
      for z in range(-zlay, zlay):
      for x in range(-xlay, xlay):
      for y in range(0,ylay):
      if v=='1':
      if y==0:
      grs = BVoxel(position=(x, y+random.uniform(0.6, 0.9), z), texture='grass.png')
      if y >= 0:
      stn = BVoxel(position=(x, y-(ylay-0.8), z), texture='download.png')
      if v!='1':
      if y == 0 or y == 1:
      grs = BVoxel(position=(x, y, z), texture='grass.png')
      if y >= 1:
      stn = BVoxel(position=(x, y-(ylay-1), z), texture='download.png')
      player = FirstPersonController()
      app.run()

    • @pokemonmaster1244
      @pokemonmaster1244 3 ปีที่แล้ว

      I know a lot of Python.

  • @Aieou472
    @Aieou472 2 ปีที่แล้ว +1

    I'm definitely using ursina for all of my python game projects from now on.

  • @kavyaagrawal2013
    @kavyaagrawal2013 3 ปีที่แล้ว +11

    test square = *C I R C L E*
    Ah yes, this is my jam.

  • @scaffus
    @scaffus 3 ปีที่แล้ว +1

    You are the Brackeys of python, love it !

  • @simonwinther1285
    @simonwinther1285 3 ปีที่แล้ว +18

    LOL. I did this in one line of code:
    from minecraft import game
    It is python at the end of the day, you know :P

    • @JupiterVortex
      @JupiterVortex 3 ปีที่แล้ว +1

      I was like Wait- hold up when I read your comment xd

    • @simonwinther1285
      @simonwinther1285 3 ปีที่แล้ว

      @@JupiterVortex hahaha 😄😄

    • @nostalgia5031
      @nostalgia5031 3 ปีที่แล้ว +2

      I remember seeing that, "Minecraft in 5 seconds" lol.

    • @grimm5751
      @grimm5751 3 ปีที่แล้ว +3

      and minecraft turns out to be a C library :P

    • @JupiterVortex
      @JupiterVortex 3 ปีที่แล้ว +1

      @@grimm5751 Exactly
      *MISSION FAILED SUCCESSFULLY*

  • @Starting54321
    @Starting54321 3 ปีที่แล้ว

    It's crazy how this engine is so simple and intuitive

    • @g3itnal
      @g3itnal 3 ปีที่แล้ว

      pls help I am not able to get the grass block

  • @dhyanvyas6219
    @dhyanvyas6219 3 ปีที่แล้ว +5

    Nice game pragz

  • @scratchersdotcom9336
    @scratchersdotcom9336 3 ปีที่แล้ว

    Love this tutorial it helped me alot in learning python and about ursina I was so so bored on making basic games so I decided to make a little advanced game so here it is such an excellent tutorial on creating minecraft in python Love it! :)

  • @Deadshot-sq5pc
    @Deadshot-sq5pc 4 ปีที่แล้ว +9

    Can you pls do a tutorial series on this and how to make 3d games with it and also a series on how to expand this game and make a inventory and all that kinda stuff

    • @origin-panda5439
      @origin-panda5439 4 ปีที่แล้ว

      how would you make the mouse visible for the inventory?

    • @DiamondsBattle
      @DiamondsBattle 4 ปีที่แล้ว

      There is a tutorial on making an inventory on the official ursina engine site : www.ursinaengine.org/inventory_tutorial.html

    • @ohtych1004
      @ohtych1004 4 ปีที่แล้ว +1

      @@origin-panda5439 I guess you would have to make your own first-person controller, or use the pause function in Ursina to pause the game

    • @origin-panda5439
      @origin-panda5439 3 ปีที่แล้ว

      @@ohtych1004 I tried, but I couldn't get it to resume. I think it wouldn't detect my keypress after paused but maybe I'm just stupid

    • @ohtych1004
      @ohtych1004 3 ปีที่แล้ว

      @@origin-panda5439 you could put the update function and everything in an if or while statement, so:
      if resume == True:
      # game code, update, and everything in here
      else:
      # Inventory code
      I tried that but something weird happens, where the color.red or color.blue thing stops working somehow, but if you color it inside of blender then it should work fine.

  • @valentinewiggin9705
    @valentinewiggin9705 3 ปีที่แล้ว

    100% recommend following this tutorial, the explanation is great :)

  • @HYKANTUS
    @HYKANTUS 3 ปีที่แล้ว +8

    ...I just searched up how to make Minecraft in python as a joke...

    • @vedasharma2634
      @vedasharma2634 3 ปีที่แล้ว +1

      And I searched for how to make mortal combat 11 in Idea

  • @insertcoolnamehere7168
    @insertcoolnamehere7168 4 ปีที่แล้ว +5

    Are you going to do a part 2? I'd really like to see how can we do inventory, main menu, and most importantly the chunk system work.

    • @bigsyxthy9603
      @bigsyxthy9603 3 ปีที่แล้ว +2

      The way he did the blocks is really weird ,its not like minecraft where its made via the code instead its a .obj which can lag if you make it infinite and via chunks.

    • @namesurname6294
      @namesurname6294 3 ปีที่แล้ว +1

      @@morewinxdoesplaygames2074 i didnt understand how he made block textures on each side. if it's not a problem for you, can you explain it?

    • @namesurname6294
      @namesurname6294 3 ปีที่แล้ว

      @@bigsyxthy9603 ikr, but still, it would be nice if it works in some way.

    • @archlinus5066
      @archlinus5066 3 ปีที่แล้ว +1

      The chunk system is pretty simple, just load/unload voxels depending on the player's position, and save the world chunks in a variable or file

    • @namesurname6294
      @namesurname6294 3 ปีที่แล้ว

      @@archlinus5066 nice idea!

  • @ProEpicGuya76c007
    @ProEpicGuya76c007 3 ปีที่แล้ว +1

    DUDE you are amazing

  • @mirohn8917
    @mirohn8917 3 ปีที่แล้ว +2

    This is a good video. Only one thing I am still confused about-Where can the assets/block be downloaded?

    • @kebbikins1684
      @kebbikins1684 2 ปีที่แล้ว

      in the description of the video he has the project files, click there

    • @vlogdiaries5867
      @vlogdiaries5867 2 ปีที่แล้ว

      Yes that’s the problem! How to download??!!

    • @amirmustafakhan7773
      @amirmustafakhan7773 ปีที่แล้ว

      Did anyone got the solution of this problem

  • @OrangeDied
    @OrangeDied 3 ปีที่แล้ว +1

    Just learned Python basics and was like "Damn, what do I do now?" and this came in my recommended. Its about time I learn an actual skill that's useful, ha.

  • @kavyaagrawal2013
    @kavyaagrawal2013 3 ปีที่แล้ว +4

    Can someone please explain why TH-cam keeps recommending me new Game Dev Engines? First Unity, then Godot, then Unreal, now Ursina. What's next, Samsung Smart Fridge?!
    Great video, though!

    • @fwoompdotexe5225
      @fwoompdotexe5225 3 ปีที่แล้ว +3

      Man i hope the Samsung Smart Fridge is gonna be a good game engine.

    • @kavyaagrawal2013
      @kavyaagrawal2013 3 ปีที่แล้ว +2

      @@fwoompdotexe5225 lmao

  • @Flashisgreatfr
    @Flashisgreatfr 2 ปีที่แล้ว

    yo bro u explain this so nicely tbh u r very underrated

  • @shivankitss8396
    @shivankitss8396 4 ปีที่แล้ว +5

    But does it have ray tracing.

    • @ionrael
      @ionrael 3 ปีที่แล้ว

      Just use RayTracingMode = on
      ¿
      Just kidding but who knows, you have to know advanced maths to make raytracing

  • @prashantsrivastav3172
    @prashantsrivastav3172 3 ปีที่แล้ว

    After seeing all the comments I guess this could be transformed into a series of videos in which u can develop this to be a very nice game :) Hats off to your work... keep coding :)

  • @secretunknown2782
    @secretunknown2782 3 ปีที่แล้ว +3

    Alternate title : how to impress an gamer girl

    • @04F
      @04F 3 ปีที่แล้ว

      Code goes brrrrr

  • @marcovalentinoalvarado3290
    @marcovalentinoalvarado3290 3 ปีที่แล้ว

    I like your voice, the way you make the tutorial going step by step, liked and subscribed, really looking forward to your channel :)

  • @bwiebertram
    @bwiebertram 3 ปีที่แล้ว +3

    So you just recreated minecraft bedrock ?

  • @narikoshi4377
    @narikoshi4377 2 ปีที่แล้ว

    its one of my favorite explicative video in youtube

  • @Potato-ff9ms
    @Potato-ff9ms 3 ปีที่แล้ว

    didnt expect a ursina tutorial, but wow thanks i learned unrisa now and i think its better than pygame, you got a new subscriber

  • @justinhair7268
    @justinhair7268 3 ปีที่แล้ว +1

    This is awesome!
    I love it when it works!

  • @cgcube7342
    @cgcube7342 3 ปีที่แล้ว

    This channel is so UNDERRATED!!!😕😕😕

  • @optimisticenigma283
    @optimisticenigma283 3 ปีที่แล้ว

    I was looking for a fun code to do with Python. This seems dope, THANKS!!

  • @MuhammadAli-eb2tk
    @MuhammadAli-eb2tk 3 ปีที่แล้ว

    YOU DESERVE WAYYYYYY MORE SUBS DUDE

  • @Lestro
    @Lestro 2 ปีที่แล้ว

    This is something interesting I have watched. good job man love it ✨.

  • @blaster6984
    @blaster6984 3 ปีที่แล้ว +1

    Appreciate your hardwork man

  • @koreanese
    @koreanese 3 ปีที่แล้ว

    36:25 me watching : "dude, don't use semicololon, it's illegal"
    37:19 ..and he got errors
    me watching : "i have told you"
    edit : ursina is so powerful, and thanks a lot for the tutorial christian, now i can make a simple game in 90 lines of code! Now i should subscribe your channel.

  • @robytoby1544
    @robytoby1544 3 ปีที่แล้ว +1

    everybody gangsta until clear code makes minecraft in less than 100 lines

  • @MrCalf18
    @MrCalf18 2 ปีที่แล้ว

    Incredible!! this was so didacted, so cool man
    tnx from Mexico, it was funny to practice in this way

  • @SkyFly19853
    @SkyFly19853 3 ปีที่แล้ว

    Thank you so much for this tutorial!
    Ursina and Panda3d has so much potential!

  • @shourya9998
    @shourya9998 3 ปีที่แล้ว

    This channel deserves more subs!

  • @zyugyzarc
    @zyugyzarc 3 ปีที่แล้ว +2

    27:25 those argunents seem like the HSL or HSV color parameters, which is quite unusual to the typical RGB everything else uses but HSV/HSL/HSB is pretty good too
    the color (0, 0, random(0.9, 1)) gives a color with 0% hue (red), 0% saturation (the hue is ignored here) , and a random of 90% to 100% of brightness.

  • @naokimc
    @naokimc 3 ปีที่แล้ว +1

    needs a million subs!

  • @leobozkir5425
    @leobozkir5425 3 ปีที่แล้ว

    Congrats on 10K man! I had subbed when you had like 300 subs lol :)

  • @shreehari2589
    @shreehari2589 2 ปีที่แล้ว +2

    Really good tutorial i subscribed, it would be really great if you made a tutorial on menu bar

  • @awesomegamedev
    @awesomegamedev 3 ปีที่แล้ว +2

    It's interesting to see how things are done in other languages/engines.
    I use Python for ML/AI related stuff.
    Python is also cool for some quick "game in 1 minute" coding like I do on my channel.
    But I don't think Python is a good choice for normal game development:
    - Python as a language is not strictly typed, which opens up opportunity for errors, makes managing big projects harder, refactoring harder, provides much worse IntelliSense, etc.
    - Game engines (as far as I know) are not even close to, for example, Unity
    Having said that, a few remarks on the video:
    20:31 - Better not to have default values for "position" and "texture" parameters - they are intended to be specified for each block. If you were to forget to specify one of these parameters, it is better to get an error (which will immediately show the problematic line) than to wonder why do the blocks spawn in the wrong location.
    27:47 - those values are probably HSL (Hue, Saturation, Lightness) - it would be consistent with what you've shown in the video
    34:30 - you are copy-pasting code. You can instead select the texture first and then use it. For example like this:
    tex = { 1: grass_texture, 2: stone_texture, 3: brick_texture, 4: dirt_texture }[block_pick]
    voxel = Voxel(position = self.position + mouse.normal, texture = tex)
    (Although it might better to move texture dictionary out to a separate variable)
    39:08 - By setting parent as camera.ui you are placing hand in a separate space/world. UI space uses orthogonal projection, that is why the hand (unlike cubes) doesn't look 3d. It's better to set parent as player (if that's possible), or a scene (and manually update hand's position in the update).
    One of the very important aspect of graphics you overlooked is shaders/lighting. How is it handled in Ursina?
    Nice video, interesting you've made Minecraft without making a voxel system. Just allocating initial blocks along the grid and making new blocks position based on the "parent" block position turns out to be enough. How many blocks can it handle like this?

    • @menopriezvisko94
      @menopriezvisko94 3 ปีที่แล้ว +1

      Interesting. I have no idea what are you talking about but interesting

    • @awesomegamedev
      @awesomegamedev 3 ปีที่แล้ว

      @@menopriezvisko94 Let me know if you have specific questions - I will clarify.

  • @humaidmohideen2466
    @humaidmohideen2466 3 ปีที่แล้ว +2

    Hey, im having a problem, when you run the program at 30:45, I dont have the same results,
    when I run it it opens up but there are no blocks only like the first person view, i also get this message in the terminal.
    render mode: default
    no settings.py file
    missing model: assets/block
    missing model: assets/block
    missing model: assets/block
    missing model: assets/block
    no settings.py file
    development mode: True
    application successfully started
    no filter quad
    pls help

    • @veqr7266
      @veqr7266 3 ปีที่แล้ว

      same :/