Modifire

Hmm, I am pretty new to python (my job dictates that I know PHP and Perl quite well, so python has really thrown me for quite a loop!)

I was wondering if you might be able to explain the whole:

@staticmethod()

I tried looking it up in the python manual but as far as I was able to get it said it was similar to calling a static method in C++ or Java (neither language I’m familiar with). I was wondering if since you’re using it so liberally throughout your code base you might be able to give me a short description of what it does and why you’re using it?

Thanks!

The @staticmethod decorator is python’s way of declaring a function to be static. In java it looks like this:

public static void doSomething(){
// code
}

I’m not sure how experience you are with Object Oriented Programming, but static methods are methods that belong to a class (or module) that you feel should or can be called without needing an instance of the class the method belongs to.

As to why all of the methods of BlockGeometryGenerator.py are static, I guess I just felt like doing it that way. Or started with one static method and then made them all static. There is probably a right answer to whether they should be static, but in this case it would work either way. I may change them to be not static, if I feel it would make the code ‘better’.

Thanks! That’s actually really helpful. I have not ever used static methods like that before as with things like PHP, if you just want a function you can include a file with the functions you want to call and not have it tied to a class at all (making some arbitrary coding standards at work dictate I code this way, actually). Thanks again!

Version 0.03 Alpha is up to play if you’re interested. Feature wise, little has changed - I’ve been working on getting it ready for networked multiplayer. So only offline mode works. You may not find it very interesting yet.

modifire.net/

I was wondering if you might be able to post a sample bit of code that I would need to run just the environment you posted earlier. I’m trying to reverse engineer what you have but I’d kind of like to see it in action. Based on the performance you’re getting in the web player this is for sure something I need to dig into more; but I kind of wanted to just start out by getting it running.

If I’m reading it correctly, I should just create a file and import Environment.py into it and create an object out of that…I’m still working on figuring it all out. So I’ll post again if I am able to get it up and running.

e: Also, the mouselook in the browser is incredibly difficult to use. I end up just spinning in circles.

Or maybe instead of that, you might be able to explain more in depth what changes you had to make to this example:

[Creating a tiled mesh at runtime)

To get it to be 3D instead of a 2D plane? That’s really what I’m digging through your code to figure out, anyway.

edit: I may have an idea figured out. Basically, I’m going to create a new set of files and start with the way you’re generating geometry. I’ll send it to an outfile, then see how you’re reading it. THen I’ll start building the world by bringing in single “groups” of functions at a time. E.g. functions that can’t be segregated due to inter-dependence.

Regarding the browser - if you click once in the window, it will capture your cursor and work properly. I haven’t yet looked into disregarding mouse movement if the game isn’t focused.

If you create an environment object, it should just work. I’ll try to create a demo program this weekend.

Here’s the self contained example

mediafire.com/?cecxmsey5q8ecs5

It uses the default mouse control and the camera starts at the bottom left corner, so you’re going to have to move a bit to see the environment.

Awesome! I really appreciate it. I went through the previously uploaded code and just started stripping out as much as I could to get it working. I learned a lot about how you’re doing this, but there were some includes that you didn’t include and I wasn’t sure what they were supposed to do, or what data to include. Like in the init for Environment.py, there was a “game” argument that I was just throwing a text string into :slight_smile:

Thanks again!

I accidentally deactivated my account, so I’m posting from this one, but it’s still EdBighead.

Version 0.05 Alpha is up. modifire.net Multiplayer works. Client-side prediction is done. If you want to host a server and your machine is behind a router, you will have to Port Forward the following ports:

5555
5558
5559
5560

There is a bug that causes a client to crash if it attempts to load the map at the same time as another player, so be wary of that.

If you run into bugs or crashes, please reply with the log which is located at

C:\Users\YOUR_USERNAME\AppData\Local\Panda3D\log\p3dsession.log

Let me know what you think.

Controls:
WASD - Movement
Space - Jump
Left click - Destroy a block
Right click - Place a block
F5 - Third person view mode

That’s awesome! I’ve always loved Minecraft. But when you fall off, you just keep falling forever. I don’t know if you have added respawning or not though. I also have a question… How do you add the texture onto the block? I can import my character, but the texture won’t show up. I love your game though! I’m hoping it gets popular so I can go on multiplayer with somebody :slight_smile:

@werts15
Thanks! I’m hoping to eventually get some sort of server page so people can see who is hosting a server and then connect to it.

Thanks for reminding me about falling forever, I’ll post a fix for it in the next version.

When you say ‘How do you add the texture onto the block? I can import my character, but the texture won’t show up.’ What exactly do you mean? Do you see the blue and green blocks? Do you see the model for roaming ralph if you go to 3rd person view?

Oh, the texture shows up fine, it’s just that I can’t figure out how to put it into MY program. Your textures work fine though :slight_smile: My forum post is in general discussion if you need more info though.

Liking what you’ve got :slight_smile:

Released 0.06. It’s really only for playing with your friends online, but everyone needs to join at the same time. More of an explanation here: montawk.tumblr.com/post/17018507030/version-0-06

I’ll try to get a fix for it ASAP so it’s worthwhile for people to spend time building things.

modifire.net

If anyone wants to play with me, reply to this thread, and I’ll try to check my email for a notification often.

Would there be a better way to contact people to play? IRC?

0.07 is out and here’s a video of the game so far
youtu.be/rDwuQmb2n0M

the link to your website is broken for me

@hobbit
It kind of comes and goes, but it’s free. At some point I’m going to be switching over to a paid version.

Also, if you do start a server, make sure you port forward so other people can join. You might have to do TCP and UDP as separate entries in your port forward table.

0.08 is out. I’ll try to leave a server running in case people want to play.

Added Features
Verification that server and client are running same version
Displays name of players when you selected them with with your crosshairs
Map save file gets backed up on save

Bug Fixes
Map save / server kick bug
Respawn bug
Menu visibility bugs
Client reconnect bugs
Camera spinning when game window isn’t focused
Blue screen on respawn

Known Bugs
Mouse click occurs when focusing window – can unintentionally build or destroy block

Also
Added download link to website in case you want to run it in full screen

New video of progress. Started to add the shooter aspect of ‘first person shooter’ youtube.com/watch?v=AORiZB3RvGM