It is official. Ship to ship Multiplayer is Up!

It is official. Ship to ship Multiplayer is Up!

The multiplayer for ship to ship combat is up and working.  The respawn also works, which means, after someone dies, the host server can just hit a button and everyone is back to full health.  Obviously, this makes battles more fun since people can get right back into the action.  Admittedly, it is still rather crude, since fleets wouldn't be here yet.  There has been some rumblings about making a "fleet builder", so if one just wanted to do head to head fleets rather than the full game with cities, that could be done.  This would prevent the normal time it would take to design and build a fleet as in the normal game, so people could have instant action with a large amount of ships.

Does this mean the full multiplayer is up?  No, but now it's playable for ship to ship conflicts.  So then what actually works?  Sending a player across, sending ship designs across, position and heading tracking and damage.  (So basically anything you would need to run around and blow up your friends!)  What doesn't work?  Sending corporations/factions across, factory queues, AI decisions, etc.  That is what I will be working on next to bring the rest of the game across the network.  I expect this to take a few weeks since there are a lot of structures to have moved and tested that it works.  I'm sure there will be a lot of tweaks that will need to be done as further testing happens.

But make no mistake, this is a major milestone!  I will be getting this to the testers soon. ;)

 

Multiplayer is talking

Multiplayer is talking

The join and host mechanics are up and working.  Chatting works (as you can see).  The rest of the infrastructure needs to be awoken, but it is there waiting for it.  In the old system, the Scenerios never did anything.  In this case, it will be quite needed since it will determine how the players enter the game, either just in deep space (which is the next test), or plantside.  Then, of course, what do you have with you, etc.  Meaning, full cities, or just a builder bot and a dream?

I do expect the deep space to be running by the end of this coming week, since that always worked in the (distant) past.  Getting the system to like buildings and the AI will take longer, and I know that.  But depending on testing, should hopefully not be too bad.

Connection Established! Multiplayer has a heartbeat!

Connection Established!  Multiplayer has a heartbeat!
Connection Established!  Multiplayer has a heartbeat!

Ok.   What does "(**#*#*^$^PLAYER 1$%" mean?  It means that the Host and Client are talking and the client is sending the Player name to the host and everyone is talking to each other. :)

What you see in the screens shots are the "join" screen, and the Lobby/Host screen.  Obviously, very much a work in progress, as one might expect, but in the background, the machines are talking to each other. :)

I will end up cleaning up some of the connection code to the UI to make it easier to use than right now.  Then get the "chat" function working to show more interactivity between the systems.  Then I will be sending ships across. It is already doing positional updates, which doesn't mean much to the client yet.

This is a MAJOR milestone for me and the game project.  I know it isn't workable on a game level yet, but it's still important. :)

 

Join Screen Prototype

Join Screen Prototype
Join Screen Prototype

Not much work on this over the weekend, but you can see there have been some updates.  Now to make it functional. ;)  You can see here with the screen maker lines and without.

 

 

Getting the multiplayer started

Getting the multiplayer started

This is a screen shot from within the screen maker for the multiplayer "join" screen.  It is more of  a brainstorm, work-in-progress, than it's final form.  What use to take days, now takes minutes.  Obviously the screen maker needs more and more features, but it will get them over time.  What isn't obvious here is the "listbox" allowing multiple, independant columns, which is something new.  It is amazing how much of my time is making UI controls rather than game coding.  We did start to open the hood on the AI system and the multiplayer code. A LOT to resurrect, but I am hopeful that I will get my first confirmed connection next week.  The Main AI was looked at to finally get the AI code to attack things on their own, rather than being ordered to.  It looks like it IS being ordered, but the ships are refusing to do it because they aren't finding enemies.  So it a bug issue, rather than it isn't there.  Such is coding.

 

Screen Maker Ready!

Screen Maker Ready!

Ok, what is screen maker?  Well, I realized the reality is that I needed more tools for my game, or more specifically for my engine.  Originally, the interface screens were all hard coded.  In the resurrection of the project, I have been slowly moving a lot of the screens to use the scripting engine (and new controls/UI/UX) that I had built.  The idea being that the artists could play with the scripts to change the look and feel of the game without having to recompile for each change.  Unfortunately, the artists never wanted to play with the numbers, so they used the script side very limitedly.  When I started on the multiplayer code, I was faced with that I needed to build between 2-4 interface screens.  Considering how long it took to make the shipbuilder, configuration and splash screens by hand, and honestly how badly things just didn't fit, I realized that doing the numbers by hand, even in a script, was a waste of time.  And a lot of it.  I decided to bite the bullet and spend a few weeks to make the screen maker.  While GUI/interface constructors exist, and I did look into them, I still would have had to convert their output to my script, and make "custom" objects to make it all work right in their interface, and it would only be 80% of the work, since a lot of changes still would have to have been made to the output script anyway.  By writting it IN the UI engine, what you see is what you get!  No guess work.  If it saves and loads back the way you expect, it will look like that in the game.  I was, for the first time, able to extract the UI engine from the main game and keep the scripting engine intact, which I admit, I'm inpressed by.  Now, you can just drag to construct controls, click to modify/resize things, etc.  Instead of taking days to get the numbers "mostly" right, now it can take a few minutes to an hour to do a whole screen, and everything is perfect!  I plan actually redo the current screens in the current screen maker, so the artists can tweek at will via the interface.  With a LOT more screens needed to be done, this should, in the long run, save me months of development work versus doing things by hand. 

What you see in the screenshot with all the outlines is showing the different objects, even if hidden.  Red are the "Omnigrids" and green are the OmniGrid Objects.  The lines going to a center point says that the center OmniGrid Object (known as an OGO), will move all the rest of the connected controls as one.  So it acts like a container or window.  You've seen the result of that from previous posts.  The screen shot is a test for making a properties window, and let's me test everything out.

Yes, I did mention the multiplayer. ;)  I will be starting on that this week, even if it is just to make the screens for it.  :)

New buildings in the game!

New buildings in the game!
New buildings in the game!

In preparation of the first set of testing, the new buildings are finally in the game itself.  Here you can see them in action, along with finally flying one of the newer fighter designs.  

Tutorial Coding is in Process

Tutorial Coding is in Process

I found an interesting problem with the Nav Markers.  They are upside down. ;)  Another thing to fix.  But it least it is all working.

New Opening/Main screen of the game

New Opening/Main screen of the game
New Opening/Main screen of the game

The tutorial needs a way of getting to it.  Now that way has been created.  The "effectors" have been overhauled so it has become it's own mini-scripting engine that allows a bunch of sequenced effects for the objects of the screen.  By created this midway point, it can be the launching point for the tutorials, multiplayer, configuration, etc. that are typical of modern games.  The previous screenshots now transition to this screenshot smoothly via the effectors.

 

 

Suggestion: Hot Key Cheat Sheet

Alex suggested to have a hotkey cheat sheet. Meaning, coming back to a game and forgetting the important keys for a screen, make a default key (such as Tab), bring up a window while held that shows the relevant keys for that screen and what they do. That way they don't need to be looked up in the configuration. Since not all keys are needed on all screens, it may give hints on what a screen can do that the user might have forgotten.