Intel sponsors gamedev.net search:   
Radioactive-SoftwareBy dgreen02      
Radioactive-Software Homepage


Urban Empires, A Multiplayer Gangster Game - www.urbanempires.com | www.urban-empires.com
Published by Strategy First
Release date - TBA
Want to help BETA test Urban Empires?

Thursday, February 4, 2010
Hey guys,

Sorry for the long break between updates. I got burnt out and took a month long hiatus around the holidays...one of the benefits of being 'self employed' I suppose. The freedom is a double edged sword for sure.

Either way I'm back on the project with a passion, over the last few weeks I've been working with my main contract artist 'Tom', who has created a high resolution player model for Armored Warfare. It weighs in at ~10,000 triangles with 150MB+ of texture data [ 4096^2 color, normal, specular ]. Magnificent work IMO...I can reskin it and adjust the colors later on [ for each team ]. Right now I'm just using a brown/green skin for testing.

What's a new player model without a hawt animation system to go with it? In addition to the GPU skinned/instanced normal mapped characters I render [ ~700 triangles ], I now have two higher LODs as well to work with. So I coded a brand new animation-system-to-end-all-animation-systems over the last 70-100 hours I've been coding day and night to get it done. There is still some work but it solves some issues that I've been wrestling with for many many years.

Previously I would use the Micorsoft .x format, this caused me so much pain from 2005-2008. In that time I spent months cobbling together an efficient and workable system that would allow me access to weighted vertices in animations (infact I would cite these flaws as one major reason I delayed Urban Empires)...Milkshape3D (my other supported file format) did not support 4 weights per vertex in it's specs or editor until relatively recently. This was a game changer for me. I coded a new .ms3d system up in 2009 it worked alright. This new system, the twenty-ten system ;-) is nearly perfect. Nearly full support/integration with Milkshape3D [ I import HL .smds exported from 3DMax to make the conversion to a usable format ].
It goes:
3DMax -> SMD Export -> Milshape3D -> SMD import -> Save .ms3d file -> Load into game.

It might sound complicated but, it's a walk in the park since the HL2 export tools are so solid. Compared to .x format it's night and day. Also, on a forward looking note since the demise of the .x format in DX10/DX11...I'm ready to roll into the future ;-)

So yea, the new system supports every kind of feature you could want in a model format, tangent space generation, 4 bone per vertex weighting, GPU skinning/instancing, full CPU skinning fallbacks, arbitrary animation blending, unique top/bottom half animation blending, integrated level of detail, smooth animation speeds across all frame-rates...on and on...coded in the last few days. Even has support to read comments from the .ms3d files that were typed in Milkshape3D.

Well - here are some screenshots of the new character model / animation system....they are EARLY screenshots. The next 24-48 hours will show major improvements.

*NOTE - there is no advanced shading on the character models, or advanced self shadowing.
Click for high-res 1680x1050 versions...













A WIP image - basic shading w/tangent space normal mapping against a single directional light [ ignore background soldiers ]


Well that's how it looks now. I'll be back in 24-48 hours with an update. I'm very excited at the possibilities.

I'm also updating all other aspects of the game - making my dream Wargame doesn't seem toooo far away. Though sometimes I wonder why I go at it all alone. I suppose the answer is because it's impossible to trust other people to have the same level of dedication to the project that I have. It takes years to make a solid game, and I wonder how many people would have the faith and patience to work through it all with me.

One thing is for sure, in my old age [ 25 ] I'm getting tired of all this work...lol, I need to finish Urban Empires & Armored Warfare and hire a fulltime artist, and a fulltime assistant programmer/tools programmer to help me flesh out my engine.

All in due time I suppose...eh...back to work :-)

- Dan

Comments: 5 - Leave a Comment

Link



Monday, December 14, 2009
Wow, don't think I've ever worked so hard to get something finished on time, evar, in my life.

Just uploaded a new 930MB ( ~2.3GB unzipped ) version of this game for an undisclosed publisher to check out ;-) I'm nervous ... pray to the programming gods for me.

