• Announcements

    • khawk

      Download the Game Design and Indie Game Marketing Freebook   07/19/17

      GameDev.net and CRC Press have teamed up to bring a free ebook of content curated from top titles published by CRC Press. The freebook, Practices of Game Design & Indie Game Marketing, includes chapters from The Art of Game Design: A Book of Lenses, A Practical Guide to Indie Game Marketing, and An Architectural Approach to Level Design. The GameDev.net FreeBook is relevant to game designers, developers, and those interested in learning more about the challenges in game development. We know game development can be a tough discipline and business, so we picked several chapters from CRC Press titles that we thought would be of interest to you, the GameDev.net audience, in your journey to design, develop, and market your next game. The free ebook is available through CRC Press by clicking here. The Curated Books The Art of Game Design: A Book of Lenses, Second Edition, by Jesse Schell Presents 100+ sets of questions, or different lenses, for viewing a game’s design, encompassing diverse fields such as psychology, architecture, music, film, software engineering, theme park design, mathematics, anthropology, and more. Written by one of the world's top game designers, this book describes the deepest and most fundamental principles of game design, demonstrating how tactics used in board, card, and athletic games also work in video games. It provides practical instruction on creating world-class games that will be played again and again. View it here. A Practical Guide to Indie Game Marketing, by Joel Dreskin Marketing is an essential but too frequently overlooked or minimized component of the release plan for indie games. A Practical Guide to Indie Game Marketing provides you with the tools needed to build visibility and sell your indie games. With special focus on those developers with small budgets and limited staff and resources, this book is packed with tangible recommendations and techniques that you can put to use immediately. As a seasoned professional of the indie game arena, author Joel Dreskin gives you insight into practical, real-world experiences of marketing numerous successful games and also provides stories of the failures. View it here. An Architectural Approach to Level Design This is one of the first books to integrate architectural and spatial design theory with the field of level design. The book presents architectural techniques and theories for level designers to use in their own work. It connects architecture and level design in different ways that address the practical elements of how designers construct space and the experiential elements of how and why humans interact with this space. Throughout the text, readers learn skills for spatial layout, evoking emotion through gamespaces, and creating better levels through architectural theory. View it here. Learn more and download the ebook by clicking here. Did you know? GameDev.net and CRC Press also recently teamed up to bring GDNet+ Members up to a 20% discount on all CRC Press books. Learn more about this and other benefits here.
Sign in to follow this  
Followers 0
DatHeadcrabTho

Beginner Game Development Help

8 posts in this topic

Hey all,

Just a quick (hopefully) question: I am a sorta-kinda new programmer, I have some experience in languages such as FreeBasic, VisualBasic, Actionscript 3.0, and Ruby, though I have never become too experienced in any of those. I was just programming some little widgets lately, but I want to get into game programming, so the question is, which language should I use? I want one that is relatively easy to learn and powerful, so if anyone has suggestions, please post 'em!

 

Many Thanks, 

   DatHeadcrabTho

   Reed S

0

Share this post


Link to post
Share on other sites

ApochPiQ answered this with an article:

http://www.gamedev.net/blog/355/entry-2254835-which-x-should-i-use/

 

And I'll include my standard answer for "where do I begin" as well:

 

Here is a great article for starting out. I can't recommend it enough:
 
Set small, reasonable goals for yourself or you'll quickly get overwhelmed. The above guide has a breakdown of which projects you should tackle first and why.
 
And the beginner FAQ is also an excellent place to start:
 
- Eck
2

Share this post


Link to post
Share on other sites

 

ApochPiQ answered this with an article:

http://www.gamedev.net/blog/355/entry-2254835-which-x-should-i-use/

 

And I'll include my standard answer for "where do I begin" as well:

 

Here is a great article for starting out. I can't recommend it enough:
 
Set small, reasonable goals for yourself or you'll quickly get overwhelmed. The above guide has a breakdown of which projects you should tackle first and why.
 
And the beginner FAQ is also an excellent place to start:
 
- Eck

 

Thanks so much Eck! Exactly what I was looking for :)

1

Share this post


Link to post
Share on other sites

Game Development is a very broad process which involves game developers, analysts, testers and above all the publishers.

 
-3

Share this post


Link to post
Share on other sites

I definitely suggest you to use Python. There is a library for game development called Pygame, and I use it and love it. First of all, it's necessary to reduce "Game Development" in two broad questions:

1. Which language should I use?
2. Which library and/or engine should I use?

Explaining why I suggested Python:

