• As part of the relaunch of Skullheart, ALL previous threads have been archived. You can find them at the bottom of the forum in the Archives (2021) section. The archives are locked, so please use the new forum sections to create new discussion threads.

Game Programming vs Game Design

Covenant

HE WHO IS CAT (Dravidian)
Joined
Nov 3, 2013
Messages
1,060
Reaction score
446
Points
83
Age
34
Location
GA
Website
red-dust-covenant.deviantart.com
Steam
dravidian
PSN
NeoDeoN
Parasoul Filia Cerebella
Long story short I've had a game design (system, flow, characters, music, file organization, etc) on my mind for years and I finally said "why not" and started on it. The problem is that I'm pretty much doing everything by myself from scratch from engine/program design to character animation (2d game). This takes a lot of time especially since I'm learning OpenGL; DirectX is easier to learn imo (I had examples running in a few minutes), but there are more platforms that support OpenGL.

So I'd like some advice and opinions from those a bit more experienced:

What are some benefits of making your own engine (what I'm currently trying to do) and making a game with that vs just making a executable vs just using an existing engine and making a game with that. I have a few in mind, but I wanted a few more opinions.

Also, for anyone who know opengl, any tips would be awesome.
 
Well in the past two weeks I've made decent progress and answered many of my own questions, but if anyone wants to add anything feel free to.
 
I'm going to make a few assumptions:
1. You're new to making games
2. You're not a programmer

In this case I can say with a reasonable amount of conviction that writing your own engine is not the best use of your time. You'll be much better off using an existing engine for your game. You've given no indication of how complex the game will be other than it being 2D, so chances are that you won't need to roll-your-own because the features you need will likely be available and more stable elsewhere. If you do need features that existing engines can't do, then your game is already way too complex for a first game project, let alone a first solo game project.
 
Wrong on both accounts, but thanks for the input. I've been programming for about 6 years now and I've made a few small games and plenty of applications and used several prebuilt engines; my focuses in school were educational design/interaction and psychology so the apps and designs revolved around those aside from a few I made for friends. However, I wanted to make an engine and a game with said engine for 3 reasons (which after re-reading my initial post I stated very poorly or not at all):

1. I enjoyed both game design(including art design) and programming back in school but feel that in modern game development I would have to focus on one way more than the other (when working on multi person projects things just naturally leaned in that direction) and I, while good enough at both, wasnt sure which direction I actually wanted to take(assuming one of the companies I've applied for gives me both options). What I was sure of was that if I focused on programming I wanted to make the tools used for design (the engine); I enjoyed making tools where users make their own content (video/camera/window control and manipulation software) much more than making applications that only did a few set functions (input graphing software).

2. Even if I want to focus on one aspect, the needs of either skill will vary widely based on project and company. Many companies make their own engine while others, often smaller ones with fewer coders, use premade ones. The need and funds will also naturally vary. There are times when buying the license to a well known engine will be a good choice and times that developing an in-house engine will be best. I wanted other opinions because I simply wanted view points that I may have overlooked.

3. I just wanted to see if I could do it. I enjoy challenge. I enjoy seeing my limits, learning new things, then coming back to piss on said limits. It's like dick-measuring for programmers.

A bonus is that it'd look good on my portfolio.

Concerning the complexity of the game, it's a non-issue, especially since I'm using pre-existing libraries (i.e. I'm designing a car, not the wheel). I've literally programmed most of the features across various apps: memory mapping and allocation/deallocation, various data sctructures, collision detections(including interpolated forms for those annoying cases where objects pass through each other instead of colliding due to speed), physics(the only science I truly understood before learning programming), input reading(made easier with libraries), u.i., etc. They were just in stand alone applications instead of a game engine.

So far, OpenGL(for graphics obviously) and relearning how to make parsers/lexers (for complicated inputs and script analysis which I may drop because I hate that crap and have been having a good time with Lua) have been the only things I actually need to learn.

I'll learn some low level networking stuff later on after I've made significant progress.


But again, thanks for the input.
 
i'm not experienced, so sorry for the lame question but...

does what you have in mind need any kind of special resource that you can't find on other engines in the market?

Even if you're an experienced programmer and have many of the features at your disposal, everything you have to program from scratch might be time consuming and/or pretty hard to do. Unless you specifically want to "do it with your bare hands", it'd be easier to use another engine that has everything you need and focus on design and gameplay
 
I imagine it's alot like building a car from scratch. Sure you could just buy one but there's also a certain feeling you can only get from making it yourself.
...
I wanna make my own game engine now
 
Wow. I'm making my own game too, but all i have are written concepts and not a single drawing. As for engines, I will learn how to use them, then i will pay for a certain engine nudge-nudge, wink-wink! Does any one want to see?
Also, as for advice, i think...you should...okay! I'm a little new to this too. The only thing i've done was mess around with inspect element with hilarious results ensuing. But that's as much experience i've ever had
 
i'm not experienced, so sorry for the lame question but...

does what you have in mind need any kind of special resource that you can't find on other engines in the market?

Even if you're an experienced programmer and have many of the features at your disposal, everything you have to program from scratch might be time consuming and/or pretty hard to do. Unless you specifically want to "do it with your bare hands", it'd be easier to use another engine that has everything you need and focus on design and gameplay
Things I've consider when looking at other 2D/3D engines: licensing/commercialization, pricing, tools offered/tools needed, size of the engine and how it affects the size of the final executable, efficiency, and portability.

Reasons to make my own: experience, the tool is customized to both my taste and needs, I only have to spend time(not money), I'm the type of person who prefers to do something himself if he has the ability and time to do so (my job is pretty lenient so if there's nothing to work on I get to do whatever), my e-peen.
I imagine it's alot like building a car from scratch. Sure you could just buy one but there's also a certain feeling you can only get from making it yourself.
...
I wanna make my own game engine now
It is. It's hard and time consuming, but you'll learn a lot. Almost every time I learned something about 3d programming I realized it was either something I noticed used in a game before and didnt know what it was or I suddenly realized a way to perform a task way easier than I'd been doing before.
 
well... sorry. i just wanted to help.

On the money side, i THINK Unity and Multimedia Fusion aren't that expensive (Unity has a monthly-fee license if you don't want to pay 1500 bucks on it, a free, non-commercial version to test it and an asset store, too). can't say if they're good, however
 
Last edited:
I wonder how exactly coding works. do you need an ashii code or do you type real words?
 
Wow. I'm making my own game too, but all i have are written concepts and not a single drawing. As for engines, I will learn how to use them, then i will pay for a certain engine nudge-nudge, wink-wink! Does any one want to see?
Also, as for advice, i think...you should...okay! I'm a little new to this too. The only thing i've done was mess around with inspect element with hilarious results ensuing. But that's as much experience i've ever had
The game I'd want to sell, but I'm open to letting people use the engine for free. I doubt I'd make it open sourced, though.

That being said, it's always good to experiment. When learning I only really understand like 70-80% of what I was reading, sometimes 50%. Experimenting and seeing how things changed usually resulted in me understanding whatever I didnt before.

Also, there's nothing wrong with concepts. Just ensure you have a proper design flow/sequence. Games, and many programs, are just state machines, so if you know the sequence of states you just need to figure out how to program them. Congrats you're,25% there =)
 
