Putting the 'role' back in role-playing games since 2002.
Donate to Codex
Good Old Games
  • Welcome to rpgcodex.net, a site dedicated to discussing computer based role-playing games in a free and open fashion. We're less strict than other forums, but please refer to the rules.

    "This message is awaiting moderator approval": All new users must pass through our moderation queue before they will be able to post normally. Until your account has "passed" your posts will only be visible to yourself (and moderators) until they are approved. Give us a week to get around to approving / deleting / ignoring your mundane opinion on crap before hassling us about it. Once you have passed the moderation period (think of it as a test), you will be able to post normally, just like all the other retards.

Vapourware Trying to learn programming from ~0, realistic goals naturally help needed.

Perkel

Arcane
Joined
Mar 28, 2014
Messages
15,875
THE STORY

So i got fired from my job two days ago (or was it yesterday ?) and i have now ton of free time which i can spend being productive.
Soo i decided to finally do something about dream of mine. Creating games. I know, i know shit isn't easy it takes a lot of time and game making is actually probably the hardest part about programming. I know this won't be easy or something that i will do in short time. First I want to set realistic goals i can achieve in relatively short amount of time. Like for example learning how to make characters line of sight or how to make grid for characters or how to define how much space character takes on grid or so many other things. I realize those goals are so far unreachable for me as i need to first learn basics but even those basics can have realistic goals like learning how to do simpler stuff for beginners.

THE SKILLS

I wrote ~0 because i think 0 means complete lack of knowledge about anything in programming and usually people at 0 are simply scared and lost when they see something like int or double or ().
My experience :
- dabbled a little in html (basic stuff)
- dabbled a little in css (basic stuff)
- i studied half a year at Polish-Japanese Institute of Information Technology unfortunately i learned hard way that learning on weekends and working from mon to fri at the same time especially at something like computer science is hard. Then i was cash strapped and i dropped out. Naturally i plan to go back sometime in future to get bachelor.
That half a year was also not as productive as i would love to. I learned not to fear code and some simple stuff in Java and C#. Some theoretical basic knowledge on how works CPU.
Unfortunately again i was to young and stupid to make best of that time so i wasn't practicing and pace quickly outpaced my skills.
- some beginner 3DS stuff
- good photoshop skills
- some good amount of time spent working with Sacrifice engine creating my own stories and levels (it was like coding for dumb instead of if there were full sentences like when you do ____ do ___ or If ____ is _____ then show game over screen) and some colobolt (loved it)
- i am not superb or super talented. I am normal dude.

THE IMPORTANT STUFF

I made this thread because i feel that making this thread as diary and QA for people and me would be best way to learn it and have fun with it. Also this would be great for people like me who dabbled something but don't know how much it really takes to do stuff and thus this may have positive effect of someone else dreams.

What i want from this thread is discussion. Every day or every two days i will write what i did and what i learn/am learning. As i said earlier i want to set first realistic goals. If i will choose some goal, don't fear to criticize that goal. If you think you have better idea about what i should do instead make a post and feel free to correct that. Help from people will be also valuable as tool for setting those goals because frankly beside simple stuff i don't know beyond that point what i should do and what is more important for me at that or this moment.

From many people opinions i also know that programming isn't closed box. It isn't something you can learn and you won't need to learn new stuff. I know from people it is all about problem solving and iteration (especially later).

What i also want to focus on is practicality. Which means that i need to create stuff. I don't want to be theorizing stuff. I want to code stuff and see results even if it means additional time spend on outputting ideas like some easy to do text based choose your adventure game. With this i would be able later to test my new ideas in that code like for example adding score boards and stuff without building stuff from ground up just for sake of creating score board.

THE FIRST GOAL

# GOAL No001 # - Do python interactive training program for beginners.

I think i found interesting training beginner program for python which is interactive instead of being a book, it is supposed to be only 13 hours long and i so far did few first lessons without much of a problem and i really enjoy it. Link below.

http://www.codecademy.com/en/tracks/python

QA for people reading this thread:

