• 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
sardak

Make Games, Not Engines?

47 posts in this topic

Like many others, I've been working on various iterations and incarnations of my own pet engine project for the past few years, but I've never reached a point where I considered it ready to make any sort of real game. I've seen the oft quoted recommendation as seen in the subject of this post, and I had a few questions about this route. The biggest that I'm trying to get my head around is in regards to tool development. Perhaps I've just spoiled myself with having a separate, dynamically-linked engine that I could quickly whip up various tools and test applications with, but I'm not seeing how this would be possible if I were strictly writing the game itself. Does anyone have any suggestions for this? Another problem I run into a lot, though not specifically related to this change in focus, is one of asset management. I seem to have a lot of trouble, for example, building an animation system without something to actually animate to test with. I have a few friends who are 3D modelers and such who have said they would be willing to help with the game, but without many of the tools, such as a model viewer and meta data editor, and of course various exporters/importers as necessary for their modeling environment of choice, they can't provide me with a whole lot, nor I them. What's the standard practice here? Should I just find a good format (any suggestions?) that is already developed and has exporters and such available and go from there? I've looked at collada, and while it seems to be a great idea in theory, it seems very messy to work with in the end. A very, very simple converter from collada to a basic custom format had tons of nesting and recursion that I felt was just ugly and inelegant. I've toyed with a few custom exporters before, but the maya API is an absolute nightmare to work with, and that's the program of choice for one of the more prominent artist friends of mine. I had taken a bit of a break from serious coding to give myself some time to think things out as well as just reading these forums and researching tons of related topics, but I'm hoping to jump back in with a renewed sense of purpose and I want to start on the right foot this time, so any help and pointers would be greatly appreciated. Thanks!
0

Share this post


Link to post
Share on other sites
So, you've seen that piece of advice around the forums, have you read the blog from which the advice originates?

The topic came up earlier today in this thread. Inside you'll find a link to the original piece, my summary, and a follow-up from the original author.

The original article is a good read, unfortunately the title makes a good sound-bite, but doesn't fully convey the meaning of the article.
1

Share this post


Link to post
Share on other sites
Quote:
Original post by Ravyne
So, you've seen that piece of advice around the forums, have you read the blog from which the advice originates?

The topic came up earlier today in this thread. Inside you'll find a link to the original piece, my summary, and a follow-up from the original author.

The original article is a good read, unfortunately the title makes a good sound-bite, but doesn't fully convey the meaning of the article.


Actually, that exact thread is what spurred me to make my post in the first place. The blog entry and summary you mention don't really cover my questions, hence my original post.

In essence, I'm asking what the ideal means of developing tools along side a game would be, if you're not explicitly separating the non-game code into a library of some sort to be reused between them. Yes, it's possible to put the necessary code in each project, but then you run into synchronization issues when something changes in one and needs to be updated in the other(s) but is possibly overlooked.
0

Share this post


Link to post
Share on other sites
"Write games not engines" is a warning against unnessessary complexity. If all you're doing is writing a simple game then you don't need an elaborate tools framework when writing simple collada loader (or finding a existing library) will do just fine.

Remember that it's unnessessary complexity we're trying to avoid - if you really, really do need a tool which shares code from the game then do so. But don't kid yourself that you need a massive dll-based plugin framework with lots of isolated modules in the name of building an "engine". Just moving the common code into a shared project will get you 99% of the gain for a fraction of the work, and it'll be easier to maintain too.
0

Share this post


Link to post
Share on other sites
I, like many others, have seen that phrase thrown around here a lot. I just assumed by the context in which it's used that it means the entire point of your development should be the creation of a game, not-another-game-engine. That doesn't mean you can't still create an engine. It's meant for those people who hear all the rave about game engines and want to code one from scratch using OpenGL/DirectX and etc. so they can have an engine to create a game later. -Create the game now- and let the engine develop itself alongside for that specific game - don't think much about planning for future games. Which basically just means separate (abstract) the code as you go along ('x' belongs in folder Engine, 'y' belongs in folder Game, and 'z' belongs in folder 'Editor'). Just avoid any unnecessary work as usual but separate the code. You could keep the code together and create multiple project files as well - multiple DLL files, instead of one big one that way you have a choice for the game and editor. Anyway, it's possible you could use a game DLL along side your editor, but it would be a little messy.

