Making some Game Dev Tutorials :)

@jjagg I will be honest, I mostly used Turtle SVN for years, so GitHub is still very new to me. I will take a look.

right now I just upload the full solution every 10 tutorials (that may change tho).

@Kay Thanks for the shout out

@MrValentine :wink: 2^5 total tutorials so far :slight_smile:

1 Like

Git takes some getting used to in general, but GitHub makes editing pages a lot easier! If you follow my link, you can

  • make changes
  • briefly describe them with a short explanation in the first textbox below, no need to fill the second one (e.g. Add Batholith to tutorials)
  • click propose changes

GitHub has an official help page for this process: https://help.github.com/articles/editing-files-in-another-user-s-repository/

2 Likes

Here is part 33:

This one adds another mob. This one shoots :slight_smile:

3 Likes

Here is part 34:

This one adds more to LevelDrawManager, and cleans up the scrolling.

3 Likes

Part 35 is now up:

This one adds a 2nd skill, but it mostly is designed to show how quickly content can be added to a game when setup right.

3 Likes

Part 36 is now up:

This tutorial shows you how to add a skill bar!

3 Likes

Part 37 is up:

this one adds a Skill menu to the game.

3 Likes

Does anyone have specific topics they would like to see covered? I cant say for sure that all ideas will fit this project, but if they do I will do what I can to get to them. Please let me know!

how about things like
-dialogue with other npc’s/quests
-inventory/crafting

you have already done so much its hard to think about things that would add something to your series to would fit :stuck_out_tongue:
its starting to look a bit like Diablo, but then simpler.

Dialogue is a good topic, It may be awhile before the infrastructure is there in order to make that happen, but I will get it on my list.

Inventory is also a great topic and its one that I have been trying to figure out how to boil down.

I can see how a top down shooter could be diablo-esk, in many ways they are similar. To add the complexity that Diablo games have I would need 100’s of tutorials :wink:

Part 38 is now up:

This tutorial does some debugging on our existing code, and gets us setup for the next thing :slight_smile:

2 Likes

Episode 39 is up:

This one starts an options menu, and some Form controls.

3 Likes

Great series man! Thank you. I have watched up to number 2. Slow but steady I will watch all.

@Andre Thanks! Glad to have you on board! Slow but steady is how Im making the tutorials so that should line up well!

I would like to suggest as a tutorial series, one that explains how to create complex user interfaces such as menu systems since there is such a lack of information on this subject as well as a lack of easy to use tool-sets…

Part 40 is up and it includes the full solution:

This one covers saving and loading XML files.

4 Likes

@SNaidamast Sorry I missed you comment somehow…

Can you be more specific? There are lots of different ways to do menus, and also many different types of menus.

I do plan to do base menu classes, and possibly more than that. But if you have something specific you want to know about menus then I could give a better answer.

Thank you for the input tho!

@SolitudeEnt

Thank you for considering my suggestion for MonoGame tutorials on creating user interfaces.

On an aside, the best one that I have come across in the MonoGame Community is the Myra UI, which I am currently using. However, due to time constraints the author has not yet been able to offer concise documentation on its use. And I have offered my assistance to him in this manner since I believe is software is quite good.

However, in general, MonoGame has no inherent capability that developers could easily take advantage of that would allow them to implement complex interfaces into their game projects.

Though there are quite a few threads\documents on creating such things as simply buttons, such components by themselves do not make up an interface system.

Practically all games and simulations, whether 2d or 3d have some form of menu system that is overlaid upon the game\simulation screen. As an example of what I mean, please find below and image of the menu system that I have started to build for my historical combat simulation, The American Revolution…

Notice I have highlighted the first menu item with its associated drop-down menu.

The master menu bar extends to the width of the display no matter the resolution its is displayed under.

Due to a lack of such a capability for the creation of such user interface systems, MonoGame simply cannot advance as a popular alternative for many developers that would like to develop such programming. If a user cannot interface with a game than the game is useless as a software product.

None of this should in any way detract from your excellent work in developing tutorials for many of the more technical aspects of this game engine. However, without the ability to create complex user interfaces, MonoGame will always remain a niche product that only a core group of developers will ever be able to use…

Thank you…

1 Like

MonoGame is generally a lower-level game framework than others. It gives you the capability to implement whichever type of UI you need. No two games have the same type of requirements for user interfaces, so it doesn’t make sense to support one out of the box in this type of framework.

The existence of Myra and other libraries refutes the idea that you can’t create a UI system. I’ve created a simple UI system for my own game that doesn’t need anything complex and is suited just to what I need. If you need something that MonoGame or a third-party library doesn’t provide, you need to build it yourself; that’s generally how MonoGame works. If that doesn’t align with how you want to do things, then you may need to look into something higher level.

1 Like

The question that I was answering was put out by the author of the tutorials as to what I would like to see him include in his repertoire.

You are quite wrong in your assumption that no two games require the same interface in that actual interface components are supposed to be a generic construct for any form for development. The fact that one game type may have a slightly different interface than another is rather meaningless since an interface component system should be able to be used for all types of games whereby the individual developer selects what components are required.

I recommended tutorials on developing interfaces for MonoGame, which I see as a necessity and if I could do such work myself I wouldn’t be recommending this topic for these tutorials. And doing such work on one’s own is quite difficult when the documentation on how to go about it is pretty much non-existent, which is a major problem in teh open Source environments where so many people seem to put out legitimate solutions without any support for how to use them. The EmptyKeys Library is a classic example of a seemingly fine product without a way to understand how it should be implemented. And believe me I have researched this topic quite extensively.

I use the Myra UI because it is the best UI available for MonoGame development that I have come across and experimented with. However, without concise documentation on its many capabilities, its use becomes a trail & error situation, which is an inherent waste of time. Fortunately, the author of this library has promised to develop better documentation as soon as time allows. And he is always will ing to answer my questions when they come up.

Nonetheless, tutorials on how to develop such interfaces using MonoGame itself, which has all of the capabilities necessary to do this type of work would go a long way to making such work a more easily attained endeavor. And it would also allow easier access to the MonoGame engine for those interested in game development.

The simulation I am attempting to create is very complex and usually requires a team of developers so anything that would make such work easier would go a long way in helping me to at least understand as to how such interfaces are created using a graphics engine.