• Welcome to Randomland - The Forum. Please login or sign up.
 
May 03, 2024, 02:54 AM

News:

Get Out, See Green!


Flash/C++ Game Project

Started by Brad, Dec 18, 2009, 04:22 PM

Previous topic - Next topic

Nick

Using a library does not make you project GPL I don't think unless you modify the library.... I could be wrong though. That might only be the lgpl.

Brad

That's the LGPL. If you use ANY code including just as "black box" library then your whole project has to be GPL.

LGPL is the sane version where you can use LGPL libraries without having to put the entire project under the GPL. There are much better open-source software licenses than the GPL and I'll probably be releasing this code using one of those.

Anyway, I'm having some major problems getting Fedora to work right and the install image is 3GB! So I installed Ubuntu instead. The install image for that was only 600MB.

Nick

Fedora can be kinda a beast I guess. The install off the live CD is much smaller, kinda like ubuntu. But the full fedora install has many more tools and packages preinstalled and setup. With ubuntu you will have to add them as you need them. Buts that's probably better for you as your just using it for development and not expecting eclips, open office and gimp all there and ready to go (thats about a gig and a half there. I could be wrong about them being default in fedora. OO is, but I might just get eclipse because I always select all the dev packages.) And ubuntu has a better setup for VNC in my opinion. You can easily get a graphical system login screen through VNC that supports logging off and serving a fresh login to any new connections to the server. I rather like that.   

But anyways, cool. Linux is good. You should duel boot something around there. Seems almost everything I have has at least a little linux in it (even our router and soon perhaps my RC car.) And a linux server for your game means that there can be a server up all the time on randomland. I don't plan on killing my bedroom server anytime soon.

Brad

Got Linux working and finished porting that socket class over. I'm going to have to rewrite part of it though as it was written kinda of stupidly (In my opinion anyway).

The server will basically have on thread which listens for new connections. When it finds one it will create a new Client class (which holds the socket connecting to that client as well as a pointer to the Player class) and add it to the list of clients. It then goes back to listening for more connections.

The main program runs in a loop and every time through loop it receives all the messages from clients, processes them and sends back any responses.

Still working on the protocol for communication between client and server. I'm thinking it's going to be basically a command  followed by a delimited list of data and ended with a null. For example "Move;1;n\0" would be a command to move player 1's character north. Or something like that anyway.

Brad

Got my little test server working in both Linux and Windows now (including the threading!)

I'm working on incorporating it into my game code which shouldn't take long. Then I'll start writing the network API.

Nick

Dang, you move fast. And "Cool."

Brad

Basic network communication completed. I've started working on my text-based client too.

So far I have the client connecting to the server and sending a HELLO packet identifying itself with a user agent string. The server then sends it's own HELLO packet back identifying itself with a user agent string as well.

Now I'm working on getting the threading going for the text client so that it can listen for incoming server packets while waiting for user input. I've started writing up the documentation for the network communication and will post it to randomland or something when I'm through with the basic parts.

Brad

It's been a while so I though I'd post an update on my progress for the zero people who care.

Player and character data is now saved in an SQLite database on the server rather than flat XML files. This has the benefit of being able to easily check for naming collisions between characters as well as allow quicker updates while the game is actually running. All the settings files and map, enemy and item data are still stored in XML files though. I plan to keep it that way.

I've gotten the network communication for the player part completed. You can now login, or create a new player from the text-client. I'm currently working on the character part. This will be my first test of sending "large" amounts of data with my packet and socket classes.

zourtney

Hey, at least zero-point-one people care, because I care. And it's kind of sad not having the random "Brad's game design interlude" in the middle of my day. But that's not your problem.

The goings sound good. Keep up the coolness and let me know if I can do anything. You could post screen-shots of stuff, too. Are you going to make a Randomlandy page?

Nick

Sorry, I have been distracting him from game design during lunch with cooperative half life 2. :) Perhaps we can do a conference call. Or you could join us and just turn voice chat on. But not likely.

zourtney

That could be cool, but porbabaly shouldn't happen. Apparently we have really low bandwidth. The word in the hall is that we are running off of a 1 megabit (down) satellite line. Ick. Plus, I don't quite have the same type of position where I get to control the firewall and everything. Bummer.

Nick

No need to unless you are running the game server. But satellite sucks for up speeds. So you might not enjoy it due to slowness. 

zourtney

Oh noes! We might be off topic!

Nick


zourtney