That's just my 2 pennies.
0

Share this post


Link to post
Share on other sites
My personal opinion on this one: make the game but think for the future.

Follow your game idea but think for reusability whenever possible. Split your project in engine side and game side. Put whatever is generic in engine side and game specific parts in game side (ex: menu system in engine side but some special menu pages in game side).

0

Share this post


Link to post
Share on other sites
Not sure if this applies to you, but I personally enjoy making engines, not games. However, my recommendation is still that you make a game alongside the engine. Making the game is where you find out what your engine is missing, or where it is too hard to use, and it handles a large chunk of the bug testing. Even if your entire goal is to make an engine, I think making games on it is crucial. Even putting Tetris into your 3D engine (2D tetris, mind you) will likely lead you to find some places where your engine needs work.
0

Share this post


Link to post
Share on other sites
Thanks for all the replies.

Unfortunately, most of them pretty well sum up the way I had been working on the project in the past and getting nowhere. While trying to make some game-specific part work, I found myself needing to write X non-game specific functionality, which in turn needed Y non-game specific functionality and so on until 99% of my time was spent writing "engine" stuff.

I suppose I'll just have to give it some more thought and try to sort things into a smoother order of implementation or something.
0

Share this post


Link to post
Share on other sites
I've experienced the same. Particularly the problem with animations. No assets to test with = can't debug animation code = can't get any artists = can't get any assets to test with... That's the most annoying part of game development in general IMO. Would be awesome if some gamedev forumer with modeling skills would provide some free models to the community, that have animations, correct face ordering (so you can back-face cull when rendering), with correct normals and with good bump maps. The "asset problem" as I'll call it is what has taken most time and pleasure away from the rest of my game programming, but as you see the rest is so fun that I won't let it make me give up!
0

Share this post


Link to post
Share on other sites
Asset problem? Ever heard of "programmers art"? That's where you just use anything you can find or make quickly and inaccurately. I can get a thousand assets from any game archive (Blizzard's MPQ for example, Bethesda's BSA) within a few hours. Fine if it's private and non-commercial. Replace them later.

You shouldn't have trouble developing an engine along side a game by the way, especially if you don't mind putting off compilation until both side's alterations are finished - back and forth. If you get hooked up on the engine 99% I can see a problem.
0

Share this post


Link to post
Share on other sites
Quote:
Original post by Dae
Asset problem? Ever heard of "programmers art"?
My programmer art' skills don't run to rigging and animating a character model - YMMV.
Quote:
I can get a thousand assets from any game archive (Blizzard's MPQ for example, Bethesda's BSA) within a few hours. Fine if it's private and non-commercial. Replace them later.
That doesn't help you on the recruitment front, as you can't demo the game with stolen assets.
Quote:
You shouldn't have trouble developing an engine along side a game by the way, especially if you don't mind putting off compilation until both side's alterations are finished - back and forth. If you get hooked up on the engine 99% I can see a problem.
I stopped making engines a while ago, to focus on a couple of games - do you know the result? 75% less code, and considerably more functionality. To be honest, most of the engine stuff people write never gets used, because by the time the game actually needs that feature, you find out it wasn't implemented quite right, and end up rewriting it.
0

Share this post


Link to post
Share on other sites
Hello all.
Seems like multiple people here have the same issue. Not having a hard already made component to put into the engine to test. This being of course to see how things work and figure out what needs to be fixed and tweaked.

Well loads of great programmers and sucky ones want the same thing I think. Is there a way to form or set up a database where people can access and input that so lots of people can access it..

