| We hope you enjoy your visit. You're currently viewing the Ultimate 3D Community as a guest. This means that you can only read posts, but can not create posts or topics by yourself. To be able to post you need to register. Then you can participate in the community active and use many member-only features such as customizing your profile, sending personal messages, and voting in polls. Registration is simple, fast, and completely free. Join our community! If you are already a member please log in to your account to access all of our features: |
| PyU3D 1.0 Final; a Python port of Ultimate 3D | |
|---|---|
| Topic Started: Dec 28 2009, 10:54 PM (2,110 Views) | |
| MysteriXYZ | Dec 28 2009, 10:54 PM Post #1 |
|
Master Matrix Masher
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]()
|
Hi people ,At last, I can make an announcement I've wanted to make for quite some time now... It's my 1000th post !!!!!!Errmmm.... well it would be a bit daft if THAT was the great announcement, right ?Anyway, it's nice that I'm able to use this post for a momentous occasion .Have I got a present for you guys !To some, it's not really a surprise, but that shouldn't spoil the fun you're gonna have with this .For months now, I've been working on and off on something that more and more members here seem to become interested in: a port of Ultimate 3D to a real programming language; one that is easy to learn and quite powerful at the same time. Guys and gals, I am extremely proud to introduce to you: PyU3D Yes my friends, a Python port of Ultimate 3D is now a reality!!!! ![]() So yeah: Python. Some of you don't like it, and that's fine by me. You prefer C++? Good for you. Let me say this very clearly, and don't make me repeat myself: DIFFERENCES BETWEEN PYTHON AND C++ WILL NOT BE DISCUSSED IN THIS TOPIC. So no comments like "C++ is so much better!", "Python sucks!" etc. I hope that's understood .Not everything is documented yet, but it shouldn't take long (sometime after NewYear, gonna take a break now) to finish the user manual , which you will soon be able to lay your eyes upon. It is this manual that has been taking up most of my time, because I want it to be very, very complete and easy to navigate (it's very "link-oriented" ).So how should you approach PyU3D? The first thing I want you to do is: FORGET EVERYTHING. No, not your good manners or things like that, but all about the way you worked with U3D in GM. Then go and learn Python, if you haven't already. Because, yeah, this is about programming, dudes and dudettes, not about any of that drag'n'drop nonsense !Reading the PyU3D documentation is extremely important, because the way I ported U3D is radically different from the GM version - but in a very nice way, so don't panic .And why is PyU3D so great? Ahhh, where shall I start?
And probably more things. There are a couple of highlights that I'd like to draw your attention to specifically. As already mentioned, rays and swept ellipsoids are now objects. They inherit from the PyU3D.Transformable baseclass. This means you can transform them through exactly the same methods as cameras, primitives or models. This is quite nice, but it gets better. You see, that PyU3D.Transformable baseclass has a nice little method called "alignTo()". Need I say more, my friends ? Well actually, I do. That little method is extremely powerful, since you can adjust alignment of two objects in many ways. First of all, you can set which kinds of transformation (translation, rotation and/or scaling) get involved in the alignment process. As if that wasn't enough, you can even supply different smoothing factors for each of these types of transformations; think of the "flexible camera" technique, but with more control and now available for EVERY transformable object !!If you think about it, you can create amazing constructions, made up of objects that are all aligned to each other in different ways .And now we get to my favourite subject: *all together now* vectors and matrices !First off, the math functions in PyU3D are my own implementation. These replace the external .dll functions, which leads to an important performance increase. There is now an additional type of matrix: the AxisRotationMatrix .Doing arithmetic with vector and matrix objects is now as easy as doing calculations with numbers (thanks to operator overloading). Let me give you a small example: in GML:
a typical one-liner in PyU3D:
Now isn't that just absurdly easy ?Not only are matrices much easier to use in PyU3D than in GML, you can also do more with them. The next best thing after sliced bread is definitely sliced matrices. No kidding. Ever wanted to keep only the rotation of a general transformation matrix? Do this:
Want to get rid of the scaling? There it goes:
Rotations turn your stomach upside down? Eat this: Yummi !Now venture forth into the realm of PyU3D, and let us usher in a new era: an era without GM !!!!Well a guy can dream, right ?Oh yeah, below is the download link :DOWNLOAD PYU3D 1.0 Final Mirror on FileBeam Once everything required for PyU3D is installed (see the User Manual), the examples can be run from any location. And now I'd like to hear what you think. Is it a mess? Or a success? You decide. - MysteriXYZ I R Python-Powered !!!
Edited by MysteriXYZ, Mar 31 2010, 11:59 PM.
|
| U3D is like candy; after extensive consumption, it's Best to brush. | |
![]() |
|
| Reikyrr | Dec 28 2009, 11:13 PM Post #2 |
|
Target Aqquired
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]()
|
-135796 W00T Wow nice! (still too bad you didn't port it to c++ instead)Im testing it out now. |
|
JackMoveFool inc. Stealing your kid's pocket money since 2010. | |
![]() |
|
| Gandalf20000 | Dec 28 2009, 11:23 PM Post #3 |
![]()
Enormous DirectX Newbie
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]()
|
Sorry I was so bad at keeping the secret, Mysteri, but at least I never said your name!
|
| |
![]() |
|
| Despellanion | Dec 28 2009, 11:39 PM Post #4 |
|
I can has game yet?
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]()
|
Told you You didn't even have had to try to keep it a secret, it was so obvious anyway ![]() Great job MysteriXYZ
|
![]() Brewing something good... | |
![]() |
|
| Reikyrr | Dec 28 2009, 11:44 PM Post #5 |
|
Target Aqquired
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]()
|
*cough*he made despallanion say it*cough* I knew you where working on it. I hate to spoil the party but after installing active python it still doesnt work. Or do I need an older version of active python? |
|
JackMoveFool inc. Stealing your kid's pocket money since 2010. | |
![]() |
|
| Synexn-Prime | Dec 29 2009, 01:05 AM Post #6 |
|
Call me Skarik
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]()
|
Quite interesting how it seemed everybody already knew. Nice to see it finally working. |
![]() ![]() ![]() Current Stone: Water : Prepare to help her survive. Sometime 2010. | |
![]() |
|
| Linkin | Dec 29 2009, 01:50 AM Post #7 |
|
Forum God
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]()
|
Sounds great... but what doesn't sound great is mediafire... Its being a pain. Any chance of a mirror?
|
![]() Want something done in Photoshop, make a request Here Formerly known as DS-Development. | |
![]() |
|
| Synexn-Prime | Dec 29 2009, 02:47 AM Post #8 |
|
Call me Skarik
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]()
|
Of course. Box.net: http://www.box.net/shared/h33oztqmi8 Would you mind if I base a current project of ours off of your alignTo idea? Edited by Synexn-Prime, Dec 29 2009, 02:48 AM.
|
![]() ![]() ![]() Current Stone: Water : Prepare to help her survive. Sometime 2010. | |
![]() |
|
| Linkin | Dec 29 2009, 02:53 AM Post #9 |
|
Forum God
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]()
|
Thanks |
![]() Want something done in Photoshop, make a request Here Formerly known as DS-Development. | |
![]() |
|
| Despellanion | Dec 29 2009, 08:26 PM Post #10 |
|
I can has game yet?
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]()
|
I would really like to try this out, but I have yet to find a decent Python editor. And making executables seems to be virtually impossible without some "hacking".
Edited by Despellanion, Dec 29 2009, 08:26 PM.
|
![]() Brewing something good... | |
![]() |
|
| MysteriXYZ | Dec 29 2009, 08:51 PM Post #11 |
|
Master Matrix Masher
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]()
|
Thanx, man . Maybe you'll want to use it someday for a new project .Have you tried PyScripter already? It's made in Delphi, so you should definitely like it .Try GUI2exe; it works for me. I might make a tutorial about that later. Nah, you did well, considering the circumstances . And you're the second one in this topic to reach a posting milestone .What do you mean, "it still doesnt work"? When are people going to learn that a statement like that is meaningless without additional information ? Please tell me, WHAT doesn't work: the installation of PyU3D, or running the examples? Do you get an error message? What does it say? Etc., etc., etc.Again, I can't answer that if you don't tell me what version you DID install. So I will guess you installed ActivePython 3.x, which is indeed not supported. It might work anyway, but I can't check since I don't use it myself. The reason for this, is that PyGame - which is the host program I use for Ultimate 3D - still doesn't fully support Python 3.x either. I recommend that you install ActivePython 2.6.x (make it the default Python version if you want to keep 3.x), and make sure the other required components are also installed. If you're still not able to run the examples, open a DOS prompt and run it from there; if an error occurs then, at least you will see an error message, revealing the cause. Thank you, venerable members of the Synexn Collective (also for the mirror). So you have actually managed to install and run it?Go right ahead - and if you want more details, one of you guys can send me a PM .
|
| U3D is like candy; after extensive consumption, it's Best to brush. | |
![]() |
|
| Nazle | Dec 30 2009, 03:17 AM Post #12 |
|
Student Professional Accountant at day break ]||[ Extreme Gamer when darkness falls...
![]() ![]() ![]() ![]() ![]() ![]()
|
AWESOME!!! I gatta get my laptop fixed sooner! ![]() Edit: How did I do with the secret? Edited by Nazle, Dec 30 2009, 03:31 AM.
|
![]() Nazle Screen Play Entertainment ITS THAT TIME OF THE YEAR AGAIN.... When I disappear from the community.... So bye bye ladies n gentalmen.... Will be back in december.... Stay cool n happy game making..... Tata :-D | |
![]() |
|
| Dr. Best | Dec 30 2009, 04:04 AM Post #13 |
|
Administrator
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]()
|
This is old news to me, but it looks like you've done some good work . Congratulations on bringing this port to a complete state. Having created the original interfaces I know how much work it is. I would be glad to see this port make members move from Game Maker to Python. The interfaces you have created look good indeed. The inheritance structure is reasonable and useful and the documentation looks good. One thing you may change in the documentation is to set up a different color for clicked links. This is useful as it lets you see which links have never been clicked.This project has potential. Python code executes a lot faster than GML. This makes it possible to add low level features to the engine. For example you may implement your own scene manager with an octree to optimize collision detection and culling in big scenes. Besides there are many good libraries available for Python. It would be interesting to link PyU3D to some open source physics engine to make it become a more complete game development solution. Another interesting project would be to port the Tech Demo to PyU3D. This would give you some numbers to prove that PyU3D is a lot faster than Ultimate 3D for Game Maker. Let me know if you want PyU3D to get its place on Ultimate3D.org. I may give it its own sub category in the downloads section or something like this. |
![]() |
|
| ashrat3000 | Dec 30 2009, 05:57 AM Post #14 |
|
u3d raytracer
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]()
|
Now what happened to not supporting U3D 2.x in anything other than GM eh? ![]() |
|
그대를 사랑해 | |
![]() |
|
| Aragon | Dec 30 2009, 11:28 AM Post #15 |
|
Elite Member
![]() ![]() ![]() ![]() ![]() ![]()
|
add a sub category for this, Dr, Best I cant run:S i downloaded Pyscripter, and he says, when i run:
Yes i'm a noob:) Edited by Aragon, Dec 30 2009, 11:48 AM.
|
| |
![]() |
|
| Go to Next Page | |
| « Previous Topic · Announcements · Next Topic » |





![]](http://209.85.48.18/static/1/pip_r.png)
,
?
.
!
.
.
.
!!
!
.
?
?
!!!



(still too bad you didn't port it to c++ instead)







4:59 AM Sep 3