• Advertisement

Getting started

Recommended Posts

Hello, my name is Nick.

Before we begin let me tell you what my specs are to clarify things, if need be:

The only desktop I own is an old gateway. An original DX 4320 (No -01e or anything like that.)

Windows 10 Home edition (or what ever the 110 dollar version gets you.)

AMD Phenom II 6 core (1035T) processor.

8GB ram.

AMD Radeon 5700 series. (688E) (1 GB GDDR5)

The only laptop I own is a Dell XPS M1530, and I despise this laptop a lot. After playing games on it, and having the GPU die. I have not turned it on since 2012. But I still own it. I just do not know its specs unless I... pull it out of the bin and plug it back in. I still posses it. I just despise it too much.

**********

Everything below this line of this post has been answered. I decided to switch from C++ to C#. Seeing how I will be using the Unity3D engine to run my game, after some persuasive words from the posters of this thread full of wisdom, and I just began the book C# 6.0 and the .net framework.

 

========

I recently had an idea to create a video game that plays like a TCG, however I wanted to learn how to program everything myself.

So I picked up an electric copy of C++ Without fear, Third Edition. And I downloaded the 2017 Visual Studio Community Edition. I noticed immediately that I had a few unnoticed steps I had to take when opening my first project to begin the tutorials.

And my first question is this: Should I delete all of the code below #include "stdafx.h", but then add in the code int _tmain(int arg, _TCHAR* argv[]) { return 0; } as it shows in the tutorial, or do I need all of that extra code below that point? Because in this tutorial, for the 2015 edition of Visual Studio, it doesn't mention or show all of this extra code that shows up in a new desktop resolution project for the 2017 edition of Visual Studio. And the book said I should keep up to date with everything.

========

I am barely beginning with this, but I do not have the best, or I should say comfortable work station in the world. I was wondering if I could pick up a tablet and go to a nice area with a seat and table to begin coding. I know that in the book it asks me to test what I have created a lot to see if it runs almost every step of the way, but is there a way I could do coding on a tablet? Then bring it back and check my work? The reason why I want a tablet is because they are light in weight, they do not require that much power to run, and are very portable and versatile. The second reason is my laptop that I own is powered by vista, and is a dell xps M1530. (Has the issue of the GPU constantly overheating.) And the battery dies way too quickly. The cost of a new battery is the same price as a brand new tablet. And most places out where I live.... do not like letting people consume the power for free.

So the second question is: What tablet should I purchase for coding purposes. I will be trying out C# in the future, but I wanted to begin with foundation work. That way I can better understand why a program crashes. Would a cheap notebook be worthwhile from like a wal mart? or should I just buy another laptop that has more versatility and utility?

========

After completing this book C++ without fear, I will obviously need to buy a few other books in C++. And everyone says to stick with the Bjarne Stroustrup books.

So my third question is: what editions of these books should I purchase to have a complete library of functions for C++? That way if I need to understand something I can quickly look up in the index's of the books to find the correct information on the operation I want to perform.

========

The game I wanted to create is based on something that I absolutely miss. It was a game introduced in playstaion home. The name of the game was called Hexx. All of the information that I can obtain about this game is all on a single website, by one of it's curators.

========

And finally... What should I learn after C++ besides C#? I saw another programming language in Visual studio, F#. And seeing how this is server side programming, and my game will most likely have internet competitions, or matches. Should I learn F#, or is it best to stick with C++ and C#? And then maybe learn a little F# in the future?

Edited by The_Con-Sept
Switched from C++ to C#

Share this post


Link to post
Share on other sites
Advertisement
34 minutes ago, The_Con-Sept said:

I recently had an idea to create a video game that plays like a TCG

What's a TCG?  Also is it 2d or 3d?

36 minutes ago, The_Con-Sept said:

So the second question is: What tablet should I purchase for coding purposes. I will be trying out C# in the future, but I wanted to begin with foundation work. That way I can better understand why a program crashes. Would a cheap notebook be worthwhile from like a wal mart? or should I just buy another laptop that has more versatility and utility?

