• Advertisement
Sign in to follow this  

Unity I want to be an indie game developer, where do I start?

This topic is 1858 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

I am only a teenager but I want to make indie games. I do not mean big 3D games but simple creative games like fez, super-meat boy, minecraft, world of goo stuff like that. Now obviously when I simple I understand that these games are incredibly hard to create, I mean that they have a simple concept.
Over the past few months I have experimented with a bit of java, c++ and unity, however I still don't know much about them and have confused myself slightly. Really what I want to know is:

where do I start?

what language / game engine should I use?

Any good tutorials?

Share this post


Link to post
Share on other sites
Advertisement

Step 0: Have vision.
Step 1: Design a game or have a game idea you want to make.
Step 2: Build the game according to your game design
Step 3: Test and revise your game over and over again until it's exactly what you want
Step 4: Market and release the game to the world

Naturally, step 2 is going to be the most difficult step to do because it's going to require a bunch of skills which you may not necessarily have at the moment. That's okay. This is where you teach yourself everything you need to know, or find people who have the skills you need and you can convince them to work on the project. You'll be learning the exact skills you need and you'll be building your project at the same time, so you get two birds with one stone. You'll go through some learning pains, you'll experience frustration, moments of glee and excitement, your project may succeed or fail, but if you stick with it, you'll learn a ton along the way, gain valuable experience, and possibly a marketable product to sell.

Bottom line: just do it.
An "Indie developer" is just a title which you can take upon yourself. It means nothing, really. What matters is what you create.

As for languages & platforms, I recommend Unity3D with C#, or C# with XNA.

As for producing your game, you're going to need programming, art, music and sound, and possibly writing.

The best advice I can give you is to keep your game simple enough for a single person and beginner to complete. A polished and completed yet simple game is infinitely more valuable than a complex but incomplete, unpolished game. Keep your features/requirements few! Think along the lines of old atari games, like "Pacman", "Breakout", "Tetris", "centipede", etc. and add your own small twist to the design. Then once you start, punch yourself in the face every time you think about wanting to add a new feature (its a project management thing, not a crutch on creativity).


Thanks this is really helpful, I have been watching some c++ tutorials lately, is this a bad idea? So far I understand everything.

Share this post


Link to post
Share on other sites
Remember no idea is a bad idea, but the complexity of even the simplest ideas can confuse you; so be sure to make good use of planning.

When planning make sure if you have an idea don't just say okay that's one idea. Break it down and figure out all the parts to it; this will keep you from overwhelming yourself and making sure you are thinking one step at a time.

ie:
-Sample idea for lets say character creation
-main character
-hair design
-clothing
-voice
etc..

This will keep you on task. You can even set deadlines for yourself, but don't make them to close together; give yourself time! remember fez took 5 years with 2 people. Even the greatest simplicity can be very overwhelming.

just a quick tip for you.

Share this post


Link to post
Share on other sites
Thanks this is really helpful, I have been watching some c++ tutorials lately, is this a bad idea? So far I understand everything.[/quote]
Lot's of people will tell you C++ is not for beginners but it's in fact just fine. Since you already know JAVA you should breeze right through it anyway.

I recommend if the game is 3d that you use C++ & OpenGL & Bullet Physics
If the game is 2d then C++ & SDL

SDL is a library that does pretty much everything, control input, image loading, audio output, 2d graphics and more. It makes your code really portable because you need to make absolutely no OS specific calls.

I recommend you start with a platformer, that will teach you how a game works then you can move on to 3d if you so choose.

Share this post


Link to post
Share on other sites
My suggestion, start saving for school.
If you're serious, nothing beats a good education. I would suggest FullSail, expensive but worth it.

These are student projects a group of 4 to 9 students make in 3 months:
http://gameproject.f...il.com/gpgames/

To get a better idea of what goes into the design, download and look trough the docs. There are also some code samples in there. Edited by uglybdavis

Share this post


Link to post
Share on other sites

[quote name='slayemin' timestamp='1348770298' post='4984439']
...


Thanks this is really helpful, I have been watching some c++ tutorials lately, is this a bad idea? So far I understand everything.
[/quote]
No, that's excellent. Treat the C++ tutorials as a teacher giving a lecture, then assign yourself homework to test your understanding of the tutorial content. However, don't forget that the point of following all of these tutorials is to learn how to build a game so that you'll build a game. There's a danger that you'll spend all of your time learning how to do things but won't ever actually build anything (a case of analysis paralysis). So, my advice is to start building stuff and when you run into a gap in your knowledge, then seek tutorials/references to fill that void :)
Start simple with a "Hello World" type program (get stuff on the screen!).
Then, look into what it takes to get multiple "Hello World" on the screen (like, 1000).
Then, try to put a graphical image onto the screen (may take some R&D)
Then, try to move that graphical image around on the screen (may take some R&D)
Then, try to move that graphical image around based on user input.
If you can do all this, you already have the necessary skills to build Pong.

Pong is an excellent game to start with. It's design is simple, the game is complete, and its attainable for newbies. You can focus on the structure of your game code and building a complete game framework. It's also a great introduction into concepts like AI, input, managing game states, graphics, game play, etc.