I just did 15-18 hour work days Fri, Sat, Sun - and now it's Monday and I've been awake way too long ... I was driving to my office at 6AM in some of the thickest fog I've ever seen to kick off the upload [ faster to drive the DVD to office and upload then to upload from home ]. It was quite an adventure.

'Suppose I'll get some rest now.



Comments: 4 - Leave a Comment

Link



Wednesday, December 9, 2009
In prep for BETA release #2 of my vehicle combat game ( previously known as Warbots Online ) - I decided to change the name to something a bit better - just about every domain .com is taken for anything close to what I want. So I decided to go with Armored Warfare in lue of Warbots Online. I registered www.ArmoredWarfare.com and www.ArmouredWarfare.com so you foreignars dun get confuzed :-p

I was thinking about having a name-contest for the game, with a prize of a $5 gift-certificate to Wendy's for a bacon and cheese sandwich - Ok, I could probably spring for a cooler prize if somebody can come up with sick name.

Well...what's a new name without a logo, I spent probably 4 hours working on this today. I'm pretty happy with it. My plan was to draft up a bunch of logos, but IMO this one is pretty good - read, good enough to be done with it lol. EDIT - It looks a better on a black background.

Clicky & scope the front page ( the rest is temp on this site ) -
www.ArmoredWarfare.com and www.ArmouredWarfare.com



I was going for a multiple-scene-in-one feel for this image/banner ... the left bottom shows some soldiers running from a giagantorz mech, the bottom right shows a tank flying across some open terrain, and in the top right of the screen there are some drop ship transport thaaaangs rollin' in. I added some grunge and wear/tear to the logo, and all the usual stuff. Pretty neat how the two Rs line up in the middle of the logo as well.

As usual feedback is always appreciated. On the logo, and I could also use some feedback on the layout / setup of the Armored Warfare website. I was going for a basic php thingy, I moved away from a Drupal based CMS for the Warbots Online website, and unified on my own php based framework, I just find it easier to work with... I only use newspro for updates on the front page, and I also use a thumbnail library for the gallerys on both Armored & Urban homepages.

Urban Empires Website updated with actual content!
Speaking of Urban Empires... guess what... I also updated that website while I was at it. The homepage for my gangster RTS/Action multiplayer game had ONE screenshot in the gallery ... for like 2 years. So I fixed that, straightned up a bunch of stuff, and overall I think people can get a good impression of the project by simply viewing the front page.

Try it out ....
www.UrbanEmpires.com and www.Urban-Empires.com



Summary
I think both the homepages for Urban Empires and Armored Warfare should give a pretty much instant feel each game, there are 5+ videos on each, and a sh*t ton of images. So this should also help people get a quick feel for for the games.

Yay time to sleeeeep, after a 20 hour work day on web-stuff! I'll finish the websites 2morrow and then get back to coding and preparing the 4-5 new HD Videos for the release of Armored Warfare BETA 2.0 , which shows all the new stuff I've added since August.

Comments: 7 - Leave a Comment

Link



Thursday, November 26, 2009
Hey guys, figured I'd post this stuff up before I get too back logged...I want to post new HD videos showing the Beach Assault gameplay, the weather, the construction cave, the walking robot, and all the new things I've added since August ... the game should be back in a showable state any time now....so get ready :-o

Higher resolution grass...and some WIP screens
I realized I was using a veeeery low resolution version of my grass texture in the previous screenshots, I really didn't notice until I ran the game @ 1680x1050+ resolution, but it makes a huge difference in the quality.

These screenshots are resized from 1680x1050...in-case you didn't know everything is 100% dynamic from the time of day & sky, to the grass...




Early Dynamic Weather System Progress
I've been working on sky rendering for many years [ like most people ], it's really funny to me that I've essentially digressed all the way back to a technique I was using in my engine around 2005-ish [ for the main/large clouds ]. I'm now using imposters for distant clouds, fading skyboxes for night and for storms, and scrolling animated procedural clouds for lower layer of clouds. I thinned the lower layer out and added the big clouds in the background for 'cloudy' days.