You don't code on a tablet unless you want to program for mobile in which case you might want one to test your programs on but that can wait.  You should be able to understand why a program crashes no matter what computer you use to program.  While first learning to code stick with one language, so pick one and stick with it.  The specs of your desktop don't seem too bad and should be fine to start out.  Save your money for now so you can buy   The real question is what language you should go for... C++ is fine language to start with to me but around here I've noticed people don't recommend it to begin with.

45 minutes ago, The_Con-Sept said:

After completing this book C++ without fear, I will obviously need to buy a few other books in C++. And everyone says to stick with the Bjarne Stroustrup books.

Search the forums for suggested C++ books, there are a bunch of them... a few people made lists.  Also if you want to do everything yourself you'll need other books as well for example something for the graphics API you're gonna use.

47 minutes ago, The_Con-Sept said:

And finally... What should I learn after C++ besides C#? I saw another programming language in Visual studio, F#. And seeing how this is server side programming, and my game will most likely have internet competitions, or matches. Should I learn F#, or is it best to stick with C++ and C#? And then maybe learn a little F# in the future?

Like I said before learn one language and then start making small games with it.  You don't just want to program, you want to program games.  A book on game engine design or game programming patterns would be useful.  Like above a book on a graphics API would be necessary.  I personally would recommend getting a book on data structures.

Share this post


Link to post
Share on other sites
43 minutes ago, Infinisearch said:

What's a TCG?

Trading Card Game.

 

1 hour ago, The_Con-Sept said:

And my first question is this: Should I delete all of the code below #include "stdafx.h", but then add in the code int _tmain(int arg, _TCHAR* argv[]) { return 0; }

When you create a new project, there is a checkbox for "Empty project" or similar. This comes without the pre-compiled header stuff (stdafx.h).

Share this post


Link to post
Share on other sites
1 hour ago, The_Con-Sept said:

The game I wanted to create is based on something that I absolutely miss. It was a game introduced in playstaion home. The name of the game was called Hexx. All of the information that I can obtain about this game is all on a single website, by one of it's curators.

 

Not to get off topic but man I miss PSHome before it was taken over by 12 year olds. 

1 hour ago, The_Con-Sept said:

And finally... What should I learn after C++ besides C#? I saw another programming language in Visual studio, F#. And seeing how this is server side programming, and my game will most likely have internet competitions, or matches. Should I learn F#, or is it best to stick with C++ and C#? And then maybe learn a little F# in the future?

Listen to Infinisearch on this one. Learning 10 different languages is just gonna over-complicate things and waste your time. The most popular are C++/C#.

Edited by Novadude987

Share this post


Link to post
Share on other sites

I understand that everyone has different strengths, and weaknesses when it comes to almost anything.

To further my background, I have dealt with HTML at a young age. Created a few websites, and had general knowledge of PHPMySQL. I know it is nothing more than a database program for inputting and accessing information. But I at least understand how HTML pages were read, and how to set them up for various screen sizes. But that, again, is not game development stuff.

- I am well versed in Fruity Loops studio, so I know my way around making sounds and bending them to my will. Even finding out how video games on older platforms had all of the lines of a character's voice work on a single file shed some light on how they actually pulled everything together. Including sound effect files. (They used time signatures in the file to be played to save space for loading other mechanics in the game.)

- And I have two spare Samsung phones and tablets to waste my tests on. I also have connections with freelance artists, so getting them to produce content in this game would be as easy as paying them per picture. (Yeah I am pretty much just the producer for this game right now.)

I decided to go with Unity 3D as a start. But before I begin there I need to understand how it works. Seeing how Unity uses C#, and it is touted as better than C++ (Of which Unreal Engine uses C++) I figured I would learn how the engine works first so I can get a better understanding of what happens when the system crashes. (Because I believe that I am bound to fry a motherboard or two. If I do not fry a motherboard, 'twould be a miracle.)

- Seeing how F# is something new, and it had versatility between different languages, I wanted to keep it in consideration but not as my main focus. Which is another reason why I chose C++ first. It seems to be a universal language between android and PC. And even Consoles. I also chose unity 3D because the PlayStation 4, a console that I own, can handle projects made inside of its engine.

