Mmorpg

It looks like I never uploaded the video here. I’ll do that later.

for now an update, I’ve made a lot of progress but still don’t have anything to release. I’ve finally got around to the character designer (again, as I’ve done alot of work on it already but that was just for stats and stuff, now it’s time to make an interface to design character looks.) I’ll be using the videotexture module to swap out textures, but a lot of the tutorials out there aren’t very clear and I’m working with a lot of new code precepts here so it’s going to be a difficult headache to figure it out. Thanks again to HaidMe for telling me about videotexture.

Once I finish this test file I should be good to go to add it into the character designer.

I would like to see the video too.Sounds like a interesting project.

Certainly!

here it is:

some novice-level animations were used because I was in a rush to get that video out for my masters.

I like the game so far.One thing I noticed is the camera goes through walls.You need to find some way to prevent that.

indeed, It’s on the list of things to do. I’ll have to make the armature motions controlling the camera servo motions and set the camera to rigidbody or something.

One question: Why do you still use blender 2.49?

the more I try the more I realize there isn’t anything blender 249 can’t do. why spend the time to learn a different system?

I myself prefer the ease of control in 249 what with all the hotkeys and buttons. I really can’t have that system replaced. I tried setting all the hotkeys in 2.7 to be the same as 249, but it didn’t work, some are not able to be set the same.

then there’s the whole license thing with the GPL 2.0. but I wont get into that.

Updates:

I redid the mouse script, the typical one they give on the blender python repository for mousemovemnt had way too many unwanted side effects like the mouse jumping off the screen and refusing to return etc.

MouseScript 2.0 is more complicated but gets the job done in a heavily controlled manner.

Chat:

I’m in the process of making a chat system, it’s offline for now, instead of sending and receiving messages to/from a server it is saving them to a text document and reading them from there. there are a few minor bugs I need to sort out, after I do I will make a basic chat server and make the chat online. it may take a bit, but I’ve decided to get this done before moving forwards.

I have begun considering the creation of a simpler MMO to have something to release sooner rather than later. but the main project will continue to be worked on over time.

Will this videogame have hand to hand fighting ,hand to hand weapons or guns?Or all of what i typed?

at this point, it’s too soon to say.

but it’s not impossible.

all it takes is planning, which I have some of done, but not enough to say yea or nay.

Status:
It looks like I’ll have a few days to work on it uninterrupted (at least mostly) this week. I hope to get the basic chat done.

right now one issue is the typing field doesn’t automatically clear itself because of a writing conflict between the keyboard sensor and the property actuator. the fix; spawn the text object when typing is active and then end the text object after sending/storing the message.

the second issue is the spawned message returned erases itself when a new message is being typed then displays that message. it’s currently triggered off a delay sensor, but the delay sensor is repeatedly sending a “True” to the script which causes the problem no matter the settings of the sensor, the fix; give the spawned text a bool property switch it to false after writing the message, require delay and property to be true to load a new message.

with that I should have 0 problems finishing it’s current offline version of the chat.

Just to be clear,

This is the defacto-method of networking state to minimise bandwidth, or to drive authoritative models. It’s not really something you (or anyone else) can claim as unique

Good luck with the project

Indeed I realized that in the months after posting it and realized how much of a fool I was to think no one else had thought of it, lol.

keyboard sensor problems. apparently the keyboard sensor will not write to the Text property when added from a hidden layer. this means though my scripting and setup worked the added object’s text was un-editable.

this means I will have to consider other methods of using the text box. such as manually defining key presses and what they write, then writing that to the value field of a property actuator aimed at “Text” and activating it after each key press for an auto-update effect.

nope that wont work because it takes away the precious backspace key.

I found a cure with the original design, using a copy property actuator I was able to overwrite the property of the original text, this could be done on spawned text too so yay. I have yet to finish the offline chat (what with the scroll bar and all) and probably will do so tomorrow or after this weekend.

Finally got some free time when I had the mood to work, the textbox portion of the chat is completely fixed. now I just need to apply the fix stated above for the spawned text (again) so that it doesn’t disappear etc.

the next step is to program the parenting offset and program the scroll bar. simple stuff. after that I may design some various chat-channels and test multi-source chat logging by saving the time of each message along with the message and loading in order of the time.

