Jump to content

The Experimental Autoit RPGenerator (IRC MOPRG Project) Python - Autoit - mIRC


coderusa
 Share

Recommended Posts

Nice demo :)

8 hours ago, coderusa said:

Youtube (crap quality idk why): 

Did you use this "Coolcut" program to upload the video?

EasyCodeIt - A cross-platform AutoIt implementation - Fund the development! (GitHub will double your donations for a limited time)

DcodingTheWeb Forum - Follow for updates and Join for discussion

Link to comment
Share on other sites

8 hours ago, TheDcoder said:

Nice demo :)

Did you use this "Coolcut" program to upload the video?

I uploaded the video manually through the youtube website. I only used coolcut for editing this because it was the simplest video editor i could find. I've also got kdenlive but its very confusing and i havent learned it well enough yet, and wanted to post up some screen recordings. lol (using OBS studio for screen recording)

 

PS For this interested, CoolCut is a decent program. If you buy the full version it won't leave a water mark, and it does screen recording and video editing, but I've not used the screen recorder, OBS studio has the best screen recorder I've used so far.

Edited by coderusa
Link to comment
Share on other sites

22 minutes ago, coderusa said:

OBS studio has the best screen recorder I've used so far.

It works but the UI is clunky just for screen recording, the main use case is streaming :)

On Linux there's an amazing program called SimpleScreenRecorder and it's just that!

Did you try ShareX like I suggested in IRC? Some say that it's the best screenshot program, but it also has a screen recorder feature now and I'm curious about how it holds up.

EasyCodeIt - A cross-platform AutoIt implementation - Fund the development! (GitHub will double your donations for a limited time)

DcodingTheWeb Forum - Follow for updates and Join for discussion

Link to comment
Share on other sites

11 minutes ago, TheDcoder said:

It works but the UI is clunky just for screen recording, the main use case is streaming :)

On Linux there's an amazing program called SimpleScreenRecorder and it's just that!

Did you try ShareX like I suggested in IRC? Some say that it's the best screenshot program, but it also has a screen recorder feature now and I'm curious about how it holds up.

Oh yea, I downloaded it but never installed it, I'll install it here in a bit and play around with it and let you know. Yesterday I had already spent too much time mucking around with editor programs that it slipped under the radar, as my desire just to get something put together was slowly turning to frustration with how many confusing editing programs are out there lol

Link to comment
Share on other sites

Progress Update

Animation aspects of battle mode are more or less in place, shaky but improving. Working on smoothing out some kinks and adding more animation stuff. Have a few bugs to work out that are causing some of the animations to be a little jumpy on screen. (You can see in the video when opponent goes to defend an attack using a force field ability). Will be tackling that next. I've also got to add in the rest of the mathematics for HP and MP calculation, and to reflect that result in the health bars. I think after that, as far as code goes for this "arcade" battle mode, the base process for that will be done. (Still need to draw a bunch of stuff too). Once I have this done, I'm going to work on finishing the GUI and getting the rest of the interface to a more operable state. 

Also added a shortcut to the screen recording at the top of the original post in this thread. :)

 

PS @TheDcoder ShareX is cool, but I still like OBS better :P I'll play around with ShareX some for the next screen recordings. 

Edited by coderusa
Link to comment
Share on other sites

  • coderusa changed the title to My "Experimental" Autoit Project (for those curious its a game...) Another demonstration video!

Update! Refined and put together the entire battle animation code and have it running a lot smoother now. The battle system also works fully from start to finish, as far as turn cycling and damage/HP calculation. Still have some glitches in animation that need to be smoothed out (later). Also tweaked the free-roam mode a little, made walking speed faster and played with more boundaries (overlapping and can't walk over objects). I definitely need to make better walking/running animations, and may also increase the distance-per-step when walking in free-roam. 

Next, I'm just going to spend some time tying up some loose ends, and getting some other things functioning before diving into more uncoded territory. There is a good deal more stuff to be done for free-roam mode, as well as battle mode (And future alternative modes of battle), also need to start getting used to Reaper and its Cockos Synthesizer to start making some sounds/tunes for this. (We'll see how that goes haha!)

Also put together a (much better) preview video (in spoiler below). I used ShareX (recommended by @TheDcoder) for screen recording this time, and finally figured out the Kdenlive editor so no more CoolCut water marks! I'll bounce back and forth between ShareX and OBS for future video stuff. (Game and non-game related!). I posted video link short cuts in the original post of this thread as well as below. (And again, YouTube quality sucks)

 

