• Advertisement
Sign in to follow this  

Action RPG, C++ and a Noob. Needing help to learn, at least a direction.

This topic is 1866 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

The internet being the vast place it is I've tried lately googling things as simple as "Basic game made from C++" ... Let me start over, I'm highly tech savy, have a good grasp on creative design, and understanding Software. I've taken only two coding courses whilst I was in High School, one for VB and another for Java so I'm not unfamiliar with the concept of coding because I've also done a fair amount of moding games like The Sims (1, 2 and 3) as well as The Elder Scrolls series, also plenty of time breaking down my android device and recomiling ROMs, Rooting, ect. So my ultimate goal is to make a simple RPG I can play with, I'm not worried about level design at all as much as I wish to grasp the basics of actual coding design and the interaction between the GPU, CPU and the code at hand. I seek to make a game where a character loads to a flat 3D world, some basic ground texture, a texture tree-line border and a skybox (Think Orcania of Time, minus zoning and any objects, monsters or any models other than ground and character). Upon loading the character I wish to learn how to craft a menu system, form skills and even a simple UI for something like a Skill Bar, so now we're looking more like a single zone World of Warcraft without it being Online. My goal is just to learn and develop more concrete ideas basic on actualities of software design because outside of actual design my brain is constantly bustling with design concepts for worlds, creatures and races (Usually being formulated into a D&D scenario).

My main problem: I'm overwhelmed with where to start. I feel I can grasp coding pretty well just by my nature of learning though I learn by example and explaination most googled examples I see start with "Here's a brick of code which does this" without explaining each piece, why it's there and how it's formulated. Actual graphics resources shouldn't be too hard as I'm pretty good, or ... At least good enough to get simple models crafted (Again, I'd need guidence in thinks like skeleton structure and animations!) But, that's all far ahead. I'm not expect an over night learn, by no means. Though, I figure of all places, after going through various posts here you guys are helpful enough to hopefully set me on the right track and fit a good path to go down, I'm seeking more resource links which seem to fit alongside my theorum as I need practical application to be interested so while simple 'Hello World' apps can take me only so far, if it doesn't relate to my goal I lose interest. Though I do have enough drive and passion I seek to learn!

So If you guys would be so kind, help a (hopefully) new developer learn his first steps. :3

Share this post


Link to post
Share on other sites
Advertisement
1. By far C++, as I see the application of learning or at least understanding it's basics can help me in more than just gaming, or just a solely in game creation. Though I'm flexible in this aspect as I feel most Coding application can be applied to most languages I'm willing to go where the Engine takes me, so long the engine does what I need.

2. Easy enough, I'll just have to find one I like, thanks for the link! I downloaded a random one but it freaked out not having other distro packages available or something.