Share this post


Link to post
Share on other sites
In my opinion, if you want to make simple 2D games you can use C++ & SDL as suggested before.
I started learning java in college and when i came to C++ it just felt natural. If you comprehend what vectors are, object oriented programming, Cartesian plane, cicles, if...else, you might actually already have what you need to start developing games. If you want to take this C++SDL route i recomend you this page LazyFoo, very simple and very complete tutorials. Also check this youtube channel thecplusplusguy, again well explained and complete tutorials that takes you from starting your proyect to making a sidescroller game like Super Mario and more, the only thing about this channel is that this guy have a little "difficult" accent.

I hope this helps you, good luck. Edited by Xirion

Share this post


Link to post
Share on other sites

Allthough modern C++ does allow you to use it like a very high level language aswell (Which is reasonably easy), Just because the language allows you to mess around at a lower level doesn't mean you have to do it.


I'm not quite sure what you mean by "modern C++", but unless you have a GC system working behind the scenes, I'm pretty sure that you would still have to manage memory on your own. Right?


in my opinion the biggest problem with C++ for beginners is the quality of tutorials online (most of them are crap and will push beginners towards low level features of the language far too early or worse, teach them the unsafe C way of doing things before or instead of the safer C++ equivalents) and the unnecessarily obnoxious build model. (a very large number of beginner problems with C++ are related to the Linker, not the language)


Well, you have to know both (safe and unsafe) to make the distinction, and to see the benefits of one over the other. So, I think it's something that has to be covered, but not necessarily in a C++ tutorial; A good C tutorial should be used as a prerequisite.


If someone wants to start by learning a low level language they should imo start with assembly on a less complex platform than the modern PC and not worry too much about making games, If the goal is to learn how to make games then a high level language is the better option.


Absolutely! Upvote for you.

Share this post


Link to post
Share on other sites
Teenager to teenager, I first started with a dream. A dream of an awesome game. That dream turned into a lot of writing - maybe about 100 pages of stuff about our game. Whilst designing, I picked up on Lua. After some coding of a basic engine, I though "Hey, this is way too slow for our expectations." So I ditched that engine, and went on to learning C++ as my first language. After reading a book in a month or so, I dove right in. I never thought once to start with something simple. For the past 2+ years I have been re-writing and writing new code from the first int main() I wrote.

I wouldn't say go brutal force on it, but definitely have a passion and enough effort. My friend wants to code with me, but lacks both.

Share this post


Link to post
Share on other sites

[quote name='SimonForsman' timestamp='1348814946' post='4984635']
Allthough modern C++ does allow you to use it like a very high level language aswell (Which is reasonably easy), Just because the language allows you to mess around at a lower level doesn't mean you have to do it.


