Mythruna

Development => Blog => Topic started by: pspeed on November 27, 2014, 01:32:38 AM



Title: Novement 2014 Status...
Post by: pspeed on November 27, 2014, 01:32:38 AM
So, as many of you know, I planned to work on Mythruna this week as full time as possible.  I took the week off from work to hopefully work past some of the larger issues that required undivided attention.  This turned out to be significant in subtle ways.  I wasn't able to work on things as much as I'd hoped but not having the specter of work looming over me from minute to minute has definitely freed my mind to work past some issues.

Last week up through Saturday, I was putting the finishing touches on an Open Source Java library for reading OGEX files.  (My project: https://github.com/Simsilica/jogex, What the heck is OGEX? http://opengex.org/)  This is part 1 of a two part project to smooth the model import pipeline of jMonkeyEngine.  I have a lot of model assets I've purchased over the years and getting them into jME is always kind of a pin.  I hoped to smooth that process.  Anyway, it took me longer than I wanted but at least I was able to get that piece releasable before "Mythruna week".

On Sunday, I attempted to pick up where I left off like six months ago, re: networking.  There were at least four (long) text documents I had to read to figure out what the heck I was thinking about before and catch up.  This wasn't so much fun, really, but necessary.  And I'm glad I'd left such extensive notes because I'd forgotten a lot of stuff.  By Sunday evening, I was going through the code I'd written already and trying to relearn what I'd implemented and what was still left to be done.  Monday I started back in on the client side trying to figure out where to hook things in.

It cannot be overstated how useful it was to have nothing overly taxing pending.  Granted, familial obligations were still there and I had many cases where I ended up running an errand that broke flow.  Mostly, when working past these really rough spots, if I'm not 100% motivated then any distraction is a huge one.  "Ugh... I'm not sure what to do next with this connector stuff... wonder if anything is new on twitter?"  And so on.

The real significance of having enough time is that I didn't feel rushed to push something through.  When I only have a 1 hour block to work on something, I feel the pressure when I spin my wheels on design.  All of the existing new network code suffered from this greatly.  It was over-designed in the wrong direction.  When I went to start implementing the actual client-side login piece, I hit the same wall I'd hit six months ago.

Old Mythruna had it easy here.  I started by just hacking the client->server connection together and building stuff on top of it.  A rudimentary login and account creation was kind of slammed on top of that.  No password resets, no multiple characters, no nothing.  Client pops open a screen, you enter some stuff, and BAM! you're connected.

New Mythruna did not have this luxury. 

The first wrinkle is that the old password scheme was not as secure as it could be.  I need to convert everything over to SHA256 instead of MD5.  This means that I need to let users login with their old MD5 hashed password and force them to do a password reset.  Furthermore, the implication is that some day I might even want to do something better and so on some level this stuff should be plugin-enabled like the rest of the code.

The second wrinkle is that I want to be able to handle Mythruna.com logins.  The client has already started allowing logins to Mythruna.com, I just don't do anything with them.  The token passing protocol, etc. has been designed for how this will work but it's all brand new.  Twist the wrinkle a little more and imagine needing to handle cases where Mythruna.com is down but public servers still want to allow fallback logins or some servers who choose not to authenticate through Mythruna.com at all for some reason.

The bottom line is that this is not straight forward.  I had a design and some code that I felt like were elegant when I only got to work on them 1-2 hours at a time.  Plugin services that could handle different protocols (legacy MD5 versus new-hotness SHA256) with interception stuff for Mythruna.com logins.  It had lots of nice accounty classes and felt plugin-ready and so on.  The issue was the ridiculous amount of left-hand/right-hand distant coupling (the left hand can't be sure what the right hand will really do) between the plugin services on the back-end and the UI forms on the client.

If I had a stack of protocol support plugins on the server, I needed a similar stack of protocol forms on the client.  These are dynamically loaded about as far from each other as you can get.  It was even the impetus for me designing the plugin module deployment system because it made me really uncomfortable how tightly these things had to be coupled while still allowing for dynamic additions.  The server sends a list of plugins required and you'd better hope that the client has them, too, or you just won't get any farther.

Late Monday or early Tuesday, I had an epiphany that his since led me to gut all of the account services stuff I'd made before.  In it's place, I now have a more general request->response system.  Back-end code can send a request for values and the client can choose how it wants to present those to the user... without even really having to understand what they mean.  UI gets generated dynamically.  This can also be used by regular game code that needs to request something from the user.  (That was all kind of hackish before.)

I spent most of Tuesday implementing this and reworking my command line test client to use it.  Another round of refactoring earlier today and I was starting to get back to the UI side.  It's been going much better.

You can see from the screen shot below that I actually have a real network connection being setup and the server sends over the initial login form.  The buttons don't do anything (yet) but the path ahead is way more straight-forward than it has been to date.  Things are starting to come together.
(http://i.imgur.com/57rL67u.png)

I'm not going to lie.  I wanted to be past this part by now and implementing networked physics... but really, once the connection has been established all of those other things have very straight-forward approaches to implement them.  I'm hopeful that there are no more "requires 3x8 solid hours of thinking" road blocks in the immediate future.

Next will be to finish up login and account creation which is just a matter of finishing hooking up the dynamic UI support.  After that, I need to bring over and hook up the rest of the remote world stuff.  The entity system is already networked and ready to go but I need to rebootstrap the remote world change events and the remove blueprint database and so on.  Hopefully I can get all of that working before my stay-cation is done.

...then physics networking.


Title: Re: Novement 2014 Status...
Post by: Michael on November 27, 2014, 08:24:44 AM
Networking from what I see can be a very devious thing (and I've even looked at some example packet sending/listeners, and I didn't really enjoy it). Well, Paul, I'd like to thank you for this update, and I hope everything's going well for you and your family and friends, and I hope you'll get past this obstacle of physics networking.

Just the name of it, "Physics Networking", sounds so devious... so menacing..


Title: Re: Novement 2014 Status...
Post by: Rayblon on November 27, 2014, 10:08:23 AM
Just the name of it, "Physics Networking", sounds so devious... so menacing..

Physics is bad enough without adding another layer of boring to it.


Title: Re: Novement 2014 Status...
Post by: ebag51 on November 27, 2014, 05:16:13 PM
It is nice to see progress good job Paul. Hope everything goes well for you and that the game rate of progress increases marginally. (Although more than marginally is good too ;))


Title: Re: Novement 2014 Status...
Post by: pspeed on November 27, 2014, 07:46:03 PM
It is nice to see progress good job Paul. Hope everything goes well for you and that the game rate of progress increases marginally. (Although more than marginally is good too ;))

Yeah, 'cause anything would be 'marginal' at this point. ;)  So hopefully reportable progress.


Title: Re: Novement 2014 Status...
Post by: Moonkey on November 28, 2014, 07:39:27 AM
There's nothing better than going over code you worked on over half a year ago. I hope you're happy with the progress you've got going so far! :)


Title: Re: Novement 2014 Status...
Post by: pspeed on November 28, 2014, 11:46:07 AM
Yeah, last night I was actually able to login and create accounts and stuff.  It's not particularly pretty yet but it's functional and that's all I need to do the next hard parts.

I will have to tweak at least one or two things in the near term so that I don't have to type my info in all the time just to test... but I have a connection and access to the entity system.  Now I just need a character selector and small character creator and to hook up the world, blueprint databases, chat messages, etc.


Title: Re: Novement 2014 Status...
Post by: pspeed on November 29, 2014, 03:30:56 AM
A bonus for those who read this....

I was about to start playing with a very basic character creation screen but I got side tracked.  I wanted to fix my male model so that at least you could pick male or female.  I had a version of him some time back where I finally removed his "member" so that I could paint clothes on him without it still looking obscene.  Before that I decided to load up the female and play with painting techniques.

Behold, clothing: (I had to load her in my pose tester just so we could see the front since we can only see the back in game)
(http://i.imgur.com/FNI0T4B.png)

I'll paint some clothes on the male model in the morning... I need to see if his skeleton even works in the pose tester first.  That's potentially a lot more work than just some painting.


Title: Re: Novement 2014 Status...
Post by: pspeed on November 29, 2014, 03:33:28 AM
For fun, this is what she looks like in Blender: (with texture at full resolution)
(http://i.imgur.com/D4LQcah.png)

I paint with a hires texture and then lower it back again for actual use in the game.  a) it saves some memory and b) it hides a lot of small issues.


Title: Re: Novement 2014 Status...
Post by: BigredRm on November 29, 2014, 09:13:29 AM
Im lovin it. Paying attention while not getting hopes up is tough. Back to Skyrim in VR but I got my eye on Mythruna. Hail the Creator!


Title: Re: Novement 2014 Status...
Post by: Michael on November 29, 2014, 12:45:22 PM
I've been trying to play with Blender lately too. I haven't played too much, but a can do a little bit of things with it. I haven't tried character creation yet, though.


Title: Re: Novement 2014 Status...
Post by: ebag51 on November 29, 2014, 02:34:27 PM
Great job again Paul can't wait to see it implemented in the game.  :)


Title: Re: Novement 2014 Status...
Post by: pspeed on December 04, 2014, 07:13:04 PM
Just random... even though I didn't post an active to-do list here it doesn't mean that I don't keep them myself.  I usually have a bunch of them but here is a shot of the one I started working from this past weekend:

(http://i.imgur.com/AzYuTks.png)

Good progress late Saturday and most of Sunday... I'm finally checking things off faster than I'm adding them to the "Other things" section. :)


Title: Re: Novement 2014 Status...
Post by: Michael on December 05, 2014, 05:22:22 PM
Looks great if you ask me. More things are "DONE" in the list than what's just sitting there.


Title: Re: Novement 2014 Status...
Post by: pspeed on December 05, 2014, 07:01:20 PM
Looks great if you ask me. More things are "DONE" in the list than what's just sitting there.

It was a list that was started on Saturday just for some super-short term stuff  while I got the network connection working.  I'm almost ready to actually start on the "real" parts, ie: streaming the terrain data over, blueprints, and stuff.  Fortunately, the entity system is already handled because I open sourced that bit a long time ago.


Title: Re: Novement 2014 Status...
Post by: pspeed on December 06, 2014, 01:47:49 AM
Random stuff...

(http://i.imgur.com/othGL4u.png)


(http://i.imgur.com/S7wDEhH.png)


Title: Re: Novement 2014 Status...
Post by: Rayblon on December 06, 2014, 09:14:08 AM
Can mythruna have Soylent Green? :3


Title: Re: Novement 2014 Status...
Post by: pspeed on December 08, 2014, 01:07:37 AM
I finally hooked up the local "recent servers" support so it remembers where you've connected recently... and more importantly remembers the last login and password hash.

This saves sooooo much time.  I want to do a little happy dance.  I'm glad I did this before going any further because entering the user + password every two minutes was getting really old.

I couldn't have implemented it much sooner than now, though, because the UI was only just able to support the list and selection and stuff.  Not I can finally get to a simple character creation screen without pulling my considerably long hair out.

This has been a good week.  Last night I changed gears to do some optimization-related changes to jMonkeyEngine but other than that I've actually gotten to work on Mythruna every night since Thanksgiving.  Even if one or two nights was only 30-45 minutes... several nights were considerably longer.  It feels good to be making progress again.

The now-familiar to-do list...
(http://i.imgur.com/pWIMRDR.png)


Title: Re: Novement 2014 Status...
Post by: Rayblon on December 08, 2014, 11:52:04 AM
considerably long hair

Come at me bro. *hairslap*

(Long hair is freaking awesome)


Title: Re: Novement 2014 Status...
Post by: pspeed on December 08, 2014, 04:32:02 PM
considerably long hair

Come at me bro. *hairslap*

(Long hair is freaking awesome)

I've been growing mine for (ahem ahem) years and it's down past my waist.


Title: Re: Novement 2014 Status...
Post by: Rayblon on December 08, 2014, 04:49:40 PM
considerably long hair

Come at me bro. *hairslap*

(Long hair is freaking awesome)

I've been growing mine for (ahem ahem) years and it's down past my waist.
._.


Title: Re: Novement 2014 Status...
Post by: BigredRm on December 09, 2014, 08:43:09 AM
(http://makeameme.org/media/created/Dude-long-hair.jpg)


Title: Re: Novement 2014 Status...
Post by: pspeed on December 09, 2014, 01:05:48 PM
,,,kind of an itchy blanket that you can't take off when you go to the bathroom.  I'm just saying.  ;)


Title: Re: Novement 2014 Status...
Post by: Rayblon on December 09, 2014, 01:12:57 PM
Some tribal warriors measure their victories by their hair.

Plus long hair makes an awesome scarf.


Title: Re: Novement 2014 Status...
Post by: Teknonick on December 13, 2014, 03:15:09 PM
Yeah. LONG hair. My goal is to get my hair as long... but I'm not very good at taking care of my hair, so I end up ripping it whenever I brush....


Title: Re: Novement 2014 Status...
Post by: Rayblon on December 13, 2014, 03:25:39 PM
Yeah. LONG hair. My goal is to get my hair as long... but I'm not very good at taking care of my hair, so I end up ripping it whenever I brush....

Use conditioner or you'll end up like Britney Spears after the drugs. :l


Title: Re: Novement 2014 Status...
Post by: Teknonick on December 13, 2014, 08:43:27 PM
Yeah. LONG hair. My goal is to get my hair as long... but I'm not very good at taking care of my hair, so I end up ripping it whenever I brush....

Use conditioner or you'll end up like Britney Spears after the drugs. :l
That's actually part of my problem. I don't rinse it out enough. xD


Title: Re: Novement 2014 Status...
Post by: pspeed on December 20, 2014, 02:58:27 AM
Incidentally, last weekend I finally painted clothes on the male human model.  I'm having trouble getting him to import properly but that will get sorted eventually.

Here is what he looks like:
(http://i.imgur.com/1JmDRcq.png)

Up until this past Monday, I was going a pretty good job of working on Mythruna every day, even if some days were only for 15-20 minutes.  Last weekend I even managed to do some work on JME and still put in a solid few hours that day on Mythruna.  This week wrecked it all because day-job work was taking over.  I'm back to playing tonight and hope to have a productive weekend.  Well, other than playing Diablo 3 with my son. :)


Title: Re: Novement 2014 Status...
Post by: Rayblon on December 20, 2014, 12:16:28 PM
Lol, the way you put the clothes on them reminds me of those paint on jeans people wear sometimes.


Title: Re: Novement 2014 Status...
Post by: ebag51 on December 20, 2014, 03:57:45 PM
I hope next year is the year Mythruna finally takes great leaps forward :) (Mostly because this is my Senior year of High School and I graduate in 2015.) Nice to see you making progress with the models good work.


Title: Re: Novement 2014 Status...
Post by: pspeed on December 20, 2014, 09:16:37 PM
Lol, the way you put the clothes on them reminds me of those paint on jeans people wear sometimes.

"Jeggings" is the word you are looking for.  :)

When there are real craftable clothing then the clothes will be done completely different.  So I didn't want to spend too much time on them.  Still I think they look pretty good for the amount of effort (or lack thereof) that I put into them.


Title: Re: Novement 2014 Status...
Post by: ebag51 on January 05, 2015, 09:14:24 PM
I finally hooked up the local "recent servers" support so it remembers where you've connected recently... and more importantly remembers the last login and password hash.

This saves sooooo much time.  I want to do a little happy dance.  I'm glad I did this before going any further because entering the user + password every two minutes was getting really old.

I couldn't have implemented it much sooner than now, though, because the UI was only just able to support the list and selection and stuff.  Not I can finally get to a simple character creation screen without pulling my considerably long hair out.

This has been a good week.  Last night I changed gears to do some optimization-related changes to jMonkeyEngine but other than that I've actually gotten to work on Mythruna every night since Thanksgiving.  Even if one or two nights was only 30-45 minutes... several nights were considerably longer.  It feels good to be making progress again.

The now-familiar to-do list...
(http://i.imgur.com/pWIMRDR.png)
After reading and rereading the to do list multiple times I finally realize what this is for, to get the menu working properly in the next update right?


Title: Re: Novement 2014 Status...
Post by: pspeed on January 05, 2015, 10:13:46 PM
After reading and rereading the to do list multiple times I finally realize what this is for, to get the menu working properly in the next update right?

Kind of more than that... in order to even connect to a networked game you need to be able to specify where you are connecting.  In order for me to _test_ connecting to a network game, or even to write anything beyond the initial connection, _I_ needed to be able to specify where to connect.

In the new engine, the network setup is more involved than the old version that you guys play.  In the old version, there wasn't any real account management at all... just a bunch of default stuff that was setup the first time you connected.

To even get networking working in the new engine, I had to do this stuff.  And this was just the "other stuff" list because it moves faster.  The real list is above it that you can't see in that pic.... it's items are a bit more cryptic and even still it's just the "connect to a world and start playing" steps.  It doesn't include any of the actual networking pieces because those are a different to-do list completely (and already better understood because they very much resemble the old engine).

See:
(http://i.imgur.com/0SFPjHL.png)

I had to get most of the "Other Things" stuff done before I could proceed past item 4 or so in that list.

Now I need to finish basic character creation... which means I need to get the human male avatar working properly (easier said than done).

After THAT, I can start hooking up actual networking stuff for "playing the game"... to include networked physics and streaming the world database, etc..  At least the entity networking stuff is already done because I open sourced that some time ago.





Title: Re: Novement 2014 Status...
Post by: ebag51 on January 05, 2015, 10:17:37 PM
Sorry, I just wanted to better understand what the latest updates were to make me feel better while waiting. (Take your time though these posts were just to make me feel better through understanding.)


Title: Re: Novement 2014 Status...
Post by: pspeed on January 05, 2015, 10:27:14 PM
Sorry, I just wanted to better understand what the latest updates were to make me feel better while waiting. (Take your time though these posts were just to make me feel better through understanding.)

Yep, and I'm just trying to explain myself better.  ;)


Title: Re: Novement 2014 Status...
Post by: ebag51 on January 08, 2015, 02:44:15 PM
So I suppose when the bottom 5 things on the latest list are done you can move on to 6 and below right on the previous list right?


Title: Re: Novement 2014 Status...
Post by: pspeed on January 08, 2015, 04:04:42 PM
So I suppose when the bottom 5 things on the latest list are done you can move on to 6 and below right on the previous list right?

Nah, it doesn't quite work that way.  Some things are just things I need to remember to do before I can release (like a proper password field) but otherwise don't hold up development.

Right now the thing I'm stuck on is getting the male avatar to work enough to continue.


Title: Re: Novement 2014 Status...
Post by: Rayblon on January 08, 2015, 04:24:29 PM
Next time, invest in an avatar with pants on. :P


Title: Re: Novement 2014 Status...
Post by: ebag51 on January 08, 2015, 05:21:56 PM
For character creation in the next update once you have the male avatar working you should give us the option to choose a gender. :P


Title: Re: Novement 2014 Status...
Post by: ebag51 on January 08, 2015, 05:53:14 PM
Speaking of developments how's life going Paul? How is your family doing? Are you still finding a good balance for work mythruna and them?


Title: Re: Novement 2014 Status...
Post by: pspeed on January 08, 2015, 06:30:51 PM
For character creation in the next update once you have the male avatar working you should give us the option to choose a gender. :P

Of course... what do you think all of this is for?  ;)



Title: Re: Novement 2014 Status...
Post by: ebag51 on January 08, 2015, 06:34:30 PM
I feel like we might need a new thread for these update it being 2015 and all. lol :P


Title: Re: Novement 2014 Status...
Post by: pspeed on January 08, 2015, 06:35:01 PM
Speaking of developments how's life going Paul? How is your family doing? Are you still finding a good balance for work mythruna and them?

It's rough.  No balancing at all, really.  I work on whatever presents itself in front of me that I'm able to work on.  My wife still falls down a lot and they want me to travel with her to South Carolina this time so we have to take the kids out of school, pack everyone up into the car, and drive 4 hours for that.  I do not plan to be a very happy person at that meeting.

Day job is painful.  The past three months I've had the worst kind of work to do.  Undocumented, non working code, and trying to make it work with a dozen frameworks I've never used before.  Meanwhile, vacations and network outages of have chopped up the time even further.  Status reports are like almost humorous if they were happening to someone else.

Hopefully I'll get a little Mythruna time this weekend before I get on the road.


Title: Re: Novement 2014 Status...
Post by: ebag51 on January 08, 2015, 06:39:59 PM
Speaking of developments how's life going Paul? How is your family doing? Are you still finding a good balance for work mythruna and them?

It's rough.  No balancing at all, really.  I work on whatever presents itself in front of me that I'm able to work on.  My wife still falls down a lot and they want me to travel with her to South Carolina this time so we have to take the kids out of school, pack everyone up into the car, and drive 4 hours for that.  I do not plan to be a very happy person at that meeting.

Day job is painful.  The past three months I've had the worst kind of work to do.  Undocumented, non working code, and trying to make it work with a dozen frameworks I've never used before.  Meanwhile, vacations and network outages of have chopped up the time even further.  Status reports are like almost humorous if they were happening to someone else.

Hopefully I'll get a little Mythruna time this weekend before I get on the road.
I'm sorry to hear that  :(. I hope you can relax sometime on your trip to South Carolina.
Edit: Sorry for the original version of this post I miss read the post I quoted thus my original post sounded insensitive.


Title: Re: Novement 2014 Status...
Post by: pspeed on January 08, 2015, 10:21:45 PM
I hope you can relax sometime on your trip to South Carolina.

Heheh.  I think I have other plans. ;)


Title: Re: Novement 2014 Status...
Post by: pspeed on January 08, 2015, 10:22:52 PM
Speaking of developments how's life going Paul? How is your family doing? Are you still finding a good balance for work mythruna and them?
they want me to travel with her to South Carolina this time

Oops.  I mean "North Carolina" here.  _South_ would be an even longer drive for me.


Title: Re: Novement 2014 Status...
Post by: ebag51 on January 08, 2015, 11:26:53 PM
Still, I hope all goes well. :)