Welcome, Guest. Please login or register. Did you miss your activation email?

Author Topic: Ultimate Zombie Fighters  (Read 40343 times)

0 Members and 1 Guest are viewing this topic.

priomsrb

  • Newbie
  • *
  • Posts: 38
    • View Profile
Ultimate Zombie Fighters
« on: July 30, 2010, 10:08:32 pm »
Hi,

My friends and I have been working on a game for the last month. It's called Ultimate Zombie Fighters (uzf). It is an open source, cross-platform, 2d top-down zombie shooting game inspired by Call of Duty 5: Nazi Zombies.

The aim of the game is to survive as long as possible. The zombies will try to break the windows and try to get you. You will need to kill them and repair the windows to stay alive.

Screenshot:


We just released a 0.1 version which is kinda playable. You can get it from it's website: http://uzf.sf.net

There are executables for windows available, but for linux(tested) and mac(not tested) you will need to compile.

To compile from source you need:
cmake
SFML >= 1.5
Box2D >= 2.1 (I think)

Please try it out and let us know what you think.

=========================

Using SFML has been an awesome experience. Compared to SDL it has a much nicer syntax and accelerated rendering makes the game feel smooth. Big thanks to the developer for a great library.

Just one small gripe though: It seems from 1.5 to 1.6 the rendering is slightly more glitchy. You can see in the screenshots that there are some faint lines which are the borders of the zombie sprite. It's small but I hope that it improves in the next version of SFML.

Game Features on the SFML side:
- using sf::Views to simulate camera
- custom ImageManager to cache already loaded sf::Images
- custom code to implement tiling

The source code is available from the website so feel free to look around.

Thanks!

Hugo

  • Jr. Member
  • **
  • Posts: 60
    • View Profile
Ultimate Zombie Fighters
« Reply #1 on: July 31, 2010, 12:00:55 am »
I played it. But first, here's a tip, don't copy a commercial game directly, not because of copyright issues, but because of originality. If you made a few tweaks that made your game funner then wouldn't that be better than making a clone?

Anyway:
1. Easy install, might wanna use a more "common" compression method, specifically .zip
A lot of windows users don't know any better, dont make them download another program to get yours running(7zip)

2. Easy controls, just like COD

3. The camera's mouse integration(something I wanted in my own game) is great
So is the various weapon loading bars(rate of fire, ammo)
  that one is a very good idea.

4. Thought of adding particle effects?
    Why not vehicles?

5. Lastly, how much planning have you done? Cause professional games usually start off with a 10 page thing outlining all the aspects of the game, try doing this

   Good luck, *russian accent* I hope your game is downloaded many times, comrade.

priomsrb

  • Newbie
  • *
  • Posts: 38
    • View Profile
Ultimate Zombie Fighters
« Reply #2 on: July 31, 2010, 01:04:11 am »
Thanks a lot for your feedback.

You're right the game does take heavy inspiration from COD5. However we also have some ideas that are different. For example the ammo is more realistic: you lose entire clip while reloading. I think once we get more progress, more original ideas will start coming up.

Quote
If you made a few tweaks that made your game funner then wouldn't that be better than making a clone?

I agree. The purpose of the game is definately to be fun rather than a strict clone. Do you have any specific ideas in mind?

1. Yeah. After your comment, I've uploaded a zip version as well. However the zip file is 1.8Mb compared to the 1.1Mb .7z file. Hopefully this will convince more people to use 7zip. ;)

2. Yes box2D moves the objects smoothly and handles collisions nicely.

3. Thanks. The camera and weapon bars were actually inspired by the multiplayer game soldat.

4. Particle effects are planned. Vehicles are an interesting idea. Will need to think of a way to balance them though.

Quote
Lastly, how much planning have you done? Cause professional games usually start off with a 10 page thing outlining all the aspects of the game, try doing this

Haha. We're pretty unprofessional at this stage. We do most of our work in our free time and in between classes. In fact I'm starting to fall behind now ;)

There is no formal plan yet. We have a rough idea of what to do and I just keep a todo.txt file around where I check things off. Again once we start making more progress this might change. Things planned for future releases include:
 * Sound
 * Particles
 * Corpses
 * HUD effects
 * More weapon types
 * Camera effects
 * GUI
 * Multiplayer

