7DFPS 2014: let's make a better FPS template!
by Daniel Buckmaster · 10/20/2014 (2:24 am) · 53 comments
I've been umming and ahhing about what I'd like to make for 7DFPS this year. I've finally realised the answer was staring me in the face: a new FPS template for T3D!
This ties into some plans the SC have been making for increasing the ease of getting new content (like templates) into Torque, so watch this space for news on that exciting front. Ideally, this template will be the first in a new wave of many better stock templates that users will be able to easily pull down and start working from, and which will be maintained and improved independently of the main engine.
Within this framework there's a lot of freedom, but here are some things I want to accomplish:


Something like this, with more colour than the first and less than the second
That said, I do want to make the game look nice, and show off some of Torque's built-in coolness like HDR, glow, fog and so on. As well as new hotness coming in 3.7 like accumulation volumes and ribbons.
But, most importantly, it could be significantly more finished with the help of you.
You don't have to participate for the whole week. Want to contribute a single art asset? Cool. Want to write a single weapon script or enemy type? Awesome. A particle effect? Love it. If people are interested in coming aboard for a day or two, that'd be fun - or if they want to work on a feature over the entire week, just putting in a little bit every day, that'd be sweet too. If there's significant interest I'll work up some ways for us to collaborate, like having a formal task list and so on. We'll probably hijack a corner of the wiki to communicate and document our work.
But I must again stress, I won't be running this as a 'community game'. It'll be my project, subject to democratic feedback of course, and I feel like I'm pretty reasonable when someone gives me a good argument. But we won't have a lot of time for discussion or debate in a week-long project.
EDIT: here's the design doc.
But we've already got an FPS template!
We do - the Full template is set up as a kind of poor-man's-arena-shooter, just waiting for you to come along and add your own content. But I have many problems with it, the most important of which are:- The gameplay is outdated - I want to demonstrate features like iron-sights, dual-wielding, grenade-throwing, melee attacks, and other stuff that has happened in shooters since 1999. Having examples of scripted events would be super helpful, too - the current template gives you no help if you want to create a single-player or co-op experience. I'm not even talking QTEs or big COD setpieces, but simething as simple as having to set switches to open a door - and having a win condition for the level, and managing the flow of clients joining so they don't just spawn immediately. But it'd also be good to just do solid FPS Gameplay right, and not have the machine gun stutter and fire at uneven intervals.
- It doesn't provide examples for most of T3D's included features. This has been remedied slightly with the inclusion of the Outpost level in 3.6, which aims to just chuck in as many stock objects as possible to make them easy to test. But they're not exactly used in a useful or attractive way. And there's so much more we could be using and doing with the existing features that are in the engine.
- The code is structured in a way that makes it difficult to modify. Functionality is split between different code files (e.g. datablocks in one folder and scripts in another), at the same tie as being bunched up in monolithic classes (e.g. Armor). Even though the engine includes ways to make changes by composition (e.g. EventManager) instead of modification (e.g. adding more stuff to existing callbacks), they're not used. And there's a big dose of callback hell going on (e.g. the mission loading sequence), which could be replaced by something easier to understand or modify (e.g. a state machine).
- It's just not any fun to play! I honestly think a template should demonstrate at least a glimmer of fun, something that needs to be polished, rather than something that needs to be replaced entirely.
So what do you propose?
Well, basically, to fix all these problems. I want to make a simple FPS game that can act as a base for people to make their own modern FPSs. I want to demonstrate the use of lots of stock classes, while avoiding habits that the current script templates fall into. I want to make something fun and useful. I want to provide a large chunk of high-quality, well-documented code that allows learning, rather than demanding that it be learned. And I want to do this all in 7 days (ish. see below).Why do you get to decide to replace the current template?
Because I'm on the Steering Committee. Muahahaha. I'm not being serious, don't worry. Or am I? But really, this question is a straw man. I'm not aiming to replace the current template, so don't panic. I want to provide an alternative that's hopefully better. If it proves to be so, and adoption of this template means the old template isn't needed any more, well, I can't say I'd be sad to see it go, but nobody will be forced into using it.This ties into some plans the SC have been making for increasing the ease of getting new content (like templates) into Torque, so watch this space for news on that exciting front. Ideally, this template will be the first in a new wave of many better stock templates that users will be able to easily pull down and start working from, and which will be maintained and improved independently of the main engine.
Are you even allowed to do this for 7DFPS?
Let me quote the entire 7DFPS FAQ here for you:Quote:
Q: Can I- A: yes.
Okay, so what will this new template look like?
On a basic level, I want it to take the form of a single-level co-op game. You will make your way through a linear progression of script events (note, though, that the map will probably be nonlinear, except for locked doors), and co-op partners will be able to join you along the way. You'll fight through some really basic AI opponents (probably just turrets, unless someone really wants to write enemy AI), and eventually fight some sort of boss. At this point the game will probably just restart, but I'm open to other suggestions.Within this framework there's a lot of freedom, but here are some things I want to accomplish:
- Halo-like weapon pickups (i.e. you can carry two at a time, and pick up ammo from weapons on the ground), grenades, and items (you can carry one at a time, except maybe for special cases).
- Iron-sights, dual-wielding, melee attacks, and grenades. I imagine these all working pretty normally. Refer to Halo for melee, though possibly not grenades (maybe they'll be a separate thing you switch to).
- Some little vehicles, like the Ghosts (hover bikes) from Halo.
- Enemies, which are important if single-player is a thing. Some ideas include a floating blimpy sort of thing, turrets (since they don't need much AI), and possibly foot soldiers with basic AI if time constraints allows, or if someone else wants to hop in and work on them. Maybe even some larger ground types. Also, enemies that are dropped off by dropship. All-time favourite.
- Context-activated buttons! And other things. Can't decide yet whether they should be distance-activated like Halo, or whether you have to look at items.
- Bunkers! Both above and under ground. They'll be important to the 'plot'.
- Locked doors (or force fields, or whatever) and switches that open them. Basic FPS plotting, really. There may be 'cut-scenes' where all players are shown a door opening or something when you press the right buttons.
- Juice! By which I mean, effects. Explosions, particles, and hopefully sound effects. None of them will be particularly good, I'm sure, but I hope that quantity will make up for quality.
- Lots of guns. An improbable quantity of guns. Not quite the 50 bazillion that Borderlands had, as these will all be hand-tailored, but I want to cover the FPS staples and then some. And maybe separate melee weapons. We'll see.
- Bombs. Sticky bombs, bombs that create physical zones, bombs that explode on impact, bombs that settle then shoot projectiles in random directions.
- Recoil. Hopefully. It's kind of important.
- Drop-in co-op, which means a master server. Don't worry, it should be a breeze. I might also get around to arena deathmatch or team deathmatch, which are important to demonstrate.
- Using Twillex for stuff like thickening the level fog over time.
- Full controller support, yeah.
What about the art?
Aha, you've remembered that I'm not exactly the artistic type. I plan on using mostly textureless, low-poly assets with flat colours and an edge-detect shader to make a low-res graphic-art sort of look. The art assets, which I hope there will be many of, will focus on function. Animations will be the most important part, as well as just making sure everything has its own asset. I mean, I will attempt to provide decent quality that someone would potentially reuse in their own prototype. But when it comes to prototyping, having lots of assets is better than having good assets.

Something like this, with more colour than the first and less than the second
That said, I do want to make the game look nice, and show off some of Torque's built-in coolness like HDR, glow, fog and so on. As well as new hotness coming in 3.7 like accumulation volumes and ribbons.
This sounds like a lot do to in 7 days
Especially with an exam at each end of the week. I don't necessarily intend to finish this thing completely in the 7 days which are allotted. For a start, I'm going to cheat a bit by doing as much research and design in advance as I can. Level design will hopefully be entirely done before the jam starts. Also, I've been meaning to write a master server tutorial for t3d-bones anyway, so that can hopefully be directly used in the template, assuming the code quality is good enough. Same deal for a default character mesh and some animations. And of course I'll keep working after the jam is over to make it into an actual template that someone might want to use (I'm sure some code cleanup will be required - and there'll be lots of documentation work to do).But, most importantly, it could be significantly more finished with the help of you.
Me?
Yes, you. I'm hoping to make this a community affair. We so often talk about making a community game - and don't get me wrong, this is not that. I plan to be the supreme overlord of this project, and will make any and all decisions finally. But if you'd like to be a part of creating something great for Torque, with Torque, then I'd welcome you aboard.You don't have to participate for the whole week. Want to contribute a single art asset? Cool. Want to write a single weapon script or enemy type? Awesome. A particle effect? Love it. If people are interested in coming aboard for a day or two, that'd be fun - or if they want to work on a feature over the entire week, just putting in a little bit every day, that'd be sweet too. If there's significant interest I'll work up some ways for us to collaborate, like having a formal task list and so on. We'll probably hijack a corner of the wiki to communicate and document our work.
But I must again stress, I won't be running this as a 'community game'. It'll be my project, subject to democratic feedback of course, and I feel like I'm pretty reasonable when someone gives me a good argument. But we won't have a lot of time for discussion or debate in a week-long project.
That doesn't sound like any fun at all
I'm saddened you feel that way, but I'll be doing this regardless! I'm going to try to force myself to release a video update every day, because the blog updates I tried during Monster Mash ended up being a bit tedious to write, but I liked sharing my thoughts.EDIT: here's the design doc.
You haven't mentioned when this is happening
Oh! 7DFPS starts on November 8 and goes until the 15th. That's about three weeks from now. Reserve a place in your diary!About the author
Studying mechatronic engineering and computer science at the University of Sydney. Game development is probably my most time-consuming hobby!
#42
NiN - I'd forgotten about that! Definitely would make a good 7DFPS sort of game, with some cleaned up art and more gameplay.
10/24/2014 (3:56 pm)
Duion - do you mean the Giger shapes or the toon shading? As for 'already there', that amounts to 'basically nothing'.NiN - I'd forgotten about that! Definitely would make a good 7DFPS sort of game, with some cleaned up art and more gameplay.
#43
The Giger shapes are ok for me, but I would not like to do comic style art.
10/24/2014 (4:11 pm)
You can just use Ron's packs or mine, I have no idea what the rules are, but it looks like there are none and even if you start with nothing you can still do regular styled art relatively fast.The Giger shapes are ok for me, but I would not like to do comic style art.
#44
If you still want to contribute, I'd be happy for you to submit textured items and I'll just remove the textures temporarily ;).
10/24/2014 (6:15 pm)
No, I cannot, trust me. This is from experience. And unless I get people volunteering to provide all art assets, I'd prefer to have a consistent style over an inconsistent one for the initial project. I'd prefer having lots of items and animations than fewer items with more finished art. The goal is eventually to have proper non-comic art, but I don't think that's feasible for the jam.If you still want to contribute, I'd be happy for you to submit textured items and I'll just remove the textures temporarily ;).
#45
10/25/2014 (8:13 am)
I can provide anything except player models, I did not dig into the animation and implementation into Torque3D yet. If you want it without textures fine, it will save most of the work.
#47
Duion, how much do you think you can make in a week or so? In the next week or so I'll start to put up more detailed lists of what I'll be after. I'll start to decide on some solid goals for before, during and after the challenge.
10/26/2014 (5:39 pm)
Nah, no money need change hands here. This is a project of passion.Duion, how much do you think you can make in a week or so? In the next week or so I'll start to put up more detailed lists of what I'll be after. I'll start to decide on some solid goals for before, during and after the challenge.
#48
I was just wondering as I was googling some docs, is the recoil action built-in or as mentioned, needs some work to get it included?
Current docs:
docs.garagegames.com/torque-3d/official/content/documentation/Artist%20Guide/Pri...
Some new docs I found..
torque-3d.readthedocs.org/en/latest/artist/playercharacter.html
10/29/2014 (3:37 am)
Hello guys,I was just wondering as I was googling some docs, is the recoil action built-in or as mentioned, needs some work to get it included?
Current docs:
docs.garagegames.com/torque-3d/official/content/documentation/Artist%20Guide/Pri...
Some new docs I found..
torque-3d.readthedocs.org/en/latest/artist/playercharacter.html
#49
10/29/2014 (11:01 pm)
Recoil isn't built-in. You can solve it simply in scripts by modifying the client's mouse moves when firing, but that's susceptible to hacking.
#50
I guess it's already included and working?
10/30/2014 (4:55 am)
thanks, but I am talking about the one under shapeEditorHints.ed.csQuote:
sequence3 = "light_recoil" TAB "Player has been hit lightly";
sequence4 = "medium_recoil" TAB "Player has been hit moderately hard";
sequence5 = "heavy_recoil" TAB "Player has been hit hard";
I guess it's already included and working?
#51
10/30/2014 (5:54 am)
Those animations are only cosmetic; player aim is unaffected. Also the comments there appear to be completely incorrect... the comments indicate that they're recoiling from damage, whereas the animations are actually used on weapon recoil.
#52
11/29/2014 (2:32 pm)
Any updates on this?
#53
You can check out my latest thoughts on the wiki page. I think I will end up reducing the scope of the game itself somewhat, and focus on stuff like the editors I can use to make it, infrastructure like the master server, and so on. As in, 'fps game creation' rather than making a detailed fps. But don't get me wrong, I want to make the game itself fun and featureful.
My priority right now, though, is this. Once that's up and running I'll get back to plonking away at FPS stuff.
11/29/2014 (7:42 pm)
I had to quit the jam because I realised that the exam I had on the jam's last day was going to need a lot more attention than I thought it would. Since then I've done another exam and a bunch of other stuff. I'm still committed do working on this, though plans are evolving constantly.You can check out my latest thoughts on the wiki page. I think I will end up reducing the scope of the game itself somewhat, and focus on stuff like the editors I can use to make it, infrastructure like the master server, and so on. As in, 'fps game creation' rather than making a detailed fps. But don't get me wrong, I want to make the game itself fun and featureful.
My priority right now, though, is this. Once that's up and running I'll get back to plonking away at FPS stuff.


NiN-NiN
Here is a youtube vid
The main Mechanics were
- Gravity portals to float the player up or down also used for a invisible ledge to walk on
- Auto Jump when platforming
- Cannon to shoot the player quickly across to another platform
- Walking on walls and ceiling (I didn't have time to modify the source code to work out gravity changes so i used a clever trick of duplicating the enclosed room 5 times all rotated to a set ceiling or wall to be the floor then used teleports to transport to the other room that's rotated so the wall is now the floor)
There were a few other small things I did that I can't remember off the top of my head but they might work well and is literally a few mins to implement into the game
Note: I wasn't allowed to use any art assets in the jam and didn't have time to learn to model so everything in game is using the sketch function including stairs, pillars etc so it does kinda look early 90's