Python is an extremely powerful programming language efficient in both extremely advanced and simple topics. When I started to learn programming, I just could not understand Java or C. Python is the language that allowed me to understand programming, and then migrate to other languages such as C++ (Which is the most used language in game development, but much more difficult to understand than Python). Python is perfect for learning AND development (Please experts in speed-details, I'm not considering these things here, obviously). C++ is perfect for just development, not learning (Thou shalt suffer if thou decidest to learn the hard way). 

Download Python, figure out how to install Pygame and play with it. 

The second question:

In order to develop a game, you obviously need to deal with things such as "images" and "sounds". Therefore, LOADING an image, for example, to be your player or enemy is as natural as it can be as far as game development is concerned. What deals with "images and sounds and game-stuff"? A library specific for game development. A library has all the obscure low-level hardcore things made up for you, so that you can load an image as easy as hell. If you choose a language like "C++", SDL, for example, would be a perfect free library for you to use to handle graphics, sounds and events (Keyboard/mouse/joystick inputs to interact with the media stuff).

 

An engine, on the other hand, makes things "easier" specifically for game development (You could use a library like SDL or Pygame to create a music player for example (It uses the inputs to interact with sound/image media, but it's not a game.)). Even if you actually KNOW how to program, and KNOW how to use a library to load sounds and images, that does not mean that you know how to make a game. Game has principles such as goals and challenges and whatever, and it's up to you to figure out what a game is (I suggest you to read about). 

Edited by EricsonWillians
0

Share this post


Link to post
Share on other sites

If you have a good grasp of object oriented concepts of the high level languages, all you need to do is learn some 2D graphics concepts and how to set up the graphics context in your program and you are ready to write the logic of your game.

 

The important thing is to struggle with it and really learn from it. I cannot stress this enough. Any high level language with a graphics library is all you need to start writing the game given the above knowledge mentioned.

Edited by warnexus
0

Share this post


Link to post
Share on other sites

TL;DR version: Considering the programming end alone, if you're looking to build a serious operation pumping out sleek 3D games with physics, AI and fancy graphics tricks, C++ is unparalleled. If you're a hobbyist (like me) and just want to dabble into the wonderful world of game programming and design, C++ is fantastic but will take you a while to get a good grasp on, while Python is much friendlier and has a phenomenal 2D library (PyGame) which will get you programming games in no time.

 

That being said.

 

Pick one! I'm also an aspiring game developer, and I've picked programming in C++.

 

Upsides:

--Extremely powerful, extremely quick.

--Everybody on the Internet knows all about it and can help you ever step of the way

--It has several open-source libraries to make things easier. I'm using OGRE for graphics, and writing my own open-source physics engine (Indigo Frost).

--Powerful, free tools for debugging, design, and testing.

 

Downsides:

--Pain to learn, especially without formal classes and whatnot. Not too much of a problem, you can find free programming classes online easily. Just be warned: you will spend a good many hours learning general C++ before you can even touch game programming.

--While I have complete control over everything and my software runs FAST, I also have to worry about everything my software does, and often spend time on things I shouldn't have to worry about as a programmer.

 

That being said, I'm going to make a pull for Python here.

Upsides:

--It is a language built for the programmer to be happy. Programming in Python is SO easy and quick.

--Python is also very well documented, because it is seriously the holy grail of programming.

--PyGame is a fantastic 2D game programming library, taking care of the ugly stuff for you.

Downside (right - just one):

--Python runs between 10-400 times slower than c++. For 3D game programming, this means no complex physics, AI, or bells and whistles.

 

Java also has its qualities, and so does Visual Basic.

0

Share this post


Link to post
Share on other sites
I can't speak with much certainty on any language, but from the research I made and the languages I tried, python indeed seemed like a very good option. To me it felt strange, but maybe because I'm used to C and Actionscript, and python is slightly different on some things (i.e. no curly braces or semi-colons). I felt like I was entering a different world, but pygame seemed powerful.

What threw me off was that pygame's text module doesn't deal with text the way I needed. I'm intending to make text adventures or text heavy games, and pygame can only throw out a line of text at a time (which meant that I'd have to learn how to do it myself from scratch in python itself, probably).

However, game programming has its intricacies, from what I've learned so far, that kind of demand that you get acquainted with certain fundamental knowledge, for example, some specific concepts of physics and math for a start (i.e., in a breakout game you probably want vectors to move the ball, in a platformer you want to simulate gravity (to an extent) as the player jumps, in a car game you want... some level of physics...).

From my experience I found that learning those things was a good step closer to my goal. Before that every time I tried to code a game I just stood there staring at a few keywords I've written, scratching my head wondering how the hell was I supposed to move that ball in 360 directions, or how in the world did people place tiles in a map. Collision detection/reaction and that sort of stuff was also a huge mystery for me before reading that book. My suggestion would be to get a book that explains this sort of stuff and those simple math/programming tricks people use, but the only book I know that does it is quite outdated: Macromedia Flash MX Game Design Demystified by Jobe Makar. This book also thought me a funny thing: there's the realistic way of simulating gravity, and there's the good-enough way. He teaches both, but uses the latter. smile.png It's a good book, but Macromedia was still a thing when it came out, it's all AS2. Regardless, the concepts of game making can be translated to elsewhere, but probably there's other books on the subject anyway (or internet articles). I have to look for that myself one of these days. Edited by Master thief
0

Share this post


Link to post
Share on other sites

I think Lua would be best. One issue with python is that whitespace matters. So, the function body must be indented in order for the function to work. Python doesn't have a way to close a function other than that. 

 

In lua you would type:

function functionName()
--code
end

The "end" statement closes the function, so whether you indent or not doesn't matter. Actionscript and several other languages use the semicolon. 

 

In python you would type:

def functionName:
    ##code
 

There is nothing to signify the end of the function other than the indentation of the second line. 

 

I have seen LUA used more with C++ than Python. I think Blender 3D uses Python as a scripting language though, and I don't like how that works so much. 

 

0

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0