d2jsp
Log InRegister
d2jsp Forums > Off-Topic > Computers & IT > Programming & Development > Game Development Super Thread
12Next
Add Reply New Topic New Poll
Member
Posts: 2,673
Joined: Jun 23 2006
Gold: 300.00
Nov 22 2015 04:00pm
Let me just start by clarifying what the goal of this post is, and why I think d2jsp serves as a good place for this kind of discussion. We have a variety of skill levels, motivations, and backgrounds here, but a common theme is that most people were drawn here by the enjoyment of video games. Whether this turns into a new ground for collaboration on cool game projects, a place for people to use gaming as a medium for learning to program and design good software, or just a reference for people looking to get started, those are all great pursuits and at least worth giving this a shot.

So to start, a really quick agenda. This is a “top-down” approach to learning game development, meaning I want to stay away from the “theory” of game dev and stick to a results-based approach. This way, someone can pick up any game engine, in any language, and be able to take a project to completion.

My background, I studied computer science in college with no intention of learning game development. But after taking a computer graphics course, I built a stupid little game where you run away from an enemy in an arena, and once you get caught you lose. It was simple, barely fun, and had Weird Al Yankovich as the villain, but that week I spent creating the game showed me just how many ways programming can be applied in meaningful ways.

That new found motivation caused me to build a small “game engine” (that’s being generous) and starting a game development club at the university. We had about 15 people and 3 different projects going by the end of the year before I graduated, and I immediately shifted that motivation into my own projects. I finished on small online ARPG which could be played over LAN, and then started a new hobby project which eventually turned into a commercial game that is being published early next year. Development has been going on for about 3 years now... and trust me it's very hard to keep a project alive for that long!

Game development has had its ups and downs for me, but I would just like to share some of the things I’ve learned along the way, and experiences I’ve had, so that others can have a less rocky road and maybe eventually have their own commercially published (or even successful!) game.

Ok that’s a big wall of text already, so I’ll end with a really short agenda for the next few posts..

- Game engine overview, sorted by language, open-sourceness, complexity of toolset, and use in commercial games
- The basics. Getting familiar with the update loop of a video game
- Intro to 2D gaming, the rendering pipeline
- Fast math for 2D gaming, how to make the pixels do what you want them to do
- Useful design patterns for gaming software to solve some tedious problems
- 3D game development, major pitfalls and considerations
- Multiplayer game programming. UDP and TCP for U ‘N ME.

Member
Posts: 722
Joined: Jul 24 2015
Gold: 0.00
Nov 24 2015 06:02pm
This looks great, cant wait to hear more. Might have questions for you regarding game dev as well as CS in general!
Member
Posts: 29,345
Joined: Mar 27 2008
Gold: 504.69
Nov 25 2015 10:25am
Did you design the art assets for your own game? I was playing around with making a small html5 game and always got hung up on the art and eventually abandoned the project.
Member
Posts: 2,673
Joined: Jun 23 2006
Gold: 300.00
Dec 10 2015 06:57pm
Sorry guys, day job + game dev got me super tied up! Going to post the first article tomorrow. To answer your question, I hired a contractor to do the art for my game. Granted, it was commercial so it made sense to. For my hobby projects, I used art that was licensed under creative-commons so that it could still be distributed if I decided to sell. More on that here:

https://wiki.creativecommons.org/wiki/OpenGameArt
Member
Posts: 2,673
Joined: Jun 23 2006
Gold: 300.00
Dec 11 2015 11:02am
Where to Start: Game Engines and Graphics Libraries

So for many people, the hardest part about learning anything new is "Where do I start." With something as complex as game programming, this is especially true. I'm going to go over a few different game engines, libraries, and helper tools, but just know there are literally dozens if not hundreds of these to choose from. If it's your first game, the most important thing is just to choose one in a language you are proficient in, and take a project to completion.

Lets start by separating them into a few categories:

Game Engine – Limited Programming
Game Engine – 2D
Game Engine – 3D


Game Engine – Limited Programming
These are engines that are "drag and drop" or "wysiwyg" (pronounced wizzy wig  ). They're great for prototyping an idea, or if you just need a really basic starting point. If you're a person who needs instant gratification and has a hard time seeing things through to completion, this will give you lots of small iterative steps to see progress. You can even share the games with your friends at any time pretty easily. Some examples of these engines:

