• Advertisement
Sign in to follow this  

Building a game from scratch

This topic is 984 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hey, guys. I asked this at StackExchange—but was recommended here (HELLO, I AM YOUR NEW MEMBER):

 

I'd like to build a game from scratch. In the end, it will be an isometric action MMO. (It won't be like Diablo or Torchlight; I have specifics in mind, but I'm not sure those really matter at this point).
 
I'm somewhat of a C++ newb, but that's what I'm writing it in. Since I'm so new, I'm writing it now like a MUD, beginning with [a very rudimentary hierarchy of] items, character/NPCs, and "rooms" (to be: tiles). Specifically, I'm working on the logic behind the information items will contain and how this affects characters. I figure I can implement graphics and change things appropriately *after* I have a fully working (not necessarily complete) MUD-like game.
 
I know this is a huge endeavor that will take me a very long time, but I'm ok with that. Over the past few days I've done a ton of reading; I'd just like to make sure that the path I want to take is sustainable (and this seems like a great resource to do so). My questions: 
 
  • Knowing that I'll eventually need graphics, is it ok to build a rudimentary MUD and work from that? Or is there a completely different mindset I should be taking? That is, will building a MUD first hinder me more than help me?
     
  • There are a *ton* of aspects to game development (art, itemization, the logic behind every object, etc.). Is there **a)** a canonical breakdown of these things—like the scientific method of game-design? **b)** a most important one I should be working on first?
     
  • While I'm open to *not* "reinventing the wheel," my being such a nublet, and the fact that I've never seen a game with the mechanics I'd like to implement, makes me hesitant to use already-existing stuff. I'd like to build what I can, then, when I'm well-versed enough, look into using something else (or improving my own!) Is this ok, or are there some things such that there's *no* reason to code myself? (I'm not looking to pump out a quick game and make cash.)
     
  • I'm under the impression that "building a game from scratch using C++" means I'll be coding *everything* in C++. Is this viable—or is it more like saying "I'm going to use binary to build a program?"
     
  • What's love like?

Edit: Although I'm a C++ nublet, I'm pretty proficient in Python, Java, PHP, and a few others.

Edited by AmagicalFishy

Share this post


Link to post
Share on other sites
Advertisement
1) Knowing that I'll eventually need graphics, is it ok to build a rudimentary MUD and work from that? Or is there a completely different mindset I should be taking? That is, will building a MUD first hinder me more than help me?

It will help you a lot. Start small and grow over it, since you are a beginner you probably have no real idea of how complicated creating those things actually are. Also, you can easily scale to graphics, pathfinding and many other control structures you will need to build.

2) There are a *ton* of aspects to game development (art, itemization, the logic behind every object, etc.). Is there **a)** a canonical breakdown of these things—like the scientific method of game-design? **b)** a most important one I should be working on first?

Nope, it is not rocket science, at best you will find some design patterns and work methods that will reduce the amount of work and increase its quality.

2) While I'm open to *not* "reinventing the wheel," my being such a nublet, and the fact that I've never seen a game with the mechanics I'd like to implement, makes me hesitant to use already-existing stuff. I'd like to build what I can, then, when I'm well-versed enough, look into using something else (or improving my own!) Is this ok, or are there some things such that there's *no* reason to code myself? (I'm not looking to pump out a quick game and make cash.)

Really depends on what you are really interested in focusing your knowledge. I would say stay in middle ground by using libraries, i. e.: if you need to set the properties in the code (and understand why the properties have the given values), you are likely to be fine. If it is a tool that you just call DoItForMe() or push a button and everything works, you are unlikely to learn anything from it.

3) I'm under the impression that "building a game from scratch using C++" means I'll be coding *everything* in C++. Is this viable—or is it more like saying "I'm going to use binary to build a program?"

Both are possible, but the first one would take you 50 years, the second will probably take a few years.

I don't want to be negative about it, the most likely prediction is that you will work on it for a few months and quit. That is not bad, as long as you learn a lot from the experience.

Many years ago I gave it a try, mostly to learn, and boy, did I learn. I learned how to serve multiple clients on a network program, how to pack data (server was on C, client on python), basics of pathfinding, A LOT about multi threaded application, a little of physics and a little of shaders.

4) What's love like?

Do something over and over again, be happy doing it and never looking back.

Share this post


Link to post
Share on other sites

Thanks for the responses, guys. Very helpful. smile.png

 

I'm trying hard to separate having an end-goal, and having delusions of grandeur. 

 

For now, I'll begin with a single-player text RPG while keeping the end-goal in mind (i.e. - There doesn't need to be 30 synonyms for "attack." Eventually, it will be a button-press.)

 

Another couple of questions, if you guys don't mind:

  • Would it be best to go from single-player text RPG to single-player RPG w/ graphics? Or from single-player text-RPG to MUD, then to single-player graphics RPG to MO (to differentiate from MMO)? That is, at what point should I delve into the networking aspect of things? 
     
  • On the subject of networking, is what I learn from building a MUD transferable to an MO?

Share this post


Link to post
Share on other sites
Would it be best to go from single-player text RPG to single-player RPG w/ graphics? Or from single-player text-RPG to MUD, then to single-player graphics RPG to MO (to differentiate fromMMO)? That is, at what point should I delve into the networking aspect of things?

 

 

Either option is sufficient, but I would advice the first (text to graphics) as it will introduce you to some event-based programming concepts that may help you understand real-time networking easier. Beyond that, tackle learning about networking when you feel comfortable with doing so.

 

On the subject of networking, is what I learn from building a MUD transferable to an MO?

 

 

Aspects of it will be, yes.

Share this post


Link to post
Share on other sites

Would it be best to go from single-player text RPG to single-player RPG w/ graphics? Or from single-player text-RPG to MUD, then to single-player graphics RPG to MO (to differentiate from MMO)? That is, at what point should I delve into the networking aspect of things? 

 

I personally would skip the text part and go straight to an event based game. There is a technique that envolves designing the game as a client-server application and running the single player game in localserver host. This would save the time do adapt the single player game to work on a client-server manner.

 

I would start with that (create the base client, render a fixed dungeon and moving), and evolve on player actions (attack, collect item, etc).

 

 

On the subject of networking, is what I learn from building a MUD transferable to an MO?

 

 

I didn't really understand the question, sorry.

Edited by KnolanCross

Share this post


Link to post
Share on other sites
If you're not in a hurry to get the program finished, consider doing an "internship" in one or more open source projects for some time.

Working in an open source project is a great way to learn coding at a bigger scale, getting experience with version control systems, issue trackers, and other tools. If you look for MMO or isometric projects, you can also get a first idea on how those things can be done. Check them out,learn from them, and decide later if you like their approach.

Last but not least, usually, there are other friendly people around that can help you with problems.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement