This topic contains 20 replies, has 6 voices, and was last updated by Anonymous 14 years, 7 months ago.
February 28, 2005 at 10:17 am #3829
I decided to just start a thread for the content of the game, I’ve been working on for some time, while I know the WW2 genre has been done too death I do believe I have a unique slant on it.
If you dont fancy clicking on each link, you can view my thread over in Maxforums.org
Here is a little about the game:
The game works on a basic 24hour clock, it turns from night to day, and I have made all efforts to try and simulate realistic environments from weather effects to realistic lighting.
Since most WW2 games simply focus on one squad, I have developed an open AI system that will give the player the full scope of the war and battles they takepart in. Essentially the AI micro manages over 250,000 units in realtime. Simulating the entire battle over a course of days. Via a GUI a designer will simply have to give initial commands such as overall objectives and sub-objectives, and outline the initial strike plan.
The AI will read these plans and start to complete them, some which will be possible while others will pose as a bigger problem. The AI will adapt and change its plans as is needed, ordering troops, squads, platoons in the most strategically correct manner (from the era). The troops take this adapted scenario and try to complete it, the AI will re-determine the effectiveness of this plan as it unfolds, ordering its units about depending.
The only story included in the game are the events, the game does not follow one character or squad. This allows for the player to choose any character without being tied down to a certain story, and watch events unfold as they attempt to change them. While without the player interacting with the system, the events of battles are re-told as per history (Or as close as the simulation will allow). But with the player interacting with it all, these events can change. That said I do hope to spend some time adapting a communication system that will allow for the AI to have some form of intelligent communication between each other, due to the random/open nature of the game this is going to be a huge headache.
Since the game manages every unit and because the game essentially tells the story of a particular battle in WW2 and not a soldier. It is possible for the player to select any unit that is in battle (playing as one character for 24-hours could be boring) so the player can simply jump between all manner of units, seeing the full scope of the war.
If you want to keep uptodate with all the latest content
A direct port of the Speedtree Huge forest application into Cipher. This is a very efficient port into the game, and runs very very well.
Here is some screens of the lighting system I am currently implementing this was based on a paper by ATI, and the demo they released. I intially ported this to DirectX9 and added more effects and features now Im moving it to Cipher Engine.
some basic default particle effects from the engine
<b>Weapons, Vehicles & Props</b>
Well thats my current project, I started it in college back in 2001, things are finally taking shape, I expect it to take about another year maybe more.
February 28, 2005 at 10:49 am #18083
Hey Ronan, that looks sweet.
Must try download your demo when I get the chance.
Seems a bit risky to try go with the “not controlling an individual” approach, but it might work.
February 28, 2005 at 10:52 am #18084
Yeah, I know what you mean, I have names in, each character has a name. But its open and doesnt follow one set character. I wanted to take a step away from Saving Private Ryan and Band of Brothers. Sure allow the player to play the events, but give them more scope, and make them know that Omaha beach wasnt the only area of conflict. After all when I designed and developed the core AI in college it was an Educational Tutoring System but I think games would put it to better use.
The demo is only a terrain test of the Pegasus bridge area, I wanted to bench mark terrain performance. I should be releasing a large demo within the next 2 – 3 weeks. Then a few more before I start doing everything closed door.
February 28, 2005 at 11:27 am #18089
Very very nice Ronan. The lighting effects are fantastic!
Good the see its coming together nicely. So does the player choose tactics etc and then watch the battle, kind of like a football managment sim?
February 28, 2005 at 11:34 am #18090
God no (Although at the moment I do have a test app that shows all movements of units on the map, but that will be removed)
Its FPS/3rd Person.
To sum it up.
The clock starts at midnight. X amount of units move into Normandy. The player can select a unit(which match their own training and experience). They control that unit, until they either die, or get bored and choose another. They can select other units at any given time. With the AI picking up from where they leave off.
As the clock goes forward, the player has more and more units become available. This will allow the player to play in all areas of the battles.
The more units the player can pick from in all areas of conflict. Im currently looking at making German, US, UK, Canadian soldiers playable from the start. With considerations towards French Resistance, Polish, Austrailian, Irish and other nations.
February 28, 2005 at 11:49 am #18092
I really like the idea of being able to jump between the soldiers. Although the player may not become attached to a particular character, it allows to player to get more of a sense of the scale of the war…….really nice idea.
February 28, 2005 at 11:52 am #18093
I am working on elements to get the player attached to the player, and their squads. But its not working to plan just yet. Mainly because as I said, the whole thing is dynamic and un-scripted, so conversations and interactions between units, other than the usual tactic and orders. Is to be honest a real nightmare, but thats the next big task.
February 28, 2005 at 12:03 pm #18094
It sounds like what you are doing is kind of a FPS version of Total War. Kinda cool.
February 28, 2005 at 12:41 pm #18095
Very nice Ronan! Are you creating the 3D models yourself? They look excellent for being pretty low-poly.
February 28, 2005 at 1:09 pm #18096
I outsource the models, its the fastest and easiest way to do things. I have a few people who continually help out on the project as well. I have about 20+ people working on the content for the game
The file game will feature:
160×160 of accurate terrain
70+ Weapons including all variations and upgrades
50+ vehicles/planes and boats
400,000 possible units to choose from
WW2 based tactics
Realistic Physics (Novodex full integration)
Speedtree and SpeedGrass
Full Shader Effects
Full GUI Based designer
Max/Cinema4D/XSI/Maya/Milkshape/Anim8tor export scripts
Loads more I cant even remember
As for the poly count, those soldiers are less than 3000 tris with full gear. All gear is mountable meaning you can drop gear in game to give you extra speed or movement.
I’ve also managed to get about 500+ of those Panzer 3 tanks into the engine, and still maintain a 60+ FPS.
February 28, 2005 at 3:04 pm #18097
out of interest how are you doing the ai?
are you using scripting and FSM, FUSM etc to control the troops etc.
Or are you using some of the more sexy ai techniques like flocking for troops or neural nets for learning player strategy etc. Then allowing your game enemy troops to exploit weakness in the player. If so that would be cool, flock is pretty easy to code and produces some amazing results.
Also is the ai going to be hierarchical(high level and low level goals to achieve);
high level planner that determines move to x,y, and storm the enemies. Then a low level planner like how to actually coordinate the attack. sounds like from your description it is right? in that you said it will replan
February 28, 2005 at 3:08 pm #18098
Congrats Ronan & best wishes :)
Im curious about the Cipher engine vs Torque engine, was there any major or loads of minor choices in not using Torque Shader or Game Engine and to use Cipher?
I have looked into Cipher quite abit as well with other engines, while we are using the TGE in our first product we are looking towards the TSE as its near completition of milestone 2.
From what you have shown with Cipher you have improved the engine areas quite nicely to what it can do.
With your project work over a network / Internet? It would be great to see it happen! How are you doing the network code for such a heavy unit project?
Also what count is the tanks? sounds impressive of how many units you got with the fps! And how many man units do you expect to have on screen with each at 3k ?
Your project sounds really good and i hope to play it in the future as you got the right idea about its design, im just trying to get my head around some of those stats / info you mentioned of how it is all going to work in real-time.
February 28, 2005 at 3:24 pm #18099
Well I dont want to give too much away on the AI, as I do hope to sell it on as a Library.
Put simply its a learning library. I determines how the player is playing and adapts to suit.
It started as an educational tutoring system. This means that it was a content delivery system, and based on results taken from the user, it would know what content to deliver. Now obviously since I was dealing with interactive media, it was developed in such a way that the user could interact with material, be asked a few questions. Based on stats a new list of content can be delivered.
Adapt this to games and things seem to change.
Pathfinding is done in a more human way. For the allies who have yet to land in the Normandy, a map is given. The AI knows this map and will take routes based on the map. Not based on calculations from the terrain its in. As it explores more of the terrain, it will make the calculations based on the terrain and not the actual map. I believe its a more human approach. Most path finding is done by finding the fastest route. This makes it seem like the AI is more human, by taking routes that the AI believes to be safest or best. While in the game it may not seem that way at all.
As for the core AI that determines everything. I have a 3 tier structure. Neural Nets, Genetic Algorithms and FSM.
Basically the Neural nets are there to pick up extra bits of info (Moving around the map, Ihad to make this very small and very fast, so dont expect glorious learning AI.) The Genetic Algorithms are the main influence on the AI controlling more how they move, act, shoot etc. Finally the FSM, works more like instinct. Because I didnt want the AI to be perfect or fearless, I added this guy. Depending on how urgent a decision is needed, the FSM will kick in forcing the AI to do some very instinctive actions (Retreat,Duck,Run,Fire,CoverFire etc) So what we have is after say 2 millieseconds if the AI still hasnt decided what to do, its forced into using a fsm. So if you are shooting at the AI, instead of using some learning algorithm to analyse the map to death, it will simply kick in the FSM and do what it feels is best.
I have programmed in emotional parameters that help with orders and decisions, i have about 15 of these. They cover things like trust, friend, foe, fear, love etc. Basically they work on 1- 10 scale. If a certain character gives you an order, and your squad members dont trust them, its unlikely that they will follow through on the order. Same goes with you, if you act crazy, the AI will be reluctant to follow you into battle. The flocking algorithm is integrated into this system. Obviously units on Omaha beach will try to run like hell, as fear is very high. While guys walking in the middle of Normandy, will be less frantic in their movements, and take things cauitiously.
This is all controled using XML and SQL. The full command structure for the armies, as well as the order hierarchy is in xml files. Making it very easy for me to alter the way things happen. For example, if I wanted to make a modern warfare game, with different army structures, and character traits. I simply change the XML files, and all works.
Hope all this made sense. If not, just ask me to clarify on particular areas.
February 28, 2005 at 3:35 pm #18100
The tanks are about 1500 -2500tris.
We expect to have at most about 20-35 tanks on screen at once and a max of 64 players on screen at once. These tests were done using the dynamic lod system I put into cipher. They were also untextured. So only the first few tanks were about 1500 tris, while the further away tanks were about 500. Average tri count per frame was around 500,000 polies (not tris) on screen during the 60fps.
The main benefits I see with cipher:
1. Documentation, its goo and proper
2. The engine is ready
3. The engine is neat and tidy
4. C code (So it makes it really really easy for me)
5. Great Structure.
After 2 years of using torque, I found the community to be helpful at times, but mostly not. TSE is not ready, and wont be for some time, last I read they expect it not to be stable for about another year. Content development is a bitch. The standard workflow is usually
as opposed to Cipher:
Most of all, there are comments all over Cipher, at the start of every function, at every major variable or call. I dont know openGL as well as DirectX. With cipher I knew exactly where I stood the second I started programming.
As for the netcode, I havnt got around to that yet. I have 2 choices, really really really really powerfull servers and lots them. Or centralise all player spawns to the squad leader. Making all AI calculations centralised. This would work dreams with the AI system.
February 28, 2005 at 3:37 pm #18101
nah it makes sense.
I ask because im currently wrapping up my msc in a.i. for games and i have been developing some new algorithms.
one of which was how to create npc which dont cheat using decision tree learning. nice light weight method, good for protyping and getting some initial things up and running. Also handy for deriving state transitions for FSM.
But more recently i have been developing a kind of path finding which is based purely instinct. So the agents can run a* or the likes to find paths to locations, only on nodes which they have witnessed.
So its like incomplete search. Also they can reason about time contraints, adv\dis advantages moving different directions etc. Most of these based on classigcal game theory strategies like min\max domain and pareto opt etc.
ill currently writing this up at the moment but if your interest in more details give us a shout. might be of use to you dunno.
Also you mentioned :
“So what we have is after say 2 millieseconds if the AI still hasnt decided what to do, its forced into using a fsm”.
Did you ever think of using fuzzy logic in the form of fusm (state machines with fuzzy logic) they might be good for making good decisions when no clear cut choices are available given an amount of time.. games in the past like civilization used this trick for this very purpose..
February 28, 2005 at 3:39 pm #18102
also fusm are very handy for what you were saying about emotions.
each emotion being a state and the fuzzy logic rules determine degree of membership to these various states.
February 28, 2005 at 3:42 pm #18103
No didnt look into FUSM. I was under prressure last year to deliver a final year project, and it was a toss up between a good grade, and full copyright. Needless to say I went with full copyright, so I limited my project within college.
I’ll get in touch with you about your new algorithms, some of them sound very interesting. Im just wondering how time consuming everything will be. Especially with Shaders and the likes needing calculations, thats my greatest worry at the moment. Getting the AI working 100% without effecting the overall speed of the game.
February 28, 2005 at 3:52 pm #18104
well if i can give you a hand, give us a shout. im fairly familar with alot of the ai techniques now which would be cool in games. also i think the kind of game your building could really trive with good ai at its core. in that your simulating real world battles so makes sense to have real world characters, and not cheating a.i.
sound like though you know what your doing with keeping the a.i. fair\even. of course with that does come the cost of cpu cycles.
when will be the day a p.c. gets an ai processor like the GPU :)
February 28, 2005 at 4:42 pm #18106
Thanks Ronan for the reply. I can see better now where you are coming from and with Cipher, certainly Torque has the bitchest content development flows out there. We are looking to change them for the better which is an entire project in itself!
I will be keeping an eye out to seeing a demo of your project with lots of excitment when you release one as its certainly going to be the most demanding game ever for Cipher & other indie engines on the market today. And the fun factor! :)
February 28, 2005 at 4:58 pm #18107
This is a plugin I came across sometime ago for torque, it should be very very handy, and the price tag is great.
Cuts the BS out of the Torque workflow, but you will still need to do some extra work with it to get it much simpler.
February 28, 2005 at 5:10 pm #18108
The GLB is certainly a very neat plugin, thanks :)
The forum ‘General Discussion’ is closed to new topics and replies.