Advertisement

Inexperienced Programmer looking for Help

Started by October 18, 2014 09:09 PM
2 comments, last by Gian-Reto 10 years, 3 months ago

Hi Everyone.

I have been working on making a dream a reality for several months now, and have continued to hit wall after wall. I've come looking for advice, suggestions, feedback, and help in making a game that I feel others will enjoy. I'm an inexperienced programmer, mainly with Java, and have limited experience using the Unity engine, but have no real knowledge other than what I'd like to create and how I might be able to get their.

What I'm looking to create is "traditional" 4x game with some major tweaks, namely being RTS and focusing more on micro-management. My inspiration comes from the Civilization series, Banished, State of Decay, and The Walking Dead comic series. Contrived and done to death (pun intended) as the genre might be, I want to create a Zombie game, but not in the mold of your traditional shooter. For me, the greatest strength the Zombie genre has is its ability to focus on people and community building and management. There is a constant and universal threat of the undead, but also a need for security, shelter, food and water, and a balance between these three and population and community management. There is a wealth of possibilities of how you could deal with these pressures, from a small nomadic group to a large community with a permanent settlement to a band of raiders picking off the weak, and I feel that the best way to represent all of these options is through a RTS 4X game.

What I am looking to create is a isometric, procedurally generated small-scale world using either a square-grid or hex-grid, with procedurally generated towns, cities, and rural areas with a network of roads, highways, interstates, and railways connecting them. Your job as the player would be to guide a small group of survivors through this environment and keep them alive. Each survivor would have a set of skills and traits randomly assigned to them, and these skills will improve slowly as they continue to survive and use them, while the traits will affect group cohesion and stability. Finding shelter and supplies are your main goal, but as the game progresses these goals shift towards maintaining and improving your camp and creating a renewable source of food, like a farm with a small number of livestock. But your group is not the only one in the world. Other groups, ranging from several presets like family groups, bandits, or towns of varying levels of morality, roam the world and can be interacted with through trading, recruiting them to your group, defending against raids, or doing some raiding of your own. The zombies will follow a simple AI, following sound. This should organically attract them to players group, as well as form natural herds migrating across the landscape. As the game progresses and your group has more supplies, you will be able to craft improvements to your base, such as fences, walls, gates, traps, farms, generators, and so on, each requiring certain materials as well as a survivor with the skills to create it. A potential end-game would be creating a facility capable of creating a cure.

The idea behind this ambitious endeavor is for the player to be able to shape their own vision of how the zombie apocalypse might best be dealt with, and to do so in an environment that the player can actively shape and interact with. This sense of true survival and community hasn't been present in many games that I have played, and I for one crave the experience.

I have a clear image of what I want to create, but I lack the experience to execute it. I've no formal programming training, but do know the basics of Java. I have basic knowledge of how to use the Unity engine, but have no experience in modeling or texturing. What I am looking for is anyone with advice, suggestions, constructive criticism, or anyone interested in joining me on the project. I crave this gaming experience, and feel that others must as well.

What do y'all think?

What do you want to do?

Right now it looks like you are trying to be the "idea guy". That isn't a real job, and everybody in the industry already has more ideas than they can possibly implement.

If you want to be a programmer, as it looks like, then take the idea and put it on the shelf for a while. Start with the basics. Start with text based games. The simple "guess the number" and "tic tac toe" and "connect four" style games. Do this while at the same time as learning how to program by reading programming books.

Programming is the application of data structures and algorithms, so to be a good programmer you need to master the core structures and algorithms.

And you need math, since nearly everything in games relies on it. In 2D worlds you need a solid grasp on trig, algebra, and statistics. In 3D worlds you need a solid understanding of linear algebra in addition to those above. Get them either through studying on your own or study at a school, but you will need them to be a good programmer.

The path from learning to program to be reaching professional skill levels usually takes multiple years.