Knowing that my Desktop is fine for most things, and I know that I will need to update my setup in the coming years to keep up with industry standards. I just do not have a proper setup. It is fairly uncomfortable. Which is why I wanted to do code somewhere else. Between getting bothered by room mates, the "table" I am using where it has my arms resting higher in order to reach the keyboard, and the chair I am using feels like it was made for a child.... I needed to find some way I could code on the fly. I also own a Motorcycle. (No cars or trucks.) So lugging around a desktop isn't the best idea. And paying to use some of the internet cafe's computers to do coding might result in me destroying a motherboard or two... That isn't a good idea either.

I decided to learn C++ first to get a better knowledge of what to expect in C#. At least it is a place where I can screw up, but still be able to recover from it. Then move on to C#.

*Oh and thanks for letting me know about the lists people have come up with. That helped a lot.

The trading card game I wanted to create is more of a Trading Tile Game. Seeing how the objects I will be creating for use in play will not be a standard rectangular card, but a Hexagon. (6 Sides.) I think it will be quite different than calling up a bunch of random cards with something being said on them that let the player know what the card does. Instead I wanted to make it similar to a game I actually miss playing. And I just can not seem to find this game anywhere else. It only exists on this youtube video. At least I have not come across any game that even comes close to this. I do remember another card based game that was under construction , which was announced a while back that had a similar play style. But it was not the same. The youtube video in question is here:

 

" rel="external">

Although the player takes a while to explain everything, you can see the idea of this game. I like it because it adds a bit of a puzzle into the mix of the competitive gameplay. Instead of playing a card that obliterates everything, you have tiles. and the object of the game is to control the board. I would like to make it 3D which is why I chose Unity 3D. And I wanted to make it a more serious tone. While also avoiding a chess like setup where both sides have the same advantages. And because TCG's like Magic the Gathering is all about having the cards, I wanted to follow suit with that type of play style. Where as you have to obtain the cards to use them. However... My twist on it comes from yet another game I grew up with: Milk Caps. The only thing I am taking from this game is "playing for keeps." However you do not get what you captured. You pick out 1 tile at random to pick from. You are not shown the other side. You must pick from the entire library of the other players "deck."

I know this is just a basic idea of the game but I wanted to make it a bit more awe inspiring. Even if people shrug it off as "mere theater for such a small game."

The ideas in my head for this game just went wild when I first played it. But now.... I do not see anything like this at all. So I began to write down the entire idea of this game in a TXT file so I could possibly get a small team together. (Of course my past experience with a craigslist post lead me to believe everyone is only in it for the money, and not the game. And they do not care what the game is. I left two different teams of "kids" because of this.)

So that is why I am here. I believe that if I can get a foundation up to run this game, maybe... just maybe I could turn a few heads. Even if it just 20 individuals like the number of views I have on any one of my youtube videos.

I do miss PlayStation home but they have something on PS4 called Atom universe. I downloaded it the other day and they have at least Orb Runner. The music and character accessories are more robust. The atmosphere looks more polished. BUT the other game that is similar to PS home is... Realms... I forgot the name it is so bland. Their character creator is more robust, but everything else is like... bland.

Anyway thank you for the advice. I might as well learn the hard way.

 

Edited by The_Con-Sept

Share this post


Link to post
Share on other sites

By goly G.... I was having so much trouble in C++ for a while... I finally figured out an important note... the using namespace std just does not work in my version of VS2017. so I figured out that I have to type in std::cout just to have that console output, or any std name, function properly. not a huge problem, but I could see myself creating a file much bigger than most. why is that?

Share this post


Link to post
Share on other sites

Don't spread yourself too thin at the beginning.  Focus on the basics.  I don't use VS2017, I use VS2015 and haven't had any problems, you're most probably doing something wrong though, I doubt MS would have such a simple and big bug (post code if it really bothers you).  Unity is a fine choice, but when you said you wanted to do everything yourself I thought you meant you weren't going to use an engine.  But I would really suggest you stick with either Unity or Unreal, you're gonna have to get used to that engines way of doing things.  If you mess around with multiple engines its gonna slow you down and to me it seems you have a clear goal in mind.

Share this post


Link to post
Share on other sites

I wanted to get into creating games because I want to make something that I would play. My background of gaming started on the SNES and spanned all the way across to the PS4.

