What would be your take on the concept of visual novels/adventure games and would you believe it's a good first start for an indie dev? Also what would you believe to be the capable limits a one-man Indie dev can do? (For example, I've had thoughts of composing, animating, writing, programming, and designing an adventure game, as well as probably create its own engine. Would this be considered "too much"?) Thank you!
It’s kind of funny, because this was the exact line of reasoning I had when I began my career before I got my first job. I wanted to start a project that I could do by myself, and I thought that a visual novel would be able to check all of the boxes - learn about all sorts of systems while still being able to do something creative. It seemed simple enough - display images, play some sound, display text properly timed with the music. It did eventually prove to be too large in scope for me, mostly because I didn’t know much at the time, and the total amount of work necessary to complete the project was much more than I had thought. I didn’t have access to it at the time but, if I were you, I would use an out-of-the-box game engine like Unity, GameMaker, etc. to build my first game. It lets you learn the basics without forcing you to do everything.
The main issue here is that doing a lot of this work isn’t trivial. Creating an engine takes a long while, especially if you aren’t familiar with what’s necessary to make it work efficiently. Then there’s all of the art assets - they need to come from somewhere. Beyond that, you’ve still got to use the systems and assets you’ve built to create the game itself. These are all tasks that can take a long time for a single person to complete.
If you want to write your own engine, there’s a large amount of foundation work that needs to be done before you can even get to anything that resembles the game itself. Here are some of the systems you’ll need to write if you wish to do this:
- A renderer to display the stuff you want to display
- A UI system to allow the user to interact with the game
- An audio system to play music, voice, and sound effects
- A save and load system to allow the player to save and continue progress
- An input system to translate key bindings and mouse movements to game commands
- A file system to load assets like graphics, sounds, etc. so that your renderer, audio system, etc. can do what is needed with the assets
This doesn’t yet include the gameplay stuff, like keeping track of player stats and variables, branching dialogue, and things like that. This is the very basic core systems needed to even think about gameplay.
Then consider things like the art assets you’ll need. For a visual novel, you need a lot of character art. But you’ll also need a lot of environment art - where will your story take place? How will you put that together? You’ll also need UI - every game does. Every icon, every button, every window, every font, every menu will need its own art and layout somehow. Will you draw it all? How will you put it together? You’ll need to compose the music, sure. But are you going to arrange it? Record it? How will you go from the composition to the finished piece? And how many pieces will you need for the entire project? This doesn’t begin to look at the character art or animation requirements. There’s a reason a lot of fan visual novels are very bare-bones in terms of production quality.
Remember, this is all stuff that’s needed in addition to coming up with the game design like who your characters are, what their story arcs will be, and how the player will interact with them. A huge amount of this work is at the foundation level - it isn’t the game so much as it is the stuff necessary to begin building a game. It could take you months of work setting this foundation before even considering your storyline. Instead, I would suggest working with an existing engine like Unity or GameMaker. It takes care of most of the foundation work for you - you don’t need to worry about file formats, capturing inputs from hardware, or rendering to the screen. Instead, you can focus on how you want to build the features you want. And… scope small. Always try to scope small. You don’t need to make your first game your magnum opus. It’s a lot more encouraging to finish what you start, then start a second project with more knowledge and experience. Start small, then add to it as you go.
Related Reading:
Got a burning question you want answered?
- Short questions: Ask a Game Dev on Twitter
- Long questions: Ask a Game Dev on Tumblr
- Frequent questions: The FAQ