well... sorry. i just wanted to help.

On the money side, i THINK Unity and Multimedia Fusion aren' that expensive. can't say if they're good, however
???
Nothing to apologize for. I was legit thankful for the input. Unity and unrealscript are both free to an extent and pretty decent. I've used the student version of unity and it's not bad; in fact it's pretty easy to get stuff up and running. I never bothered with unreal though. The free version only gives you their scripting language and if you want to sell your game without paying for a commercial license it needs to be under $10.
 
I wonder how exactly coding works. do you need an ashii code or do you type real words?

both and neither.
over simplified explanation:

You type text, which can be in a text format like ascii, but the type of text you write depends on the coding language; there are many and most have strengths or weakness (some only have weaknesses).

The languages themselves (words, syntax, grammar) vary a lot, but there are a few that read similar to English. Most languages have reserved words/symbols (words/symbols with meanings you usually cant change), but anything (variables/functions/other crap the language allows) that isnt those words or symbols you can give almost any meaning you want. Example:
in Lua I can do this
ihave=3
bigballs=2


and if I add them together I get five.
ihavebigballs.png

I can also do it yoda style and still get 5.


Anyway, after your code is complete, there is something called a compiler that essentially takes your code and turns it into something the computer can read.

There's a bunch of language and compiler specific things, but those are the bare basics....well, not even bare.....more like bare bones...

Long simple story short:
1. coding language gives you base rules, words, and tools
2. you make the rest of the rules, words, and tools with that language
3. compiler translates the rules, words, and tools you made into something the computer understands
 
Generally speaking, if there's any question as to whether or not you should be coding your own engine, you probably shouldn't be coding your own engine. Making your own engine is one of those things that you do when you've researched for a week and decided there just aren't any engines out there that achieve just what you want. If you can avoid it without making your game significantly worse, avoid it. It's a hell of a lot more work tacked onto the already time consuming process of making a game.
It's pretty much necessary that you describe the game in more detail before anyone can recommend anything personal, but in general Unity can make pretty much any game you want even if there might be a better option for a particular genre or type of game. It's easy to use if you already know c#/javascript, and it's probably the most versatile engine out there while being decently powerful. Basically, it's not always an optimal choice, but it's usually at least a decent choice.