I'm not quite sure what you mean by "modern C++", but unless you have a GC system working behind the scenes, I'm pretty sure that you would still have to manage memory on your own. Right?
[/quote]
It depends on what you mean by "manage memory", with smart pointers and RAII memory and resources get deallocated when the object/smartpointer holding them goes out of scope so memory management then only really includes allocating memory (Which you have to do in C# and Java aswell).

Share this post


Link to post
Share on other sites

Any good tutorials?


The one thing that tutorials can't give you is feedback - so post code on here at gamedev.net. There are tons of smart developers on here who will give you feedback.
There is also a "For Beginners" section on this site, check it out.

Share this post


Link to post
Share on other sites
The only issue I have with online tutorials is that, as a beginner, you have no real way of discerning whether the information is correct or if you're being taught bad habits. That's not to say that there aren't great online resources out there, rather it would do you no harm to have a good quality, formal text book at hand and work through both in tandem.

Share this post


Link to post
Share on other sites
If you are into 2D then my advice is to use lua-based LÖVE framework, it's just awesome for a rapid game prototyping. Lua is a simple language, so it would be easy to take a quick grasp of it. And there are many good open-source game projects written in Love2D. It's also cross-platform so you can release your games for Windows, Linux and Mac easily.

Share this post


Link to post
Share on other sites

If you are into 2D then my advice is to use lua-based LÖVE framework, it's just awesome for a rapid game prototyping. Lua is a simple language, so it would be easy to take a quick grasp of it. And there are many good open-source game projects written in Love2D. It's also cross-platform so you can release your games for Windows, Linux and Mac easily.
I also recommend LOVE, its far easier to work with, than any other engine out there(besides maybe Game Maker).

Share this post


Link to post
Share on other sites

I just want to say ALL of this information has been really helpful to me, and looking back to my original post I actually feel kinda nostalgic about this whole post.

 

Just to let you know, I experimented around a bit and am currently working on my first html5 game (although it is very basic)! Once again, thanks for all of your input, I can not wait to fully enter the world of game development.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
  • Advertisement
  • Popular Tags

  • Advertisement
  • Popular Now

  • Similar Content

    • By 3dmodelerguy
      So I am building a turn based rogue-like (think CDDA). The game is going to have a very large map (up to 1000's x 1000's) however to alleviate most of that I obviously can't render everything so there will just be render a certain radius around the player and just load in and out data as the player moves.
      The next major system I am prototyping is making interactive tiles destructible and pretty much everything will be destructible besides basic landscape (cars, doors, windows, structures, etc. will be destructible)
      While I am only rendering a certain amount of tiles around the player, I want to keep the amount of colliders active at one time to be as small as possible for performance and currently the tilemap tool I use automatically merges colliders together.
      So instead of creating a separate colliders for each of these tiles and having the destructible behavior tied to that object (which my tilemap tool would allow me to do) I was thinking that I would store an array of all the X and Y locations for the interactive tilemap layer and let the tilemap manage the colliders. 
      Then when I hit a collider on the interactive tilemap layer, instead of of getting the behavior for how to deal with the destruction for that tile from that game object, I would pull it from the array I mentioned earlier based on the tile I attempt to interact with which I already have.
      Does this sound like a good approach? Any other recommendations would be welcomed.
    • By NDraskovic
      Hey guys,
      I have a really weird problem. I'm trying to get some data from a REST service. I'm using the following code:
       
      private void GetTheScores() { UnityWebRequest GetCommand = UnityWebRequest.Get(url); UnityWebRequestAsyncOperation operation = GetCommand.SendWebRequest(); if (!operation.webRequest.isNetworkError) { ResultsContainer rez = JsonUtility.FromJson<ResultsContainer>(operation.webRequest.downloadHandler.text); Debug.Log("Text: " + operation.webRequest.downloadHandler.text); } } The problem is that when I'm in Unity's editor, the request doesn't return anything (operation.webRequest.downloadHandler.text is empty, the Debug.Log command just prints "Text: "), but when I enter the debug mode and insert a breakpoint on that line, then it returns the text properly. Does anyone have an idea why is this happening?
      The real problem I'm trying to solve is that when I receive the text, I can't get the data from the JSON. The markup is really simple:
      [{"id":1,"name":"Player1"},{"id":2,"name":"Player2"}] and I have an object that should accept that data:
      [System.Serializable] public class ResultScript { public int id; public string name; } There is also a class that should accept the array of these objects (which the JSON is returning):
      [System.Serializable] public class ResultsContainer { public ResultScript[] results; } But when I run the code (in the debug mode, to get any result) I get an error: ArgumentException: JSON must represent an object type. I've googled it but none of the proposed solutions work for me.
      Also (regardless if I'm in the debug mode or not) when I try to do some string operations like removing or adding characters to the GET result, the functions return an empty string as a result
      Can you help me with any of these problems?
      Thank you
    • By nihitori
      The Emotional Music Vol. I pack focuses on beautiful and esoteric orchestral music, capable of creating truly emotive and intimate moods. It features detailed chamber strings, cello and piano as the main instruments, resulting in a subtle and elegant sound never before heard in video game royalty-free music assets.

      The pack includes 5 original tracks, as well as a total of 47 loops based on these tracks (long loops for simple use and short loops for custom / complex music layering).

      Unity Asset Store link: https://www.assetstore.unity3d.com/en/#!/content/107032
      Unreal Engine Marketplace link: https://www.unrealengine.com/marketplace/emotional-music-vol-i

      A 15 seconds preview of each main track is available on Soundcloud:
       
    • By RoKabium Games
      Another one of our new UI for #screenshotsaturday. This is the inventory screen for showing what animal fossils you have collected so far. #gamedev #indiedev #sama
    • By eldwin11929
      We're looking for programmers for our project.
      Our project is being made in Unity
      Requirements:
      -Skills in Unity
      -C#
      -Javascript
      -Node.js
      We're looking for programmers who can perform a variety of functions on our project.
      Project is a top-down hack-and-slash pvp dungeon-crawler like game. Game is entirely multiplayer based, using randomized dungeons, and a unique combat system with emphasis on gameplay.
      We have a GDD to work off of, and a Lead Programmer you would work under.
      Assignments may include:
      -Creating new scripts of varying degrees specific to the project (mostly server-side, but sometimes client-side)
      -Assembling already created monsters/characters with existing or non-existing code.
      -Creating VFX
      -Assembling already created environment models
      If interested, please contact: eldwin11929@yahoo.com
      This project is unpaid, but with royalties.
       
      ---
      Additional Project Info:
      Summary:
      Bassetune Reapers is a Player-verus-Player, competitive dungeon crawler. This basically takes on aspects of dungeon crawling, but with a more aggressive setting. Players will have the option to play as the "dungeon-crawlers" (called the 'Knights', or "Knight Class", in-game) or as the "dungeon" itself (literally called the 'Bosses', or "Boss Class", in-game). What this means is that players can choose to play as the people invading the dungeon, or as the dungeon-holders themselves.
      Key Features:
      -Intense, fast-paced combat
      -Multiple skills, weapons, and ways to play the game
      -Tons of different Bosses, Minibosses, creatures and traps to utilize throughout the dungeon
      -Multiple unique environments
      -Interesting, detailed lore behind both the game and world
      -Intricate RPG system
      -Ladder and ranking system
      -Lots of customization for both classes s of customization for both classes
  • Advertisement