Kind of like a free goldmine with nothing fancy in it but enough to help people solve problems.

0

Share this post


Link to post
Share on other sites
Quote:
Original post by Puncher
Seems like multiple people here have the same issue. Not having a hard already made component to put into the engine to test. This being of course to see how things work and figure out what needs to be fixed and tweaked.
Not sure what you mean by 'hard already made component', but the only meaningful test of an engine is to write a game using it.
0

Share this post


Link to post
Share on other sites
Quote:
Original post by swiftcoder
My programmer art' skills don't run to rigging and animating a character model - YMMV.

Same thing here

Quote:
That doesn't help you on the recruitment front, as you can't demo the game with stolen assets.

Again, same thing
0

Share this post


Link to post
Share on other sites
Hi,

Regarding asset problems, it can be easily solved.

- You can look out for simple tools which will help you develop those assets. I am using Wings3D for designing a 3D mesh and Milkshape to add animation parts. I even went as far as computing by hand vertex positions and face arrays for simpler meshes (50 faces max). Then you just need to be able to handle milkshape file format in your game.

- You can also use simple platonic solids for your game instead of advanced meshes (cubes, cylinders, spheres, cones). Paper and pen game prototyping often use tokens which have no relation with the final pieces that will be produced (pant buttons, cents, wooden cubes, ...). Then you won't lose time on tokens and will concentrate on gameplay.

- You can use animated sprites for your game instead of 3D meshes. You just design static meshes for your background and add sprites for your game characters. There are many tutorials and sprite templates you can use to derive your own sprite.

What is important is to know that asset development does take more time than developping a functional game. If you are alone, you will need to:
- create the game story
- create the level (a static mesh)
- create the level artwork (the texture for the mesh - perhaps with lighting baked in)
- create the menu artwork
- create the characters artwork
- create the music for the different parts of your game
- create the sound effects for different actions in your game

This will take you time unless you already have preexisting assets or go for the simplest route possible. For me:
- I concentrate on the game story (most important).
- I keep the level to a strict minimum (low poly static mesh with basic textures - or even no mesh for space based games).
- I reuse existing menu artwork or use simple colors.
- I create low poly static meshes for character artwork (there will always be time later for animation).
- I reuse free existing music for different parts of the game.
- I reuse free existing sound effects for different actions of the game.

Hope that helps.
Ghostly yours,
Red.
0

Share this post


Link to post
Share on other sites
Quote:
Original post by sardak
The biggest that I'm trying to get my head around is in regards to tool development. Perhaps I've just spoiled myself with having a separate, dynamically-linked engine that I could quickly whip up various tools and test applications with, but I'm not seeing how this would be possible if I were strictly writing the game itself. Does anyone have any suggestions for this?

How about keeping that separate, dynamically-linked engine for the tools?

Speaking about that, why are you working on a pet game engine that's still not ready? Can't you use that other engine instead, so you can get started on some games?

Quote:
Another problem I run into a lot, though not specifically related to this change in focus, is one of asset management. I seem to have a lot of trouble, for example, building an animation system without something to actually animate to test with. I have a few friends who are 3D modelers and such who have said they would be willing to help with the game, but without many of the tools, such as a model viewer and meta data editor, and of course various exporters/importers as necessary for their modeling environment of choice, they can't provide me with a whole lot, nor I them.

Why would you write custom tools for something that's already widely supported by modeling packages? They can create and view their models in their modeling tools of choice. You write some conversion tools to convert their output format into a format that your engine understands and go from there. Your friends only need viewers and tools if they want to see how their models will look in-game and if they need to add game-specific meta-data to them.

Quote:
I've toyed with a few custom exporters before, but the maya API is an absolute nightmare to work with, and that's the program of choice for one of the more prominent artist friends of mine.

How about simply writing an external conversion tool? It doesn't necessarily need to be a Maya plugin to work...