Link to comment
Share on other sites

  • coderusa changed the title to My "Experimental" Autoit Project (for those curious its a game...) Another, better, demonstration video!
7 hours ago, moonlol said:


This is a very interesting project! I think the idea of using a ROM type method to store game content is a very good one.

Thank you. I feel that doing this will really help enable customization and modification. Currently the images and graphics and such are not stored in a ROM file only data values, I haven't figured out how to put everything together in a single package for a ROM, thinking about something like WinZip for this, or making an automation script that will install the files properly into the game directory when loading up a new ROM. Graphics/images are currently dropped into a image library folder and accessed/loaded as needed and specified by Filename organization code that allows for swift image handling and swapping. The ROM data specifies everything needing to run the loaded game. The ROM data values, are currently stored in a Ini file, which works really really well for data values, as I can use IniRead() to pull the needed static data values from the ini file on the fly (without needing to assign variable/arary), while other dynamic data values are assigned to variables or arrays. In the distant future I plan to use Data Maps for the stuff that gets assigned to variables/arrays, but right now switching autoit stuff around so that I can use the data maps causes major script breakage, as Im currently using Autoit 3.3.8.1, and SciTE Lite which neither of these can use the Data Maps without changing to full SciTE or current AutoIt version), was quite a frustrating process so I've put that on the back burner for now...

Later on down the road I plan to publish explanations of everything and how the system works, just need to get more of it done first lol.

 

 

Edited by coderusa
Link to comment
Share on other sites

Quick Update:

Code stuff mostly, haven't done much new in animation department yet. Been working on the file system structure of the program getting everything where it needs to be in the directories and getting the directories created and lightly preparing some of the finished stuff for FileInstall(), compiling etc. Putting together some more functions/snippets from working pad/scrap files into the main program code files. Also restructuring and cleaning the existing free-roam code to fix a couple bugs in that system as well as preparing for coding some new stuff. Have gotten a good chunk of the little things out of the way.

More to come!
 

Link to comment
Share on other sites

PROGRESS UPDATE 10/17/2023

Noticed I've got my first two youtube subscribers, if its anyone on here, thank you!

Been buried deep in the code of this project lately, getting stuff done. Been working on expanding on the free-roam mode. Also been working on the GUI. I've made the empty space (some of have seen) on the left side of the GUI in a multi-purpose panel, that shows/hides controls depending on the button pressed in the tool bar. Also been building up the items/equipment features and adding some new graphics and and icons. More to come!

Quick screen recording in the spoiler. 

Spoiler

Patreon (Free/Public Article): RPG SERIES PROGRESS #1 | Patreon

YouTube: 

 

 

Link to comment
Share on other sites

  • coderusa changed the title to My "Experimental" Autoit Project (for those curious its a game...) Progress Vid!
  • 2 weeks later...

Knocking out a bunch of stuff for the GUI. The left side panel is now dynamic and can display different menus (stats, inventory, equipment) by clicking one of the respective tool bar buttons at the top of the GUI. Can flip thru the menus almost like tabs, and can show/hide the needed controls on the fly or automatically, as needed. 80% of the existing button controls are programmed and functioning. 

Inventory use in free roam mode is functioning for curative items. Working on the same for the battle mode.
Equipment handling is complete. You can view and change your equipment.
Can view player stats and abilities (As well as displaying ability info in text display by clicking the "Info" button.
Chests now have items in them, can be opened (with spacebar) and the item found is displayed in the text display and added to your inventory.
You can talk to NPCs with the action button (currently spacebar) still working on this, but it does function.

About The Demo:
I'm working diligently to get a demo together. There are some changes and new stuff I need to add to the turn-based battle mode, and considering maybe throwing in a active battle mode as well for the demo (not sure yet, active battle mode is uncoded territory at this time). There is also a bunch of sprites and images that I need to draw, expanding the map and developing the in game world graphics and flow. Once I get to a good stopping point in the code, I plan to focus on cranking out new sprites/animations for the demo.

Link to comment
Share on other sites

8 hours ago, Andreik said:

I like the retro style graphics of your game. One thing that I would suggest it's to design from this phase your UI for different screen sizes and the option to play the game in full screen mode. Good job for what you achieved so far.

Thank you! Full screen option is already on the to-do list :) The demo probably won't have that, currently if I do full screen, all the GUI controls behave normally, but it stretches the graphics background and messes up the boundaries around objects and around the edges of the graphics display, and messes up the proportions of the sprites vs. background. (I.E. It stretches the background to fit, but leaves sprites and objects the same causing graphics to look terrible. I haven't figured out how to handle this without having to make a set of larger backgrounds for full screen. It is something that I've been researching, but not a priority at the moment.

