Jump to content


+ Sponsor
  • Content Count

  • Joined

  • Last visited

  • Days Won


Maindric last won the day on January 10 2013

Maindric had the most liked content!

About Maindric

  • Rank
    Advanced Member
  • Birthday 07/14/1992

Profile Information

  • Gender

RPG Maker Information

  • RM Skill -
    Jack of All Trades
  1. Maindric

    Godot 3.2

    Godot 3.2 is an exciting new launch with many new features. I did encounter a little issue with my current project when switching to Godot 3.2 that my solution may help people out. I wrote a finite state machine for use with my game. In this state machine, a state calls on the player controller. For some reason, the state machine is loaded before the onready commands are called in the player controller, causing any onready vars to not be prepared. To fix this, and to add a little bit of lazy programming into the player controller, I implemented the following code: onready var kinematic_controller : KinematicBody2D = get_node("Character_Controller") var kinematic_controller : KinematicBody2D = null ... func get_kinematic_controller() -> KinematicBody2D: if kinematic_controller == null: kinematic_controller = get_node("Character_Controller") return kinematic_controller This way, if for any reason the onready call to set a controller is not called, we can call it in the get function. I got my game from a non-running state to running perfectly again.
  2. Maindric


    This blog has been idle for a significant amount of time. I have fallen too busy to follow my passion in game development. This is due to the fact that I do work another job full time, and I was pursuing my Bachelor of Science in Computer Science degree full time. Game development just took a back seat. Well, now this is changing. I graduated from my program in December of 2019. Now, to fill in the time that I spent working on my degree jumping back into game development full time. Now, let me lay down my intentions and plans with this blog, so that anyone reading on this site understands my actions and intentions. Getting back into game development is my attempt into changing my career to become a game developer. Over the next three and a half years, I intend to put a lot of effort into developing a game for release. This blog will go over my development journey, while focusing on tips, techniques and procedures for others to succeed in their attempts at learning game development. Tools First off, the tools that I intend to use for development are going to be fairly varied to work on my projects. I will write about these tools and their usage in game development as I work on the projects. Game Engine: Godot The engine I will be using from here on out is the Godot game engine. There are a few reasons for this. Namely, the flexibility in usage in the most I have ever experienced in the past. I have worked on RPG Maker, Unity, App Game Kit, and others. All of the proceeded tools are fantastic tools and they satisfy a place in the market. RPG Maker is a great entry point to new developers who wants to see the process of adding content, however, it is quite difficult to change mechanics. There is a high reliance on plug ins with specified orders and such, but lacks the flexibility of a full fledged engine. However, it makes up for this with ease of use. For my purposes, RPG Maker is not flexible enough for what I want to achieve. Unity is an amazing engine with many options for developers. It is why it has become one of the top engines on the face of this planet. However, with the closed nature of Unity and it’s growth, it has become rather bloated. The way components works with each other leads to situations where it is exceptionally easy to create an interlocking system that is convoluted and harder to work with. There are also fewer and fewer ways to script for Unity. App Game Kit is an excellent tool for pure C++ usage, it’s workflow is too narrow to achieve what I want to do. There is also much more work needed to achieve a full project to be released. Godot offers the flexibility of Unity with options to code in GDScript and C++ (With Mono C# as well). Working with compiled C++ gives a new level of optimization that is not possible with Unity. I can work in C++ for computationally intense work while using the simpler GDScript for simpler tasks. This is also neglecting the fact that I am developing on Linux, which none of the other tools can really do as well as Godot does. Tiled What can I say? Tiled is so easy to use and powerful that there aren’t really any significant alternatives for the work that can be done. Aseprite Similar to Tiled, Aseprite is so power in it’s workflow, and reasonably affordable. Blog, and the future As covered, this blog will be my game developer’s journey. Many of the blog posts will be about the proceeded tools, but more importantly, I plan on focusing on techniques that are universally applicable. I plan on a blog post about every week or two. Whether it is a simple update, such as this post, or a game development concept, there will be something with regards to game development regularly. Think of it as a replacement to the essays that I worked on in college. For this posting, it is simply a status update. I look forward to developing with you. -Maindric
  3. It has been a long time since I have done a proper blog post. This one is the first part of a multi part series of importing Tiled maps to AGK. I use AGK in Tier 2 as a game framework using C++. This is the real draw to AGK for my use, as I have the simplicity of AGK with the power of C++. However, this tutorial is written using an AGK Tier 1 snippet as there is no need for any added complexity. I will eventually write a C++ variation that is more flexible, but none the less, let’s start part 1 of this tutorial. It is important to note that this does not only work with Tiled, it can be used to load any tileset/atlas image easily, but Tiled is my motivation for making it. Tiled is an open source tile map editor for use in any engine. I will be making maps using Tiled and bringing them into my AGK Tier 2 project. The first step to doing this is to import the tileset images individually using the same ID’s that Tiled does. If you select a tile in Tiled, the ID in the property menu is always 1 lower than it’s exported ID. This makes ID 0 equal 1, ID 2 equal 3, etc… What this means is that the top left sprite ID = 1 and counts up going from top left flowing to the right then down. Something like this: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Using this code snippet, there are 4 variables of interest to turn all uniform tilesets into an AGK compliant file. 002 tileWidth = 128 003 tileHeight = tileWidth 004 numHorizontalTiles = 16 005 numVerticalTiles = 16 tileWidth — Change this to the width of a tile. tileHeight — If the tiles are square, leave as is. Otherwise, set to the height of the tile. numHorizontalTiles — How many tiles are from left to right. numVerticalTiles — How many tiles are from up to down. From there, just run the script and a file will appear in C:/Users/<<UserName>>/AppData/Local/AGKApps/<<AppName>>/media/myfile Copy this file to the same directory your tileset is and rename it to “<<TilesetName>> subimages.txt” and you will be able to load the tiles in just fine. Just to prove it works, I will demonstrate loading the tileset in AGK Tier 2. Tileset and Subimage file side-by-side Once the generated file and tileset image are both in the same directory, you can then proceed to load the image and subimages to AGK. I included a very simple example code of loading in all 256 images (in my case). std::list<g::Sprite*> s; ... unsigned int image = agk::LoadImage("media\\Tilesets\\Grassland\\Grassland.png"); for (int i = 1; i < 256; i++) { s.push_front(new g::Sprite(agk::LoadSubImage(image, std::to_string(i).c_str()))); agk::SetSpritePosition(s.front()->GetSpriteID(), (i-1)%16*128, (i-1)/16*128); } This code makes a list of a Sprite class that I made for my project and loads up all subimages of the tileset into the list and places them from left to right, top to bottom. Tileset loaded and placed, one tile at a time. Link to tileset. There we go. Tilesets and Atlases made and loaded into AGK far easier than slowly typing out the subimages file manually. Part II in progress, I will link to it here when done. -Maindric
  4. This is a code snippet that creates a file that can be used for tilesets, created in the AGK expected format for tilesets. I will write a full tutorial on how to use this code in a future post. See this post on use of the snippet. //Change these values if your tiles are a different size in pixels tileWidth = 128 tileHeight = tileWidth numHorizontalTiles = 16 numVerticalTiles = 16 //Open a new file to write. I found no success writing to .txt. fileid = OpenToWrite ( "myfile" ) //Variables used in the loop. string$ = "" //This will be what gets written to the file. tileid=0 //Used to count up and assign each tile an ID //This is the same as saying for(int i=0;i<numHorizontalTiles;i++) with the i++ at the end of loop. i=0 //Start at 0 While i<numHorizontalTiles //Same as above, nested for loops. j=0 //Start at 0 after each loop. While j<numVerticalTiles //increment tileid each loop. In Tiled 0 is no tile, so we start with 1. tileid = tileid + 1 //Assign the line to be written to string$ string$ = Str(tileid) + ":" + Str(j*tileWidth) + ":" + Str(i*tileHeight) + ":" + Str(tileWidth) + ":" + Str(tileHeight) //Write string$ to file. WriteToLine saves it in ASCII readable format. WriteLine(fileid, string$) /* Remove to watch progress. Print(string$) Print(GetWritePath()) Sync() */ //Remove to watch progress. //j++ for the loop j = j + 1 EndWhile //i++ for the loop i = i + 1 EndWhile //Close the file CloseFile ( fileid )
  5. <p><a href="http://maindric.com/wp-content/uploads/2014/06/Screenshot-2014-06-09-04.05.15.png"><a href="http://maindric.com/wp-content/uploads/2014/06/Card-colors-and-themes.png"><img class="alignleft size-full wp-image-308" alt="Card colors and themes" src="http://maindric.com/wp-content/uploads/2014/06/Card-colors-and-themes.png" width="965" height="720" /></a><img class="alignleft size-full wp-image-306" alt="Kingdom Keep concept" src="http://maindric.com/wp-content/uploads/2014/06/Screenshot-2014-06-09-04.05.15.png" width="1361" height="747" /></a></p> <a href="http://maindric.com/a-little-sneak-peak-of-my-current-project/" class='bbc_url' rel='nofollow external'>Source</a>
  6. <p>I made a little graph to show my plan for my networking as a whole.</p> <iframe src="//docs.google.com/viewer?url=http%3A%2F%2Fmaindric.com%2Fwp-content%2Fuploads%2F2014%2F03%2FBasic-network-overview.pdf&hl=&embedded=true" class="gde-frame" style="width:100%; height:500px; border: none;" scrolling="no"></iframe> <p class="gde-text"><a href="http://maindric.com/wp-content/uploads/2014/03/Basic-network-overview.pdf" class="gde-link">Download (PDF, 31KB)</a></p> <p>Tell me what you think!</p> Source
  7. Maindric

    Equipment drop for TFC.

    <p>I typed up a document (Poorly written document btw) on my drops for my game, Time for Champions.</p> <iframe src="//maindric.com/wp-content/plugins/google-document-embedder/view.php?url=http%3A%2F%2Fmaindric.com%2Fwp-content%2Fuploads%2F2014%2F02%2FTFC-EquipmentDrops.docx&hl=&gpid=3&embedded=true" class="gde-frame" style="width:100%; height:500px; border: none;" scrolling="no"></iframe> <p class="gde-text"><a href="http://maindric.com/wp-content/uploads/2014/02/TFC-EquipmentDrops.docx" class="gde-link">Download (DOCX, 11KB)</a></p> Source
  8. Maindric

    Stream and YouTube schedule.

    So, I need to find a good balance between life and the internet, more specifically, my live streaming. I love streaming, and I love chatting with people as I do it, I just cannot be spending all day on it as I have been. So, I have started working on a schedule, so you will know when I go online, and know what I will be doing before I go online. I may occasionally go longer, shorter, or change this as I go, but we shall see. Put simply, the plan is to have a two week schedule, week 1 do this, week 2 do this. So, here is the schedule plan: Week 1: Monday: 3 Hours, a random game I feel like playing that day (I may allow it to be viewer choice). Friday: 1.5 hours of RPG Maker, viewer questions get answered. Each of these sessions will have a youtube video published right before streaming, and will allow the viewers (you) to request topics, and I will answer them live in stream. I will also take these streamed answers, and make youtube videos of them for future reference. This should create a plethora of video how to videos for people. Week 2: Wednesdays: 3 hours of me working on my games, and I will answer questions on my work flow, and how I do something I just did as I go along. Anyways, that is my idea, so please, vote, and I will take any suggestion into account! Enjoy! Note: There is a poll embedded within this post, please visit the site to participate in this post's poll. (Post) For those whom do not wish to go to the site, if you post in the comments if this sounds good, or if you have a different suggestion, just leave a comment. (That is what the poll was for) Source
  9. Just won a free copy of RPG Maker. Will be giving it to my wife.

    1. Show previous comments  9 more
    2. OmegaDSX


      haha i remember this one time, i was supposed to go to this formal gathering, but my "nice shoes" were all scuffed, Rather than buying more... I just painted them black >< lmao

    3. Ritsukou


      haha! Ive done it before too

    4. Maindric


      I think we all have done that. Have to polish shoes? Psh, paint.

  10. View this entry the way it was meant to be seen here. Beginning Events: Events, as described in the help menu are: In other words, events are entities that perform specific actions you set for them. They will do nothing more, nothing less. Events can acts as decorations, items, NPCs, traps, scene controllers, and more. Events are not to be confused with scripts, scripts in the RPG Maker series effects how things work, while events change the direction of the game. There are also things that you can do with events that cannot be easily done with scripts, there are things that cannot be easily done with events, and it is your job as the designer to know when and how to use them. There is a saying I heard before, but I cannot remember where, so I will say what I remember of it. Not to say that EVERYTHING can be done in RPG Maker with events, but your first instinct should be to try to achieve the desired result through the use of events before you go running to the forums begging for a script that an event is perfectly capable of accomplishing. The Matter At Hand: The first thing you must do to work with events is to select the event tool as shown here: Once in this mode, you will see a grid go over your entire map, this grid informs you where the events can go. From then on, all you have to do is double-click where you want a new event to go. When you make a new event, you will get a window that looks like this: This window has a lot of windows, buttons, drop down menus, and a lot of options. So, what I am going to do is break these areas up into smaller areas. For starters, let’s look at the name block: Name: This is a more important block than most people assume at first. If you are making a door, you could give it the name of the building that it is attached to, if it is a shop owner, what shop owner is he? This is especially helpful for cut scenes. Imagine, you are working on a cut scene, and your party members were called “EV052″ “EV053″ “EV054″ and so one? That would get disorderly. If you name the events, than it would be easier to see who is who, what is what, etc. Page Controller: The event page controller options. I will go into further details about this area later, but to put it simply, you can have a lot of pages, but only one can run at a time. Pages: This is where you can see and select the pages that you have created for this event. The main thing that you need to understand about the event pages, is that the higher the page number, the higher priority it has over the other pages. Conditions: In the conditions section, you can set different conditions for the pages. Here is a rough breakdown of how each condition works.: Graphic: This window is where you press you select what you want the event to look like. Can be anything from NPC’s, Lever’s, Animals, Chests, anything! Just double-click this section, and you will get this window: Here is where you will select what you desire the event to look like. In some situations, you will desire to leave this window blank, such as when you want it to be a cut scene controller, or an event to set the map up. Other times, such as this event, you want to give it a graphic. For this demonstration, I will be selection a lever under “!Switch1″. Basically, navigate down to the “!Switch1″ option, and select the first option shown. Now that the graphic is selected, you can press “ok†and you will now see it in the graphic selection window. Autonomous Movement: Autonomous movement is a simple concept to understand. Basically, these settings will define the idle settings of the event. Options: The options menu is pretty straight forward. You select the options you want on, and turn off the ones you do not want. Walking Animation: When the event walks, it shows it’s walking animation Stepping Animation: When the event is sitting still, it’s walking animation will still play. Direction Fix: If the direction the event is facing, so if the event is facing down, and he moves left, he will still face down. Through: This event can pass through the player and other impassable tiles as if they were passable. Priority: Priority is another one that is self-explanatory. Below characters will set it up so that the player can walk on top of the event. Above character sets it so the player walks under the event. And same as character prevents the player from walking there at all. Trigger: Triggers can be a little confusing at first, but as you make more and more events, they will make sense. Let me give you a rough breakdown of how they work. The option you need for your events should be pretty straight forward, but if you are in doubt, try it, if it works, then it works. Contents: Last, but not least, is the contents section. This is the part that truly matters with most events. When the event is triggered, it goes through what you put in here. and does what you want it to do. If you double-click within this area, you will get a pop-up menu with a ton of options. Do not fret, these options are pretty self-explanatory, and do exactly what they say they do. I will be making a series of tutorials show casing every single one of these commands. For now, just under stand those options do exactly what they say they do. Test Event: This event I will be making will be making a simple event, a switch that activates a separate event. For this event, the graphic I showed previously will need to be selected, “!Switch1″, and I chose the red lever. Select it in its left position, and the window should look like so. We want it set up as the same level as the player, so Same as Characters is selected, also, the trigger is Action Button as we want the player to select the lever to activate it. Now, you want to make the event that happens when the switch is activated. Let’s go ahead and double-click in the contents section. This will show the pop up menu with 3 pages. Keep it on page 1 for now, and select “Control Switches†just as I have highlighted here: This will pop up a new window with a few options. You do not need to under stand them fully, for now, just understand that switches store a value of on or off, nothing between. For now, keep single selected, and click where you see the “…†to the right of single. You will see a window pop up, and this window shows all your switches. Go ahead and name switch 0001: Switch. Now hit “OK†and ensure that ‘ON’ is marked off, as shown here: Once you have that set up, go ahead and press “OKâ€. Now, at the top, go ahead and press “New Event Pageâ€. Ensuring that you are on page 2, place a check on the top condition option “Switchâ€. Press the … and ensure that 00001: Switch is selected. Also, go ahead and change the graphic to this event to the “!Switch1″ graphic, and select the lever on the right position. Also, in contents, put another “Control Switches†command in there, but this time turning the switch to the off position. When all is said and done, the page should look like this: Now, as I said, I want this event to effect another event. So go ahead and press “OK†and make a new event nearby. Set it’s graphic to whatever you want, in my case, I am setting it to the spike trap in “!Other1″ and choosing it in it’s down position. That is all that is needed for page 1. On page 2, go ahead and set the graphic to it’s up position. Also, set the condition for page 2 the same as the other event’s page 2 condition, Switch 0001: Switch is ON. That is all! Let’s see it in action, shall we? Conclusion: That is it for this beginner’s level tutorial! I hope you learned something new, and if now, I hope you are looking forward to my tutorials to come! I hope your future RPG Maker experiences are pleasant ones !
  11. The demo was just uploaded! It is ready and available for the world to try it! You can download it by going to this page here: Download When downloading, it may say that it is unsafe, this is just your computer being paranoid. Please, if you have any critiques or comments, register and comment to this post, or the download page! Please, let me know what is broken, and what should be changed, added, suggestions, etc. Enjoy! *Edit* Ensure to save often! I may have a missing file or two, and if you encounter a file like this, the game WILL CRASH. Ensure you save often to keep your progress. Source
  12. The Lost Shipment: I just released the page for The Lost Shipment, and I also posted a new video on it. This video showcases me starting to add voice narration to my game, and it also shows my other maps. I also made my page for RPG Maker and The Lost Shipment, obviously not finished, but close enough. As soon as the game is finished, I will release a demo of the game under the downloads page of The Lost Shipment page. Viewer’s Choice! I also released another video, and is very straight forward. What do you want to see on my channel, website, game, anything! The video is here: Source
  13. This video launches a new series of videos, RPG Maker shorts. These shorts will be between 60 and 180 seconds long and will show how to do some interesting things in RPG Maker. This specific video covers a fire in a fireplace. This effect can be used for more than just fire however, twinkling lights and other effects. Source
  14. About 70% done with my game. Just need to work more on events!

  15. Under Features, add this: Atk State: [Poison] + 50% Attached is an image showing what I mean. EDIT Galv beat me to it.