Game Maker Studio, by YoYo Games: http://www.yoyogames.com/studio
This one has a free download, and is probably the most widely used. It also has its own scripting language called GML that is good to practice your programming skills with more advanced features

Adventure Game Studio: http://www.adventuregamestudio.co.uk/
This is mainly for point-and-click adventure games, like Monkey Island, and has some pretty cool advanced features as well

RGP Maker: http://www.rpgmakerweb.com/

As the name states, this is geared towards RPGS and has tons of tile sets for you to choose from so you don’t' have to worry about art.

Game Engine – 2D

LÖVE: https://love2d.org/
LÖVE is a multi-platform, free 2D game engine that you can program in Lua, which is a functional scripting language. It's open source, so you can even check out the inner workings of the engine yourself! It has a very healthy community and many commercial games released

LibGDX https://libgdx.badlogicgames.com/
This is a java-based game engine that is multi-platform and is open source as well. It has been around for a long time, and because of that it is one of the fastest performing game engines out there. There lots of demos and tutorials on their site for you to check out.

Construct 2 : http://scirra.com/
This engine has the added benefit that it is both native and web-based. It has a very easy to use interface with a lot of drag and drop features to be a strong middle-ground for starting developers

Game Engine – 3D

JMonkeyEnginehttp://www.jmonkeyengine.org/
This is my engine of choice, for a few reasons. It's Java, so easily portable to multiplatform and I am very proficient in Java. It's open source, so I can modify the source however I need. It's has hundreds of contributors, so the add ons and plugins are above and beyond any that I've seen in any engines. Very happy with it so far

Unity https://unity3d.com/
Unity has been around for a long time, and has the huge benefit of a large budget for tooling and support. It is quite pricey, but there are indie-centric prices available. It is C# based, and offers a lot of drag-and-drop functionality as well for easy entry into 3D games

Unreal Engine https://www.unrealengine.com/blog
Unreal is for super developers who are comfortable in C++ and the inner workings of game development. Very powerful, but not for the faint of heart. This is aimed towards AA – AAA studios, and now that you have access to the source of the engine, you can really get the most of out of it. The learning curve is pretty steep, so you have to be really committed to finishing your project. The benefits will be very high though.

Ok so that's enough for this first article, I glossed over a TON here to keep it digestible, so let me know any questions you have before I dive into the other articles!

This post was edited by phintastic on Dec 11 2015 11:02am
Member
Posts: 5,667
Joined: May 23 2006
Gold: 44.00
Dec 14 2015 07:32am
Awww was hoping to see some XNA up in this here ;)

Really loved the riemers tutorials.
will keep track of this and how it progresses, sounds definitly interesting
Member
Posts: 8,835
Joined: Dec 18 2004
Gold: 1,579.37
Dec 17 2015 12:04am
Unity should be included in your 2D section, also, it'd be worth noting the capability of different OS's per engine listed. Additionally, releasing a game with that certain engine on which platform, such as Steam (or a list of available platforms, targeted audiences, and other things).
Member
Posts: 2,757
Joined: Nov 26 2007
Gold: 1,214.81
Dec 17 2015 08:16am
I use LibGDX. Also, it supports 3D
Member
Posts: 2,673
Joined: Jun 23 2006
Gold: 300.00
Dec 18 2015 07:51am
Quote (ius @ Dec 17 2015 06:04am)
Unity should be included in your 2D section, also, it'd be worth noting the capability of different OS's per engine listed. Additionally, releasing a game with that certain engine on which platform, such as Steam (or a list of available platforms, targeted audiences, and other things).


Good points. I listed multi-platform for those that deploy to any OS, but I did not list each specific OS.

Also, any of these engines can be run on Steam.

Quote (labatymo @ Dec 17 2015 02:16pm)
I use LibGDX. Also, it supports 3D


That's correct, but it's relatively new and I wouldn't recommend it to anyone over other primarily 3D engines out there. Not in its current state at least, but it does offer a lot of the basic 3D rendering features.

This post was edited by phintastic on Dec 18 2015 07:54am
Member
Posts: 1,158
Joined: Oct 5 2010
Gold: 0.00
Jan 5 2016 02:04pm
Slant has a pretty big list: http://www.slant.co/topics/341/~2d-game-engines
if you're looking for some 2d engines to try.
Go Back To Programming & Development Topic List
12Next
Add Reply New Topic New Poll