If programming is not your thing, there are other disciplines available to you. The other major, reliable paths to break in to the industry are through making models and through making animations. There are other paths in, but "game designer" is not an entry level position. Programmer, modeler, and animator are reliable. Level builder, writer, QA, and other paths can also get you in, but they are less reliable. But again, these are also multi-year paths.


Alternatively, if professional game development is not your goal, and you just want hobby toys to play with, Google can help you find many different isometric game engines. You may or may not be able to understand how they work, so try a few and see what feels comfortable.
Advertisement

Seems to me your idea is too ambitious for the experience you have. Like Frob mentioned you need to nail the basics of programming and the framework or engine you use. Then i asvice you to cut your idea into pieces and practise/prototype these ideas in a framework or engine that can do the job. I am not a Unity user but there should be plenty of resources for it to get you started. Apart from cutting up the game into pieces you need to know exactly what is needed for your game. As for cutting down your project is smaller pieces:

  • Screens, you need at least a main screen, options and a game screen at first. Within the game you will probably need much more screens and smooth transitions between them.
  • Map, this is the biggest challenge as it is going to hold 90% of your game. Try to render a simple isometric grid first.
  • Camera movement, with most frameworks and engines this should be easy.
  • Tilepicking, you need to know what tile you are pointing/clicking at. Isometric maps are a bit harder then regular tilemaps but some basic math will get you trough.
  • Map interaction, try to implement something like pressing "b" a city is created at the mouse pointer. When a city is double clicked you go into a city screen which you are already comfortable with since that was the first piece you did. This function can later be transferred to a unit.
  • Units, make them clickable/selectable.
  • Pathfinding AI, something like A* will do.
  • Create actions for your units, here you can derive a "Build city" from and paste in the code you had ad pressing "b".

All of the above is perfectly doable for a beginner on it's own, there is plenty of documentation around. Weaving them together is a much bigger challenge and all up to you. Creating NPC AI is going to be an even bigger challenge. Again, you really need to know your OOP basics like inheritance to make things efficient.

a) What the others said before

b) if you are not interested in really pursuing a career as programmer (in this case, a true bottom up approach like frob mentioned would most probably be a good idea) and you want to start building your game now, research the existing Indie Friendly Engines that are suitable. An existing engine will do all the low level plumbing for you, so you don't need to be that knowledgable about DirectX or OpenGL to start developing a 3D Game (altough sooner or later, you need to brush up your knowledge there).

For 3D Games, Unity 3D and Unreal Engine 4 are most probably the best 2 engines you can get at the moment for small budget development. Both will get you a powerful, up to date engine (UE 4 is truly next-gen, Unity will be with the upcoming Unity 5), a large community and a vast amount of tutorials, and at least in case of Unity a huge and thriving community of Asset producers that provide 3d Models, Plugins and Enhancements you can buy or (sometimes) get for free from the asset store.

For 2D Games, Game Maker gets a lot of publicity, though I cannot comment on it as I am mostly interested in 3D Development and therefore have no expierience there.

As the others have mentioned, having an idea for a game is just the first 0.1%.

Now there are a lot of questions to ask yourself and a lot of hard decisions to make. Before you start, you need to be clear of the following: building such a game yourself can easely consume years of your freetime, or could consume multiple 100'000$ of your money if you pay others to do it. You can get away with less, depending on clever game play, art and tech choices, though some of these will have a huge impact upon the look and feel of your game.

Question 1: Do you plan a career in the game industry? Do you plan to go the Indie route? Do you just want to do it for fun?

Most important question IMO. Why are you interested in the project. Do you really want to fully invest into such a complex game, when all you need is some nice pieces for your portfolio? Wouldn't you rather build smaller games that highlight a special skill of yours, use some clever technology or other aspect you want to put into your CV, instead of one big project that (most likely) will never be finished?

If you want to go the Indie route, have you really researched your market? Is there even one? Did you have a look at your competition?

Of course, if you do it for the fun of it, the only question is: do you have the staying power to finish such a project?

Question 2: Do you want to build this game? Do you have the money to pay others to do it? Do you want to create a team to help you build it?

