Re: Multiplayer mod - UNRELEASED

#462
about the respawning feature you were talking about, this is just my suggestion but I was thinking maybe if someone dies they should just have to spectate. If they just respawn in the first room there would be no threat of dying. Or maybe alternately make the respawn like 5 minutes and during that time they spectate and if all players die at the same time the game ends.

Re: Multiplayer mod - UNRELEASED

#466
D-9999 wrote:Blitz can't support Ragdolls. Do you know how old the Engine is and how unreliable it can be? So it'll just be the player falling down.
We could add a physics engine to it if we wanted to. There are a few wrappers for Blitz3D out there.

Re: Multiplayer mod - UNRELEASED

#469
MonocleBios wrote:
CLgaming wrote:
juanjpro wrote:physics engine
I never thought such a thing would be possibru in Blitz3D
Why wouldn't it?
I've always wanted to say that for so long.

Remember guys, don't say 'X is not possible in Blitz3D" unless you're him or another of the coder dudes haha

Unless you want a 4 dimensional particle accelerator. I've always wanted to get one of these but the chance never comes.
sup

roger copy bravo tango mango

Re: Multiplayer mod - UNRELEASED

#470
Irontaco wrote:Unless you want a 4 dimensional particle accelerator. I've always wanted to get one of these but the chance never comes.
Actually, while difficult to conceptualize, a 4 dimensional physics engine wouldn't be much more difficult than a 3 dimensional one. Assuming you're using matrices for your coordinates and math,(like most physics engines do since it makes the math much simpler) adding a fourth dimension is more or less as easy as making all your vectors hold an additional value and changing your math functions accordingly. Really, difficulty arises when you have to figure out how to define said fourth dimension.

I understand that it's difficult to describe B3D to someone who doesn't program, but I'll try:
At it's core Blitz3D is a dialect of BASIC with a DirectX7 API built in, among built in collision detection with sound, animation, and networking support[1]. So while you could call Blitz a game engine, I think it's much more appropriate to refer to it as a programming language with a built in windowing/rendering/physics-kinda libraries. Theoretically, anything you can write in one language can be written in any other[2]. There's nothing in the core of Blitz (or BASIC for that matter) that prevents you from writing a physics engine in it, just like there's no physical limitations in C that prevent you from writing a text parser or number crunching in Python. Usually, when someone who knows what they're talking about says that 'X cannot be done in language Y,' it does not mean that X is physically impossible to write in Y, but rather, that most/all implementations of X are inefficient in Y.

Lets compare C and Python for example:
C is a procedural[3] low level[4] language, as such, it is often very efficient in performing it's instructions with little overhead[5]. Python on the other hand, is a very high level scripting language that allows easy object orientation[6], as such, Python is much slower than C at executing instructions, but allows for much easier management of manual tasks. So lets say you wanted to write a text parser, there's nothing preventing you from writing it in either language. One has to determine what their specifications need to match. If the parser is written in C, it may be faster, but the extended time of development may not be worth the extra few milliseconds per string. The opposite is generally true if one needs to write a program involving a large amount of mathematical calculations per second, you may be able to write the program in a shorter period of time in Python, but the extra effort of writing it in C is worth it if it significantly decreases the time required per calculation.

So the question isn't "Can I implement X in Y," but rather, "Is it worthwhile to implement X in Y, does Y offer an alternative solution Z more appropriate to the design of the language?" Back to Blitz3D, Blitz is primarily a procedural language. It's definitely possible to write a system that mimics object orientation, but it's somewhat counterproductive to do so in a language that is most certainly designed to be procedural[7]. It's also possible to write a more sophisticated physics engine or dynamic lighting into the engine, but it's very easy to come to the conclusion that writing these things simply aren't worth the effort most of the time, and that we may be better off using another language better suited for these tasks if they are needed.

[1]While Blitz somewhat allows the user to manually manage memory, I wouldn't call it a benefit of the language given how it's meant to be high level. I may or may not explain this as I write this paragraph. In other words, it's not what the language is designed for so why bother.
[2]Feel free to yell at me for saying this, just trying to make a point.
[3]Program flow progresses is a linear manner, there are no functions that can call their own functions.
[4]I know it isn't REALLY a low-level language,(Low level is usually defined as machine language) but it's likely the lowest level 95% of this forum will ever see.
[5]Simplified, overhead is what makes high-level/object oriented languages easier to write but slower.
[6]Allows you to structure your program according to classes, as opposed to functions.
[7]Lots of computer science undergrads and programmers who can't write in C assume that object orientated design > procedural design in all cases. I'm not going to try explaining programming paradigms, I'd likely be wasting my time.

So yea, you could write a physics engine for ragdolls in CB, I just think that it's a massive waste of time, given that it isn't really adding much to the end product.
M-x dingus-mode