Sunday, March 16, 2014

Connection Success! Now the fun begins. Post #11

So last night Zach and I got the client and server connected and talking.  He has teams logging on and spawning the two default units we have.  I think he had 5 teams with 10 units.

Of course we ran into cross-origin resource errors (that I'll explain in the Client thread) with my end but as soon as I make a few minor changes to allow the server to request graphics from my computer (a feature we'll need if we ever want to have downloadable skins) we'll be up and running, developing through iterative testing. We are pretty excited right now.

I don't have any screen shots to share because Zach's computer is the one with the Haskell server working.
We are meeting up on Tues. and should get all that stuff up then.

He did put a .exe up on our Git so that I can run our server on my end but because I don't have the proper modules yet so I wouldn't be able to edit the server.  If you know about Haskell and Cabal hell then you know why this is and why I'm not super excited to get the platform working on my end.

It must and will happen in the next couple weeks though, if for no other reason than it's time.  We both need to be working on both sides of the code base, at least in a limited fashion where we need to be able to share and examine each others code remotely and in real-time.

That's really all I have to report in this thread.  I'm off to update the Client thread now.

Thanks for reading,
-Clay



Wednesday, March 5, 2014

Distractions... Post #10

This past week was slower going than I wanted it to be, and it was all my fault.  I got a (sorely needed) new Asus laptop with Windows 8 and spent far too many hours setting up my new development environment and forcing an Ubuntu partition onto it.  Again, I must shoulder some of the blame for the delays because I have been a faithful Mac user for the past 5 years.  My impending graduation, and the buzz about Win8 had brought to my attention that my once quite adequate PC skills had started to dwindle.

While Windows 8 cannot be named the sole culprit for this weeks delays, it most certainly played it's part.  In the interest of not turning this into a bash-on-Windows post I will only mention the single most annoying feature I came across.

When you swipe, left-to-right, over the area of the track-pad where the buttons reside it "swipes-in" the MS store (whatever it's called).  To back out you have to press "Win" then click on your desktop lifetile(?).

When you swipe, right-to-left, it "swipes-in" the control panel.  This only takes clicking on your application or desktop to go back to whatever you were doing and is emulating touch functionality so I understand why it's setup that way.  However, it is pretty annoying and it took me a couple days to even figure out HOW I was making it happen.  I kept thinking I must have been pressing a key down as well or something.

Which begs the question; "Is that the only way to access the control panel on a non touch screen?"
If the answer is no; "Then why is it so hard to find the hot-key command to bring it up?"

These problems are of course minor annoyances that I eventually turned off but unfortunately Win8 users now know these come from a family of feature oddities strewn throughout the system.   Which is really too bad because I like the new Flat-UI design and how it works on the touch screen.  I really think it's a great interface for a tablet.  It's just too bad you don't have a clearer and easier way to adjust how many of the touch features the OS is implementing on real computers.

Anyway...

Back to the project.

The only thing I succeeded in implementing was some minor refactoring of the GUI layout and some really bad animation and "onHover" events working in CSS3.  I guess this means I did finally figure out that it would be way too expensive to do ray-casting to full 3D WebGL buttons.

Although, now that I think about it there may be a good way to attach a new canvas element that has the UI/HUD layer on it, and because it would be static compared to screen coordinates,  you might be able to cache the objects and just keep them "unprojected" on the screen in 2D space.  I'm pretty sure this is how caching is done for marquee selection for a stationary camera view.   Hmmm.... I'll have to look into that later.

Sorry that was a kind of technical tangent.

I'm currently in the process of creating the structure of: Game Object, Entity super class, Unit & Building sub-classes.  I'm using the structure from SimJS, the ultra light "game framework" package (literally 6 .js files) from WebGL Up and Running.

I really like the simple structure of his "SimObject" class and aside from some outdated loaders (that do work with his examples, but mine always got an error about using a Vector3D vs Vertex3 that came from inside three.min.js which meant I was asking it to do something in an old format and I tracked it down to one of the loaders but could never fix it so I just started over), it is a solid foundation.  I think anyone new to game programming (but perhaps not programming in general) can benefit from taking a good look at his super simple but totally complete game model.

ughh... I'm pretty sure that was another technical tangent and I really don't wan't to move this post.  oh well.

I'm out of steam anyway.
That's what I've been up to, thanks for reading.
-Clay Francisco