3. So many Engines. It's hard to wrap my head around which one would be best. I'm not looking for high graphics power (As the PC I'm currently running has trouble if I Render 3D models too hard) but I'm definitely looking for simplicity, most of this comes from me wanting to flesh out in my mind what my actual combat / skill system will be like. I'm mostly interested in working with actual distances, attack ranges, damage, Health, anything related to combat and skill progression more than making the world (As the world is Waaaaaay to vast for me to even want to try and tackle without a fun core concept of gameplay). When I think of Engines I have a hard time defining what's better at what, and what's capable of what. Of course my first steps were googling what some of my favorite games use as their engines and take those games as example, but also fear the limitations... For example I love almost anything Bioware, and a handful of Iconic ones (Dynasty Warriors, Fable, Elder Scrolls) Problem is, 90% of the time they of course have an in-house built engine...Which is fine, but I can't seem to find a good comparison of actual mechanics, the coding is not what worries me, the limitation of 3D space is what worries me. I'd had to start to learn one Engine only to find out (Not that this would happen) that by some chance it doesn't allow for a jump function, or doesn't allow actions to be performed while a model is not on a surface. Edit: After going over several engines, Time of Day seems to be questionable, if due time I'd like the engine of choice to be able to support dynamic Time of day... Not sure if it's possible on an engine which doesn't natively support it to code it or not. I figure time of day would simply be a dynamic set of code working in the background not something that exactly has to be pre-installed, but a lot of engine seem to boast 'Time of Day System!'

4. Understandable. As for right now my concept is simple, just a learning experience.
1. Understand basic world generation, how to actually call a landscape, ground and boundaries.
2. Understand basic movement, generating an on-screen character, POV and Camera work.
3. Formulate a more complex backend to this basic world, starting with a UI, code to perform a simple attack skill by a keystroke.
4. How to call an enemy model, give the enemy model health, define how to determine a collison between the two as to form a 'Hit'
5. Generate a character sheet UI, the ability to gain XP or gain some method of advancement (Still undetermined, thus why I wish to play).
6. Have the ability to try out skills in a 3D space, see reasonable limitation and simply explore the possibilities based on my current concepts of progression and imagined gameplay.

Scenes and story are far, far in the future. If I can get this basic framework above, I'll move from there of actually building environment for this starting area, eventually craft a menu, and who knows if I run with this long enough maybe actually some a something which could coherently be considered a game. xD The passion and drive is there, and I have plans to set aside time for it, give it some dedication, I just needa concrete base that seems reachable. Of course in the world of code the world is incredibly vast to me. Though the basic outline really helped! I didn't think of needing a compiler (I always assumed there was some way to do this from within the game engine, or that the code was written within the engine) Edited by psyhcopig

Share this post


Link to post
Share on other sites
Check out Unity 4. Start prototyping with it using C# (which is at lot more pleasant to work with than C++, at least for getting things up and running quicker). You might find that when you're done prototyping, you can just swap in higher quality graphics (models extures\sounds) and bam. game.

Share this post


Link to post
Share on other sites
I'd also recommend Unity going by your initial post on what your looking to do. There are plenty of Unity Demo's and tutorials out there to get you started. Check out youtube, and also you can check out tutorials at BurgZergArcade.com

Share this post


Link to post
Share on other sites
It seems you underestimate the amount of work it takes to write your own 3d-engine from scratch...
I like Kickpuncher's suggestion. Unity is an amazing engine and all the hard stuff (rendering,animation,providing an editor,etc) has already been done for you, so you can just focus on creating the actual game. Unity supports C#(quite similar to Java), Java Script and Boo for scripting.
If learning how to code a game from scratch is more important to you than actually creating a finnished product, then you're going to want to get a good understanding of programming and master at least one programming language (I don't recommend C++, since it's quite difficult compared to languages like Java and Python). You're going to need to learn how to use classes,lists,import data from your hard drive,etc. Pick up a graphics frame work like SFML/SDL for C++, PyGame for Python or Slick for Java and try to write some simple games like Pong or Tetris before trying to create some more complex 2d games like an RPG.
Trying to write a 3d game without knowing how to code simple 2d games is like trying to fly an airplane when you can't even drive a car.

Edit: You really don't have to worry about things like engines not providing a "jump function"... There are very very few things you can't do with popular 3d engines like Unity or the Unreal Engine.

Some resources :
http://inventwithpython.com/chapters/ (Learning python by creating games)
https://www.youtube.com/playlist?list=ELp5mgUw5g9EY (2D Game Engine in Java)
https://www.youtube.com/playlist?list=PLlHjNcdoyw6UK30xrTUhjM-usQOOE5jhN (Unity Video Tutorials) Edited by CptBubbles

Share this post


Link to post
Share on other sites
Unity does sound promising, I downloaded a handful of popular ones with intent to just play around and see which interface I like more. As interested as I am in actually learning how the programming behind an engine works, I can't say I'm too ecstatic about the idea of coding one myself, as again I want to get to gameplay more than worrying about if my model is going to show up correctly. Though I feel there's some core knowledge there which I'm lacking which I can't seem to find answers on which don't involve almost entire thesis documents on the subjects. I don't want this to be easy or simple, as I know it's not going to be, I'm trying to approach this almost like a college course wanting the foundational knowledge as well as the practical knowledge. I've tried my hardest to make a coherent design document which seems rather lacking (Aside from story/world content) I really want to know how the hardware pieces talk to one another for game enabled systems. I'm sure it's more complex than Processor - GPU - Monitor, I guess I'm seeking of how our code interacts with the GPU, the idea of it just 'Knowing' what I'm calling is crazy to me.

Share this post


Link to post
Share on other sites

I really want to know how the hardware pieces talk to one another for game enabled systems. I'm sure it's more complex than Processor - GPU - Monitor,

You really don't need to worry about that (unless you're writing drivers or very low level systems, I guess). Knowing how RAM works is a lot more important (though not when developing with Unity). I'm not quite sure what "Core knowledge" you're referring to, but the Cooking with Unity video tutorial I posted in my previous reply should give you a nice start. If you wan't to learn more about programming in general, you may want to read a book or at least a web tutorial on a language of your choice.

Share this post


Link to post
Share on other sites
I went the "C++ , make your own engine, Use OpenGL/DirectX" route.

I've learned a lot, espically while implimenting custom classes to handle topics like

Shaders
QuadTree- Terrain
Water
Clouds
Networking code
Input
Loading/rendering Models
Custom GUI classes

I'm sure an engine would give you all these things as well.

Share this post


Link to post
Share on other sites

https://www.youtube....t=ELp5mgUw5g9EY (2D Game Engine in Java)


Woah woah woah....sorry haha I was just reading this thread and felt the need to post. I want to warn you about this video tutorial series. I had been following for a while and had a nagging feeling tugging at my side for the longest time and it was just recently confirmed. I've been programming Java for quite some time now, and just recently finished my second college course in it. I can say that this guy definitely does know his Java, but if you're going to watch this tutorial, be wary. His code is obviously inspired by Notch's code from Minicraft, which there's nothing wrong with that, HOWEVER, he does not really demonstrate an understanding of what he's doing with that code. For the graphics, Notch colors his sprites in the code by using some bitwise operations, and when it comes to explaining those, he tends to just dance around the question and make it seem like he actually answered it. Be very careful if you're going to be following that tutorial. The results of the tutorial are pretty snazzy I'll admit, but for the majority of it, you're just going to be copying his code without understanding it too much which is going to be troublesome.

