Hello all,
I’ve been meaning to write this for a while now and have only recently been able to. As a project lead of a volunteer-effort-based passion-project, I believe I should update everyone with my personal standings in the project, and bring people up to speed with the current state of development with that personal kick to it.*
So, without further ado:
* A proper “state of development” document has been in the works with under-the-hood assets being made, code improvements, etc. Expect that one soon™.
Firstly, the game is NOT dead NOR dying.
Cue the list of excuses for lack of my personal progress on the game:
- University
- Actually yeah just University… not really a long list, huh...
My game code involvement last summer was stunted due to an over-the-summer research project I had to do. Further, my involvement on the game code this fall has been stunted due to working on a thesis (about that research) and the website for my senior design project class (more about that in a bit). But this isn’t the first time progress for Momentum has been stunted.
Some of the things that a volunteer-based passion project can suffer from is lack of structure, as well as lack of priority from the volunteers themselves. The first is manageable, the second, not so much.
“Gen 1” of this game, as I’ve come to calling it, was extremely unstructured. There was no overall vision for the game, no weekly meetings, no plan for anything with the campaign. We did all of our communication through Slack, which is like Discord for dads and workplace employees. It didn’t feel like a team was working on the game back then, because in all honesty, we weren’t really one. We had coders in their own channel, some artists making concepts in another channel, but no cohesion. There were also tons of people saying they could help, and then when brought on the “team”, they either didn’t or didn’t know how. Either way, I took this as a personal wake up call and as a direct reflection of my leadership of this project, and with some discussion with Zopha, started the second generation.
“Gen 2” is the current “generation” of the team and game. We have structure, and more importantly, a vision (more about that as well, in a bit), as well as initial ideas for an original campaign and story, and proper vetting and roles for team members. We have weekly rituals meetings every Saturday, and have had them for almost a year. Plus we’re on Discord now, which is highly more accessible and way less formal than Slack felt. The main problem is, over a year of meetings has shown that people have slowly prioritized the game less and less. Whether it was University starting to wrap up, or making commissioned maps and getting burned out, or having something personal come up in real life and dropping contact altogether, we’ve had team members come and go over the past few years, through both generations.
One aspect of this could be lack of motivation. After all, we have to be a free game (unless we raise ~$35,000, more info here). That’s fine with me; I personally believe bunnyhop and surf should be free. But there can’t be any deadlines, because if people can’t meet them, I can’t “punish” it (cut their pay/fire them). It’s also the same for rewarding those who meet deadlines. If I pay out of pocket to pay the entire team, I’ll have to ensure people get a fair pay for fair work, incorporate under some studio name, and have a whole new subset of tasks related to running a company. At only age 22. I believe the famous philosopher Notorious B.I.G. once said: “Mo’ Money, Mo’ Problems.” He’s not wrong. Remaining as a free game has made it easy on myself but sacrifices priority for team members. It’s a rather unfortunate balance.
I’d also like to take this time to point out the current team standing, code-wise. We currently have 3 active coders out of the total 10 coders with roles on the Discord. Maybe it’s because we’re working on Source 1, which is an engine that is heavily recommended against when stepping into the gamedev business. Maybe it’s because of a lack of overall flow of new code. Maybe it’s lack of motivation. Or maybe it’s because we haven’t reached out enough to those that would be interested.
Either way, with little codebase work, there’s little overall progress, since 1.0.0 of the game is heavily requiring an underlying framework (the game and, primarily, the website) to be able to be built upon. Features are introduced, and with them, bugs. Bugs need to be fixed. Sometimes it takes days to even figure out how best to implement a feature alone, and weeks to fully do it. Sometimes the bugs it introduces take even longer to track down and fix. There’s a whole Trello board of things that need to/could be done by 1.0.0. It’s daunting, but doable. It’s why the game isn’t dead or dying. It just takes time, so while progress grinds to a halt sometimes, it will pick back up, and slowly crawl forward. Oh right, speaking of 1.0.0...
Secondly, 1.0.0 may come out this December... maybe.
First thing is, I’d like to answer: “What is 1.0.0 going to be?”
1.0.0 is going to be the first public release of the game (no keys needed!), through Steam’s Early Access platform. As in, you’ll go to the Steam Store, search “Momentum”, see a marble roller game, get super confused, go back to the search bar, then click on “Momentum Mod” and find our game. You can click install right then and there, and the game is added to your account, permanently. You get all future updates for free, no more giveaways.
Though we’re releasing through Steam Early Access, Momentum is going to be rather polished for an Early Access game. The 1.0.0 build includes a map selector with working global leaderboards for each map. This build (already) includes multiplayer through lobbies, so you can play with your friends at launch. There will be a companion site (just hold on a little bit more I promise) that features a map browser, leaderboards, statistics, and community page. The overall game will have a proper public presence, something I personally require for 1.0.0’s release.
Furthermore, there’s a really, really heavy emphasis on that “maybe” from the subtitle. The reason why it’s so close is because the majority of the features required for 1.0.0 were held back because there was no website work done to meet them. And don’t get me wrong, it’s really easy to put things into scope, but brushing over too many small details can add up. Oh, all right, it’s time. Let’s talk about the website.
One of the last classes at my university involves 6-7 nerds wrangling into a team and working on a project for the entire semester. Luckily, I was able to convince the team that working on the game’s website would be worth it. I know, it sounds extremely selfish, but I wanted the project to be something that could live on past the class. Most coding projects at my university were specifically tailored to a class, and therefore, lived and died with it. This senior design project class was no exception, almost every premade “topic idea” were things that were no doubt going to be short lived, and the interesting topics were already taken anyways. To my surprise, my group was all on board with it. Whether they want to continue to be on the team after the class is up to them, though.
Anyways, I want you to go to the current website and take a good look at it right now. No, this isn’t what we’re working on this fall. This is old stuff.
It does its purpose, loads pretty quickly, but is otherwise extremely boring and lacks any visual style really. It runs on Flask, a Python based web framework that makes making simple sites a breeze, and I recommend it for anyone getting into web development. But there’s no real frontend framework, and almost all the work done for the backend was rudimentary and not properly fleshed out. A lot of the work done on the site was done by people who aren’t even on the team anymore. It needs an overhaul, starting from the ground up.
The website we’ve been working on this fall is based on the Angular 6 frontend stack, with a NodeJS backend. It runs just as fast (if not faster), looks incredibly better (and isn’t even done yet), and most importantly, starting fresh and being involved from the start makes me aware of what the code does and needs to do, and what content needs to be on it, and where that content needs to be. It’s way more exciting for me to work on this version of the website, and a lot of things can now be properly implemented.
But you may be wondering, “Why do you even need a website, what is it going to do?”
Glad you wondered that. We always needed a backend since Steam’s leaderboards and workshop have no proper moderation tools (to our standards, at least). The frontend website was always going to be an extension of the game. For starters, the main page is going to be just information about the game. If people hear about the game, or see someone playing it, they can easily go to the site to learn more about it, no logging in required.
When you do log in, you log in through Steam, meaning no extra passwords to worry about. You’re brought to a dashboard upon logging in, where you can immediately browse maps, look at leaderboards, see followed activity, browse users, edit your profile, view statistics… there’s a lot of features that a website would fit very nicely, instead of making the game feel bloated with UI.
In fact, here’s a list of some exciting features that need a website:
- Gamebanana-like Map Browser (minus the manual installing step)
This will allow you to:
- Upload your own maps for the possibility of being in the game
- Browse maps in the repository from the site, see maps that tickle your fancy, add them to your library for download when you next boot the game
- Rate maps you like, see maps made by specific mappers, sort by the rating, downloads, etc
- Online Leaderboards with In-Browser Replay Viewer
Metapyziks from Facepunch has worked on an open source replay viewer running on WebGL, and it’s insane how well it works. We’ll be looking towards implementing this for our site as well, to allow you to view replays without even needing to open the game! You can check it out here if you want a sneak peek of what it will look like.
- User Customization
You’ll customize things like:
- Profile info like alias, biography, and social links (twitter, discord, youtube, patreon, etc)
- Maybe things like lobby/server appearance in the future (already edited through the game)
- Badges that show up in game (Mapper, Tester, Team member, etc), perhaps user colors/glows/etc as well
- User Verification
With a free game comes cheap scumbags trying to impersonate people, so we can have a process that “verifies” a mapper/runner, so there’s the one and only “aimer”, for example. This “verification” shows up in user searches and more importantly, the in-game leaderboards.
- Statistics Pages
The game can have some panels that show some statistics, but having a dedicated page to statistics, with way more depth is very useful.
- Social Aspects
We’re not making Momentumbook or anything, but allowing users to follow runners or mappers and see activity by them was a really appealing idea, as well as:
- Comments on user profiles and maps (using something like Disqus)
- Maybe even a forums page… we’ll see
And all this is just the stuff we’ll be having for 1.0.0! Anything more can be possible if the community wants it enough. I also want to note that some of these features will be in the game as well, but may be fleshed out more on the site.
Thirdly, the future is exciting!
I tend to be optimistic about the future. So let’s talk about the future of the project! I’d like to explain the current release philosophy I have been following.
1. Finish the website [and graduate from University] (~2-months)
This includes rudimentary game integration with it, including (but not
limited to) map search and downloading, and leaderboards and replay
viewing. I’ll also be taking ~3 months starting December to relax before
doing a job search, which means no academic responsibilities, which
means 100% focus on Momentum.
2. Polish the website (~1 month)
This is where we’ll throw internal testers at the site, and get feedback for public release. We need to ensure project is suitable for public deployment.
3. Polish the game (~1 month, done in parallel with previous step)
This is where we ensure game integration with site works as well as it can, and all major bugs squashed, along with making sure proper localization of UI elements is complete.
4. Release 1.0.0 (Public Early Access “Beta”)
Big day! Mostly all of this is wrapping up the previous step and stepping through the hoops to actually get the game released on Steam.
5. <Interim versions>
These are versions where stuff like more game modes (like KZ and Tricksurf), dedicated server support (mev has
been working wonderfully on this), and heavy work on an original campaign (given there’s proper motivation for it)
happen.
6. Release 2.0.0 (Full Game Release)
Full game release, Momentum starts going downhill from here. Just kidding.
On top of this rough schedule, some other exciting things that will come to the project soon™ include:
1. Custom Momentum Hammer
This hammer has built-in HammerPatch, which means no vertex precision loss for complex brushes like surf ramps. We’ll hopefully also have all crashes fixed, with all quality-of-life features that are suggested. It’ll also have added features like working lighting preview (already working!), collaborative editing (think Google Docs), and eventual cross-platform support.
2. GPU-Accelerated VRAD
In layman's terms, this would allow mappers to compile their lighting for their maps with their graphics cards, which have significantly more processing power (cores) than CPUs. It also technically already exists but doesn’t have up-to-par output with CPU-based VRAD.
There’s a LOT to be done for Source in general, and even more so for this game. But it’ll (hopefully) unite to create the best of both worlds.
I’ve rambled on long enough...
Sorry about that.
It pains me to see people lose interest in the game, both on and off the team, while at the same time not being able to personally further progress in it myself. I’ve never wanted to quit or leave this project for dead. Personally, I would never be able to leave the game in its current state. I’m more of a completionist (or shitty “perfectionist”) of sorts, so my overall goal of the game is to at least get 2.0.0 out before I can even think about completely moving on from it.
But I cannot thank everyone else enough for their patience with this project, and Valve/GabeN memes aside, I can truly assure you it’s going to be worth all of this wait. I’m looking forward to 1.0.0 myself, as I’ve been wanting something like this game for a while. But 1.0.0’s just the beginning. It’s all exciting times, I assure you!
So, just hang on tight, and thank you so much for doing so.
- Nick (Gocnak), Momentum Mod Project Lead