My weather system is generated at the start of each game, and basically cycles through 64 randomly generated weather states. I tied a lot of the effects directly into the time animation system so clouds speed up while the sun shoots across the sky @ 8x speed, it looks neat. I also added cloud shadowing on the terrain, which really enhances the time lapse effect.

The combinations of weather conditions -
Clear/Day
Cloudy/Day
Overcast/Day
Raining/Day
Storming/Day
Clear/Night
Cloudy/Night
Overcast/Night
Raining/Night
Storming/Night

I'll release a HD video of the weather system [ in addition to many other videos ] before the release of BETA 2.0 ... it will show the time-lapse effects of my game engine, and all the weather effects that I'm still working on and have not shown yet.

Here is a collection of screenshots showing the new cloud system, all rain/clouds are dynamic and part of the sky system. None of these screens show the particle based rain, or any other effects...these are just screenshots of the backgrounds in each situation.

I'll also post screenshots of fog/overcast/storms in the next update.


Film Grain/Brightness/Contrast/Saturation post-processes
Ok I've been playing Left4Dead2 a lot xD...not sure if you noticed the subtle film grain, or improved coloring in the above images...but IMO it's a huuuge improvement over before. I've added film grain, brightness, contrast, and saturation post processes into my engine this morning. The effects are 100% adjustable in real-time by going to the options window, you can slide the % bars and see the results in the game world.

Here are some screenshots of the effects in full-strength, I can desaturate the scene and give an old film footage look, it works great. These screenshots look like stills from old color footage taken in the '40s - '50s ... it's not nearly as noticible in-game since it's animated. And it does add a lot of realism and a 'gritty' feel to the scenes...again the effect isn't this strong by default but if the player likes it they can set everything to be like this.

*note the grass in these screenshots is the 'old' low resolution one...