after that, it’s online time. or at least time to get it working off internet network messages.

Edit: minor changes, bold text above.

also; There is now a problem with the message writer, the file LastMessage.txt is blank, I know why, it’s because the textbox message writing/ text clearing script is told to run if Active is FALSE (which is toggled when return is held), it must be running more than once in a fraction of a second while FALSE is true. I’ll look into fixing that it’s probably something simple.

I’ll try to grill through the code today, something is indeed causing the false trigger portion of the code to run 4 times, 3 of those times are after the textbox has been cleared, so this causes a timing issue where by the time the new text object is loaded it is loading text from a blank document. this needs to be fixed before I go online or the same thing will happen with the online message. an obvious fix to offset the timing problem is to create another bool property which is triggered after the file write operation which causes the text to be cleared.

either way I don’t expect it to be that easy.

I’ll try to grill through the code today, something is indeed causing the false trigger portion of the code to run 4 times, 3 of those times are after the textbox has been cleared, so this causes a timing issue where by the time the new text object is loaded it is loading text from a blank document. this needs to be fixed before I go online or the same thing will happen with the online message. an obvious fix to offset the timing problem is to create another bool property which is triggered after the file write operation which causes the text to be cleared.

either way I don’t expect it to be that easy.

it’s not that easy, I did finally figure out what’s wrong, or rather it finally clicked while reading the code.

the switch of a bool property is slower than the processing of the code triggered from a key press. this means when I hit enter to send the typed message the keyboard sensor triggers the code while the bool property ‘Active’ is still true, this causes the property field to be cleared because: if activeT.positive:, cont.activate(CLRtxt), cont.deactivate(CLRtxt), after this or during this the bool property is being switched causing it to do a double-take (like: ok enter was pressed and active == true, wait wait, no it’s false, do both.), or in this case a quadruple-take.

lol.

So fixing the timing is a case of adding in another layer of control, or checks and balances as I call it. I’m still thinking what the simplest way of doing that would be, maybe If not Ret.positive and Active == false: but that would be an always trigger, spawning massive amounts of text messages one after the other (even though the Property and keyboard sensor are set to tap, when the property is false it continues to pulse TRUE when false, if that makes any sense.)

I’m going to have to mull this one over, when I do figure out what I’ll do though I’m done with this part of the chat and can get onto parsing the received messages and turning them into text or actions etc. and the scroll bar and parenting offset. totally the chat consists of 6 parts; the text box, the message spawner, the parenting offset, the scroll bar, the text parser script(and channel mixer), the channel menu.

so totally I will be 1/3rd done with the offline chat after this.

Fixed.

actually it was a completely different issue in the end, something was preventing the message from being written to the file, I switched the cache clearer around in the code and did a few other things and it works properly now.

I can now move on to the next stage of the chat system.

Edit: a reminder for myself:

totally the chat consists of 6 parts; the text box, the message spawner, the parenting offset, the scroll bar, the text parser script(and channel mixer), the channel menu(setting which channel you are sending your message to).

underlined and bold is complete.

I like how you completely and fully document your progress…Good luck with your project. Look forward to it

thanks!, indeed, most game companies seal everything under NDA until release, but I feel it helps the process to get peer and player input about the process. that and it stands as both a reminder to me, and helps me think out what I will do to solve a problem.

Today’s update; (not like I give one every day but whatever lol)

I was able to test the system for the parenting offset, it works. However, it’s going to take a bit of thinking, I’ll have to create a message parent passing system where the newest message passes to an object at the bottom of the message list and whatever was there gets bumped onto that object’s parent and bumped up however many lines of text it was. it’s a complicated system that will depend on the chat window’s size as well, because of this I’m looking into limiting the chat window size to a moderate selection of sizes based entirely on how many characters can fit width-wise and how many lines can fit height wise.

For now I’ll work with just a default chat window size that is un-changable otherwise I’ll be stuck grueling over dynamic ratios and wont get the meat of the operation finished. for this reason I wont say the parenting offset is finished, but it’s functional and will work without any large amount of hassle.

the default chat windows size will be 100 characters by 10 lines.