The number of games I have bought would make me seem like a nerd. But compared to the angry video game nerd on youtube.... I am but an avid gamer. However I seem to be the only person in my work and social circles who has bought the most games.

 

I reached a point this past month that I remember hitting about 3 years ago. I just stopped playing games. The only game I can look forward to is The Last of Us part II. Nothing else piques my interest anymore. For example I can not play Zelda anymore because I find it boring. Mario has already done everything. Warhawk and starhawk were exciting. Uncharted finally ENDED. Call of duty 4 MW1 had a remaster (the only cod game I liked.) Rainbow Six Siege used to be lots of fun. Fortnite is where I stopped. My friends call me a whale gamer, which I openly admit to being.

But I hit that pot hole again. I just completely stopped playing games because I have done it all! There is nothing that grabs my attention. I finished obduction in 4 days. The latest zero escape game I whipped through. I own every version of pacman.

That is my drive to jump in head first into game creation.

I got a small taste of being able to create my very own level in the THUG PRO engine on thpsx.Com.  I created my own unreleased park, and fitted my own skater that I wanted to skate with as the red raptor.

I have done a lot of gaming. And I just ****ing miss playing two games right now. That puzzle like tcg I mentioned... and playing king of the hill in Tony hawks underground 1.

I ****ing miss the thrill I had in playing those games.

I also had an idea for a heavily story based rpg. A real rpg shrouded in mystery that I began writing the story to back in 2007. All of my friends told me that the game was just "too ambitious." When in reality I figured it would just take two things: an immense amount of patience, and an excruciatingly long amount of time to put together.

So I wanted to start on something small. Get my pants soaked in muddy water, put a dent in my helmet, bring home a scar to tell stories about.

Why? Because I just miss having a thrill in gaming. Now it is all of this grind like heck until you get 1 Stat boost. I am so sick of that model.

Grind games no longer interest me. Want that fancy car? Pay us, or grind it out over the next 8 months. Oh a new mode just came out.... Grind this out before we take it away in 22 days. Check out this time saving weapon perk!

Yeah... video games feel like a second job now. I wanted to take that away from gaming, but at the same time generating some kind of additional income.

Reading about the engines, and the fanboys (because wether you like it or not, fanboys are not a fad. They are here to stay, and this fanboyism is showing no signs of slowing down. Instead it is increasing day by day now.)

It makes it more difficult to create a unique idea anymore.

=========

Also i found out why the short hand in C++ was not working. When I input the using namespace std, it didn't turn blue. So that meant the compiler thought namespace was an object, and not a call for a reference library.

Edited by The_Con-Sept

Share this post


Link to post
Share on other sites

What you played can make a difference if your goal is to be a game designer, but as a programmer it makes very little difference. Programming games is radically different from playing games. 

Programming is about algorithms and data structures, about manipulating data, moving data from files to memory, then from memory to video or audio or simulation processing, moving data over the wire to be processed by servers. 

While many programmers can be inspired to create games that are 'spiritual successors' to games they have enjoyed, and while creating games is a great career, please be careful that you aren't equating the programming of games to the playing of games.

===

I recommend starting with cloning a Guess The Number game, then Tic Tac Toe, then Connect Four. All are text based, have no animation, have no data, but they introduce concepts of random numbers, AI processing, and running a simulation.  After you've got a bit more programming experience, a Pong clone is an excellent goal as a first graphical game, followed by the fairly similar Breakout style game, adding levels, a variety of blocks, and power-ups in Arkanoid style.

Do those in whatever language you like. Python and C# are both well regarded as beginning languages for their easier learning curves, their libraries available as you create more advanced games, and their applicability to game development long term as they are both used in nearly all studios and projects.

Share this post


Link to post
Share on other sites

That is what I noticed when I created my own personal Win 32 command script. I like the C# because of how you can get very specific, without having to put your mind into translation hell. I just discovered that the hello world app is the "static" page for new projects. But being able to change the text color is something new for me.

