First person mode, new gameplay, and much more...

Published September 21, 2009
Advertisement
Hey guys, I'm very happy with some of the stuff I've come up with in the last week or so. As usual I'd appreciate any feedback / etc.

I've added the option for players to exit their warbots and play the game on foot with a machine gun...the catch is that the players have a communication device that they can use to give remote orders back to their vehicle. Scenario 1) A group of about 50 baddies is standing in your way, you can now jump out of your vehicle, start putting bullets into the crowd and order your robot to smash through them & surround them at the same time. Ragdoll physics, and destruction ensue. It's really awesome to see, I'm itching to put some videos of this out there :-D :-D

Until then - you'll have to survive on gratuitous amounts of barely compressed un-thumbnailed resized 1680x1050 screenshots 8-) Another thing I'm very proud of is achiving 40-70 FPS in my game @ the highest settings. You can barely see the FPS readings in the bottom left of each screenshot.



If you have a 56k connection still...you might want to close the webpage now...

Okey for the rest of you who are still here .. this is a list of the major things I've added into the game since the last journal update -

- First person gameplay / control mode.
- Robust soldier imposter rendering system.
- Replaced the soldier's dorky lasers with machine guns [ weapons go flying out of their hands when people get ragdoll'd ]
- Added 'Proving Grounds' map
- Dense grass rendering
- Fixed physics 'hopping' issues that people were experiencing.
- 'Curved' road rendering, by using a alpha/(min/max) hack.
- Fixed mirrored mini-map...blah blah blah...
- I'll post the huuuge list of things at the bottom of the entry.


The Proving Grounds

This is the level I've created to help test various aspects of the game...from physics, to rendering, to tweaking the weapon recoil on the gun range. This is also the 'Training level' in the game where players can learn the controls without getting pwned.

I modeled it after the U.S government's tank testing facility in Yuma.



The real facility again...


First Person view & gameplay
The players can now dismount from their vehicle and do work seperatly. Some of the orders the players can give their vehicles include - move to location, come pick me up, attack x, defend x, follow me...things like that. *Insert night rider hasselhoff joke here plz*

This is probably one of the coolest things I've ever done lol. I'm really excited about the gameplay potential/etc...especially since there are up to 1000 soldiers per world [ down from 6000 in the last BETA release ], and 64 vehicles/human-players in each multiplayer server.

I will divulge more details, and post many videos in the coming days :-D Then I'll be including this stuff in the next free public BETA release. If you haven't downloaded the last one, get it from the Warbots homepage!

I animated the 1st person view models so he removes his hand from the SMG's foregrip before pulling out the com device.

Without further...on to the good stuff...screenshots of the com device in a few different lighting situations [ it is animated, videos soon ]





*PS I'll be reworking some aspects of the hand/com device models so they look a little better... programmers art :->


Human Imposter System
Yup, just a standard imposter system...really helps improve the frame-rates by rendering distant soldiers as billboards :-D If anybody has any questions about this stuff I'd be glad to answer them.

These images just show the imposter texture overlayed on the scene, and the imposter triangles visualized.




First Person Gun Model Design / Features
This is a screenshot from Milkshape3D showing how I setup the first person gun model.


It is fully animated in the game, and the controls are as tight as any first person game I've played. [ I've been playing Crysis for a hour or two every few days so that's probably what I'm most influenced by lol ].

This is a list of a few of the features I can remember off the top of my head that I've coded into the game for this first person mode to work...
Quote:
-Unique/smooth, programmatically generated gun sway effects for walk/run/crouch
-Recoil
-Muzzle flash
-Delayed rotation when looking around
-Iron sights
-Character controller [ Havok physics ]
-Seperating the head/body to allow correct self shadows in the 1st person view
-Gun rotates towards ground when running
-Crouching / Jumping
-Correct tracer bullet origins
-Shell casings
-New gun sounds for 1st person mode
-Footstep sounds
-Aiming / Breathing
On..
and ...
On


Aaaand now for the promised splattering of recent screenshots... :-D
Iron sights...





More screens of the proving grounds test level... [ will be included in the next BETA release ]







A couple screens from the Beach Assault map...




As promised here is the list of items completed since the last PUBLIC beta release...#2 is coming soon!!

