Wieloosobowa gra czasu rzeczywistego – dowolna gra w którą da się grać w więcej niż dwie osoby. Przykłady gier na których można się wzorować:
jump 'n bump,
dyna blaster,
asteroids.
"Zręcznościowa" gra karciana / planszowa w której wiele osób naraz może wykonać ruch – np. dobble, jungle speed.
Quiz / gra państwa-miasta premiująca czas i unikalność odpowiedzi – gra po odpowiedzi od połowy graczy (lub upłynięciu czasu) generuje nowe pytanie. Przy nowym pytaniu serwer na podstawie poprawności, czasu odpowiedzi i odpowiedzi innych graczy przyznaje punkty i pokazuje odpowiedzi. Gracz może dołączyć w dowolnej chwili do gry.
Kahoot – serwer do którego można połączyć się w celu stworzenia quizu (na końcu tworzenia quizu otrzymuje się kod) lub z kodem, w celu wzięcia udziału w quizie. Serwer obsługuje wiele quizów naraz. Twórca po przygotowaniu i wystartowaniu quizu widzi na bieżąco jakie odpowiedzi udzielają uczestnicy. Uczestnicy widzą przynajmniej wzajemną punktację. Czas na pytanie kończy się po udzieleniu odpowiedzi przez 2/3 graczy, chyba że wcześniej minie limit czasu na pytanie.
Wisielec – gracze razem odgadują litery kolejnych haseł – kto pierwszy ten lepszy, ale każdy gracz ma osobnego wisielca. Gracze widzą swoje wisielce nawzajem. Wszyscy widzą te same odsłonięte litery właśnie odgadywanego hasła. Za odgadniętą literę gracz dostaje punkt. Gra kończy się gdy zostanie jeden aktywny gracz.
Układanie słów – serwer co rundę losuje określoną ilość liter i przesyła je graczom. Gracze wysyłają do serwera kolejne słowa dające się ułożyć z podanych liter. Gracz który podał jako pierwszy konkretne słowo dostaje punkty. Za słowo które nie daje się ułożyć z liter gracz traci punkty. Po określonym czasie serwer rozpoczyna następną rundę. Gracze widzą na bieżąco ranking z ilością punktów i dotychczas ułożone słowa.
Sieciowa gra turowa – dowolna gra turowa zmodyfikowana o to, że zamiast jednego gracza ruchy ma podejmować grupa graczy głosując na najlepszy ruch.
Grupowy edytor grafiki wektorowej – serwer i klient programu, który pozwoli kilku osobom naraz pracować nad grafiką wektorową. Współbieżne operacje na tym samym obiekcie (np. zmiana rozmiaru i zmiana koloru) mają być sensownie obsłużone.
Radio internetowe – serwer ma kolejkę plików dźwiękowych, które kolejno strumieniuje do wszystkich podłączonych klientów. Klienci mogą wgrywać na serwer nowe pliki, widzą bieżący stan kolejki i mogą wykonywać dowolne operacje na niej, mogą też zlecić przeskoczenie do następnego pliku z kolejki.
Ciągła synchronizacja katalogów – program który dba o to, by zawartość katalogu (rekurencyjnie) u wszystkich klientów była taka sama. Zmiany są wykrywane natychmiastowo. Współbieżne zmiany są wykrywane i właściwie obsłużone. W tym projekcie można nie robić GUI.
Job scheduler – prosty system kolejkowy: w serwerze rejestrują się węzły obliczeniowe, do serwera klienci wysyłają zadania do wykonania na węzłach (por.
job scheduler,
slurm). Tutaj trzeba napisać serwer, klienta będącego węzłem i klienta będącego zlecającym zadanie. W tym projekcie można nie robić GUI.
Reliable UDP multicast – biblioteka / protokół do realizacji niezawodnego przesyłania danych z użyciem UDP multicastu i użycie jej do budowy przykładowego programu (np. wysyłanie pliku). W tym projekcie można nie robić GUI.
Publish–subscribe message queue. Tutaj trzeba napisać trzy składniki – message broker (serwer),
współdzieloną bibliotekę klienta i demonstracyjny program używający tej biblioteki. Klient może tworzyć kolejki, wysyłać do nich wiadomości i zapisywać się do odbioru wiadomości z kolejki. Kolejki wspierają wielu konsumentów, wiadomości mają określony czas ważności (por.
message queue). W tym projekcie można nie robić GUI.
HTTP(S) caching proxy – proxy serwujące najczęściej pobierane strony z własnej pamięci (przykład programu –
squid). Proxy ma redukować ruch (obsługa etag, if-modified-since, współbieżne żądania o tą samą stronę generują jedno zapytanie). W tym projekcie należy napisać tylko serwer i można nie robić GUI.
Inny projekt, uzgodniony z prowadzącym.