Any opinions on that training program ?
I heard python is good for newbies, is that true ?
Opinions on that choice. Practicality of python in future (games, apps and stuff).
Should i start with something else instead ?
What is difference between procedural language and object based. Is it harder ? easier ? Which should be though first ? Opinions.


Thanks to :

@Raghar
because he was the one that gave me that needed push to do something finally with it.
Readers. Because i know my english skill isn't great.
 
Last edited:

Perkel

Arcane
Joined
Mar 28, 2014
Messages
15,875
This is btw how this python training program looks like ( it is entirely browser based so no need to install anything )

i5JZsD1kUwJ3a.jpg
 

Ninjerk

Arcane
Joined
Jul 10, 2013
Messages
14,323
I'm taking my first programming class at the moment. When I was reading about where to start with programming before I started this class I found that everyone who answered this question, whether it be on those dumb Yahoo answers, stack overflow, or any other website, everyone had a different opinion. Some said start with C, some recommended codeacademy, some recommended Java, Python, Ruby, and dozens of other places to start. I think the important thing is just that you start and just regularly be doing it. Being in a class right now is good for me because I have to turn in a few programs every week and it keeps me honest.
 

Perkel

Arcane
Joined
Mar 28, 2014
Messages
15,875
Yeah this is why i keep this as goal based diary. Because if i won't set goals then motivation can quickly go to hell. Also practicallity is important becaue there is nothing more awesome than to see actually stuff you programmed to work and that there is some interaction or idea you have is actually working.

Also it will be interesting to see what codexers think about stuff i make. I mean i plan to have relatively shortly some text based adventure project because that is very simple to make as it is mostly couple of "if"s and variables and the longer game is the more ifs you need to create. But that is naturally currently not my goal. I will be back to that idea later after some basic learning. I did something like this years ago in pure C+ (when i had this idea when i was young) and first chapter allowed me to do it.

Good luck to you.
 

Niektory

one of some
Patron
Joined
Mar 15, 2005
Messages
808
Location
the great potato in the sky
Python is good to start with I think. It's easier to learn than C/C++ since you don't have to worry that much about lower-level stuff. It's widely used so you'll easily find answers to most problems on Stack Overflow etc. It's fine for games too, a little slow but good enough for simple stuff.

You should install Python locally ASAP if you haven't already so you can get used to the environment.
 

Perkel

Arcane
Joined
Mar 28, 2014
Messages
15,875
Yes i downloaded already SDK. I am yet to figure out which is better program for writing python (netbeans ?) but i think best case will be to install plugin for Visual Studio and try to stick to that env as it will cover in future other languages primary build for them like C+.