Quote:COMPLETED (*in no particular order)
--------------------------------------
- Multiplayer is mostly functional.
- Fixed side-by-side/missing .dll errors causing the game not start on some systems.
- Physics 'hopping' issues fixed [ adjusted handling of the min physics framerate ]
- User's settings saved @ QUIT of game. [ Not on apply of options, to prevent bad settings from being saved ].
- 'Beach Assault' map added.
- New texture LOD/Caching system, reduced memory usage by 50%. [ on LOWEST SETTINGS - main menu now only requires 256MB memory, in-game requires 512MB memory ]
- 'R' key resets the player's vehicle orientation.
- Complete rewrite of water rendering system.
- Vehicle orientation is reset @ respawn.
- 'Siege Escort' map added.
- Nuclear explosion added for finale of Siege escort map.
- Node path generation algorithm [ cave scene, siege machine ].
- Fixed crash in Havok [ now check for degenerate triangles in static scene meshes ]
- Smoke emitters reset @ map change [ no more hovering smoke ].
- Make sun not look like a 'glowing ball'.
- vehicle and weapon selection/construction screen added.
- Fix mini-map mirrored.
- Multiplayer global lobby artwork.
- Added rendering support for 'solid' road types, such as asphault.
- Adjusted specularity and aspects of lighting equation.
- New soldier model created.
- Terrain now casts shadows.
- Siege machine, pillbox, battlement models created.
- Environment objects cast self shadows.
- DirectX Debug Runtimes -> fixed GPU VB stride mismatch, heap corruption, and unsupported mipmap D3D errors [ speed increase ]
- 'Proving Grounds' map added.
- Multiplayer collision detection vehicle->vehicle.
- Added collision detection (projectiles->aircraft).
- Added collision detection (projectiles->buildings).
- Added collision detection (projectiles->respawn bunkers).
- Replaced humans' dorky lasers, with machine guns.
- Created new XACT RPC for human sound effects [ death voice, human gun, etc. ], sound less repetative now, with accurate volume falloff.
- Fixed rockets not colliding/hitting robots.
- Humans drop their weapon when turned into a ragdoll.



- Dan
0 likes 14 comments

Comments

Jason Z
Hey Dan,

Things are looking good as usual. I would be really interested in hearing how you do your imposter system. How do you update the imposter texture? Or is it static and the state of the model is used to pick the appropriate imposter texture location?

I am also interested in how you organize your renderer/material system. Your screen shots always impress, and I'd love to hear how you get the results that you do. Do you have a flexible system for tuning or is everything very specialized and hand coded?

Keep up the great work!
September 21, 2009 05:46 PM
dgreen02
Quote:Original post by Jason Z
Hey Dan,

Things are looking good as usual. I would be really interested in hearing how you do your imposter system. How do you update the imposter texture? Or is it static and the state of the model is used to pick the appropriate imposter texture location?

I am also interested in how you organize your renderer/material system. Your screen shots always impress, and I'd love to hear how you get the results that you do. Do you have a flexible system for tuning or is everything very specialized and hand coded?

Keep up the great work!



Hey Jason,

Thanks...I just moved my imposter rendering system from a 'uniform static' imposter system where every imposter was identical, to a system where there is a unique real-time 32x32 imposter for each of the 1000 [ 1024 limit per each texture atlas ] humans in the game world. I read a great article on gamasutra a few years ago and I've based all my imposter rendering systems off this article [ http://www.gamasutra.com/view/feature/2501/dynamic_2d_imposters_a_simple_.php?page=2 ].

The imposters are lazily updated, at worst case, every X seconds/milliseconds [ 3-6 seconds ], or if the angle between the view camera->imposter changes too much, or if the imposter objects's state changes. I also do the rendering abit differently than that article, I'm not sure why he does all this fancy calculation of a perspective projection matrix when since the world space AABB of the object is known you can easily create an ortho matrix that will look much better and removes the need for his complex/shaky FOV calculations for the imposter's render-to-texture.

Hope that gave you some details, if you want more info about my system just ask, but it's basically working the way that gamasutra article describes.

As far as the rendering system goes, thanks for the comment ;-) I do have a lot of hand written shaders I like to tune each object type by hand...but I also have a generalized rendering system that works like a charm. I'd imagine like most game engines, I also have a lot of hand tuned values in the graphics pipeline...I'm still tweaking them to get good results in extreme times of day [ dusk/dawn ].

I don't hand code everything though, for most simple objects I just use my standard material/model rendering code. This game works on a system of 'parts', so if I wanted to display a random mesh in the center of my game world I would just add it to the global parts bank [ which automatically handles caching/loading of textures etc. ] and then init a temp robot, attach the part to the robot...and render.

Hope I could answer your questions.

