UT40K: The Chosen Although 40K players and other Mod Teams may not have herd about us, we have in fact been going on, for quite a while. The fact that a ModDB page was never set up for us has only just been brought to light. We are a small but dedicated team, devoted to bringing the universe of Games Workshops Warhammer 40,000 to it's full glory, using the UT3 engine. While we have been toiling in the shadows, we have actually managed to release a Number of Public Betas over the last year and improve on them with each upgrade. We are devoted to remaining as close to the publish code rules as we possibly can, to the point where we have implemented both the JAM system, for the Terminator Assault Cannon, and a fully functional vehicle damage system, complete with Front, Side and Rear armour values and features all of the ways of disabling a vehicle (e.g. Crew Stunned, Weapon Destroyed, Immobilised and all the others) We have two mostly functional races available; The Imperium's...

Forum Thread
  Posts  
Class Selection System for UT40k: Requirements and Implementation Options (Games : Unreal Tournament 3 : Mods : UT40K: The Chosen : Forum : Coding (Bugs / Things to do) : Class Selection System for UT40k: Requirements and Implementation Options) Locked
Thread Options 1 2
Jul 29 2010 Anchor

I have written the following proposed requirements and potential implementation details for the class selection system:

REQUIREMENTS

There are many different types of units in the 40k universe. We wish to allow the user some choice as to which of these units they will play as. The user must be able to select one unit from the range of available choices. It must be possible to categorize the available choices into a hierarchy. The system for selecting a unit should provide some capability to be restricted by other code such as the map or gametype. It should be possible for the user's choice to be changed during play if the gametype allows it. A change to the users choice of unit type is effective the next time that player respawns.

IMPLEMENTATION

The unit choice that the player has selected can be represented by some object associated with the players Controller. The class of the players Pawn shall be read from the unit. After spawning the new Pawn, a method will be called on the unit choice object, passing the Pawn as it's parameter. The unit choice object will then set up any necessary properties on the new Pawn, and will provide the Pawn with any necessary Inventory.

Initially, the unit choice will be specified at the console, using exec function(s) to set the players settings.

A GUI can be built to provide a user-friendly interface to the player. There are two clear methods to go about that: a custom menu system can be built, or the Unreal Engine's UIScene framework can be used.

The UIScene/Kismet method has several advantages. It allows us to leverage the existing UE 3.0 code which may save some time. It also allows the majority of the work to be done without using UnrealScript directly which may be an advantage if we have more people who know Kismet versus UnrealScript. The main trade-off is that Kismet is not portable so if we ever want to move to a different Unreal Engine game in the future we wouldn't be able to keep the bulk of the menu system.

DECOMPOSITION

There are three separate parts of this that can be implemented separately. One part is the core functionality for associating classes with players, and setting up Pawns wrt to the class associated with that player. This part is going to be pure UnrealScript. The second part is developing the GUI menu for selecting a class. This part may be either UnrealScript or UIScene/Kismet. The third is developing the individual classes, which is UnrealScript but mostly creating subclasses with differing defaultproperties. We may also need to clarify what parameters exactly are needed for the different classes.

I am just finishing my classes for this term and may undertake the first part in August before classes begin again in September. To make this playable we need at least the third part as well, though the second part is necessary for it to be truly "done".

Comments? Questions? Volunteers?

I have completed an initial implementation of the first part. It supports modifying health and giving any number of Inventory items such as weapons or armor. It also allows changing the class of the player's Pawn with one minor tweak to the gametype. We may not need that capability for this mod.

biggest_kid
biggest_kid Modeler, Texturer, Mapper
Aug 11 2010 Anchor

Hmm good work, sorry i didnt see this earlier. I may have a friend who will be willing to create us some GUI elements, if you need him to just give me a yell.

--

Looking for a mod team? You're in luck. Check out our mod page.

Aug 11 2010 Anchor

Do we have someone who can create the UIScenes? Or develop an interface in Unrealscript? There are tuts on the web, for the UIScene method in particular. Developing the menus for class selection may be time consuming but should not be that hard. We don't have to wait for proper graphics to do it; placeholder art can be used and swapped out later.

biggest_kid
biggest_kid Modeler, Texturer, Mapper
Aug 12 2010 Anchor