Here is how the scenes look with JUST the film grain and new clouds [ if you want screenshots without any of that just look at any of the game's older screenshots ] .... anyways, you can see how dull the game's colors were before. It was especially bad @ noon.


- Dan

Comments: 11 - Leave a Comment

Link



Thursday, November 19, 2009
HAI. I was going to hold off on this update - but I think this is so cool I have to show you right now :-o

I've been working on Inverse Kinematics, a fully-blown dynamic weather system [ rain, t-storms, clear, cloudy, overcast - more on that next update! ], I'm also finalizing the Beach Assault map...and a million other things from Squad AI programming to coding a beach shore rendering system. So much work...luckily I enjoy it more than anything

Inverse Kinematics / Physics based Mech Walking
A while ago I had a Mech model created for Warbots, only problem was the animation looked kinda "not cool" on uneven terrain. It looked so bad, it was reason enough to not include the walking mech in the game. btw...I wish I had more energy right now to type this - I've been coding for about 10-15 hours a day ... every day. I've spent the last 20-30 hours working on this system and I finalllly got it working - because I can't give up until a problem is solved hehe.

Basically instead of running through a pre-canned animation for the mech, I rigged up a new skeleton and coded a real-time animation system that would always align the Mech's feet in a proper position regardless of it's orientation [ within reason obviously ].

I'm working on an improved walking engine, and logic, so the robot knows where to set his feet optimally, when to change foot positions, also different run periods and speeds, and of course I want him to loose his balance when he gets hit with a rocket xD...that has to wait until tomorrow.

This stuff is all a work in progress...a day of work at this point, and it's already looking reaaaaally good in motion!

I'll let the debug/progress screenshots do the talking -
Note: self shadowing, and shadow casting is disabled on the mech, it'll look much better when I re-enable it, I had to code a special type of "robot object" to make all this work....*rambles on*







Here is a screenshot that details the re-rigging process I went through ... comparison between the 'static' animation skeleton and my dynamic physics based skeleton...


Jus' me 'n' my robot.
I need to add ninjas into this game...somehow...ninjas....


Beach shore blending effect...
So many games have rough transitions between beach and water. I coded up this system to sort of smooth it out. The foam is animated, etc. It's still a work in progress.



Progress on the Beach Assault map
I made major adjustments to the map. I made it so there is shadowing on all objects, the imposter view distance has been pushed out, I added rocks, I tweaked so many things. Mostly I added craters and more variation on the beach/sand area.





All the vehicles in the game...
Let me show you my polygons...


Also, since this wasn't posted directly in my previous entry, here is the ditty on AI from last time -
Quick Aside on AI: flocking evasion, targeting, objective/order evaluation
I've made some improvements in the last day or two on the human/squad artificial intelligence, as well as the robot's AI.

Here is some incomplete code/early data structure design, and some images of how it's looking ... no comments on the style please lol...I don't know why I'm even pasting this, I just feel like including some code in an update for once xD

//WO_ArtificialIntelligence.h, (c) 2009 Danny Green, Radioactive-Software.com

#ifndef WO_ARTIFICIALINTELLIGENCE_H
#define WO_ARTIFICIALINTELLIGENCE_H

//ROBOTS
#define MAX_AI_ROBOTS_PER_WORLD MAX_ROBOTS_PER_WORLD //total number of AI robots that can inbahit the world
#define MAX_ORDERS_PER_ROBOT 5 //size of the robots's order stack / number of simutanious orders

enum RobotOrderType 
{ 
	ROBOT_ORDER_STOP_ALL, 
	ROBOT_ORDER_IDLE, 
	ROBOT_ORDER_MOVE, 
	ROBOT_ORDER_ATTACK, 
	ROBOT_ORDER_DEFEND, 
	ROBOT_ORDER_PATROL, 
	ROBOT_ORDER_WAIT_DELAY 
};

enum RobotStatusType 
{ 
	ROBOT_STATUS_NONE, 
	ROBOT_ORDER_ORDER
};

enum SimulatedPlayerType 
{ 
	PLAYER_TYPE_DEFENSIVE,
	PLAYER_TYPE_OBJECTIVES,
	PLAYER_TYPE_KILLS,
	PLAYER_TYPE_AVERAGE
};

//The simulated AI players will just 'give orders' to the robots, this abstracts the interface to where it would be
//very easy to add a 'RTS' command mode
struct RobotOrder
{
 RobotOrderType m_OrderType; //ordinal type
 D3DXVECTOR3 m_Position; //position associated with the order
 char m_Priority; //if required [ determines if the robot will break and return fire if attacked ]
 char m_EnemySquadTarget; //if required
 char m_EnemyRobotTarget; //if required
 double m_TimeDuration; //how long the order should be carried out for
};

//Data structure for a simulated human player
struct SimulatedPlayer
{
 bool m_IsSpawned; //If the simulated player is spawned.
 int m_GlobalIndex; //Global index of the robot, so it can share some data from the main robot array
 SimulatedPlayerType m_PlayerType; //The type of player 
 RobotOrder m_OrderStack; //List
 float m_SkillLevel;  //0.0 being n00b, 1.0 being god-like

 float m_fMovementSpeed; //Movement speed of the robot [ scalar ]
 int m_numNodesToLookAhead; //How far the pathfining should look ahead when setting a waypoint.

 D3DXQUATERNION m_LastOrientationQuat; //Previous orientation of the simulated player, used for blending
 D3DXMATRIX m_Orientation; //Orientation of the simulated player

 D3DXVECTOR3 m_TerrainNormal; //Terrain normal vector under the player

 RobotStatusType m_RobotStatus; //Robot's current status

};


//SOLDIERS / HUMANS


#define NUM_SOLDIERS_PER_SQUAD 16
#define MAX_ORDERS_PER_SQUAD 5 //size of the squad's order stack / number of simutanious orders
#define MAX_SQUADS_PER_WORLD 1+(MAX_HUMANS_PER_WORLD/NUM_SOLDIERS_PER_SQUAD)

enum SquadOrderType 
{ 
	SQUAD_ORDER_STOP_ALL, 
	SQUAD_ORDER_IDLE, 
	SQUAD_ORDER_MOVE, 
	SQUAD_ORDER_ATTACK, 
	SQUAD_ORDER_DEFEND, 
	SQUAD_ORDER_PATROL, 
	SQUAD_ORDER_WAIT_DELAY 
};

enum SquadStatusType 
{ 
	SQUAD_STATUS_NONE, 
	SQUAD_ORDER_ORDER
};

//The soldier squads be given orders by the computer, this abstracts the interface to where it would be very easy to add a 'RTS' command mode
struct SquadOrder
{
 SquadOrderType m_OrderType; //ordinal type
 D3DXVECTOR3 m_Position; //position associated with the order
 char m_Priority; //if required [ determines if the squad will break and return fire if attacked ]
 char m_EnemySquadTarget; //if required
 char m_EnemyRobotTarget; //if required
 double m_TimeDuration; //how long the order should be carried out for
};

struct Squad
{
 //Orders
 SquadOrder m_OrderStack[MAX_ORDERS_PER_SQUAD];
 char m_CurrentOrder; //Current order index

 //Soldier data
 int m_SoldierIndices[NUM_SOLDIERS_PER_SQUAD];

 //Status / info
 char m_Team; 
 SquadStatusType m_Status;

}; 

#endif


















Red lines are 'threat' vectors, much more on this later...blue represents squad based objectives, and green lines indicate the soldiers resolved movement vector.

*EDIT - Note how flat the beach looks here, compared the the above screenshots.





Some showing Vehicle/Robot order completion.


- Dan

Comments: 3 - Leave a Comment

Link



Tuesday, November 10, 2009
Edited Nov.11.2009 - Added a quick aside on Artificial Intelligence: flocking, evasion, targeting, objective/order evaluation, etc. A much bigger AI update will be posted soon...just click the 'Comments' link at the end of the post...then scroll down view early code and debug screenshots. Now on with the regularly scheduled journal update....

Hey guys, I guess I'm reverting to my old ways of one journal update a month :-o I've got a lot of stuff to show & tell lol. If you're on some kind of metered internet access you might want to bail out right about now. [ btw. almost @ 700,000 journal views, thanks a lot guys! ]

Overview
It has been about 3 months since the release of Warbots BETA 1.0 - I'm putting the finishing touches on the Beach Assault map [ I guess this is update part 2 ], and all the new features that will be included in the next public BETA release. I wanted to have it done by the end of last month, so I'm a little behind - but still very happy with how things are progressing.

Here is the list of things I've been working on since the last journal update

- Human Squad AI logic
- Procedural GPU fire rendering
- Robot AI logic
- Attacking robots [blue team ] spawn on landing craft / defensive spawn on respawn pads [ red team ].
- Updated water effect and added 3D 'shore' sea-foam effect to blend water/terrain.
- 'Flipped a switch' and got instantly improved terrain, 4-5 layers with full color/normal/spec including detail normal-mapping. More on this later in the post.
- Dense swaying/animated instanced grass.
- Team switching functionality
- Red spawn points on beach
- Red defense turrets on top of defensive pillboxes
- Human squad rank system
- True per-pixel motion blur
- Optimization of rendering and game logic, yielding net 20-40% FPS increase.
- 1000s of tiny fixes / changes...


I've got most of the low-hanging fruit in the optimization area, and fixed 100s of bugs that were in the previous BETA release already. I've got a full list but I'll spare you.

I will have some HD videos soon + 1920x1080 4xFSAA screenshots - followed by the release of public BETA v2.0 in the coming weeks, so stay tuned!

Now on to the screenshots / individual items I've been slaving over ;-)


Dense animated grass / spawns,turrets,installations / new terrain / etc.
I've made a lot of visual improvements to everything, here is a splattering of screenshots some of the new stuff -

All this stuff comes at a 20-40% net speed increase since I did a lot of optimizations on the game engine....











Detailed terrain rendering/shading ... and how I suck at life.
So this is probably one of the most embarrassing moments of my gamedev life over the last 10 years...apparently as far back as the first BETA release of Warbots all complex terrain shading has been DISABLED, the calculations were being done but not factored into the final output color in the terrain pixel-shader correctly. The ambient occlusion, nDotL self shadowing, and the other minor/ambient terrain elements were being included correctly, just not the normal/specular lighting components ;-o

So one extra multiplication unlocked a world of terrain seksyness...with NO performance decrease since I was already doing the calculations just not outputting them correctly. Ugh. Not my finest hour, but still I'll take it!

Incidentally I was playing around with the recently released Unreal3 Dev Kit[UDK] on one machine/monitor and comparing their terrain to mine when I realized something was wrong with my rendering. I notice they use about 4-5 layers on the terrain in Unreal3, and no specular maps for each layer. I on the other hand use colored specular maps per-layer[ in addition to normal/color maps per layer ], and include an extra layer than they do if my eye is correct. I also include detail normal mapping [ extra tiling / sampling of the per layer normal map ].

The improvements are visible in all the above screenshots, but I'll include a close-up of a rocky/muddy ditch....

For reference the object in the very left side of the screen is a tree trunk base...so there is a lot of detail here ;-) I'll be posting more screenshots of the 'new' terrain as the BETA #2 release nears.