- Dan
September 21, 2009 07:37 PM
Jason Z
Thanks for the info - I'll check out that link for the gamasutra article. I always found this type of rendering system interesting - lots and lots of entities floating around, but really just using billboards to render them all. Like I said before, it looks good!

Your object system for warbots sounds a bunch like my current system for making it easy to throw objects into a scene. So do you use scripting for your scene creation, or do you use native code to generate everything? Since I switched to using Lua for scene generation I have been a happy man :)

Anyways, thanks for the comments - its always interesting to hear how someone else is doing cool stuff [grin]
September 21, 2009 09:52 PM
dgreen02
Quote:Original post by Jason Z
Thanks for the info - I'll check out that link for the gamasutra article. I always found this type of rendering system interesting - lots and lots of entities floating around, but really just using billboards to render them all. Like I said before, it looks good!

Your object system for warbots sounds a bunch like my current system for making it easy to throw objects into a scene. So do you use scripting for your scene creation, or do you use native code to generate everything? Since I switched to using Lua for scene generation I have been a happy man :)

Anyways, thanks for the comments - its always interesting to hear how someone else is doing cool stuff [grin]


Ah, one other thing about that article...he doesn't seem to take into account screen space vertices that are off the screen in his algorithms, this causes some imposters to blow up and cover the screen.

I've implemented Lua into the game for scripting purposes, but honestly more often than not it's sort of counter productive for me...and so I've basically ditched my Lua setup and went back to just making everything essentially code driven.
September 21, 2009 10:18 PM
moose517
hey i wasn't sure if you took the first beta offline or what, when i launch the game it loads to 100% then crashes back to desktop

specs:
intel T8100 2.1ghz mobile CPU
nvidia 9500m GS with 512mb ram
4gb system RAM
vista 64
September 21, 2009 10:57 PM
dgreen02
Quote:Original post by moose517
hey i wasn't sure if you took the first beta offline or what, when i launch the game it loads to 100% then crashes back to desktop

specs:
intel T8100 2.1ghz mobile CPU
nvidia 9500m GS with 512mb ram
4gb system RAM
vista 64


Hmmmm....well can you paste the log file here, or email it to me please? I've got one other report of this happeneing [ but that guy's computer just crashed totally ::roll:: it was a laptop ] so I'd be curious to find out what could cause it.

The log file is located in data\logfiles\xxxx_.txt

Can you please .zip that directory up, or paste the log here...you could probably just scroll to the bottom of the log [or search log for the word 'error', as well ] to see what the issue is.

Thanks.

- Dan
September 21, 2009 11:26 PM
juanmanuelsanchez
you need to improve the texturing and positioning of the body & gun, since they are really close to the players view you will need to increase the detail.

September 23, 2009 04:17 AM
dgreen02
Quote:Original post by juanmanuelsanchez
you need to improve the texturing and positioning of the body & gun, since they are really close to the players view you will need to increase the detail.


Yea, I put this in there...I guess it got lost in the sea of screenshots :-o

Quote:*PS I'll be reworking some aspects of the hand/com device models so they look a little better... programmers art :->



Ahhhh so much work....I should probably contract the first person art out...the gun was made by one of my artists but I did the hands using the 1024^2 texture from the soldier's world model.

I've already put in a quote request for a range of high quality soldier models, up to 20,000 triangles and 4096^2 textures.
September 23, 2009 10:07 AM
Matias Goldberg
Quote:Original post by dgreen02
Ah, one other thing about that article...he doesn't seem to take into account screen space vertices that are off the screen in his algorithms, this causes some imposters to blow up and cover the screen.


Try disabling D3DRS_CLIPPING when rendering those imposters.

Cheers
Dark Sylinc
September 26, 2009 12:14 AM
dgreen02
Quote:Original post by Matias Goldberg
Quote:Original post by dgreen02
Ah, one other thing about that article...he doesn't seem to take into account screen space vertices that are off the screen in his algorithms, this causes some imposters to blow up and cover the screen.


Try disabling D3DRS_CLIPPING when rendering those imposters.

Cheers
Dark Sylinc



Hey,

I've already fixed the issue, and added some optimizations to it, for instance you can really get away with never updating imposters that are off the screen as long as you add a bIsOnScreen flag, and flag the imposter for updating when the state changes from false->true. But yea, that's the one renderstate [clipping]that I didn't try editing, still I don't think it would have mattered since he was still drawing and updating imposters that were behind the viewer, etc. It's wierd though since I don't remember seeing those artifacts the last 2 times I implemented his imposter system...