On the money side, i THINK Unity and Multimedia Fusion aren't that expensive (Unity has a monthly-fee license if you don't want to pay 1500 bucks on it, a free, non-commercial version to test it and an asset store, too). can't say if they're good, however
The only important thing you really get from unity pro is some shaders. You also get some other assets and stuff, but the shaders are the only things that I've ever really thought "man, I really wish I could use that!"
 
are there good fighting game engines that at least compare to the z's superiority?
 
Generally speaking, if there's any question as to whether or not you should be coding your own engine, you probably shouldn't be coding your own engine. Making your own engine is one of those things that you do when you've researched for a week and decided there just aren't any engines out there that achieve just what you want. If you can avoid it without making your game significantly worse, avoid it. It's a hell of a lot more work tacked onto the already time consuming process of making a game.
It's pretty much necessary that you describe the game in more detail before anyone can recommend anything personal, but in general Unity can make pretty much any game you want even if there might be a better option for a particular genre or type of game. It's easy to use if you already know c#/javascript, and it's probably the most versatile engine out there while being decently powerful. Basically, it's not always an optimal choice, but it's usually at least a decent choice.
Thanks for the input! But, yeah it was supposed to be more of a question where I'm comparing my actual interest with the pros and cons of engine design, not a "is making an engine a good idea if I want to make a game"; it was meant to be a general question. The pros of making the engine combined with my personal interest had more weight in the end, though. But once again, thanks for the input!
 
Thanks for the input! But, yeah it was supposed to be more of a question where I'm comparing my actual interest with the pros and cons of engine design, not a "is making an engine a good idea if I want to make a game"; it was meant to be a general question. The pros of making the engine combined with my personal interest had more weight in the end, though. But once again, thanks for the input!
From what I can tell, it sounds like you're good on the technical aspects, but you don't have much experience with the design aspects.
Even if you're dead set on programming your own engine, it might be a good idea to screw around with some of the easier stuff just so that you actually start making games rather than spending a few months coding an engine for one.
 
From what I can tell, it sounds like you're good on the technical aspects, but you don't have much experience with the design aspects.
Even if you're dead set on programming your own engine, it might be a good idea to screw around with some of the easier stuff just so that you actually start making games rather than spending a few months coding an engine for one.
The issue is that I've never really had to do both at the same time due to class or project structure. For example, in my GBA class we made small games, but it was more about learning the c language and games than making tools. That's mostly due to the way gba debugging works (i.e. it really doesnt so you have to hack around). So we mostly made reusable libraries with helper functions; those helper functions were just whatever I needed.

In other classes/projects, like my UI design ones we usually started off with preset needs or client needs and focused on those.

So from an engine design standpoint, there's much for me to learn, but I'm not unfamiliar with design. I already have the basic structure and pipeline for my needs/non-needs planned out and I'm making changes as I'm learning opengl. Fortunately I have the time to do it, otherwise I really would say "eff it" and just play around more with other engines
 
If your game is just 2D then is there any particular reason why you aren't going to use something like SDL or SFML?

As for an engine, do you feel that other engines don't offer the support for what you want in your game? If not then I can't see any reason other than a desire to learn (and maybe money depending on the engines that you might want to settle for) that you shouldn't settle for something that someone else has already made.

Also keep in mind you don't have to use or make an entire game engine, for example you could use Box2D to deal with physics while you set everything else up yourself.
 
If your game is just 2D then is there any particular reason why you aren't going to use something like SDL or SFML?

As for an engine, do you feel that other engines don't offer the support for what you want in your game? If not then I can't see any reason other than a desire to learn (and maybe money depending on the engines that you might want to settle for) that you shouldn't settle for something that someone else has already made.

Also keep in mind you don't have to use or make an entire game engine, for example you could use Box2D to deal with physics while you set everything else up yourself.
I've used sfml, but just didnt like it. As a tool it's fine and fits many but not all of my needs; it also had a few things I wasnt interested in. I've used Boxed2D, but dont need it; one of my classes required me to program my own physics and collision library (it can do either square or circular collision on a 2 dimensional plane; adding a 3rd dimension isnt much harder) and I plan on using that.

That being said, I am using some prebuilt tools (glew, libpng, glfw, and the unofficial opengl sdk) and some libraries that I've made over the years. After looking through some of the source code for premade engines and tools, there is no way I'm about to make EVERYTHING from scratch.