Quote:
While trying to make some game-specific part work, I found myself needing to write X non-game specific functionality, which in turn needed Y non-game specific functionality and so on until 99% of my time was spent writing "engine" stuff.

That might be an indication that you're doing too much on your own. What I mean is this: when you're building a house, you're not also going to bake your own bricks and chop down your own trees. You're buying those materials, perhaps even buying prefab walls and all that, because you need to construct a house, in a certain time-frame, with a certain budget.

The same goes for game-development. Your spare time is not unlimited. Neither is your motivation, and there are probably many other limitations you're working with. So, then, you should take an efficient approach. For many things, there are libraries available that already do what you need. Some may not fit your project very well, so there's some research involved in picking the best libraries for your purposes, but it often still beats writing your own - and ending up in a swamp of recursive functionalityn-needs-functionalityn+1.

Quote:
Original post by all_names_taken
Quote:
Original post by swiftcoder
My programmer art' skills don't run to rigging and animating a character model - YMMV.

Same thing here

Quote:
That doesn't help you on the recruitment front, as you can't demo the game with stolen assets.

Again, same thing

These are indeed important issues - important enough to think them over before you start coding. After all, if you can't find a solution for this, you're essentially stuck with an invisible game framework.

There are indeed free models in various formats available, if you know where to look. It's also possible that a friend or someone else is willing to make a few test models. Still, I think it's best if you yourself possess these skills, simply because you can cater them to your own specific needs. I'm not speaking about beautiful art, only about modeling tool skills (hey, it's a bunch of moving triangles!).

If none of these is an option, then think long and hard before you continue, because how are you going to get art done for the actual game if you can't take this hurdle? Is creating a content-heavy game even a wise decision? Are there no alternatives that suit your situation and skills better?
0

Share this post


Link to post
Share on other sites
Quote:
Original post by Captain P
Still, I think it's best if you yourself possess these skills, simply because you can cater them to your own specific needs. I'm not speaking about beautiful art, only about modeling tool skills (hey, it's a bunch of moving triangles!).


I think this is quite important actually. If you're wanting to actually import animations into your game, you need to understand enough about the animation process that you should be able to create an animation in whatever tool you choose (be it Milkshape, Blender, or whatever)

It could just be a couple of bones attached to some cubes or cylinders or whatever. Doesn't matter. I don't see how you can expect to be able understand animation if you can't even create a simple one yourself...
0

Share this post


Link to post
Share on other sites
Quote:
Original post by Captain P
These are indeed important issues - important enough to think them over before you start coding. After all, if you can't find a solution for this, you're essentially stuck with an invisible game framework.

There are indeed free models in various formats available, if you know where to look. It's also possible that a friend or someone else is willing to make a few test models. Still, I think it's best if you yourself possess these skills, simply because you can cater them to your own specific needs. I'm not speaking about beautiful art, only about modeling tool skills (hey, it's a bunch of moving triangles!).

If none of these is an option, then think long and hard before you continue, because how are you going to get art done for the actual game if you can't take this hurdle? Is creating a content-heavy game even a wise decision? Are there no alternatives that suit your situation and skills better?

Yes, that's why I try to make as much as possible procedural, but the big problem is still that of animated characters, which simply can't be procedurally generated - or can they?
0

Share this post


Link to post
Share on other sites
Quote:
Original post by all_names_taken
Yes, that's why I try to make as much as possible procedural, but the big problem is still that of animated characters, which simply can't be procedurally generated - or can they?


Partially, look at the actors demos. Most people, except soldiers, won't stand still, and you can use e.g. Perlin noise to stimulate characters into small motions, like tilting the head. But procedurality also has limits, as Doc Mojo hisself said once.
0

Share this post


Link to post
Share on other sites
Quote:
Original post by all_names_taken
Yes, that's why I try to make as much as possible procedural, but the big problem is still that of animated characters, which simply can't be procedurally generated - or can they?

That's probably possible, but it looks like it'll take a lot of research to get right. I think it's easier to learn how to animate well than it is to create an animation generating tool that actually produces nice results.

