Please forgive the weird message later in this video. To make these videos I have the finished project, and basically rebuild it on-screen. In this case, to make it work and demonstrate it visually at that point, I had to "hack" in a file temporarily, which is addressed and resolved appropriately in Part#3. This is the main reason I'll only release the source code once the series is completed. This is often the way when developing larger projects, you resort to nasty stuff just to test a simple thing. You must of course eliminate this approach once the test results are satisfactory.
@andyruiz58506 жыл бұрын
Sr me gustari que sus videos fueran mas explicativos ya que soy nuevo en este mundo me gustan mucho su videos
@javidx96 жыл бұрын
Hola Andy, volveré a un formato más explicativo una vez que termine esta serie de juegos de rol. Gracias por el apoyo, y espero que Google Translate no me haya fallado.
@andyruiz58506 жыл бұрын
javidx9 Hello thank you for taking into account my opinion and I look forward to the new tutorials I would like you to see my videos because. my idea is to program in playstation 2
@Mz7xRy4 жыл бұрын
Your game design seems awesome, in 2015 i did try make 2D RPG on Delphi based on D&D5 and complete sprites set. And now i see weak points in my game design. You are awesome!
@saurabhmehta7681 Жыл бұрын
David, thank you so much for making this content and making it publicly available on KZbin. Such high-quality, specialized resources are not usually readily available, not for free. Your videos are immensely helpful and enlightening.
@spjewkes6 жыл бұрын
Another great video, David. The game is starting to really take shape and I can't wait for the next part. I do love these longer, multi-video projects that you're starting to do.
@javidx96 жыл бұрын
Hey thanks Steve, I'm always a bit unsure about these bigger projects, but its pleasing to hear that someone out there enjoys them. The nice thing about this one is the community doing all of the artwork and additional tools to "make" the game, without those I would not have the time or motivation to take a project of this scale on.
@saurabhmehta7681 Жыл бұрын
Great video, appreciate your effort! But at 36:34, the update() function could be made much simpler. You don't need to update object's positions px and py, just updating the velocities (vx and vy) would suffice. The game engine loop would take care of updating the position.
@MrKriegus5 жыл бұрын
I have a really weird issue in my program up to 44:35 everything worked perfectly, I added dialog handling and the program gives an error "_main alredy defined" after commenting out all the changes I made to the code since the last working version it still throws the same error but commenting out the main function makes everything run perfectly :o
@AJSquirrel535 жыл бұрын
Same. I am making my own game in the PixelGameEngine that is more platform based but still uses a lot of RPG components, so I am going through this series to add the utilities and learn a LOT about OOP along the way. Anyways, I get the same error. I thought maybe it was due to the way the Pixel GE is structured compared to the Console GE, or perhaps a weird thing in VS 2019. If you go to the beginning of video #3 he fixes this and makes it comply with how you normally structure classes in C++. I'm guessing this will fix both our problems
@AJSquirrel535 жыл бұрын
In case anyone else sees this an is wondering, yes the problem with including a cpp file with pge is that you can't include the file that has #define olc_pge_application. That define statement helps pge be OOP compatible in a single file, but the logic still stands that you can't compile it more than once (like Javid explained in the first video). I'm going to split up my main engine file, but if anyone else is still wanting to do their engine in a single file and include it in the commands class, simply move the #define statement somewhere else and you should be fine. Hopefully this can help somebody!
@getrundelthd98076 жыл бұрын
Why do you use multiple public statements in your classes? You only need one or has it any deeper sense that im not understanding (I`m used to program in Java and only have very rudimentary knowledge about c++).
@javidx96 жыл бұрын
You are quite right, nesting them serves only one purpose, it breaks them into groups so they are clarified mentally for me. My style of programming is highly visual, and I sometimes do things just to enhance contextual understanding. Its not for everyone, but works for me :D
@seditt51466 жыл бұрын
Yeah I tend to place public for my Members and another for my Members, It helps class my functions and Variables etc. I think it just looks better.
@PhilBoswell6 жыл бұрын
I would have gone with "Grr... Argh..." but maybe I'm betraying my age once again ;-) I'm looking forward to seeing how you code up ongoing background movement, like having the skeletons wander about at random until the player gets within range and then giving chase. As to that, I was also wondering how difficult it would be to spatchcock in a path planning algorithm (seeing as your video on A* is sitting right here) so that you could have the characters in a cut-scene react to the current layout of the screen rather than just walking through the scenery or-worse-getting hung up on bits of it! You could calculate the path on creation of the command object and only update it if the moving object collided with something…or instead of a target *position* you could specify a target *object* and re-calculate if that object moved…
@javidx96 жыл бұрын
lol, hmmm. perhaps you are on to something, I have not fused A* with anything yet, was saving it for my code it yourself real-time strategy game
@neuemage6 жыл бұрын
In the moveTo() isnt it better to use (Direction, distance, speed) as parameters. Say in a dramatic cutscene: Move north, 10 steps, slowly -> moveTo(n, 10, 1) for action scene move fast. for diagonal use nw, ne, sw, se etc
@javidx96 жыл бұрын
It kind of already does this because I set the duration of the requested movement, so slow and fast just depend on the distance you travel and the time you request. I wanted to use an absolute coordinate system for the location as I feel (perhaps wrongly) that this would be easier to script. However your approach promotes consistency of movement speed, so walking and running can be defined. There is probably room for both techniques.
@neuemage6 жыл бұрын
I feel that by indicating steps you have better control of the scene (vs coords), especially if the map's dimensions are dynamic (say you teleport to a smaller room) or if a character has to move off camera. This comes very useful when defining paths for NPCs you can almost just drop em on the map, or for scripted events (guard pacing left to right, talk to him and runs off camera)
@JustinK03 жыл бұрын
51:24 this doesnt work for me because it says main is already defined inside of commands.cpp.
@plaguefreegames90443 жыл бұрын
Love the tutorials and love the project. Don't love how ambiguous that "RPG_Main.cpp" file is though... Should have been an h file (you're right!) and now I have to figure out what to do with it in order to make my maps load. Could you please kindly tell me what I'm supposed to do with this file?
@Kevorama02053 жыл бұрын
I think that file is old and is not used in the final project at all. I would delete it, and if your compiler doesn't complain, then it should all work fine.
@plaguefreegames90443 жыл бұрын
@@Kevorama0205 Thank you. I thought as much made sense, but as it's sort of a weird situation concerning the g_engine pointers, I thought maybe perhaps he'd included this file here for a reason. Good to know I was on the right track before. Much appreciated.
@initfunction69613 жыл бұрын
This is ultimate 2D RPG development courses..
@noahbarger1 Жыл бұрын
i wonder, how would you go with making a turn based combat system for this?
@thefoolishgmodcube26446 жыл бұрын
Amazing video as always, javid, your contents are the best! I got a question, do you use other programming languages than C++ to make games like these? I'm not saying C++ is a bad language, but it could be nice to have some little variation time to time.
@javidx96 жыл бұрын
Thanks, lol, I hear you... OK, I'll do something non C++ just for you!
@AJSquirrel535 жыл бұрын
I know this is an old comment, but I think C++ is a good and interesting language to do things like this in, because it makes you think more about all of the logical steps, how things are structured, and why things work the way they do under the hood. Plus I'm sure sticking to mainly one language helps him develop a more steady community that can literally all speak the same language.
@ShkolnikPrahramist6 жыл бұрын
Very cool videos. From Russia with love :)
@javidx96 жыл бұрын
lol, Thanks Shkolnik!
@FrostGamingHype2 жыл бұрын
how to add these type of sprites in the console as im working on an game engine if you tell me this it would be great
@prince59226 жыл бұрын
hey javid, I firstly would like to let you know that the content your providing is very much appreciated and you're doing a wonderful job at it. I've been studying program for a while it's been almost one year at a university and I want to know how good of a programmer one needs to be in order to get a job and a decent salary. Although your videos are quite insightful but it can also be intimidating. I have built a strong foundation with loops, arrays and strings, classes, objects etcs in C++ and have even made a snake game but I don't know how long will it take me to be good enough to work in an organisation. I don't want to be overly ambitious or idealistic. Your response would be much appreciated.
@javidx96 жыл бұрын
Hi Shahzad, thanks for the compliments! The truth is you dont have to be very strong to land a reasonable programming job. It depends on the industry. In my experience, most industries dont have a great deal of variation in the day to day code they create - meaning you've got time to get up to speed with the way they do things. However, this might not be very satisfying. If you want to be the guy that architects software, then that takes skill and experience. What I will say, is that if you have a portfolio of little examples and demos, then you will have more than most.
@uuu123436 жыл бұрын
I see mario gliding around in a Zelda-esque world ...is this a new stage in the upcoming Super Smash Bros for switch?
@dopplegangerdavid Жыл бұрын
Personally, I preferred Jario 2, the one where you can throw turnips and things.
@HairyPixels5 жыл бұрын
Was there a video series on the engine itself, i.e. rendering sprites, getting a graphics context etc...?
@AJSquirrel535 жыл бұрын
Yes, have a brief look through his early videos, and you can see his progression of building the engine itself and using the console as a means to display graphics, sprites, etc. Nowadays his PixelGameEngine is used a lot more as it has better performance, resolution support, and is OpenGL based I believe
@nabilandadamslaboratory34224 жыл бұрын
Why do you use "new" when creating instances of objects? Why not just assign it with "=" or curly braces?
@nabilandadamslaboratory34224 жыл бұрын
@@chbrules why not just use the stack?
@eodico4 жыл бұрын
The problem with putting it on the stack is that it gets removed(popped) from the stack as soon as the program goes out of scope. When we call a function, that function's address goes on the stack as well as every variable in that function. As soon as the program returns from the function, the stack removes, one by one, everything in that function. So it gets deleted when we wanted it to remain. That's what the heap is for. If we store it on memory then it stays there for the rest of the program. In fact we gotta delete it manually to remove it completely.