Skip to main content
GameDev.net gamedev.net
🔒 Locked

Cross-platform OpenGL and SDL based multiplayer FPS project

Started by jmakitalo Dec 22, 2011 at 8:13 PM 6 replies 2.3k views
Original Post
jmakitalo
jmakitalo
This image represents the state of a multiplayer first person shoot-em up project I started a year back from scratch. The game is now fully playable; a player can connect to a server and engage in team based deathmatch. You can see the players holding realistically modeled assault rifles with iron sights that can be used for accurate aiming. There is no heads-up-display nor a cross-hair and the game generally aims towards realistic feel. You can also see a fully animated player model and a terrain based environment with collideable objects such as houses, boxes, trees and so on.

I have done OpenGL and generally game programming for over 8 years now. After starting with OpenGL, I had many ambitious engine projects, which basically crumbled into their own complexity. A year back, I felt an urge of finally composing a 3D engine and a game that would actually be playable, even if making sacrifices in terms of quality and overall features. You can only do so much in a finite amount of time, so "keep it simple stupid" was the strict guideline I took.

This is also my first attempt of making a network game. So far most important network related stuff is working and the most difficult part in networking was to implement reliable packet handling over UDP, which seems to work well now. I still need to improve object interpolation/extrapolation schemes and communication in special cases, such as ones involving NAT.

As for the game itself, it will be a realism based network FPS, very common genre indeed, but the realism will be more like in America's Army rather than Counter-Strike. At the moment, the gameplay is team deathmatch, but there are plans to add more objective based twists. It is also planned that detailed statistics and a ranking system would be implemented and maintained in a master server, allowing players to compete over longer time scales. One thing to stress is that this project is specifically designed for Linux based systems. The programming takes place under Ubuntu Linux, although it is also being compiled for Windows. Basically all development tools used are free software available for Linux.

The project still has no actual name, but nevertheless it can be found from www.perilouspenguin.com/glfps where updates on project development are frequently reported.

Click here to view the iotd
Kimmi
Kimmi
Looks good. Have you used any other middleware?
A complicate solution may indicate a not understood problem.


[twitter]KimKulling[/twitter]
jmakitalo
jmakitalo
[color=#1C2837][size=2]Looks good. Have you used any other middleware?[/quote]

Most things, such as texture loading, sounds and low-level networking are done via SDL. md5 mesh and animation handling is implemented in the engine. A blender plug-in for md5 exporting is being used.

The project has only few dependencies, all of which are cross-platform. This makes it easier to compile for different OS and also improves the long-term usability of the code. The code compilation is also maintained in an old fashioned way by a single makefile so that the project is not tightly bound to a specific compiler/IDE.
Pilo
Pilo
I'm downloading it right now (it seems cool!)
blakedev
blakedev
Great work although for realism's sake the rifle doesn't seem to be that accurate. I like how the grenade can actually hurt you from a realistic distance (instead of typical games where you pretty much have to stand on a grenade for it to harm you).
An issue I ran into while playing was that the terrain was invisible in some places but the grass was still rendered.
th_glfps.png
jmakitalo
jmakitalo
blakedev:
I think the rifle is in the current not-yet-released version more accurate, but the parameters really need some careful adjustment by trial and error to get them just right. Also finite flight velocity and effect of gravity might be added at some point. I also personally think that in most games grenades are too inefficient and thus almost never used (in Day of Defeat and America's army they are ok).

At some point there were issues with frustum culling, which the picture you uploaded seems to display. I though I solved them, but thanks for pointing it out. Did this happen by any chance after going to edit-mode and back?

I also noticed from your picture that you had only 30 fps. I think that after a recent improvement it could be significantly higher. I'll try to release a new version in a few weeks.
blakedev
blakedev
I'm not to sure if I was in the edit mode but I can try running it again and see. As for the fps, I believe that I had a constant fps of 30.
alexcg
alexcg
A blender plug-in for md5 exporting is being used.[/quote]
Are the game levels also modeled in Blender and exported to md5?

By the way, in the 'Tools Used' section you mentioned the Emacs editor. I'm just wondering, which non-default features of Emacs do you use? Do you use any kind of autocompletion?

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.