Your browser (Internet Explorer 6) is out of date. It has known security flaws and may not display all features of this and other websites. Learn how to update your browser.

Last post and summary

Gradshow is now over and so is the course ‘specialization project’. There have been lots of work and I’m very happy with the results even though I’m not really happy with the final delivery. There’s still much to do and also some tweaking and fixing with the current version.

I will continue working with ZebNet and probably release it under LGPL to let people use it freely for their projects to help me improve the library. But first I will dedicate some time to clean the code and finish all started features.

Also, the deliveries for MS3 and MS4 can be found in the link section. They only contain the windows version (which sadly doesn’t work as well as the linux version).

Big thanks to helpful classmates, teachers, Glenn Fiedlers awesome articles and also NorgnaNet for some invaluable experience.

/ Seb

Last week! Crunch time!

That’s right, only one week left and still much to do. I have also found some bugs that I don’t have the time for, but hopefully they will be solved no later than today.

Since the deadline is next week and I still have to much to do, I have decided to cut down on the features in my library. I have decided to not implement traffic prioritization even though ZebNet collects all the data needed for the component. All my focus from now on will be lag management. Hopefully I will be done with something interesting to show on gradshow when it comes to the lag part.

I have also updated my project plan to something more suitable for the projects current situation.

/ Seb

ZebNet Foundation + ZebNet Demo Release

This is it for the foundation. It works very well together with the demo I made and have decided to not touch the foundation anymore. Though I will not ignore any critical bugs that may be found. Downloads can be found below:

(Note that linux users need to compile and install latest version of sfml 2.0)

From now on I have to focus on parts that should have been done ages ago. I have a design plan though on my 2 remaining components and it shouldn’t be too much of a challenge when I have implemented RTT info for my packets. With RTT I will probably take some spare time and implement that basic flow control that was supposed to be implemented weeks ago. In current state the server gets overflowed since I send over 30 packets/second per client.

/ Seb

Whats happening? (short update)

I will make a more proper post soon, I just want to make a short update that I’m alive and are working hard with ZebNet. The foundation is ‘done’ for sure, at least for now. Next week will be pure lag management development. Right now I’m working a little with my demo that seems to work fine atm. I planned to make a ‘real’ demo in Nebula or something else, but the time isn’t enough so I decided to stick with my super simple demo and upgrade it instead. Also, 2D will probably be the easiest way to present the final results.

/ Seb

Milestone 2

Milestone 2 is added to the links.

I’m currently putting ZebNet to a more suitable demo project. During this process I found the project to run slow. I used Visual Studios profiling and found that I had a function that did a really good job hogging the CPU. This must be fixed at once. I have another solution in mind, we’ll see if that makes a difference or not. Much lately I have been working on how to make ZebNet as user friendly as possible. I don’t know when I will continue in my schedule yet, I want the foundation of ZebNet to work properly before I continue with anything else. The demo will be submitted when it’s working.

/ Seb

Short update before milestone 2

Milestone 2 is soon here and I’m currently little off schedule. It’s no crisis, it just means less time with the lag compensation. I still have 4 weeks of development left after this milestone and It would probably be enough to create what I had in mind.

Anyway, I’m currently testing things and I will probably have reliability by tomorrow and ZebNet implemented to the demo by Monday, which is the milestone 2 deadline. The flow control should be in place by then too, but it is not to be counted.

I can confirm that the project works well in both Linux (Ubuntu) and Windows (7) in it’s current state and it should also work on the OS X. I will not make any tests on OS X since it would take too much time to test all 3 operative systems.

That’s it for now, next post will be more interesting. I will release a movie on the results and maybe even put up public executables. Look forward to it.


2 Weeks of development!

It has already passed 3 weeks since the start of the project and 2 weeks since the start of development. What’s new with ZebNet? What can it do in it’s current state? Well the most new since last is better framework structure and connection management. I have started on packet handling and reliable data transfer and will also later this week implement a simple flow control. When this is done I can finally start with my real purpose which is lag management. Have also researched some more in the subject and found out more about game protocols and valves lag compensation and protocol. Some interesting links:

Also I created a simple UDP chat (yes, with no reliability) to test the connection management in a simple and easy way. I will not publish anything runnable yet, since it’s not that interesting atm.

Now for something more interesting. Design decisions for ZebNet. Most of my decision has been made in inspiration of Glenn Fiedlers networking for game programmers. I really recommend to read his articles, they can be found here: He is talking much about pros and cons with UDP vs TCP and so on. In an action game prespective, UDP is the way to go. At first I thought, why not a combination of UDP and TCP. This paper explains why this may not be the best approach So I decided to use UDP and implement my own reliability and flow control that fits my needs. Since I’m not at the state where I’m implementing prediction and lag compensation yet, I will save that explanation for a later post. One more thing that isn’t really a design decision, but it was an important one, and that was the decision to use boost and asio. First of all, it’s cross platform. That’s nice. Not only that it gave me cross platform it probably saved me a lot of time too. It really gave me the boost I needed. I’ll explain more in a future post, now it’s time to go back to work.


Short Update

Almost a week of development has passed, what’s the status? Well, I’m almost done with the base structure and to summarize the current status:

Done so far:

  • Demo: Simple 2D platformer with physics
  • Basic Client that can send and receive
  • Basic Server that can handle clients in parallel (ofc send and receive functionality)
  • Lots of researching and reading documentation.

What’s next:

  • Connect ZebNet and Demo project
  • Connection management / Reliability
  • Flow Control

Since I’m little busy with completing the first part of ZebNet right now I will return later with the post containing my design and decisions for ZebNet. I will also make the demo open for public when that happens.

/ Seb

Development Started!

After lots of planning and researching it’s finally time to start the development. I’m quite satisfied with the research and planning phase to be honest. To be straight and honest, I’m a huge time optimist. The planning is probably very optimistic, but hopefully will my stubbornness make it in time anyway(don’t worry, I have a plan B also). I have added the first milestone public (you can find it in the right menu) and it contains the project plan, a new schedule (found in the schedule page also), a rough system design and a research document. If you are interested in game networking, I recommend to take a look at my research document, there are some very interesting articles that I do recommend.

Except planning and such, I have set up some of my develop environment. Boost 1.48 library has been installed, compiled and tested. Ready to create a basic server and a client with Asio.

In a close future I will make a new post and make a short description of my design and decisions.

/ Seb


Added a raw schedule for the project, you can find it in the menu above. The schedule is incomplete since I don’t know what parts the project will consist of yet.

/ Seb