Starting a big project

Hi,

I’m contemplating on starting a rather big project. It would be a city simulation with quite a depth. Every citizen would have tens of attributes from age to personal tendencies. Also the city, houses, businesses and even products would have their properties. In short, everything affects everything.

Being pretty much a newbie I realize this is completely impossible for me at the moment. I’d like to start by simplifying the game to bare necessities while keeping the possibility to develop it further.

What I’m asking is, where should I start? What kind of pipeline and structure I’m looking at? What kind of tools and approach will I need? What would be the best way to store all the data? How to do the project right from the start so it can grow?

Any ideas and advice is most welcome. And please tell me if this is simply impossible to do in Unity.

I will pass on some very valuable advice that has been given to me.

Think tiny. Don’t let go of your big idea. But don’t start with it. What you are proposing is more like an elephant, and how do you eat an elephant? One bite at a time.

If I were to suggest a starting place. I would suggest recreating something truly simple in nature. Most people say try to make recreate Space Invaders because it’s simple, and when you get into it you realize just how much time something like this will take. This also forces you to become familiar with Unity. I didn’t want to do this when I decided to try and become a video game development hobbyist. But let me tell you, do it and you will be thankful. Bite your tongue and just do it. Small victories are the best kind of victories because they give you foundation and scope and it’s something that “being a newbie” means you lack.

That all being said, google Game Design Document. And then make one. That’s the best starting place. Next, spend time reading and watching tutorials. But most important thing of all is complete a project. And then do another one. Eventually, you will come to a point in your hobby or career or what ever and realize that you are good enough to tackle and create what ever you want.

You will get more response from the “teaching” section of the forum. I recommend gathering a group of new people like yourself and learning together, it keeps everything fun. You can gather a group in the “collaboration” section.

For any new person, i would recommend Berg Zerg Arcades tutorials. He brings you through a hack and slash from start to finish. This series has basically everything from stats, levels, AI, terrain etc.

Tutorial 1 : http://youtu.be/YYqzz1dy3Ak

You can also check out http://www.gamertogamedeveloper.com
There isn’t as much tutorials in this as Berg Zerg, but it does teach you the basics of networking (multyplayer, setting up servers etc)

Good luck :slight_smile:

Just what i was about to say - This thread might fit better in the Teaching section of the Unity Forums, you will get help from others that could get you started.You could start to collaborate people first to help you out a bit. You can do so by making up a thread in the Collaboration section.

Good luck on whatever you’re going to work on in the future!

-Tim

Bridin, This is precisely what I intend to do. First step will be a very simple game in the same environment with the same assets (although only a fraction of models etc). And the next project would take it a bit further and so on. I’d still like to know more about structure, methods and best practices on a very data heavy game. Graphics will be extremely simple and there will be no animation at all.

If a moderator sees this, please move it to the teaching section.

I do agree with the others about this one, start small and workout the problems from a simple standpoint and go along like that. One thing I will warn you about is making variables for GameObjects that are for what the script is attached to, that can get annoying when you come along some old code you wrote. That being said I came up for a system for you. :smile:

The way I would do this (and this is only a quick hack way) is save everything for non-living entities into variables on scripts attached to the GameObject in question.

For example say you have an ATM. It has a script that tells how much money is in it, if it’s out of order, etc. You could also do this for cars, doors, coffee machines… anything that a human can interact with. Then when a human in your game interacts with one of them it changes the variables in the script and they wait for the next human to come along and access their variables. This way you could make everything you need for a city into assets, then place them about as needed. Also lets say a human needs to find a coffee machine, they would locate it and it will then be stored as a position in a room somewhere and they can use path finding or some other technique to get to the closest coffee machine when they need one.

That’s all I have for now, just a “quick” way of going about it instead of having all of the variables in some script on some gameobject in the sky and making imaginary connections between stuff that actually aren’t there.

Thanks for all the tips! Even more is welcome.

Experience is everything. I like what Bridin was saying. I created and studied for a year, before I embarked on my first release. Then, I made 3 projects between that and my next. Point is, experience is everything. If I think about where I was, and how I built a system, a self functioning program that would allow the player to experience something entertaining, without having the user, really notice, that something was happening,… What I mean is a program that just clicks.

They say the best audio in a movie, is the audio you don’t notice anything wrong with. They same can be said for visuals, games etc. it’s late. I don’t think my point is that great anymore, except that yes, practicing on very simple things, bites like Bridin said, will eventually allow you to eat that elephant.

Good luck

Just one bump, then I’ll shut up…