Friday, August 21, 2009

Time for sleep

There is a cargo pod in position on the top of the ship. It is not distributed yet. It does not track inventory yet. It pretty much just looks pretty.

I think I know what is wrong with the server crashes. The creator of the object is the only one allowed to destroy the object. Currently it is created and owned by starfieldAI, but is being destroyed by client.py.

I will have to do more work later, 'cuz it's bedtime.

Views

Couple minor changes tonite. Added the ability to change from the "over the engine" view to closer to a "on the bridge" view. Not on the bridge yet though, and not 100% happy with how it looks.

Also trying to get rid of the annoying server crashes. Still haven;t gotten it ironed out.

Think I may spend a late night tonite messing around with stuff. I want to get the mining ship tracking what it has taken in, and start showing the cargo pods in the game.

Wednesday, August 19, 2009

Troubles

Rough night. Tried to break the chat logic out into a separate module / class. It didn't work well. For some reason the client repository wasn't getting references to the chat manager or the asteroids. The only thing I was seeing in the doId2do list was the time manager.

I suspect that for some reason, it wasn't setting interest in zone 101, which is the starting system that includes the avatar, asteroids, and chat manager object. The avatar was being created in zone 101 though. As I understand it, creating an object in an interest zone automatically sets interest in that zone.

Anyway, ended up doing a revert against the SVN server, and got everything reset to where it was when I started and it all works again. Maybe I can create a separate module without making a chat manager class...

Tuesday, August 18, 2009

Chat

Chat is finished. I have the incoming messages displaying in a scrolling area in the lower left of the display, right above the text input line. As a bonus, I can send system messages to the window as well. Special thanks to 'ThatGuy956' from the panda3d forums for most of the display code. I made minor changes, but most of it was his.

The server stability issues *seem* to be resolving. I suspect that it is related to how I was destroying the distributed objects.

Still waiting for a 1.7.0 to come out, and I will put out a couple downloads for people to test out. I would like to see some more stress testing. I have had 4 connections at once so far, but obviously that isn't enough.

Anyway... I will put links to the videos to the left for all to enjoy!

Saturday, August 15, 2009

Login Screen Video

Since videos are so much fun, Here is a preliminary shot of the login page.

Friday, August 14, 2009

Login screen

Late night. I have a preliminary login screen, but I still need to get "Broken Empire" on screen somehow. I know where, and have a good idea for the font. It is just a matter of making it. Animated flying asteroids. Satellite and mining ship on screen. Need to animate those somehow, maybe some blinkey lights, that sort of thing.

Once it is finished (probably tomorrow) I will post it as another youtube video.

Video

Here is the first demo video for Broken Empire. Hope you enjoy it!

http://www.youtube.com/watch?v=jDQZfWdsLko

Wednesday, August 12, 2009

Chat

Well, it isn't as elegant as I would have liked, but I am now able to pass messages between clients as a chat system. Currently the messages appear on the console, rather than on-screen, but that isn't a big deal. Easily taken care of! Also, I only have implemented zone-wide chat. No whispers or kingdom chat at this time.

The downside? I need an actual node path to get the chat manager to instantiate. I may be able to stash() it to keep it from showing up, but it still isn't what I was hoping would work.

I will have to ask a couple questions in the panda forums tomorrow, but I am happy with where it is at for the night.

Oh, btw: Did you notice I mentioned kingdom chat up there? That is going to be the grouping that corresponds to guilds or corps or whatever in other games. You will be able to establish private jump-nodes to other star systems. These will be 2 linked nodes, that cannot go anywhere else. The up side is that if you want to create a private area in the game, you can lock out other jump nodes, and just keep your own grouping of star systems that you and your friends share. Similar to bubbles in TradeWars, which is exactly the type of concept I was looking for here.

I also updated the flight controls so that the ship rotates slightly as you steer, so it doesn't look so fixed in space. As you pitch and yaw, the ship changes the pitch and heading to make the motion more realistic. Someday I will learn how the particle system works and then add side thrusters as well. The only thing I don't like about it right now is that if you release the steering button, it 'jerks' back to center, which can be a bit disorienting. I need to animate the transition back to center, hopefully with a simple lerp() function.

All in all, a good night.

Sunday, August 9, 2009

Checklist

I have posted the starts of a checklist of things to do. As people get a chance to try things out, I would hope that additional items would be put into the comments sections ongoing.

Saturday, August 8, 2009

Database (yay!)

The asteroid field is now contained inside a database. It reads into a list structure that works just like the old one, so the change is seamless. However, it will now be much easier to programmatically change the asteroid locations in the database.

Going back to the earlier checklist I made:


(/)Database (ugh) for persistence.
(X)Respawning asteroids.
( )Jump node between starting point and asteroid field.
( )Chat system.
( )Defining minerals and randomly populating the asteroids with resources.

( )Ship detail database storage
( ) 2d Overlay for ship controls

I will give a half mark for database. I now know what I have to do to manipulate it, but there are obviously more things that need to be done immediately (player persistance, for example). I also need to start saving and recalling ship details.

I guess a jump node would be a good next step, since it is mainly just causing the jump on a collision, rather than from a keypress. I also want to get a chat system in place, and work on the 2D overlay for the game controls.

Friday, August 7, 2009

Database (ugh)

I am in the process of learning database access in Python. It really isn't that bad, it just seems that my brain is opposed to absorbing the info.

The good news is that I have a database, and there is a table defined for all of the asteroids. I have info entered in for 2 of the asteroids, and my small test program is now able to read the field names from the table, read the fields, and put them into a 2 dimensional list. This is the same structure that the current CSV parsing function uses, so if I can build a DB access function to put the data into the same structure, I won't have to change anything else in the program to make it work.

The other good thing is that once I can read the DB in code, I will then make it so I can write the DB in code. At that point, it would be almost trivial to make a solar system editor that lets me drag and drop asteroids into the scene, and get them added to the database on the fly.

Work continues tomorrow...

Sunday, August 2, 2009

Weekend Progress

Slow, but got some done. Asteroids now respawn, and as a bonus, they no longer just sit there. Each client handles spinning the asteroids in space. The AI sends XYZ positional data, and the client puts an HPR (heading, pitch, rotation) spin on it, randomly generated for each asteroid. It definitely adds to the effect.

Still need the database, which is getting more pressing with each step, but will require a bit of research before I can implement it. Also, I want to get a chat system in place for communication between players. And, of course, all the other stuff I said in the last post.

I think I will load it all up to the server and check the outside connection tomorrow. If that goes well, I may let a couple people connect to it and see how little there actually is!