Also i heard pretty good things about Visual Studio (but i don't know if this will apply for python plugin) as this is more or less go to for pro programming. So if i start early with that i will have imo much better handling of that env in future when i will switch language for something like for example C+.

Back to codeacademy python training program. Currently at comparators (~15% done). So far i know more or less this stuff.

edit:

""
Boolean Operators
------------------------ True and True is True
True and False is False
False and True is False
False and False is False

True or True is True
True or False is True
False or True is True
False or False is False

Not True is False
Not False is True

"""
interesting stuff

Any idea about practicality of True/False ? I met with this is various .ini editing things and always this was either True/False or value based like 0 = off 1 = on.

Maybe some simple practical stuff why i should for some example use Boolean instead of value based variables for some cases ?
 
Last edited:

Destroid

Arcane
Joined
May 9, 2007
Messages
16,628
Location
Australia
Python is a good choice for a beginner. It's not that widely used with game engines (although it's seen from time to time as a scripting language for AAA games), although it has a few options like pygame and I believe bindings for lower level stuff like SDL. It has a good binding to libtcod if you want to make a roguelike with a specialised library.

That said, once you have a grasp on one language learning another isn't difficult, you won't have much problem transitioning to something like Java or C#, or javascript would be even easier and is usable with unity and many other game engines. C++ will be more difficult if you decide you need that kind of performance. Stick with what you're doing for now.


You should use booleans for any value that should only ever take on one of two states. As it happens you can use 1 and 0 in python too, but each language has it's own take on what happens when you evaluate non-bool values as boolean.

https://www.udacity.com/wiki/cs258/truthiness-in-python
 

Perkel

Arcane
Joined
Mar 28, 2014
Messages
15,875
Thanks for your input.

I choose python because that training program seems to be awesome to get quickly stuff. I'll stick for now to python. Then i will probably switch to Java. C+ for now is offlimits for me.

Also i redo my question. Should i stick to Visual Studio for python practice (with plugin) or should i go for native programs for python such as NetBeans ?
 

Perkel

Arcane
Joined
Mar 28, 2014
Messages
15,875
Is this :

elif (the_flying_circus == not 5) and the_flying_circus < 5:

same as

elif the_flying_circus != 5 and the_flying_circus < 5

?? (i know i don't need both as < already handles =! situation)

edit:

syntax error. I guess it is not.
 

Niektory

one of some
Patron
Joined
Mar 15, 2005
Messages
808
Location
the great potato in the sky
The not operator should be put before the expression you want to negate. In the first line you wrote not 5 will evaluate as False, and will work like this:
Code:
elif (the_flying_circus == False) and the_flying_circus < 5:
This is not what you want. The correct way to do it is:
Code:
elif not (the_flying_circus == 5) and the_flying_circus < 5:
and it's the same as:
Code:
elif the_flying_circus != 5 and the_flying_circus < 5:
The syntax error in your second line is because of lack of colon at the end of line. You always need a colon after if, elif, else and many other keywords in Python.
 
Last edited:

Perkel

Arcane
Joined
Mar 28, 2014
Messages
15,875
Thanks i got this sorted out already along with syntax. Also i already learned that not is first or is second and and is last in therm of executing stuff which points at your response.
 

Goliath

Arcane
Zionist Agent
Joined
Jul 18, 2004
Messages
17,830
Programming is not for "normal dudes", sorry. I know tons of programmers and they are all high IQ autistic freaks without exception. Look into modding instead. Writing some quest scripts is realistic, writing a game from scratch is not.
Really just learn whatever "script commands" you need to learn to make characters move/attack/say things in a pre-existing game. That way you might end up creating something fun. In contrast, the chance that you will manage to build a game worth mentioning from scratch is practically zero.
 

Perkel

Arcane
Joined
Mar 28, 2014
Messages
15,875
I explained that in OP already.
I don't want to set unrealistic goals like creating my advanced game from scratch.

Simple stuff like Tetris or choose your adventure game i can do even now (though simple) and i want to expand on that.
Also i don't plan to drop it after xxx amount of time. I am not also in school so there is no time limit on specific stuff.
 

asfasdf

robot
Patron
Joined
Dec 18, 2012
Messages
839
Insert Title Here Strap Yourselves In Codex Year of the Donut
I wouldn't begin with python, the weak type mechanism will probably confuse you later. Go for C, it's a bit hard for beginners, but you will learn your ABCs.

About procedural vs. object-orientation, I wouldn't recommend going deep on OO early on. Learn algorithms first, which is the essence of pure procedural languages. OO relies on algorithms also, naturally, but it has an additional layer of abstraction, which is the object-orientation itself. In my teaching experience, mixing both is confusing for starters. When you get comfortable with procedural programming then start studying OO.
 

Perkel

Arcane
Joined
Mar 28, 2014
Messages
15,875
Ok it has been great day. I wish i had more time to go into functions today (had to drive to few places) but for now it will suffice.

What i learned today. Boolean stuff, python syntax, conditionals. Some simple stuff like creating tax calculator or changing written words with [1:len()]+x and so on.

Though i definitely need some practice on boolean stuff but i think it will come to me as i go (this supposed to be standard stuff used all the time in programming).

Functions should be much more interesting tomorrow.
 

Perkel

Arcane
Joined
Mar 28, 2014
Messages
15,875
I wouldn't begin with python, the weak type mechanism will probably confuse you later. Go for C, it's a bit hard for beginners, but you will learn your ABCs.

About procedural vs. object-orientation, I wouldn't recommend going deep on OO early on. Learn algorithms first, which is the essence of pure procedural languages. OO relies on algorithms also, naturally, but it has an additional layer of abstraction, which is the object-orientation itself. In my teaching experience, mixing both is confusing for starters. When you get comfortable with procedural programming then start studying OO.

Interesting take opposed to multitude other voices that tell me to start from simpler stuff like python or java. I'll try to finish first though that python training first as i already started it and that looks quite fun. Then i will decide what to do next.

Question for the future. What is best way (or general way) to store information ? I mean like creating list of guns my character can use with stats for each one. This is something i can't wrap my head around yet as typing each of those in one file seems to be inefficient. XML based doc would be amazing stuff if i could import from that thing data or even simple notepad stuff ala dwarf fortress raws.

You will use boolean stuff a lot with control structures (loops, if statements, and switches). You will get plenty of practice with it.

thanks. For now i will skip practice and go straight to functions tomorrow.

Also you people were right about similarity of languages beside syntax differences python feels exactly like Java for that simple stuff and i don't really feel like i am using something different to Java (though i remember using ints doubles or was it C+ ?) Never-mind.
 

snoek

Cipher
Joined
May 5, 2003
Messages
1,125
Location
Belgium, bro
Maybe the next step would be looking into some GUI-based things? Build a little calculator with buttons, numeric/textboxes etc?

As for an IDE other than netbeans, PyCharm is good (I've heard) and not too expensive. I'm also pretty sure you can try it out before buying.
 

toro

Arcane
Vatnik
Joined
Apr 14, 2009
Messages
14,106
Thanks for your input.

I choose python because that training program seems to be awesome to get quickly stuff. I'll stick for now to python. Then i will probably switch to Java. C+ for now is offlimits for me.

Also i redo my question. Should i stick to Visual Studio for python practice (with plugin) or should i go for native programs for python such as NetBeans ?

I was cursed by some unknown entity and my current job is too work with Python, Java and C.

But I will cut to the chase: You can use Eclipse + PyDev. And learn to use EpyDoc tags in order to have auto-completion in the IDE.
 
Joined
Apr 3, 2006
Messages
1,386
Programming is not for "normal dudes", sorry. I know tons of programmers and they are all high IQ autistic freaks without exception.
Yeah, I've met those types too, but I congratulate you on keeping better company than I do, because most of the programmers I've worked with have been mediocre IQ time servers. Anyone with an IQ above 80 can learn how to code in a high level language. Where Perkel will fail, if he does fail, is in trying to learn to code a language for itself rather than for a purpose. Here's what you should do Perkel:

1) Identify the problem you want to solve.
2) Create an algorithm to solve the problem.
3) Implement said algorithm.

Download Unity. Download some free art assets from the Unity store. Decide how those assets should interact (stage 1). Plan out explicitly in clear, atomic English terms how said interaction takes place (stage 2). Try to make it work (stage 3). If you do stage 2 correctly, then stage 3 should be relatively easy.

Don't pay any attention to "start with language x, or language y". You're not learning a language. You're learning a mode of thinking.
 

Perkel

Arcane
Joined
Mar 28, 2014
Messages
15,875
I worked a bit with Eclipse when i was dabbling with CSS and looked o'right to me. Also why Eclipse + PyDev ? Why not only one ? Also could you expand on why i should learn to use EpyDoc tags ? Auto-completion, what do you mean by that ?
 

Perkel

Arcane
Joined
Mar 28, 2014
Messages
15,875
Programming is not for "normal dudes", sorry. I know tons of programmers and they are all high IQ autistic freaks without exception.
Yeah, I've met those types too, but I congratulate you on keeping better company than I do, because most of the programmers I've worked with have been mediocre IQ time servers. Anyone with an IQ above 80 can learn how to code in a high level language. Where Perkel will fail, if he does fail, is in trying to learn to code a language for itself rather than for a purpose. Here's what you should do Perkel:

1) Identify the problem you want to solve.
2) Create an algorithm to solve the problem.
3) Implement said algorithm.

Download Unity. Download some free art assets from the Unity store. Decide how those assets should interact (stage 1). Plan out explicitly in clear, atomic English terms how said interaction takes place (stage 2). Try to make it work (stage 3). If you do stage 2 correctly, then stage 3 should be relatively easy.

Don't pay any attention to "start with language x, or language y". You're not learning a language. You're learning a mode of thinking.

I hear you. This is why i set "goals" in OP. I don't want to theorize stuff. I want to implement what i learn as soon as i can to show myself what i can do. But i don't need explicitly 3D engine. Simple command line stuff (vide roguelike) will do the work as long as i will be able to see that feature i learned is implemented and it works.

I want naturally to dabble in Unity or other engines but i think it is way to soon for me as i am yet to even learn most simple stuff. But thanks for advice and i will definetely hit Unity sooner or later. Just not now.

Maybe the next step would be looking into some GUI-based things? Build a little calculator with buttons, numeric/textboxes etc?

As for an IDE other than netbeans, PyCharm is good (I've heard) and not too expensive. I'm also pretty sure you can try it out before buying.

You mean something like .NET ? I did a little of that but imo GUI based stuff won't teach me a lot as i need to first learn basics. As i remember when i had few lessons with .NET it creates code automatically which is a word of hurt if you don't know basics let alone what is different about .NET vs other languages or what is even in those libaries it is using for auto.


Note to myself. I need to finally start writing with my right full hand. I am using correctly more or less left hand but my right hand writing is still lot about two fingers instead of five.


I think I should also thank Limit Theory dev for this push toward achieving my goals as his updates and especially his programming talk seems so poetic and you can feel he just enjoy a lot writing code.

Video for people who don't know what i am talking about. (i wish sometime in future i will have half of that dude skills):

 
Last edited:
Joined
Apr 3, 2006
Messages
1,386
Absolutely. Seeing concrete results is important for keeping your motivation alive so any engine or platform that gives you realtime results is a major plus. Unity is actually simplest engine I could think of, apart from something like Flash maybe.
 

toro

Arcane
Vatnik
Joined
Apr 14, 2009
Messages
14,106
I worked a bit with Eclipse when i was dabbling with CSS and looked o'right to me. Also why Eclipse + PyDev ? Why not only one ? Also could you expand on why i should learn to use EpyDoc tags ? Auto-completion, what do you mean by that ?

PyDev is a Python plugin for Eclipse. You need it for beautiful colors, alignment and stuff. Also you need a Python interpreter. Setting up this combo is kind of retarded but hey, they are free. And it works 90% of the time.

There are only two EpyDoc tags you need to leard: @type and @rtype.

But you should better listen to muds_animal_friend.

The irony is that learning Python is useless. But I will not start ranting about it because you will be demoralized by the end of it. Go with the flow.
 

Perkel

Arcane
Joined
Mar 28, 2014
Messages
15,875
Absolutely. Seeing concrete results is important for keeping your motivation alive so any engine or platform that gives you realtime results is a major plus. Unity is actually simplest engine I could think of, apart from something like Flash maybe.

Now when you mentioned about realtime results... You have valid point. I am yet to experience any long compilation but i heard real-time effects are way better for iteration (something actually what that Limit Theory dev did with his LTSL in video) and more iteration in shorter time means less time wasted on waiting and you can correct yourself in seconds or just fiddle with stuff as you go.


PyDev is a Python plugin for Eclipse. You need it for beautiful colors, alignment and stuff. Also you need a Python interpreter. Setting up this combo is kind of retarded but hey, they are free. And it works 90% of the time.

There are only two EpyDoc tags you need to leard: @type and @rtype.

But you should better listen to muds_animal_friend.

The irony is that learning Python is useless. But I will not start ranting about it because you will be demoralized by the end of it. Go with the flow.

Thanks i though PyDev was separate IDE for Python.
As i said earlier i am not learning Python because i want to create stuff in it. I am learning it because i want to learn first basics of programming and simple stuff that supposed to be interchangeable between various languages + it has really awesome tutorial i am doing which is far better than book.

@type and @rtype. What those generally do ?
Also isn't python actually used in Unity ? (i heard that somewhere)

edit: downloaded Unity just to have it near me.
 

As an Amazon Associate, rpgcodex.net earns from qualifying purchases.
Back
Top Bottom