I dabbled in UI scenes a while back in the earlier versions of the UDK, yet dont have the time to re-learn it right now. School holidays are in a few weeks though so if you can get a basic ui scene up and running i may be able to fix it up a bit when i get time.

--

Looking for a mod team? You're in luck. Check out our mod page.

Aug 12 2010 Anchor

I am capable of creating the UIScenes but as it is something that can be easily learned from the available tutorials, I would prefer to focus my efforts on other parts.

biggest_kid
biggest_kid Modeler, Texturer, Mapper
Aug 13 2010 Anchor

Ok well give me a few weeks and ill see what i can do. Can you post the links to the tutorials u are talking about?

--

Looking for a mod team? You're in luck. Check out our mod page.

Aug 13 2010 Anchor
biggest_kid
biggest_kid Modeler, Texturer, Mapper
Aug 14 2010 Anchor

Alrighty had a look at the tutorials, nothing too outrageous.

So what is it that you would like me to do exactly?

--

Looking for a mod team? You're in luck. Check out our mod page.

Aug 14 2010 Anchor

The code that I have written is controlled by console commands. It is using the "mutate" functionality of mutators.

The format of the console command is mutate setPlayerClass . is the full package name of the UnrealScript class. So for example, in the sample I used for testing, a player can set themself to spawn as the "light" class the next time they respawn by typing in the console command "mutate setPlayerClass bmisc.ClassBasedClass_Light". To borrow a class name from the UT2004 version of UT40k, it might be "mutate setPlayerClass ut40kmarines.ut40kAssaultSgtInfo".

There are two parts we still need to do to make this usable for UT40k. One is to create the actual classes, which are basically the equivalent of bmisc.ClassBasedClass_Light - we need one for each "class" that the player can be.

The part involving the UIScene is to make some sort of menu that allows the player to select what class they want to be, and when they make a selection, runs the appropriate console command to set them to that class. In the UnrealWiki tutorial, SolidSnake uses Kismet to run console commands when the user clicks something in a menu. We want to do basically the same thing, except our menu will be different and the commands to run are different.

It may not hurt to clarify what classes we are going to allow the user to select before making the menu. I will create a separate thread for this question in the "General" forum.

biggest_kid
biggest_kid Modeler, Texturer, Mapper
Aug 19 2010 Anchor

OK geo doesnt seem to want to post in the thread you created about the classes we will be supporting, so thought id just ask how the class selection system is coming along?

--

Looking for a mod team? You're in luck. Check out our mod page.

Aug 19 2010 Anchor

I'm not sure what you mean. The infrastructure part is already complete. All that is needed is the classes themselves and the menu.

Geodav
Geodav UT40k Team Leader
Aug 19 2010 Anchor

sorry i've seemed to miss this thread completely, i see that Brold has been looking at our old code :)
ok so far what we have as "class" code is the FamilyInfo classes, this gives the base SpaceMarines - child1 SpaceMarines_Troops, this follows on with the other Factions, now i'm not sure how that would help you if it does !!!!
our main problem atm is the actual team/character selection, i don't think it would be a good idea to use UIScenes as these are being phased out, being replaced by scaleform Udn.epicgames.com go to the bottom of the pace to get the full source content.

atm i don't want to over load but if it's posible then a 3 team choice each with 4 classes but bear in mind that we would need to expand this as you are aware of the W40k section system

--

Aug 19 2010 Anchor

I have heard about the ScaleForm integration. I'm not sure if they are replacing UIScenes or intend for the two to coexist. I hope they don't replace UIScenes yet, else it will be the fifth entire GUI system this engine has seen! :S Having said that, I have no love lost for UIScenes in particular, but some stability would be nice.

At any rate, the internals of the class selection use console commands; they are completely decoupled from whatever GUI solution we end up using. Whoever builds the actual GUI will have to decide which GUI system is used.

biggest_kid
biggest_kid Modeler, Texturer, Mapper
Aug 20 2010 Anchor

Yes we would need to be able to readily adapt the class choices to reflect the change in the Wh40K universe and codex.

--

Looking for a mod team? You're in luck. Check out our mod page.

Aug 20 2010 Anchor

That's not quite what I meant. What I meant was that the infrastructure and the classes themselves are separate pieces from the GUI. What GUI technology we end up using does not affect the other pieces.