I don't know if anyone else has any thoughts on this, but this was my general experience with that series. Makes me sad because the videos are very well done and I really wanted to like that series.

I also agree completely with Kickpuncher, Unity is a swell environment and I wish I'd have more time to work with it(too many school projects recently). My C++ and C# are trivial compared to my Java knowledge, but I can differentiate them and I can say that C# does indeed feel more at home for me to read/type.

Sorry if I couldn't contribute too much in the way of an answer, I'm in the process of learning C++ so I can implement OpenGL with it myself :] and then I plan to port my knowledge to Java and LWJGL, so I wish you luck on that!
-Adrian

Share this post


Link to post
Share on other sites
The movie videos I watch I'm starting to fall for Unity, it feel really simplistic but I suppose everyone needs to start somewhere. Besides, Unity feels so... Well designed, some of the other programs just seem to feel clunky, same feeling I get when I compared Gimp to Photoshop, for me Photoshop wins out every time. No worries, I have a disdain for Java personally so by no means will I be going that route. It's pretty safe to say at the moment my chosen engine is Unity, once I get the hang of just what's all involved from a pre-built engine I'm sure I'll venture to craft my own, for now Unity definitely seems like it will suit my needs.

The Prime question now is: If anyone has any RPG Specific Guides / Tutorials or Videos for Unity that you recommend, feel free to reply. Or heck, if you have any links you recommend as a whole, It's not uncommon for me to have a billion tabs open and go through things one by one, the more the merrier. biggrin.png

I do seem to be having a hard time finding a comfortable IDE. Playing around with Visual Studio.. I dunno, I just don't like it's stylization. However in the videos linked above (https://www.youtube.com/playlist?list=PLlHjNcdoyw6UK30xrTUhjM-usQOOE5jhN) MonoDeveloper looked nice, and I think I might go with CodeBlocks, I just need visual simplicity. Edited by psyhcopig

Share this post


Link to post
Share on other sites
I know Burgzergarcade has a series of tutorials on unity about making an RPG. His channel also has a short playlist of videos on C#, and I'm sure he'll be uploading more of those soon. I wouldn't recommend starting with an RPG, though. An RPG is a really big undertaking. You should try and finish several smaller projects, and then some medium sized ones first, so you can get an appreciation for just how much work an RPG would take. You can of course follow along with the tutorials about making a hack'n'slash, but make your own little games as you learn new stuff till you get the hang of it.
As for an IDE, if you go with unity, it comes with MonoDevelop. Code::Blocks is usually just for c++ and isn't part of unity, however. You could try and learn both c++ and c# at the same time if you want, so long as you can keep them separate. Learning c++ will teach you a lot about what's going on underneath the higher level stuff, while c# with unity will get you a finished game easier and faster. But it's hard to keep languages apart when you're first learning. It can be done, however it might not be the best idea. That's up for you to decide.

Share this post


Link to post
Share on other sites
http://www.burgzergarcade.com/hack-slash-rpg-unity3d-game-engine-tutorial

pretty badass place for rpg elements.

I love unity. I used to waste a lot of time with engine development from scratch. after spending days writing model loaders and renderers (nevermind animation) I decided to focus more on game development... it's a lot more fun. Definitely find unity WAY more productive.

Share this post


Link to post
Share on other sites

I know Burgzergarcade has a series of tutorials on unity about making an RPG. His channel also has a short playlist of videos on C#, and I'm sure he'll be uploading more of those soon. I wouldn't recommend starting with an RPG, though. An RPG is a really big undertaking. You should try and finish several smaller projects, and then some medium sized ones first, so you can get an appreciation for just how much work an RPG would take. You can of course follow along with the tutorials about making a hack'n'slash, but make your own little games as you learn new stuff till you get the hang of it.
As for an IDE, if you go with unity, it comes with MonoDevelop. Code::Blocks is usually just for c++ and isn't part of unity, however. You could try and learn both c++ and c# at the same time if you want, so long as you can keep them separate. Learning c++ will teach you a lot about what's going on underneath the higher level stuff, while c# with unity will get you a finished game easier and faster. But it's hard to keep languages apart when you're first learning. It can be done, however it might not be the best idea. That's up for you to decide.


i clearly did not read this before posting. apologies.

Share this post


Link to post
Share on other sites
No worries, I understand the complexities of an RPG, at least at ground level. At one point in High School I was all about RPGToolKit and it debacle of bad code, never made a completed work much less a fully fledged worthwhile stat system, but I definitely under the work needed. Starting with Cooking with Unity, his Space Invaders one is really informative (Although he RREEEAAALLY needs to work on Editing of his videos / ... Coming prepared) The links thus far are great! The Hack and Slash tut is just up the alley of what I'm wanting, especially combined with some effects from BurgZergArcade. :D This is going to be great.

Share this post


Link to post
Share on other sites
This is exactly the information I've been looking for as I had the exact same question as psyhcopig! Thanks!

Share this post


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

  • Advertisement