Edit: Also if I set it so that it doesn't resize the graphics control then it just fills the screen with the GUI and leaves a lot of empty space, which isn't ideal. 

Edited by coderusa
Link to comment
Share on other sites

Well there are different approaches but it's way better when you research by yourself and choose something appropriate with what you already have without being force to rewrite all code. I'll be watching this project since I like very much this type of games.

When the words fail... music speaks.

Link to comment
Share on other sites

On 10/28/2023 at 3:25 PM, Andreik said:

Well there are different approaches but it's way better when you research by yourself and choose something appropriate with what you already have without being force to rewrite all code. I'll be watching this project since I like very much this type of games.

Thank you, I'm glad you are interested. :)

I have been researching this, I shouldn't have to rewrite the code, only expand, I have been building this with user modification in mind and trying to leave it as open for editing/modification as possible, and all the dimensions and specifications for graphics and such are not hard coded and instead stored in a data file. This way, in theory, I should only have to add a few If-then-else statements at the start of loading process that check for full screen and screen resolution, then based off that criteria it will refer to the proper dimensions from the data file. @DesktopHeight and @DesktopWidth will likely play a part in this, also been reading thru WinAPI stuff and other things. 

Link to comment
Share on other sites

  • 2 weeks later...

Progress Update

Probably going to have the first "concept" demo version 0.01 ready by the end of this weekend (November 12, 2023 IF NOT SOONER), NO PROMISES AND FINGERS CROSSED. If all continues to go well. That's the goal anyways. If something happens or I experience delays, I will update you guys here on the 12th.

I'm getting burned out, I need to take a break to work on some other projects and other stuff. Also starting to need support for this project, I've been working diligently on this since July to get it to this point.

I'll tell you now, full screen won't be available YET. Offline only, leaving out the IRC/online stuff, temporarily of course, since a lot of that isn't even close to finished. This first demo will be the basics; Testing the engine itself. There is still a lot more to do, but what I have so far needs to be tested and analyzed by other AutoIt programmers. As I've said before I am by no means a "professional" programmer, nor am I 100% fluent in AutoIt, there are areas of this project where I feel like the code is messy, or just thrown together. It does work fairly well considering, and runs relatively stable, but just because it (mostly) works without error, doesn't mean it can't be improved! 

More info to come.

Edited by coderusa
Link to comment
Share on other sites

Here you go. Questions, issues, bugs etc can be discussed here.

EDIT: I am pretty drained and exhausted, really pounded it out thru Thursday and Friday. I want you guys to play around with it, look over the code etc.

 I will work on putting up more documentation and info through out the weekend. 

Once you have the program up and running, use /help in the command line to display commands.

Thanks to all of you! I don't like to ask, but donations will help! Considering time and effort spent, I also need to invest in some more software, online stuff and computer upgrades to really help move the project along. 

Version 0.01 Concept Demo

I used AutoIt 3.3.8.1 and SciTE Lite (I tried to use newest version of autoit and full scite but everything breaks when I switch to that...)

Windows 32-Bit (x86) Compiled executable and installer (Hosted via GitHub)

Source Code and Files (Hosted via GitHub)

Video I threw together in the spoiler

Spoiler

 

 

Edited by coderusa
Link to comment
Share on other sites

  • coderusa changed the title to My "Experimental" Autoit Project (for those curious its a game...) DEMO RELEASE!

It's not evident from the source which is the main script but I suppose it's RPG-EXE.au3 and also you have some issues of code organization. Running RPG-EXE.au3 the console cry out with warnings and errors. I can understand that you use SciTE Lite and an older version of AutoIt but still...

First warning say:

RPG-FUNC.au3"(45,31) : warning: $movelist: possibly used before declaration.

looking for that line I saw that this variable it's not declared anywhere in the function. My mind was ok, it's a global variable defined somewhere so I checked where it's defined and I found that it's RPG-B-ARCADE.au3 but why I am getting a warning? Looking to include headers I saw that RPG-B-ARCADE.au3 it's included after RPG-FUNC.au3 and this is not all. Inside RPG-B-ARCADE.au3 the variable it's not even declared somewhere on top of the script, it's defined in some functions as global variables.