Team selection / Construction Cave finalized
I finalized the robot construction menu ...




True per-pixel motion blur
Based off the GPUGEMS3 article...I actually 'invented' it but then saw the method has already been published. Eh...it works pretty well, but I doubt I'll enable it by default




Human AI Logic / Ranks / Squad AI / etc.
I've made some great advances in terms of squad based AI, and pathfinding...the soldiers will be used to capture command points so their AI is very important. The player can exit their Warbot to capture command points / bunkers - but it's easier to let the AI soldiers do it. There can be up to 1000 soldiers/humans per map.

Since it's kind of hard to show AI via screenshots - I've got some screens of the soldiers [lit/un-textured]. I'm starting to integrate the new animations, they are all in the game I'm just building the soldier state machine to support all types of animations and good stuff.







Misc. screenshots AND INDSIDAR INFOMATION :-o
A new game I'm working on, called 'Reference Texture' :-p Actually this is output of a mode in my game engine where I'll only load a 16x16 texture in the place of all regular textures. This keeps total app memory usage < 256MB. I can see this being helpful to test on low end machines.

Plus I think it looks pretty trippy :-o




Night rendering...artillery coming in, with the spotlights in the background...




Sunset ... more screenshots of the sunsets / beach / etc coming soon




Pause of some action...


First person mode, I ordered the robot to drive through the crowd ;-) This screenshot has the OLD terrain rendering method, for comparison.
Vehicle pwnage...




Until next time. And as usual I could use any feedback on this stuff...

- Dan

Comments: 6 - Leave a Comment

Link


All times are ET (US)

 
S
M
T
W
T
F
S
1
2
3
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28

OPTIONS
Track this Journal

 RSS 

ARCHIVES
February, 2010
December, 2009
November, 2009
October, 2009
September, 2009
August, 2009
July, 2009
June, 2009
May, 2009
April, 2009
February, 2009
January, 2009
October, 2008
September, 2008
August, 2008
July, 2008
May, 2008
April, 2008
March, 2008
February, 2008
January, 2008
December, 2007
November, 2007
October, 2007
September, 2007
August, 2007
July, 2007
June, 2007
May, 2007
April, 2007
March, 2007
February, 2007
January, 2007
December, 2006
November, 2006
October, 2006
September, 2006
August, 2006
July, 2006
June, 2006
May, 2006
April, 2006
March, 2006
February, 2006
January, 2006
December, 2005
November, 2005
October, 2005
September, 2005
August, 2005
July, 2005
June, 2005