Another famed 'holy cow no way!' just to be let down in the end, or not?
I would hope not. I believe I can do it. It shouldn't depend on anything special, except HeapSave (hint hint Zeq), and lots of if statements.
I suppose an update is in order, seeings how the project was lifted from the depths of the 2nd page of the project listings by an innocent yet good question on the forums.
Let's see, the last time I worked on anything was *checks LbtF Folder* 10/21/07. I believe I was trying to iron out the last kinks of the IK system. Ah yes, coding in the human range of motion for each joint, because up until then, it has just been 'hacked' to restrict to a semi-human limit. If coding had gone to plan, I could have told the hands to be anywhere, and the code would take care of the rest to make it look real. However, that didn't happen. Though I had coded in the path for the hands to take when moving the mouse, the arms just wouldn't co-operate no matter what I tried. I had hit a coding brick wall as the underlying IK system/formula just wasn't configured for the complex task I'm giving it.
If you Google up IK (Inverse Kinematics) you will more than likely find some stuff related to graphs and finding the lowest point on that graph with a serious block of code for it all. You might happen to come across the method that I'm using, which really is laughable compared to the graph way, but it works well for JK.
With a lack of understanding anything above Algebra, and doubts about JKs netcode and underlying engine framework to handle it all, I doubt I will be continuing this project. With the whole 'move your mouse to move your saber' philosophy and saber clashy clashy fights like the movies (which I hadn't even began to touch upon) riding on the IK code, I just can't do it any other way. There's only so much keyframes can do, and they have no place in the original concept of Live by the Force.
Who knows, maybe some day I'll be sitting on the can and go "THAT'S IT!" and be working on this once again, but until that day possibly happens, I'll just be here and there, helping out once in a while. If you think this is one of those "I'm leaving JK" kinda deals, your wrong. It's more of a stepping out of the coding arena for a bit and turning off the spotlight, as I can never truly put away JK. =)
Some of you may have noticed I posted the weap_saber.cog in all it's entirety on the forum. Just curious if anyone has taken it and used it for something they're working on. I'd like to know how it's going, or if there have been any improvements on the code. =)
About a week ago I got the saber to collide using a string of slow moving things created every frame. It winds up colliding quite accurately as shown in the vid I have uploaded. =D
Instead of all the screenshots being displayed in one column, there are now pages of screenshots, with 10 per page in two columns. Also when viewing a screenshot, you can now goto the next or previous one via handy links at the top and bottom.
Nothing much, but realized I had not shown this off yet. Somewhere between finalizing the glow of the saber and now, I had coded in the swing motion for vertical strikes. Download the latest vid to see.
Zeq told me to work on ledge grabbing and see what I could extrapolate from Fardreamers MotS code. A rough version is up for your tinkering pleasure.
Muliplayer drivable vechicle cogs, it's exactly what it says. This is what I've been working on since... let's say... a few days after the last update on JKTA. Cavey started pestering me for some tanks or something, handed me a beta of his level, and the rest is history... well... present time. =)
This will be the project that has updates on what's going on with the SDK. Be sure to review the description and spec before heading to the forums.
Also uploaded a vid of current progress on the code.
*blows the dust off JKTA*
Hey, lookie here, I remember this... Ah right, drivable vehicles in MP. Well, it's not just a fancy dream or idea, it's been a reality since, well, the last time I worked on JKTA. Sitting here, collecting dust on my HD, has been the method/code for getting vehicles in MP to sync up as good as JK can sync a player. I never knew it would work, I swear! It was just theory! Honest! =)
Me and ZeqMacaw did some MP testing in the last few days, mind you, with old code that hasn't been updated for use with JKUP. While the models are quite the eye candy, they bogged down Zeq's poor Voodoo2's frame rate too much. During that round of testing though, the positions of the X-Wings were synced up pretty well as far as position, however, we found out that JK updates things depending upon your frame rate, the other persons frame rate and ping time between the two computers. So I wound up seeing Zeq warp from point to point, and vice versa.
With this in mind, I rewired in the good ol GoZ Studios X-Wing and stripped out all other things in the level, leaving it with the SpaceSphere™ and 3 X-Wings. Zeq's Voodoo2 chugged along at a mighty ~40fps and a-flying we went. With an average ping time of about 100-120msec, we were flying circles around each other, with nary a warp or skip in sight. Zeq was surprised but I wasn't. >.>
So, now that I know this works, I hope to have some generic drivable vehicle cogs up for download, somewhere along the line. Before I go and do that, I want to see if I can further improve upon this code, and make it so that it isn't dependent on the clients frame rate by wiring in a client/server deal. Instead of having the client move the vehicle on their computer and having that transmitted to everyone else, I hope to have it so the client forwards movement info to the host, then the host would move it and forward that to everyone else. There's no triggers, no sync verbs, just pure raw JK netcode doing the grunt work.
Feel free to badger me about this in the forums. =)
I spent most of the day toiling and sweating and banging my head trying to get the glow around the curve of the blade to work right. As you can tell from the various screenshots, I've finally got it done.
I have done it! Both arms, pitching and yawing! All that's left is to code in some limitations so the forearm doesn't bend in an unnatural way. Check out IK5.avi under downloads, and be blown away! =D
No lockups! And I squashed a bug that wouldn't let it rotate 360 degrees. Not that I want it 360 degrees in the end, it's just that it wouldn't rotate past 90 degrees straight up or down. Now it does. Check out IK4 under the downloads!
Well, who would have thought that putting my code into a while loop would have worked out so perfect, that it would get stuck and never end? I sure didn't.
For the past 3 weeks, with what little time I've had to work on LbtF, I've been debugging and wrapping my head around lots of vectors. What you see happening in the last video (the arm slowly moving to reach it's destination) is now happening instantaneously thanks to putting it into a while loop inside of the pulse. So the speed at which you move your mouse is how fast the arms will move. However there is a slight glitch, which I'm sure is due to JK's rounding or truncating of decimals.
What sometimes happens is that when the arm is almost in the right position, it'll overshoot the destination, then go back and overshoot it again, leading to an infinity of overshooting the destination. I finally discovered it earlier this week, but haven't had a chance to code in the fix just yet. Rest assured, progress is happening. Once this bug is squished, the rest of the arm movement will fall into place rather easily. Then I can code in the specifics of the swing mechanics, not to mention saber trails. That'll be fun. =D
What is IK? It's a method of manipulating a jointed structure to have the tip reach a desired point. Basically put, it's used for arm movement. View the IK vids under downloads to see it in action.
In order to refresh myself with my code, I have gone back to the first incarnation of the arm code to perfect it. I have uploaded a video, and if you watch it, you'll see that it works nice, and there's a few bugs to iron out.
*blows the dust off LbtF*
Well well, after life kicked into overdrive last May, the dust has finally settled. Also after a little 'pep talk' with Zeq and Jedi Kirby, I'm feeling a little more motivated to breathe some new life into this project. Not to mention Zeq has taken over cogext and has coded those verbs I spent weeks trying to implement. =D
My first step will be to finish up the arm movement. I last left off dabbling with keyframes so that each arm piece would use the model you chose. That and coding SetThingPosEx() to set their positions and sector, which I failed at. THANK YOU ZEQ! =D =D <3
I'm also hoping to implement some of this netcode theory along the way, which I need to refresh my memory on what I was rambling about. >_<
Here's to doing what you love!
Yes, read Zeq's wise words below, for I am knee deep in job, bills, and new home upkeep.
May the... Patch?... Be... With... You.... >.>
As Live by the Force presents cogging quagmire after quagmire, JKTA is looking more and more fun by the day. So for the next, well, while, I've decided to pick back up where I left off with JKTA. This means that the release I promised so long ago, something about pilot-able T/F's and X-W's, will be coming in the near future.
JKTA presents much less problems for me in the coding arena, as most of it is pretty straight forward with what I've already coded. Not only that, but I've yet to use any of the new verbs that cogext.dll has presented. Mainly the GetPlayerLVec() verb, which will eliminate my need for FireProjectile, making this, hopefully, quite playable over the internet. I'll be utilizing some code from SaberMaster for fighter AI, some code from RBots for troop AI, and throw the good ol Hell Raiser spin on it all. Mix in some good ideas for syncing all this in MP, and you've got JKTA. :)
Just a quick update to let you know how the cogext.dll coding is progressing. I've written the thing array accessing functions for coding new verbs, and have left in their cog verb equivalents. I've also gone around and cleaned up a lot of the code, utilizing the thing array functions, and also implemented constants for the known properties. Some more research is needed on my part to clarify some of the properties though.
Since OnFrame() has been implemented to be called at the end of the cog processing loop in JK.exe, I've got a few verbs to code utilizing that. SetThingModelScaleTime(thing, start scale, end scale, time to reach end scale) which will obviously scale a thing over a period of time. Then there's my need for a new attach verb, which will solve a lot of problems I've personally had with using JK's attach verbs and flags. I've got a method for it that I believe JK doesn't utilize. OnFrame() really opens a lot up, and can take away the need for a constant pulse to achieve certain things.
I still have a few verbs to code in that I've said I would, like SetThingPosEx(Thing, Pos, Sector), various template parameters (Pup, snd, drags, etc), and I'm also waiting on Frequent with his MP3/ogg/etc music playing verbs.
Also, it's worth mentioning that I've implemented all the JK Vector functions that you can shake a stick at. Well, except for VectorX/Y/Z, because when coding in C++ you can just use MyVector.X/Y/Z to access those values of the vector.
All in all things are progressing quite nicely. However progress will be slowing down for the next few weeks, because of a temp job that I will be working full time.
We now have JK.exe calling cogext.dll every frame. (Well, not every frame, just at the end of the cog execution loop, which is just as good)
What does this mean? Well, quite simply, it means that verbs that need to affect a thing all the time, or need a time specified to achieve the desired effects in, is now possible. For example:
SetThingModelScaleTime(thing, start_scale, end_scale, time);
Or more a more functional Attachment verb, or even, well, other things. =)
Expect an update to JK Patcher, with a new cogext.dll for download soon.
So, because I need some new cog verbs, I am diving head first into the cogext.dll source, and making the verbs I need. =D
Well, good thing I didn't upload what I had, because it wouldn't compile under VC6.0, and when I got it to compile, JK Crashed!! =S
I have corrected this and uploaded the VC6 and VC.Net sources.
If you succesfully implement any new verbs, please send me your main.cpp file so that I may update the source files accordingly.
The first new verbs on the list are from the maker of XTension! He's adding XTension functionality via new cog verbs! Expect a release soon. =)
Please list any additions you make in this thread. Please note helper functions to access the various arrays do not exist yet. Feel free to take the info gathered on the forums to help us out and make them. =)
Part 1 of implementing the saber movement system is complete. Moving the mouse left/right/up/down circles it around the player. To yaw, simply go all the way to the right or left.
I have uploaded another vid to demonstrate this.
Part 2 will entail getting the arms linked together. That will probably take the longest to fine tune and tweak.
After many a day of trying to get this stuff to work, it works! I have uploaded a vid of it in the download section.
If you would like to take a peek at the cogext.dll source, just reply to this thread and I will use the email addy in your hub profile to send it to you.
It is my belief that the current state of the source does not warrent 'open source'ing, because it is not yet easy to add new cog verbs. That is, if you know some C/C++. There are still some helper functions missing to access the various arrays (things, keyframes, models, etc) that would make coding new verbs pita-free.
There is a new video showing my efforts at wiring in the key trapping cog. Nab it from the download section.
Nab it from the downloads section!
I finally solved my problem with the self-extracting rar files! Huzzah!
However, I completly forgot to add in support for the Adjoin/Thing Limit patch (Different from the Adjoin/Thing/Extended Cog patch), because when I started JK Patcher, I did not know that the A/T/EC patch would cause the checksum error to happen when joining a game hosted with regular JK or Thing/Adjoin patched JK. Regular JK and Thing/Adjoin patched JK are compatable with each other. What makes the T/A/EC patch special is the added cog verbs, throwing in more variables for checksum to check.
So, LOLCAKES!!1!! on me! >_<
That, and JK Patcher won't be out for another 48 hours. I promise, 48 hours and it'll be available. Really, I promise. I never make promises I can't keep, and when's the last time you've ever seen 'promise' typed by me? ;)
Well, as of right now, there is only ONE thing keeping JK Patcher from release. Apparently, there's some VB crap that needs to be worked around, and I'm too tired to implament it at this moment in time. Hopefully in the next 24 hours, you shall see a news post, telling you that the latest and greatest JK Utility is available for download.
Anyway, Mozeltoff and Kanichiwa stuff. >_<! Goodnight.
Well, after handing a beta out for someone to test, and having to go through a pain staking debugging process, only to find out that my display settings interfered with some design elements, I finally got it all working.
Then I had to finalize some things with the downloading system, only to find out that you shouldn't open/put/close on a file in a function that can be called lots of times, before the HD even has a chance to close the file. Now I've got that working smoothly. I even went as far as to have downloads be self-executable .rar files, for maximum compression and ease of updating.
Once I finalize some code for running the rar files, and copying the updated files to where they need to be, JK Patcher should be ready for release. =)
I have uploaded some new screenshots of JK Patcher, the program destined to keep the JK community up to date with JK.exe patches. JK Patcher will patch any version of JK.exe, and is guaranteed to work. =)
Thanks to Sige, we can now implament new cog verbs in JK via an external DLL. This project page will serve as the 'official' download for the CogExt.Dll.
The beta and source will available here as soon as uploading files is working again. If you wish to add new cog verbs, you may try, but you might want to wait untill we have documented all the neccessary things:
Thing array location
Thing property offsets
Stuff of that sort
The beta has 5 new verbs you can use in JK cogs:
GetPlayerPitch(); //returns local player headpitch in degrees (limited by min & maxheadpitch in template)
GetPlayerLVec(); //returns local player headpitch as an LVec, so using FireProjectile and grabbing the LVec of that thing is obsolete now
HeapSave("Pathfilename.ext"); //Saves the calling cogs heap to the path and filename specified
HeapLoad("Pathfilename.ext"); //Loads the heap into the calling cogs heap array. Automatically creates heap, returns 1 for success, 0 for failure.
HeapSize(); //Gets calling cogs heap size
Check out the Description for what JK Weapon Arms are all about. =)
I've uploaded another vid, showing me running from the hangar to the bridge. (flying up the elevator shaft)
This is all 3do. I'm positive I can have elevators working no problem inside of ships, even doors, with some cogging and position vectors. Hopefully I can divide the insides up as I go along, and have some random passages that are unlocked, so each capital ship encounter has a different flow.
That's it for now. =)
This one shows off some ship innards, some flying around, and carnage inside a ship. Get it from the download section. =)
0.4 is steadily making headway since I've returned from our vacation. I've got the weapons wired back into my new weapon hotkey system, fixed a few bugs, and will hopefully have some new cog verbs to prevent alot of network traffic from happening. ;)
And me and my wife are doing so. Along with the In-Laws. My In-Laws. How fun. No computer, no cable, no computer, no cable, make Helly go, something something. =P
See ya in a week. >_<
There is a new video showing off the new Calamari Cruiser with hangar 3do ingame in the download section.
I made another vid showing off the few animations for the X-Wing. Download it, now. =P
The converter, as you can tell from the latest screens, is working qutie well. Animations are working too, so cockpits open/close, and S-Foil wings open/close. =D
Well, the converter isn't 100% perfect in the sense that all you have to do is plunk the 3do in JK. Tweaks needed are:
* reassign faces to new meshes if there's more than 512 verticies in one mesh (so I don't have to open up in JED to cleave down and risk messing up some of the UVs)
* 3do comes in facing backwards so I need to negate the Y values of verticies
* need to add in Lower LOD into next Geoset in 3do, y'know, cuz the Geosets are meant to be used. =)
* double, triple, then quadruple check the scaling.
After that, I'll release the converter for download, along with some models for everyone's use. =) THEN I can get back to 0.4 cogging. ;)
If you check out the screenshots, you'll notice spiffy models are now a part of JKSF. I've spent the last couple of days programming in Visual Basic, so that I could port the models from www.xwaupgrade.com to JK. Now that I have it up and working perfectly, I can resume working on the code for 0.4 =)
There's a new vid available for download. It shows off the hangar cinimatic scene and a few other things. =)
I'm not going to lie. JK Starfighter whatchamabob needs someone to help with designing some 'prefabs' of Capital Ship interiors/hangers, a few ground bases, things like that. At the moment, Missions will consist of fairly modeled levels and whatnot. My talents do not lie in architecture and paint programs. They lie in coding, specifically for JK! ;D
Please apply in the forums. Even if it's something simple, or only one of the above, it would be greatly apprieciated. I really think this would be a fun mod. :)
I've uploaded some new screenshots of what I've got coded in.
Here's a lowdown of new stuff for 0.3:
Forward/Back for Throttle
New Mouse Reticle
Lasers with Sounds
Basic Targeting System
Lead Firing Reticle
TIE Fighter AI
And maybe a few more things. =)
This should work in MP. I rewired some things so that the ship creation and movement would be synced. =)
Just for everyone to see what I've done with Freelancer type mouse controled flight. There is an in-game video in the download section along with the current mod and level. The level is Multiplayer, but it is quite buggy if a client connects.
Just for everyone to see what I've done with Freelancer type mouse controled flight.
My Wife and I will moving from Colorado to North Carolina on the 1st. To make a long story short, my dad is feeble and needs the care of 1 of three children that still care about him. We're having to take down my computer this saturday afternoon, so if all goes well, you shall see me in #jkhub on Wednesday.
And in case you haven't noticed, I am also known as Jon and Hell Raiser. Please bear with me, PhantomCoder just fits my persona and shall continue to be my nickname for years to come.
Your Hub friendly coder,
A DBZ multiplayer gameplay experience like no other.
Battle it out with multiple opponents. Enhanced targeting system allows you to team up whenever you want. Engage multiple targets. Track power levels and level ups.
Enhanced Melee System! Easily pull off moves that have different effects. Different arrays of moves allow you to pull off unique and interactive combos.
Smart AI knows which moves you're pulling off--smart, fair, and settable. Limited Single Player mode possible.
Jon Mod is open for buisness! See all sorts of testing with Projects going on.