Multiplayer is actually one of the main objectives. But it seems quite hard to do. I've looked at a few libraries it looks quite compicated. Once the single player is in a decent state I might start on that.

I noticed that you are also developing a similar game. How is your progress? I looked at some of your screenshots from your previous game and it looks quite nice. Hope it goes well.

It's really good to get some feedback from someone who has some knowledge in this genre. Thanks again for the advice. Hope your game is downloaded many times too ;)

TMKCodes

  • Newbie
  • *
  • Posts: 11
    • View Profile
Ultimate Zombie Fighters
« Reply #3 on: August 01, 2010, 03:16:33 am »
If your using SFML and looking for network library just use the sf::Network class for it and you might want to read bjee's guide to network programming. Not that complicated, but some problems might come like how to send a packet when your waiting for a packet. To get around this you either use threads or use selector and both are provided with SFML too.

Networking for like 4 players you can easily keep sending movement packets constantly. Like you could have packet "PMU1" (Player Move Up ID1) that's 4 bytes. Send it to the server and server broadcasts it to the 3 other players it becomes 12 bytes. If everyone moves constantly the most it would use is  4 bytes * 4 players  * to 3 players = 48 bytes, but this of course raises quite fast the more packets are sent per second.

Anyway looking nice. :) Survived 7 rounds with touchpad on my laptop ran out of bullets. More player sprites would be nice to have like with different weapons, seems bit idiotic to use a rifle when the sprite has a hand gun.

For the matter of 7zip quite many extractors support it and after this week i've never downloading zip from sourceforge anymore as all of them have been corrupted.

priomsrb

  • Newbie
  • *
  • Posts: 38
    • View Profile
Ultimate Zombie Fighters
« Reply #4 on: August 01, 2010, 09:32:03 pm »
I looked a little at sf::Network and some other low-level networking libraries recently. I think I might choose enet since it doesnt require threads and makes it easy to send reliable packets.

I've never done netowork programming before and so it seems really interesting and challenging. It's almost like a new way of thinking. However every time I think about it I get scared because of all the issues that can occur (high lag, cheating, synchronisation problems). Perhaps I should try to get a basic system working and worry about those later.

Have you made any networked apps before? Is it really as hard as I think it is?

Quote
Survived 7 rounds with touchpad on my laptop ran out of bullets

Wow must be hard on a touchpad. You can buy more ammo from where you bought your gun. I'm guessing you ran out of mp5 ammo ;)

Hugo

  • Jr. Member
  • **
  • Posts: 60
    • View Profile
Ultimate Zombie Fighters
« Reply #5 on: August 02, 2010, 08:44:15 pm »
My game is in a development standstill, but only because my compute or windows or sfml or code::blocks or explorer.exe or something on my computer didnt wanna co-opeate, so i stopped making the game in c++

BUT i have been planning a lot and i have a bunch of ideas, just nothing playable

And i ordered a few programming books to help get me started
 i think ill make a screensaver then a AI demo then ill start making my game, cuz im WAY in over my head, ive barely finished making the console apps. But whatever, the only thing i really need is the will to do it

And hers some more ideas for your game...
 in the main menu(when you make it), put sumthing cool in the background, like a AI battle, or conways game of life

zombies should have a LOT of variety, and a few special zombies that fire weapons randomly, cuz the guns are glued on to them for some reason, maybe fat zombies that can crush you?

add easter eggs

keep the game as small, fast, and efficient as possible

you should do a quick pong game to learn how to do multiplayer games

have teammates

have a scripting language for variables like.... AI reaction time, deafult health for player, speed of player turning

Thanks for replying

*UPDATE*
make your zombies have a dancing mode, so when thats activated they stop what thyre doing and dance
maybe f8 activates dancing?
dancing = spin around wildly

Hugo

  • Jr. Member
  • **
  • Posts: 60
    • View Profile
Ultimate Zombie Fighters
« Reply #6 on: August 02, 2010, 09:03:31 pm »
HAI!
I uploaded my game's graphics, use them well
also.... i used an obscure compression algorithm called balz
you need 7zip


