Jump to content
  • Advertisement
Exoaria

How do people make games without a commercial engine?

Recommended Posts

I see a lot of indie games being released, with "Made with C# and LUA" in their descriptions.

I'm curious to know how viable it is to write your games from a base level of code which is then compiled.

I can't fathom how games are made without an engine. How does someone pick up C# and write games in it for those 24 hour marathons?

From recent study I think it may have something to do with "Libraries", but I still don't know how it works.

Specifically, I don't know how someone draws images to the screen, animates them, creates physics for certain "sprites" and does all of the other stuff that seems so easy in modern engines.

Are libraries used to make this process easier? Would you recommend that someone who has a primitive but solid understanding of programming use a language as opposed to someone else's engine?

I am not talking about fancy 3D games -- just the typical lightweight 2D indie games in this context.

Share this post


Link to post
Share on other sites
Advertisement

+1 to everything Kylotan said, and I would add that it greatly depends on the type of game you're making. The game I'm working on right now relies heavily on server-side logic with a relatively lightweight client. I don't plan on using an engine, but am definitely making heavy use of libraries on both sides. I also doubt this would be the kind of game you'd make during a 24-hour jam, but anything's possible...

Share this post


Link to post
Share on other sites
5 hours ago, Exoaria said:

I see a lot of indie games being released, with "Made with C# and LUA" in their descriptions.

I'm curious to know how viable it is to write your games from a base level of code which is then compiled.

I can't fathom how games are made without an engine. How does someone pick up C# and write games in it for those 24 hour marathons?

From recent study I think it may have something to do with "Libraries", but I still don't know how it works.

Specifically, I don't know how someone draws images to the screen, animates them, creates physics for certain "sprites" and does all of the other stuff that seems so easy in modern engines.

Are libraries used to make this process easier? Would you recommend that someone who has a primitive but solid understanding of programming use a language as opposed to someone else's engine?

I am not talking about fancy 3D games -- just the typical lightweight 2D indie games in this context.

In the 15+ years I've been programming, and mostly doing game development, you tend to have very big library of re-usable code. I've made 2D engines, level designers, item editors, you name it! After making so many engines (really, it's just a collection of re-usable classes to handle the many operations within a game), and tools you tend to become very accustomed to the process which makes those 24 hour marathons very easy for simple single player games, even with the rule that you cannot use pre-existing code.

A lot of people including myself use libraries because I don't need to reinvent the wheel to communicate with the hardware. Another reason you'll see a lot of people using libraries is that they enjoy the creative process of making games and maintaining as much control  as possible. I personally wouldn't use another person's or company's game engine unless it was for a 3D game. 2D games are very simple and I don't need to be concerned with licensing conditions, and working within a restricted environment. I really enjoy the creative process, which is why I never enjoyed using other people's tools, regardless of saving time, or being easier.

Edited by Rutin

Share this post


Link to post
Share on other sites
12 hours ago, Exoaria said:

I can't fathom how games are made without using code that someone else wrote. How does someone pick up C# and write games in it for those 24 hour marathons?

From recent study I think it may have something to do with "code that someone else wrote", but I still don't know how it works.

Specifically, I don't know how someone draws images to the screen, animates them, creates physics for certain "sprites" and does all of the other stuff that seems so easy with modern code that someone else wrote.

Are collections of code that someone else wrote used to make this process easier? Would you recommend that someone who has a primitive but solid understanding of programming use a language as opposed to someone else's code that they wrote?

Engines contain libraries. Libraries are just code that someone else wrote. Engines are just code that someone else wrote. 

In the quote, above, I've replaced library/engine with "code that someone else wrote" :D

So, what you're asking is whether gamedev is easier when you leverage existing work, and is it harder when you leverage less existing work, and is it much, much harder when you leverage a minimal amount of existing work. Yes, it is :)

Share this post


Link to post
Share on other sites

In response to a clarification sent in a private message - apart from code that performs certain tasks, there is obviously a lot of knowledge that is required to be effective with game development, and if you're not using a game engine, then there are often several bits of functionality that you need to write (or at least integrate a library for) which you wouldn't ever have to understand if you used the engine's built-in functionality. Learning how to do those techniques - and indeed discovering which ones exist for a given situation - is a slow process, but there's no magic to it. You learn them from:

  • university
  • books
  • online articles
  • online courses
  • reading existing code
  • talks at GDC or similar
  • video guides and tutorials
  • speaking to coworkers
  • asking good questions on Gamedev.net

Share this post


Link to post
Share on other sites

Since the date I asked this question I spent a vigorous amount of time learning C# and going through programming books.

Even though it's been a month, I feel that I can answer this question better now. What I was looking for was a framework for C#. I didn't understand that not everyone programs a game using DirectX or OpenGL from the ground up.

When using a programming language like C# -- that's all it is, just a language. A way of communicating and translating information. You can build your engine from scratch (which would be near impossible for a beginner) or use a range of libraries and frameworks created by other people for serving the bare minimum amount of functionality for the application you are trying to create. C# doesn't magically make it happen. It communicates through the Operating System and sometimes it's easier to get someone else's code and use it to translate it rather than doing it yourself.

Essentially, when I asked the question, the image that I had in my head could be most closely related to XNA. It's now discontinued, so MonoGame would therefore be the answer I was hoping to get out of the query :"How do I use C# to make a game without a commercial engine?"

Edited by Exoaria

Share this post


Link to post
Share on other sites

Engines for example like Unity have pre-built codes in it, so with that you can make game easier and faster, Unity itself was made from code , so a lot of stuff have started without engines.

Share this post


Link to post
Share on other sites

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!