Geodav
Geodav UT40k Team Leader
Aug 20 2010 Anchor

@Brold if you've seen used our old UT2004 mod then you'll know what sort of system we need, i tried to port the code but there was so many changes (no xutil) that it wasn't posible for my limited skills

still not sure what sort of info you need, scaleform seems to be the way to go for the GUI but also needs code in it (action script 2)
the classes are as mentioned but i'm lost in what you mean by "infrastructure"

--

Aug 20 2010 Anchor

To be clear, what I mean by "class" here is the individual troop choices you have, this style of character selection is referred to in general as "class-based" in the FPS genre. I mean those types of classes, rather than UnrealScript classes which are just implementation details not relevant at this juncture.

By the infrastructure, I mean the code that stores what class each player is, and makes sure that the player has the appropriate stats for their class (potentially also including which 3D model/textures to use), with all the appropriate wargear.

There is a separate part that is needed which defines each class, specifying the stats and wargear that class should have. This is pretty trivial Unrealscript stuff that can be done easily once there is some agreement on what classes players will be able to choose.

There is a third separate part which shows a graphical menu and allows the player to choose a class. Developing this also requires knowing what classes the player will be able to choose. It's not a particularly hard part to do but there will likely be some work involved. A volunteer is still needed to do that work.

biggest_kid
biggest_kid Modeler, Texturer, Mapper
Aug 20 2010 Anchor

I have volunteered to learn what ever system we use for the GUI previously, though some things have come up and im not sure how much time i will have.

I am still willing to try however, so geo, what system do you think we should work with? Are you sure UI scenes are being phased out?

--

Looking for a mod team? You're in luck. Check out our mod page.

Geodav
Geodav UT40k Team Leader
Aug 21 2010 Anchor

afaik UIScene will remain but not sure for how long, which means the best option atm is scaleform

@brold, i'll have a complete class list for you veery soon, please don't forget we also need to force the teams to remain in the set factions

--

biggest_kid
biggest_kid Modeler, Texturer, Mapper
Aug 27 2010 Anchor

Umm im currently learning Scaleform, and have a question. I was going to do up a quick class selection menu, but hit a problem. Are we going to have it so that players can choose their own primary weapon, secondary weapon, and accessories(ultimately meaning they create their own load-out)? Or have it so that they can choose from 2-3 pre-defined load-outs?

--

Looking for a mod team? You're in luck. Check out our mod page.

Aug 27 2010 Anchor

My expectation was predefined load-outs. In the table-top game certain characters have a large degree of customizability but most do not. The customizability of the basic troopers is usually fairly limited. The Eldar basic troopers have no options, and the Tau non-battlesuit infantry have sufficiently few that the three I proposed in the other thread covers all of the non-battlesuit weapons. (though not in every possible combination of primary weapon & grenade) Marines have a little more choice but it still tends to be limited enough that I think we can make do with predefined load-outs.

If we are going to do a cost system it may make sense to have more fine-grained options.

Geodav
Geodav UT40k Team Leader
Aug 27 2010 Anchor

problely best atm to have pre-defined as that would make things easier, but i would like to have options

--

biggest_kid
biggest_kid Modeler, Texturer, Mapper
Aug 29 2010 Anchor

Yes i think pre-defined is the way to go. It would be easier, and still relatively creative.

If we had it so that players could customize every weapon they get to choose, then the money system(if we decided to introduce it) would be much harder to implement.

So i am going to go ahead and do up a quick test menu, with the ability/area to choose a unit, a loadout, and a spawn point. Is this ok Brold?

--

Looking for a mod team? You're in luck. Check out our mod page.

Aug 29 2010 Anchor

That is ok.

I'm not sure if you need to have a spawn point selection, since this is already part of the gametype.

biggest_kid
biggest_kid Modeler, Texturer, Mapper
Aug 30 2010 Anchor

Yeah but will that be included in some sort of gametype-specific GUI or should i include it in the class selection GUI? Im sure i could leave it out and bring it in later if needs be.

--

Looking for a mod team? You're in luck. Check out our mod page.

Reply to thread
click to sign in and post

Only registered members can share their thoughts. So come on! Join the community today (totally free - or sign in with your social account on the right) and join in the conversation.