• Advertisement
Sign in to follow this  

How to get from A to Z (or my first dev blog)

This topic is 573 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

3 months ago, at age 36, I decided I wanted to create something... anything. A book, a movie, a painting, a chair, a human being (wife said no)... I ended up choosing a video game. Trouble is, although I have had PCs and have been playing video games, since 1988, until 3 months ago, I had 0 knowledge of programing, computer graphics design and animation. So I started on a long journey to acquire the knowledge and skills necessary to design and build a video game.

I've been reading books, research papers, articles and tutorials on game design, programming, procedural content generation etc. I downloaded, installed and started fooling around with, notepad++, NetBeans, Construct 2, Unity 5, Unreal Engine, Inkscape, GIMP, Blender and more. So, on my journey to get from A to Z I'm now at A and half; I have a working knowledge of Javascript, can make a ball rolling "game" in Unity and know just about enough to open a new project in all the aforementioned programs.

For fun, and to learn, I have designed and programmed a simple demographic simulation with javascript but it only outputs strings to the console. No graphics at all. I now have just enough knowledge to know that I don't even have near enough knowledge to get started on my game. I want to build a 3D simulation / strategy / management game.

I'm getting a bit tired of doing random tutorials. Most of them are geared towards side-scrollers, shooters and RPGs. I find it very difficult to find beginner tutorials for sim games. For instance I have been reading some interesting stuff on procedurally generated cities but they all assume a working knowledge of concepts I do not yet understand or don't give quite enough details on the mechanics. I always find myself thinking "Wow this L-System stuff to generate a network of roads is really cool but how does the computer generate and store the road data so that it can actually be used by other game objects and not simply be a nice graphic representation of a road network" or "This way of generating buildings is really cool but how does the computer know to place it there and not on top of a road and is the building now an entity (object) that can be interacted with in the game world or is it just there for the looks?"

I'm starting to realize that in order to keep it fun and interesting, I need to focus my efforts and actually start and complete intermediate projects before I gain enough knowledge to get started on my grand game idea. Ideally, I would like these projects to help me build skills and knowledge that will be relevant to my final project. I might be wrong but the set of skills, techniques and knowledge necessary to build a game like Civilization VI is probably quite different than what is required for Super Meat Boy, Battlefield or Dragon Age. So, here is where I'm hoping some of you can help me. What projects should I work on next? What should I learn in the process? In what order? What would be the logical progression to get from A (and half) to Z? I'm open to any ideas and suggestions, as long as it helps me build skills relevant to my ultimate game project.

Share this post


Link to post
Share on other sites
Advertisement

Hi, I'm 42 and relatively new to programming, it's my go-to hobby besides playing video games.

 

I have designed and programmed a simple demographic simulation with JavaScript but it only outputs strings to the console. No graphics at all.

 

I want to build a 3D simulation / strategy / management game.

 

I'm getting a bit tired of doing random tutorials

 

First, celebrate your first step!

 

My recommendation is to take your exiting code and use it to generate simple 2d graphics using JavaScript and your browser.

 

WARNING, RANDOM TUTORIAL BELOW

If you have a canvas object in your browser, you can draw graphics to it.  

// creates and adds a canvas object to a blank html page right in the browser console
// I like to use about:blank in Chrome, or you can can code a simple html page that is empty

var canvas = document.body.appendChild(document.createElement('canvas'));

But, you need the context to draw.

var context = canvas.getContext('2d');

Using the context, you can draw a rectangle

// draws a rectangle at 0,0 on the coordinate plane that is 10 pixels wide by 10 pixels high
// the generic version is 'context.fillRect(x,y,width,height);'

context.fillRect(0,0,10,10);

One way to represent a population is an array

var population = [];

Sadly, our world has no one in it.  Let's fix that.  When mammals give birth, they must push.

population.push('baby');

That was fun, let's do it 9 more times...

And, now our world has 10 babies.

 

population.length
10

But, the babies are invisible.  Let's fix that by drawing a rectangle to represent a baby.

 

// draws a series of rectangles with a 2 pixel space between

for(var i = 0, len = population.length; i < len; i++) {
  context.fillRect(i * 12, 0, 10, 10);
}

 

So what I find fun about programming is you don't have to push the same boring string into your world.  You can push a data type of your creation.

 

function ReallyCoolDataType () {
     this.color = 'pink';
};
undefined
population.push(new ReallyCoolDataType());
11
population
["baby", "baby", "baby", "baby", "baby", "baby", "baby", "baby", "baby", "baby", ReallyCoolDataType]
Edited by Flayrah

Share this post


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

  • Advertisement