It has backgrounds, and sprites
15.3 MB
.svg, .png, and .jpg files included
all the images are very high resolution, none of that 32X32 pixel crap

Here's he link:
it goes to uploading.com, i am an unregistered user

http://uploading.com/files/d8c4bab7/HAI%2521.20100802-125013.tar.balz/

I think i may wanna contribute to your project, if you need any more help just ask

Recruit0

  • Jr. Member
  • **
  • Posts: 66
    • View Profile
Ultimate Zombie Fighters
« Reply #7 on: August 03, 2010, 02:26:54 am »
Tried and failed building it on Fedora Linux.

Code: [Select]
./build.sh
-- Configuring done
-- Generating done
-- Build files have been written to: /home/recruit0/downloads/uzf-0.1-source/build
[  1%] Building CXX object src/CMakeFiles/uzf.dir/include/micropather.cpp.o
/cache/home/recruit0/downloads/uzf-0.1-source/src/include/micropather.cpp: In member function ‘unsigned int micropather::PathNodePool::Hash(void*)’:
/cache/home/recruit0/downloads/uzf-0.1-source/src/include/micropather.cpp:357: error: cast from ‘void*’ to ‘MP_UPTR’ loses precision
/cache/home/recruit0/downloads/uzf-0.1-source/src/include/micropather.cpp: In member function ‘void micropather::MicroPather::GoalReached(micropather::PathNode*, void*, void*, std::vector<void*, std::allocator<void*> >*)’:
/cache/home/recruit0/downloads/uzf-0.1-source/src/include/micropather.cpp:515: error: cast from ‘void*’ to ‘MP_UPTR’ loses precision
/cache/home/recruit0/downloads/uzf-0.1-source/src/include/micropather.cpp: In member function ‘int micropather::MicroPather::Solve(void*, void*, std::vector<void*, std::allocator<void*> >*, float*)’:
/cache/home/recruit0/downloads/uzf-0.1-source/src/include/micropather.cpp:703: error: cast from ‘micropather::PathNode*’ to ‘MP_UPTR’ loses precision
/cache/home/recruit0/downloads/uzf-0.1-source/src/include/micropather.cpp:703: error: cast from ‘micropather::PathNode*’ to ‘MP_UPTR’ loses precision
make[2]: *** [src/CMakeFiles/uzf.dir/include/micropather.cpp.o] Error 1
make[1]: *** [src/CMakeFiles/uzf.dir/all] Error 2
make: *** [all] Error 2

priomsrb

  • Newbie
  • *
  • Posts: 38
    • View Profile
Ultimate Zombie Fighters
« Reply #8 on: August 03, 2010, 10:17:23 pm »
Quote from: "Recruit0"
Tried and failed building it on Fedora Linux.


Ahh. You must be using 64-bit linux am I right? There was a small bug that I just noticed from your compile output. I just fixed it and uploaded a new source package. You can get it from here. Please test it out again to see if it works.

Thanks a lot for reporting the error. I wouldn't have realised it if you didn't report your problem.

priomsrb

  • Newbie
  • *
  • Posts: 38
    • View Profile
Ultimate Zombie Fighters
« Reply #9 on: August 03, 2010, 10:48:22 pm »
Quote from: "Hugo"
i think ill make a screensaver then a AI demo then ill start making my game, cuz im WAY in over my head, ive barely finished making the console apps. But whatever, the only thing i really need is the will to do it


I remember I had the same problem 5 years ago when I tried to make my first game in c++. I could make pretty complex games using game maker so I set my sights VERY high. I had features planned like skeletal animation, slow motion physics, advanced weapon systems etc. After 1 month of development I gave up. My code was getting really hard to modify and my game wasn't very playable.

As I started on working on more projects I started setting my aim lower and lower. Eventually as my aims decreased, and my skills increased I was able to start making more complete projects.


My advice is to set your aim low for now. I know that when you are thinking of ideas it is easy to start getting wild and excited. Focus on doing the easiest parts (eg a character moving on screen) first. This will give you more encouragement and a better judgement of how far you can go.