This is a question you alone can answer: How much do you want to invest in money and time (you can go with 0$ investment, you just might loose out on some tools and engines that might have saved you time somewhere else (the paid version of Unity will give you for example image effects. You can write your own system for these image effects, as lots of people have done, but you will likely invest a lot of time into that).

Depending on your game idea you might quite a lot of people. Depending on wheter you find some enthusiastic people in the hobbiest or modding scene without their own idea or an existing project, you might get their help for free (unlikely, but happens), or you need to pay them. Forget shady revenue sharing schemes, that only works really with people that would also work for free.

If you seek professional help, you will need to pay competetitive prices. Be prepared for serious $ involved.

Of course, some part of it (especially art) can be bought as stock art, or can be commisioned from freelancers. That way you only pay exactly what you get. This might help you get along without a team. Or with a smaller Team, at least.

Question 3: 2D or 3D? Art choice? Where can you compromise to bring complexity down?

Generally people will tell you 2D is easier to do than 3D. That isn't necessarily true all the time. When writing your own engine, that is certainly a true statement. When having to produce art for a game, some 2D or 2.5D Games need an insane amount of pixel art, while some simple 3D games get by with very simple and quickly done 3D models.

The real first question would be: What is your Art Style? Pick a simple one, find a way to quickly produce aour art in 2D or 3D, and cut your art cost (time or money) in half, or even less than that.

Try to go the photorealistic route, maybe force a highly realistic art style into 2D, and see your art budget explode.

Examples for compromises that will bring your art costs down::

- no organic creatures, just vehicles. Suddenly you can omit the whole rigging step in 3D Model making, animation becomes much easier. In a simple game you could even ommit all animations (spaceships without moving parts for example).

- Simple comic style: much easier to draw for 2D Sprites, might get away with less animation steps. For 3D, you can cull normalmap baking, you can reduce the time needed for painting textures. Characters can be much simpler, meaning less polygons needed, simpler to model. Animations can again be less detailled without looking off.

- Setup your levels so you can save on art and performance: This is more for saving technical resources, but you can also do the same to save art. For example, by creating your game levels as indoorlevels consisting of separate rooms, you can then make the game load / unload rooms as you enter / exit.

On the other hand, by placing your game level in a desert, you can cull away art cost for creating trees and foliage.

Question 4: Engine or starting from scratch? What engine or framework?

Now comes the time when you should finally start searching for ways to create your vision (of course, I deliberately ommited some of the more boring steps like creating GDDs or a Business Plan... if you are a hobbiest doing it for fun, you only will need that the moment your try to talk to the professionals).

You should be certain by now wheter you are going 3D or 2D, what your Art Style is, how much money or time you can invest, if you have a Team to build it or you have to everything on your own. I already mentioned some Engines, there is a multitude of others. Have a look at the engine DB on devmaster.net

If you conclude that you want to do a simple 2D Games (simple grid or hexbased top down, or isometric without animations for example), writing your game from scratch is not out of the question.

For anything more advanced I would advise to use an existing engine. No need to re-invent the wheel if you don't want to do just that.

Anyway, disclaimer Time:

I am a hobbyiest dev myself, I am a professional programmer but not game dev, so don't take my opinion as gospel when it comes to entering the Game industries.

Be aware that by starting a big game de project, you are embarking unto a multi year project that will cost you many hundreds or tousands of hours of your lifetime. Be ready to invest that time, shrink your expectiations or sink a lot of money into the project.

Be aware that before you can even embark on that project, you will need to invest many years into learning the basic knowledge needed. If you go the lone wolf route, that might mean you need to learn and become somewhat proficient in not only programming, but also art. If you want to avoid the latter, work in a team, or commission / buy stock art.

Other people have mentioned starting small... if you get discouraged from hitting walls, not seeing much improvement for weeks, or having a steep learning curve, I highly advise you to listen to them. If you bite off more than you can chew, you will most probably loose motivation. Some people can do that an stay motivated, but most don't.

This topic is closed to new replies.

Advertisement