(It's a lot of fun programming now! Where as in C++ I kept getting errors when I was trying to adapt a value the user inputs into the system to be generated in the middle of a sentence. Which I learned that C++ is more like: Call functions, then if the function requires the data to be placed in a sentence, you do not need to write out the cout again, and just use the "" to type in what ever you want.")

But back in the day I remember when I would give anything to beta test a game. I was lucky enough to be in a few different beta tests already (One more notably would be beta testing the game HATRED, the controversial game by destructive creations. I found out a bunch of glitches and bugs in my first play through of the game, including some game breaking glitches and, well... hacks. Hack in the sense that I did not manipulate the code but instead found out some advantages by simply changes a few values in the game and leaving them there.)

But back as a child I just wanted to play the game before everyone else. Now when ever I hear someone say "I want to beta test the game," what they are really saying is: "I just want to gain an advantage over other players super early in the game! Possibly hide a secret or two that I found so no one knows how I just insta 1-shot them from inside an object no one else knows how to enter." I know several people who fit into this category. But I was very honest and forth coming with detailed information that I gave back to the developers of the games I beta tested more recently. Finding all kinds of bugs and glitches. Reporting them properly. Even some steam games where I was able to show the developers a glitch that allowed me to explore the vast void of nothingness to the end of time (BSOD.)

But I want to create a game that I want to play. And I want to build a skill around it. And possibly apply it to real life situations. I will send you a copy of the first text based game I've wanted to create for a while when I finish it. (Hint: It is all about detecting deviation, or deception.) This text based game is all on personal experience. It is rather difficult to lie to me. And it is even more difficult to not insult the person who create's the lie, and to bring them back down to earth so they understand you, while also understanding where they went wrong WITHOUT being embarrassed by it.

 

But no my drive is strong. Like I said I have hit a slump in my life once again where the games that are out currently just do not entice me enough to even look at gameplay of them. If something plays like another game.... I quickly start making assumptions, though they are dangerous, as to how the game is going to play out. For example: The game Stories, the path of Destinies took me by surprise, while a game like 3D Dot game: Heroes reminded me too much of Zelda, or untold legends.

but back to the topic at hand. I am thoroughly enjoying C# right now. Everything is just so... elegant. It all makes sense. I've had no issues with launching anything I create in them. So I will be saving these C++ books for something else. I feel like the pages in this book are just being absorbed into me before I even read them. Where as in C++, the three books I own felt like a gigantic wall of bricks stood in front of me and I had to climb over them somehow.

Once I have gotten past this second chapter, it mentions the numbers game so I believe I will be making that pong game eventually.

Share this post


Link to post
Share on other sites

Hi mate.  I'm self taught in Unity over the past year.  Let me know if i can help.

Two things you need to grasp with unity is moving/manipulating sprites and collisions.

Once you have those two things down you can start to make anything.

Here are two games I've recently made which are basically just moving a sprite and collisions.

Golforama

Balloon Boy

Once you get a couple of weeks into learning C#/Unity, i could teach you to make both of those games with a half hour each 1-on-1 lesson.

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


  • Advertisement
  • Advertisement
  • Popular Tags

  • Advertisement
  • Popular Now

  • Similar Content

    • By Alexander Nazarov
      Hello. I'm newby in Unity and just start learning basics of this engine. I want to create a game like StackJump (links are below). And now I wondering what features do I have to use to create such my game. Should I use Physics engine or I can move objects changing transform manually in Update().
      If I should use Physics can you in several words direct me how can I implement and what I have to use. Just general info, no need for detailed description of developing process.
      Game in PlayMarket
      Video of the game
    • By Dave Haylett
      Hi all. My project is coming along wonderfully, and am starting to consider alpha deployment, and would like your advice.
      My project need access to 10,000 small PNG image files at runtime, each is only a few kilobytes each, which during development I used to load in directly from a fixed path on my HDD whenever one was needed (obviously not a solution for go-live), using something like this:
      img = new WriteableBitmap(new BitmapImage(new Uri(@screenshotsPath + filename)));
      The image would then be blitted onto a buffer screen, etc. etc. At a time, a few dozen would be being used.
      Now I'm thinking about deployment, and also when I produce an update to my app, there could be more images to add to the folders. So I'm considering the best way of a) deploying the images to the user as part of the project, and b) how to most easily handle updates to the app, whereby more images will be added.
      I have just experimented with adding them all as a Resource (!). This inflated the exe from 10mb to 100mb (not a major problem), increased the compile time from 3 secs to 30 secs (annoying), increased RAM usage from 500mb to 1.5gb (not a major problem either), but means that it solves my fixed directory issue, distribution issue, and update issue, simply by having the files all stuck into the executable. Here's the new code I'm using:
      img = BitmapFactory.FromResource("Shots/" + filename);
      The next thing I was going to try was to mark them as Content > Copy if Newer. This would resolve the executable size and RAM usage (and also the directory issue as well), however it seems that I'd need to highlight them all, and move them from Resource to Content. As an up-front job this isn't too bad, but as I add new images to the project, I'll need to go in and do this every time, which gets annoying, as the VS2015 default is Resource. Also, I'm not sure how this would work in terms of updates. Would something like ClickOnce deployment recognise new PNGs and install them to the users?
       
      I also have 3,000 ZIP files (~500kb each) which also need deploying and updating in the same way. These are currently read directly from my HDD until I can find a permanent solution for adding these to the project as well.
      Can anyone thing of a better way of doing what I'm trying to achieve?
      Thanks for any help folks.
       
    • By Felis Nigripes
      I'm doing a test quest.
      The player gets a quest from an NPC to bring him fish.

      Once the player picks up the fish, the original NPC gets replaced by a new one with a new conversation trigger. The NPC tells the Player "Well done" and should give 200xp.

      The script tells the xp counter to go up by making a reference to the gameobject that holds the text component
       
      But it throws this error:
       

       
      I'm aware that the error may hide in plain sight. I just have to sort this out, since I'm writing the AI at the same time, and the time it takes to resolve everyone of these errors is tremendous.
      Plus, I think I'll learn something. I've been having trouble with some basic functionalities recently. There might be something wrong with my understanding on how programming works.
       
      Glad if someone could help (:
       
       
       
      Edit: I'm fully aware that the update function requires an input. I call the function in the editor when the dialogue ends, it still doesn't work.
       
    • By Vu Chi Thien
      Hi fellow game devs,
      With the help of  @CombatWombat in my previous post about clutch modeling, I now have a solid direction for the modeling the clutch. The way I'm doing it is having 2 clutch states: locked and unlocked. EngineRPM and torque will be calculated separately in each state. My problem right now is the logic and code for specifying locking and unlocking.
      The condition for locking is when (engineSpeed - drivetrainSpeed) in previous update cross zero (different sign) with the current update (to determine if engineSpeed = drivetrainSpeed or not in-between updates) and engineTorque <= clutchTorque.
      The condition for unlocking is when engineTorque > clutchTorque.
      The diagram looks roughly like this (taken from matlab website with the similar implementation):

       
      However, the 2 conditions are triggers for switching states, not for determine the current state to be in, so in the end my clutch state just jumped around. I don't have a lot of experience in doing state machine, so can some one give me rough code of how to implement this? Below is my rough code:
      speedError = engineSpeed - drivetrainSpeed; if ((Math.Sign(speedError) != Math.Sign(deltaW) && currentTotalEngineTorque <= clutchReactTorque)) { clutchLocked = true; } else clutchLocked = false; deltaW = speedError; //end of update I think the main struggle is the cross zero. Because cross zero is the "trigger condition" to check if the clutch should lock when it is slipping, not the condition for continuous locking, while the code I have above is the "continuous condition" saying "this condition is true then it is locked/unlocked". Another word, if the clutch is slipping, the condition above would decide if it's locked or not, but once it is locked, the cross zero condition is not true anymore (since speedError and deltaW have same sign as engineSpeed == drivetrainSpeed when clutch is locked). I'm sorry that I cannot explain this better as English is not my first language.
    • By nxrighthere

      BenchmarkNet is a console application for testing the reliable UDP networking solutions.
      Features:
      Asynchronous simulation of a large number of clients Stable under high loads Simple and flexible simulation setup Detailed session information Supported networking libraries:
      ENet (C# Wrapper) UNet LiteNetLib Lidgren MiniUDP Hazel Photon Neutrino DarkRift More information and source code on GitHub.
      You can find the latest benchmark results on the wiki page.
  • Advertisement