There are many people out there with little experience who want to make the greatest MMORPG of all time. However they never end up producing anything. With experience you get a better understanding of what you are capable of. In fact I now realize that I still wouldn't be able to make that first game I started even after all the experience I gained after it.

Quote from: "Hugo"
I think i may wanna contribute to your project, if you need any more help just ask


We keep our latest source code and data in a git repository:http://sourceforge.net/projects/uzf/develop. At the moment our team is small but sufficient. My friend and I are doing coding and the artwork together.

However our game is designed to be easily modified (weapons, enemies, maps), so it will be easy to make your own mods and stuff for it.

Hugo

  • Jr. Member
  • **
  • Posts: 60
    • View Profile
Ultimate Zombie Fighters
« Reply #10 on: August 04, 2010, 12:25:36 am »
Okay thanx for the advice, i too can make very complex games with game maker, but with C++, its just so big, well better start my screensavers now

And did u get the graphics package?

Oh and....
does using box2d for the collisions make the game slower by adding all the box 2d stuff? is it worth it?

P.S.
The .exe runs fine with Wine on ubuntu x64

priomsrb

  • Newbie
  • *
  • Posts: 38
    • View Profile
Ultimate Zombie Fighters
« Reply #11 on: August 04, 2010, 03:48:43 am »
Yeah I did get the graphics package. It's got some nice sprites and textures. For the moment though, we might use some in-house graphics to keep consistency. If we do use some parts of it, I'll let you know. Thanks for uploading that.

I chose Box2D because it meant I didn't have to write my own collision system. Also it gives you rigid body physics allowing the game to feel more realisitc.

Box2D is designed for games so while there is some overhead, on modern computers it is barely noticable. The pathfinding is not very effecient at the moment at that is probably the biggest culprit at the moment. Even then the game only uses up ~15% CPU here.

Quote
The .exe runs fine with Wine on ubuntu x64

Ok that's good to know. It runs fine here on 32bit wine as well.

Hugo

  • Jr. Member
  • **
  • Posts: 60
    • View Profile
Ultimate Zombie Fighters
« Reply #12 on: August 04, 2010, 05:13:39 am »
Good to know, you should start working on the credits screen, put my name in if u use anything

And fi the pathfinding... i think i can help you with that, and the whole AI thing for that matter, specifically ill send you a few files that i may or may not have the rights for(I may or may not have typed that)

And can you explain how box2d works, or how you use it? Does it make and index(or vector or list) of physics objects and every step it checks for collisions? How do you register the physics objects? Do they inherit from box2d::physics objects? Thanks for the help

Lastly
What kind of specs does your slowest testing machine have? Cuz its very important to remember that some people still run very old&slow cmputers
   I made my best and last game maker game on a 2004 machine, and Im sure that its the most efficient game maker game ever.....
I also made it so it looked pretty on newer machines by:
  1.using animations instead of particles for explosions(via a setting)
  2. using a special sprite(image with all the variables needed for moving images) to tile(image without vars for moving, a static image), thus saving resources
  Im not sure how to make this work with sfml, maybe you could somehow strip sfml::sprite so only x and y are inherited
call it sfml::miniSprite
   This may be going too far, unless you are gonna have thousands of ponds of blood onscreen that stay there reminding you of where and how you fought
And if the FPS goes too low just delete half the blood
to see first hand, go here:
http://www.yoyogames.com/games/70936-zombie-wars-2
click on download game, not Play Now(you need a plugin for this)
This game also runs fine in ubuntu 64

Hugo

  • Jr. Member
  • **
  • Posts: 60
    • View Profile
Ultimate Zombie Fighters
« Reply #13 on: August 07, 2010, 05:20:51 am »
Make zombies weaker(less damage to wall) when health is low

WitchD0ctor

  • Full Member
  • ***
  • Posts: 100
    • View Profile
    • http://www.teleforce-blogspot.com
Ultimate Zombie Fighters
« Reply #14 on: August 07, 2010, 08:23:56 pm »
I see your using micropather for a*, how is that? Was it easy to get working correctly?
John Carmack can Divide by zer0.

 

anything