- Dan
September 26, 2009 12:15 PM
DogmaDZ
You are making good progress! From a visual point of view, I can give some feedback. I think the game looks great, and with some easy touch ups you can give it just a bit extra.

I think the bloom stands out the most as something that can be improved. For example, on a screenshot like this:


The sky is a big white blob. I don't think that helps the visuals. Its better to exclude the sky from the bloom rendering, and introduce some atmospheric haze.

I can also give some advice on the vehicles/armor textures, they are a bit bland, and just need a little bit extra to break up the surfaces. It should not take much time, but should add quite a lot to the looks. I have a page that is good reference/inspiration for hard surface texturing:

Massive Black

If you study these images, you will see that the materials become more convincing when you introduce a bigger hue range. Also, some simple, small panels and logos on armor can give it a detailed look.

Again, I think it looks great already, and with some tuning you can really get that triple A look.

Hope it helps,

Victor


September 27, 2009 05:17 AM
dgreen02
Quote:Original post by DogmaDZ
You are making good progress! From a visual point of view, I can give some feedback. I think the game looks great, and with some easy touch ups you can give it just a bit extra.

I think the bloom stands out the most as something that can be improved. For example, on a screenshot like this:
*PIC REMOVED*

The sky is a big white blob. I don't think that helps the visuals. Its better to exclude the sky from the bloom rendering, and introduce some atmospheric haze.

I can also give some advice on the vehicles/armor textures, they are a bit bland, and just need a little bit extra to break up the surfaces. It should not take much time, but should add quite a lot to the looks. I have a page that is good reference/inspiration for hard surface texturing:

Massive Black

If you study these images, you will see that the materials become more convincing when you introduce a bigger hue range. Also, some simple, small panels and logos on armor can give it a detailed look.

Again, I think it looks great already, and with some tuning you can really get that triple A look.

Hope it helps,

Victor


Thanks a lot for the advice...

I've already got new hand models for the players [ to replace my programmers art :-p ], and I've just re-written the sky system to use dynamic GPU based procedural cloud system verses static rotating clouds, it looks muuuuch better now. Obviously this adjusted the sky bloom amounts...
Early screen -

It's really cool to adjust density, speed, etc. in real-time. I'll post a video soon, but anyways - I like the idea of excluding the sky from the HDR pass, I was thinking about something like that last night as I was cursing the overblooming...

Unfortunatly the bloom is still intense when you're in a dark area, there are some test cases in the level where I'm working it out. I'd be more worried about it if it was bloomed out all the time, but it only gets that extreme if the game is in the 1st person view or if you're zoomed up on the vehicle.

Also like I said earlier I'm looking to get ~20,000 triangle player model made aswell.

Those art assets you linked to look fantastic, still I'm self funding these projects, and I don't think I'mm be able to make stuff that looks that good on my own, and I've already paid 1000s for all these vehicles, etc.

I think what I'll do is introduce a detail texture on the vehicles, with a high frequency tiling panel texture?

I've just added a tiling dirt overlay to the roads / terrain to break up things even more, and it worked wonders. I'll also try to adjust the hues etc of the vehicle, but the other 3 have different types of materials more similar to the ones you linked to, but obviously not nearly as badass :-o

- Dan
September 27, 2009 11:51 AM
DogmaDZ
New sky looks great, big improvement! Yeah, I completely understand the self-funding part, I have the same problems with my own projects ^^. It does not need major improvement, just minor changes. I did a quick overdraw during lunch to show you what I mean:



It is rough and far from perfect(not much time :)), but it should give you some idea of how you can get a bit of improvement with minor texture changes.
September 30, 2009 06:34 AM
dgreen02
Quote:Original post by DogmaDZ
New sky looks great, big improvement! Yeah, I completely understand the self-funding part, I have the same problems with my own projects ^^. It does not need major improvement, just minor changes. I did a quick overdraw during lunch to show you what I mean:



It is rough and far from perfect(not much time :)), but it should give you some idea of how you can get a bit of improvement with minor texture changes.


Wow...that looks awesome :-D :-D

Are you available for a tiny bit of paid contract work perhaps? :-> I just have 4 vehicles [ with color/norm/spec maps ] that would need re-working ... I also think the weapon texture would look cool with that kind of treatment.

Also, I was considering a vehicle painting / decal system where players could project/paint an infinite number of decals onto their vehicle in the construction bay, and then bake them onto the vehicle's regular texture.

I'll shoot you a PM as well.

- Dan
September 30, 2009 04:50 PM
You must log in to join the conversation.
Don't have a GameDev.net account? Sign up!
Advertisement