The plan. Here's the short version:
- Make the Demo (Trial Course #6)
- Make the Early Access (Prologue)
- Publish the Demo and Early Access together.
The slightly longer version:
The project moved slowly up until a few months ago, as I've been working on a lot of projects (not all of which are video games) I have to keep moving forward to prevent them from getting stale. Before I can release anything in the lines of a playable demo, I want to make sure there's a purchase-able version of the game available to keep you going after the demo. We (Tim and I) are going with the Early Access model for all benefits, intents and purposes of the program - to get the required financial help for us to develop the game as more than just a hobby. I believe that it would be wise to publish the early access levels at the same time as we release the demo in order to ride the spotlight wave of the demo (provided it resonates with the players)
The demo is a mini quest that acts as a "...sometime during the adventure" type of deal, a self contained tale that is canon yet non critical to the main narrative. So I can say that right now, I'm at about 80% done with the Trial Course 6 and all it's bells and whistles. There is lots of music to be composed and lots of artwork to be created yet and I'm still discovering new and interesting ways of expanding the variation pallet of the level design, scale and ergonomic. There is still voice acting to be recorded, sound effects to be made, music to be composed, art to be drawn and a few mechanics to be added.
The Multiplayer Ok so the Local 4 player Co-Op is absolutely present in the Demo and Early Access! After all, making a rage educing co-op game that Tim and I could enjoy is at the very CORE of this project, it's its reason for existence. The story, the grime and commercial intent came later, when we started looking at what this project could possibly become beyond the scope of just making it for ourselves, just for us to play it together, create challenging levels to irritate one another. It's why we started making this game in the first place. Now Online Co-Op is something else. There were a few people on Steam Green-light who bitched and moaned about the lack of online co-op when I posted it and I can understand the frustration. Most of these kids have never played a local-coop game, from the looks of it, and see no advantage of it. Us old cats, however, know the true definition of local co-op (and by that I mean that it's a bazillion times better than online co-op). Now the above said do not mean that I'm going back on online co-op. The problem is, I've tried coding online games and from that I learned that there is a heap of issues involved with implementing online co-op into your game. Running Online Co-Op could be very expensive, depending on how you go about it. So let me explain.
First of all, making an online co-op means that I, as a programmer. have to effectively create two games, code-wise. When making a local co-op, you are dealing with just one PC taking input from the controllers / keyboard and mouse and moving objects accordingly to input, and triggering animations right in the game. It's all self contained, you can write one block of code for all the character movement and spawn as many characters as you want, augmenting the value of which controller the next character takes input from. Now with Online Co-Op you now have to write two codes: one for when the player is on the local machine AND one for when the player is on an Networked Machine. With online co-op, that's additional code for a client sending that input data and additional code for the server receiving that input as well as sending it back to all other clients (including clients code for receiving and interpreting that data) so that everyone's experience of that game lines up with each one another. Twice the work. And this just a drop in the barrel of what you need to do as a programmer of an online game. This is where the question if synchronization comes in, how do you make sure that all players are on the same level, how do you make sure that that one laser cannon is point at the same place in ALL games or an explosion takes place at the same spot, a door opens in for all players. It's easy to handle when it's local co-op, but with online co-op, now you need to have one game act as a server, which actually determines where that laser cannon is pointing and whether or not it is shooting and then send all that data to the clients so that their cannons are also facing in the same way. Two scripts for everything. Things like cut scenes, player deaths, player x/y positions and animations, dialog, choices, objects creation and destruction, random events, triggered events like doors and gates, button and switches, timed events, re-spawns and re-sets of those events, everything has to be synchronized across all games. And I gotta code all of that. To me, the worst part is that none of that code I have to write adds anything to the game's narrative, creative aspects, challenge or amount of content. So none of the stuff I find fun to create. It just adds that ability for you to play from your home instead of going to your friends house.
Now another major issue with networking with this particular game genre is making sure you have someone to play with. There will absolutely definitely be times when your friends will be busy with other chores or will want to play something else when you want to play RTAG rise co-op. So now you have to find people who want to play with you right then and there. After all, the point of Co-Op is going through the agony together to help each other. When one player gets a bit better, there are mechanics in place that allow them to help you pass the level. The big question is - finding those players when your friends can't play. Lets say you find some people on your favorite forum. Now you have to manually share your public IP, port forward, connect and play. Obviously you are not going to post your public IP and wait until someone connects... or hacks you computer or invades your home network. This stuff is private. So the next best step is to run a server manager. The game will connect to the server, you create your game session, the game will send the server the information and the server will list your session in the pool of all the people hosting their games. People wanting to play, will open the server list and see which game they want to join, depending on how far you are along the story or which level you are doing. So that's great, problem solved. Well... there's a small question of... running the server. Granted it's not a tough Xeon based Virtual Machine Supercomputer... or maybe it is... The server wouldn't be handing all the events and triggers, synchronizing data among players, no. This would be just a connection management server, something that pairs players up with other players. I don't know the logistics but this sort of a server would have to handle traffic from anywhere between a thousand to a few million connections, depending on how popular the game could become, how much people jump back to look for other hosted games, etc. This kind of a server would definitely not belong on a household network, so that means - renting a Virtual Machine that will run the server program. These could go from $10 up to $100 a month. Not a commitment I can make on my part time income. And even IF the game gets popular and achieves a successful early access funding from lots of users, running the server is still a money sink that servers no more purpose than just managing and pairing up connections. At some point that money will run out and the server will have to go. So as you can see there is a lot to consider when it comes to online co-op. So when it comes to online co-op, that is a commitment that I will take only if the game is highly profitable to justify the amount of work associated with the upkeep and actively addressing coding issues that come with this sort of functionality. Other than that, local co-op is always there, grab a bus ticket and go to your friends house with a couple of controllers, you only need one copy of the game for that after all.
Current state of the game, id say is too far along to think of any sort of abandonment and it has spawned too many ideas and a story too juicy to pass up. Now its not to say that I feel bound by this game and can't progress anywhere else without completing it. This sort of thinking realyl destroys the creative drive, motivation and morale to continue developing the game. That is a self regulating condition I've voluntarily imposed on myself, heh. I've started too many games that are too ambicious to handle on my own alone while other projects have already been started. I'm developing more and more strategies that speed up the creation of levels, placing decorations, variety, lighting and challenges. There's a new discovery and a technique learned in every batch of levels I make. Tim is going to set aside a few week-ends to help with the level creation, this wouldn't be the game without it. There's always some bug I come across that just takes an entire week out of me to figure out. And it's something I should probably account for when the game will start getting sales, where setting and meeting deadlines becomes a concern with real life consequences. After all I'm alone who's programming, debugging, writing music and creates art and animations for this project. I'm still not settled on which direction the game would take when it comes to visual style, music genres and method of telling the story.There's lots of sources for inspiration when it comes to music, I listen to EDM and Psytrance, DnB is very suited for this sort of a game but I also want to have some Ambient, Down to Earth pieces during some Atmospheric levels, places of colossal scale, making the player feel small. And that's just music, I want to have puzzle levels, relaxing exploration beauty levels, close quarters levels, challenge levels, fast paced traversal levels and with all that I need to fit the narrative of the main story. How do I combine all these types of levels? Perhaps some ambient rooms with puzzle piece that need to be solved to progress, some fast paced close quarter rooms that give player no break until the very end of the level. Some mid level complexity levels with timed events and puzzle elements. Etc. That and I still need to settle in on the general visual style. I started with Flash sprites, vector graphics, then I realized that the way Flash converts the built-in vector graphics to raster graphics (the much more widely used format of other programs) is very inefficient, resulting in broken / blurry imagery in Game Maker. Learn something every day though so I went off and remade most, if not all of the assets in Photoshop. Then I thought that the style was far too plain. I mean I could go for the Super Meat Boy type grime-less gradient based flash animation but I think that ship has sailed at some point during the art content creation. I seem to have taken a liking to this more grainy, grittier look, it's distinct enough to feel right with the plot of the game, in my opinion. So now that's my approach to the creation of the art. Bit pf grainy texturing and fading. I've just re-discovered the fact that I can add assets on top of tiles to add more variety to the levels overall look. I can avoid the generic 32x32 pixel art style and go with more variety. The strange part is that I knew all along that you can place sprites outside of the 32x32 grid, it's just that I've spend so much time getting to know the new auto tiling feature of Game Maker Studio 2, that the notion of variability and versatility would only be achieved by having to be embedded in the tiles design, has gotten somehow embedded in my mind, and only now I was able to break it. Things like dirt, stains, dust, paint chips, drips and spills can be create as decals and laid on top of a levels 32x32 tile based nature.
God I can't wait to write the music for this game. And as a slap to the face, music is usually the last step in game dev. But luckily, with this sort of a game, I just have to write out the level description and use that for writing the music as the chosen genres for this game are fairly loose in how much the visuals need to reflect and inspire the style of the music. There's a lot of music from my upcoming album that can be used in this game. The only problem is that, all electronic dance music published by me is going to be sync licensed, meaning anyone who puts that music up on you-tube or service alike will get an automatic demonetization restriction and all revenue will go to me. it's a fine way to combat piracy and unauthorized redistribution but it would be a huge turnoff for many let's play you-tubers. Knowing that you can't get revenue from a games let's play video because they are going to get a copyright restriction due to sync licensing from it's music will definitely discourage many from doing one. So if I want to use any of my existing music I found fitting to the game, I'd have to heavily modify and re-write it, to prevent sync licensing from marking it. Just another thing I have to consider really.
So all in all I'm working on getting that Early Access (Prologue) batch of levels done as well as finish up the Demo levels (Trial Course 6). Lots of work to be done but Tim and I have an interesting strategy, we both play each others levels for the sake of enjoying the game ourselves so looking forward to that.