Func _Turn($mode)
    ...
    Global $MoveList = Character_Data($mROM_TAGCODE, "atkml", "R")
    ...
    Global $MoveList = Character_Data($mROM_TAGCODE, "defml", "R")
    ...
EndFunc
 
Func B_GFXSet($mode, $spec = " ")
    ...
    Global $MoveList = " " ;NPC movelist
    ...
EndFunc

This is bad practice and can result in so many issues. Why not declaring $MoveList in RPG-VARS.au3 and include RPG-VARS.au3 before any other includes?

The case above might not be safe but it's not fatal in certain conditions but these lines are fatal in every AutoIt versions.

Func Use_Inventory($mode, $item)
    ...
    $mp = $PlayerMP + GetTok($code, "2", "43"))
    ...
    Global $PlayerMP $mp
    ...
EndFunc

I won't comment the entire code, these are just few observations but there are many warnings and even syntax errors. I appreciate your effort but unfortunately right now the code it's not running.

Edited by Andreik

When the words fail... music speaks.

Link to comment
Share on other sites

@Andreik strange, runs fine without error for me. I think you are experiencing the issue I had when I try to switch to newer version of AutoIt and SciTE.  Did you try the executeable? Also, RPG-EXE.au3 is main file to run from. I thought that was in the ReadMe file, but I'll have to recheck, I was tired when I zipped it up. 

I just ran it from SciTE Lite, to make sure, in my set up. No issues. I think it may be the version of Autoit you have?

 Autoit 3.3.8.1 and SciTE Lite 2.28 is the only way I can get it to run without issues. (As I stated before), If I try to run it in newer versions or full SciTE version it has many errors like you described. I do not know how to fix that, and is hoping someone can offer some tips.

I'll also look thru the variable stuff, I thought $MoveList was already in RPG-VARs, I will double check and see what I can do on my end.

Edited by coderusa
Link to comment
Share on other sites

I didn't run the executable, I am more interested in code to work. Do you run the same code as it is on github? Unbalanced parentheses for example is a fatal error on every AutoIt version. Check Use_Inventory() function and confirm if you have this line:

$mp = $PlayerMP + GetTok($code, "2", "43"))

 

When the words fail... music speaks.

Link to comment
Share on other sites

5 hours ago, Andreik said:

I didn't run the executable, I am more interested in code to work. Do you run the same code as it is on github? Unbalanced parentheses for example is a fatal error on every AutoIt version. Check Use_Inventory() function and confirm if you have this line:

$mp = $PlayerMP + GetTok($code, "2", "43"))

 

Yes I have the same exact version running, and that line is the same, I wonder why it's not triggering an error on mine? Likely because the MP is temporarily unlimited, and I may have missed testing that portion of the Use_Inventory() function since my only focus was for HP and not MP. 

$mp = $PlayerMP + GetToke($code, "2", "43")

I have fixed this line, and will update the GitHub download. To fix it on yours, just remove the extra bracket at the end of GetTok($code, "2", "43").

As for $MoveList, this also does not trigger an error on mine. $MoveList is initially declared by B_GFXSet("BattleVars", "0")  In RPG-B-ARCADE and handled through the _Turn() function, $MoveList is only used during battle mode and this does not cause any errors on my version. I will add $MoveList to RPG-VARS to have it declared when the program starts, tho it should be getting declared properly elsewhere.

I added $MoveList to RPG-VARS and will update the GitHub download. (You can add $MoveList on yours if you dont want to re-download)

If you look in RPG-FUNC there are a couple functions that declare and handle a few lists of variables, but these variables are only used at certain times, and are declared before they are used, and freed/reset when done being used to prevent use after free issues.

I can only assume that variable declaration rules have changed in newer versions of Autoit/SciTE. I have not altered anything with Opt(), so if it continues to become an issue with other versions of Autoit, you may want to set Opt("MustDeclareVars", 0) for the time being. On my end I am not having any variable issues/errors.

Fixed these items and re-loaded the files to GitHub.

If we can get things working on your end, later this coming week I am going to attempt to update my Auotit install and SciTE to the newest full version, and then try to get this script working in that (if we havent already). Last time I tried this it took an entire weekend of frustration which ultimately led to me rolling back my Autoit install to 3.3.8.1 with SciTE Lite 2.28.

 

Edited by coderusa
Link to comment
Share on other sites

  • coderusa changed the title to The Experimental Autoit RPGenerator (IRC MOPRG Project) Python - Autoit - mIRC

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
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...