So the point in your case is, is it doable to create a game with (many) animated characters? Maybe you need to tune down the number of characters, or the number of animations, or both. Or go for a solution that doesn't need such animations, like a different art style.


My main point was, however, that you need to think about this beforehand. If you're a great programmer who's horrible at painting, you shouldn't pick artistic quality as the selling point for your game. You should pick an abstract art style that benefits from procedurally generated content, or something else where you can make the most of your skills while not being hindered by your handicaps.

I happen to be both an artist and a programmer, having spent years in both areas. I can focus on art just as much as on programming, so having to create nice art and levels isn't going to be much of a problem for me. However, I don't have a lot of spare time, so I can't afford to spend too much time on anything. That's why I'm building a 2D rather than a 3D game, and why I'm using Ogre 3D and SDL for rendering and input, and why I'm using Python to prototype things I'm unfamiliar with. That's also why I've started building an in-game editor; to be able to create levels as quickly as possible and to reuse the code for the game itself. I'm also writing down the requirements and design for my game, so I always have a clear goal. Working without a goal leads to wasting time, and that's just not an option for me.

So, make the most of your strong points and try not to let your weak points become a stumbling block. Also, don't just start coding right away. Make a plan and prepare to finish what you start, don't just think you can deal with things when they come up.

[Edited by - Captain P on February 2, 2009 9:29:33 AM]
0

Share this post


Link to post
Share on other sites
Quote:
Original post by Codeka
Quote:
Original post by Captain P
Still, I think it's best if you yourself possess these skills, simply because you can cater them to your own specific needs. I'm not speaking about beautiful art, only about modeling tool skills (hey, it's a bunch of moving triangles!).


I think this is quite important actually. If you're wanting to actually import animations into your game, you need to understand enough about the animation process that you should be able to create an animation in whatever tool you choose (be it Milkshape, Blender, or whatever)

It could just be a couple of bones attached to some cubes or cylinders or whatever. Doesn't matter. I don't see how you can expect to be able understand animation if you can't even create a simple one yourself...

I would like to emphasize this point too.

I might not be the most fun to learn something you'll never excel at or even like doing, but it's vital to understand the basics. Investing some time in it will give you a better insight in what animation is all about and what a 'proper' artist will have to deal with it. And it'll allow you to make your own models for testing and place holding, which is inevitable in small or one man teams. Sure, your character will look like a giant turd on life support, but anyone familiar with game development is used to that and will know it's only a temporary asset.
0

Share this post


Link to post
Share on other sites
If you're going 3D I would suggest using one of those open source game engines because it will lighten your work considerably. In the past I created games without worrying much about the engine, just doing minimal stuff, but these were 2D games. I have yet to see a 2D game engine that is available to the public but I'm working to try to right that.
0

Share this post


Link to post
Share on other sites
My usual answer on such topics: If it is for fun or for gaining skills, do it yourself. If you intend to ever have users, especially if you are on your own, then yagni and kiss butt.

Yagni would include the case where you just code the OpenGL or Direct3d stuff you really (really! not probably nor potentially!) need, or be even more lazy but wiser, and use a ready engine.
0

Share this post


Link to post
Share on other sites
Quote:
Original post by swiftcoder
Quote:
Original post by Dae
Asset problem? Ever heard of "programmers art"?
My programmer art' skills don't run to rigging and animating a character model - YMMV.


Does this help?
0

Share this post


Link to post
Share on other sites
Quote:
Original post by Zahlman
Quote:
Original post by swiftcoder
Quote:
Original post by Dae
Asset problem? Ever heard of "programmers art"?
My programmer art' skills don't run to rigging and animating a character model - YMMV.

Does this help?
Somewhat, though rigged models I can find aplenty, but animations tend to need to be heavily customized. In general, I just stick to genres that don'e require characters for the time being - spaceships are so much easier to create [wink]
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