Chaos Project

RPG Maker => RPG Maker Scripts => RMXP Script Database => Topic started by: KK20 on November 20, 2012, 08:51:57 pm

Title: [XP] Advance Wars Engine
Post by: KK20 on November 20, 2012, 08:51:57 pm
Advance Wars Engine
Authors: KK20
Version: 0.1b
Type: Engine
Key Term: Misc System



Introduction

I wouldn't expect a large majority of you to know what the game Advance Wars is, so I might as well explain it briefly. Developed by Intelligent Systems (whom also did Fire Emblem, a game you should probably all be familiar with), Advance Wars is a turn-based strategy game of 2-4 players. Players control their own armies of tanks, battleships, and jet fighters to take down their opponents. Players also choose a Commanding Officer who has special abilities and skills to aid in combat (one CO can heal his units while another prefers using air units than sea units). There are a number of maps for players to choose from as well as a Campaign mode that pits the player to complete a number of objectives to a storyline.

This project/script will provide you with the necessary tools to create your own Advance Wars game (or just play a quick game with friends if you're not interested in making your own--the demo provides enough maps, units, and COs to play with).


Features




Screenshots

Videos of progress:
Gameplay Test #1 (http://www.youtube.com/watch?v=8Qhax7vEBWQ&list=PL5pG9wBneuoCDqYL6dlHNu0OKtnKOyMjc&index=1)
Update #6 (http://www.youtube.com/watch?v=HEFG6Zv_ges)
Channel (http://www.youtube.com/user/PagoPlexia)

Screenshots (OLD): ShowHide

CO Select Screen
(http://i1067.photobucket.com/albums/u430/kirbykid20/CO_Select.png)

Fog of War
(http://i1067.photobucket.com/albums/u430/kirbykid20/snap_3.png)

User Interface stuff
(http://i1067.photobucket.com/albums/u430/kirbykid20/screen_shot.png)

Grit's Rocket attack range
(http://i1067.photobucket.com/albums/u430/kirbykid20/gritrange.png)



Script
-GitHub Repository-
https://github.com/tcrane20/AdvanceWarsEngine

-Official Releases-
Version
v0.1b (https://www.dropbox.com/s/sjlqzhsu51t5fjl/AWXP_Engine%20v0.1b.rar?dl=0)


Instructions

Instructions are located in the ReadMe.txt and UserManual.pdf files.


Compatibility

This engine is a complete backhand to RPG Maker XP. Of course any scripts meant for actual RPGs in mind will not work here at all. I don't see why you would even need to add any outside scripts to this engine anyways.


Credits and Thanks




Author's Notes

Spoiler: ShowHide

So why are you doing this?

Simple: I love this game. What? Not good enough of a reason?

For some of you RPG Maker XP users, you may have heard of a script called GubiD's Tactical Battle System. It was mentioned that an Advance Wars add-on would be created. Upon returning to the RMXP community, he replied that such a thing was already possible to make with the heavy use of events. I shook my head at this comment--there are WAY too many variables and factors you have to consider, so much so that eventing it would be a nightmare.

There have also been a few Advance Wars engines created, one of which is open-source (but in Java...my enemy) and another which allowed users to create their own campaigns, units, and CO's with a simple GUI. However, none of these felt like a true Advance Wars recreate, not to mention some had bugs, graphical errors, and (worst of all) I would not be able to change any of it.

I also started this project around the time I joined this website. I found it as a test of my Ruby scripting knowledge I've accumulated over the years. Plus, the feeling of doing something from scratch to completion is a great sensation.


What do you plan on doing?

Right now, I'm still in the "get everything finished so that I can release some kind of demo as soon as possible" mode. The engine has seen some changes:

  • Battle calculations have been changed

  • CO's have been modified

  • Friendlier user interface


But I also plan on trying to add as many features as possible of the original Advance Wars into the engine (some animations, AI, Campaign, Map Maker, and possibly online matches). I probably will include more features if this project gets further in the design process, but as of now, I just want a working game going.


Anything I can do to help?

As of now, I am doing all of this solo.

When the time comes around, I'd sure like some Testers. Throughout my scripting process, I have always come upon some small bugs that were difficult to find and reproduce, so many hands would be appreciated.

If you are super knowledgeable with Ruby scripting (and possibly RMX-OS when I get that far), I may require a couple Programmers.

Knowledgeable with the series in general? I'd love to hear some feedback, suggestions, and ideas. I'd love to do a few rounds with you as well (but as of now the only way I can play with others is through TeamViewer...trust issues ya know?)

Quote from: KK20 on November 29, 2012, 01:59:53 am
I want to add that I'm kinda looking for spriters or anyone good with making graphics if you want to make the default systems look nicer/better. I'm not desperate, but if you like this project and feel you want to help make it look its best, I'd appreciate it ;) (otherwise, everyone will just have to love my amateur spriting).

Also, if you would like to make a logo for the project, go for it. The only program I've ever needed to used is Paint, so my experience with graphics is pretty much zero. Again, I'm not desperate, but if you would like to support, please <3


Since I am not currently looking to make a standalone game, I'm not in the need of composers or writers.
Title: Re: [XP] Advance Wars Engine
Post by: Zexion on November 20, 2012, 11:35:32 pm
I've actually seen your game on youtube before, and I was like O.O
Good luck with this, though with your skill I doubt you will need it. I should be saying I can't wait till it's done lol.
Title: Re: [XP] Advance Wars Engine
Post by: Memor-X on November 21, 2012, 01:00:06 am
i would love to use this, i have an idea for an Advance Wars like game where the controls are much the same but you could build buildings within a certain range of the H.Q or H.Q Relays (allowing multiple bases) and your C.Os were on the battle field so they could have ranged bonuses (say that there was a C.O like Sami but when soldiers are in say a 3 tile range, they can capture places in a single turn (like her power)) so they level up, get equipment and some have certain special abilities (one board a tank to increase it's firepower and deference, one, when he goes to attack, can call all indirect fire units within range to him fire at his target aswell), i was thinking of building it in Unity but i could trial some of the mechanics like the questing system, the Final Fantasy Tactics A2 like map and how every point is a battle map you can use in multi-player

ofcause, we i could just use it to make really, really huge operation maps with no 50 unit limits

as for some suggestions based off from the Advance Wars series (i've only played the first 2), i would suggest

- Being able to use ALL Black Hole buildings like
      * the Factory (will produce random units each turn and you already own a production facility that can make that unit (so it won't spit out air units if you don't have an airport)
      * Lasers
      * The Death Ray
      * Labs (Allows you to produce a more advance unit associated with it once captured, much like how they unlock the Neo Tank for the Factory Battle after clearing the mission)
      * Cannons
      * Grand Cannons

Naturally these would be Neutral Buildings and bug ones would have a central point of capture and central point of destruction (like what the Grand Cannons had)

- Being able to repair Pipe Seams when destroyed (so have an solider move over and work like capturing a building), should also allow soldiers to walk through (logically a solider can use the bolts in the seam like a ladder to climb over, huge movement cost), the same repairing can work for destroyed Grand Cannons, Cannons and Lasers
- Being able to use set a Volcano in the map editor (it only shows up in one mission)
- missiles can be replenished (for a huge cost) and can destroy a unit (instead of just reducing it to 1 HP,
- repair units that can repair units on the field instead of just relying on captured buildings

most of these ideas come from Advance Wars 2
Title: Re: [XP] Advance Wars Engine
Post by: G_G on November 21, 2012, 08:30:14 am
Never had the chance to play an Advance Wars game, but god damn KK20, this is looking pretty impressive. I hope you keep at this project and I can't wait to see more.
Title: Re: [XP] Advance Wars Engine
Post by: candi.horror on November 21, 2012, 03:43:05 pm
I'm only somewhat knowledgeable about Advance Wars (I think I've got a cart for it around here somewhere...) but I would like to offer my services as a play tester. I used to work for Electronic Arts, I mostly did testing on various Sims 3 games (for PC/Mac, as well as 3DS, XBOX360, PS3) and worked on the Alpha build of Battlefield 3 (which they sent to us three weeks before Open Beta was supposed to start xD), so I've got the experience you need ^_^ Let me know if you would like my help!
Title: Re: [XP] Advance Wars Engine
Post by: Subsonic_Noise on November 21, 2012, 07:54:54 pm
Oh my god I loved advance wars. I actually was addicted to it back then, played it in multiplayer with my friends, built my own maps, played through the campaign mode multiple times.. I can't do much for you, but good luck.
Title: Re: [XP] Advance Wars Engine
Post by: KK20 on November 21, 2012, 09:03:44 pm
Wow, glad to see some nice responses! Makes me feel all the more motivated to get this out ASAP.  8)

@Memor-X
Oh damn. That's...a lot of ideas there. I was planning to allow players to control Black Hole inventions, but not the ability to capture them. I'll also add a configuration option that the user can set to make unit limits and restrictions. From a tournament perspective, some of those ideas are quite broken in power :haha: But, hey, this is an engine. What you do with it is totally up to you.

@candi
Thanks, I'd appreciate that. ;)

I hope to have a playable beta sometime next month. My checklist is quite heavy right now (mainly because the main menu stuff is 0% done right now...lots of notes and drawings though), but I guess it really all depends on how much school stuff is left to do (from the looks of it, not much).
Title: Re: [XP] Advance Wars Engine
Post by: Memor-X on November 22, 2012, 04:56:05 pm
Quote from: KK20 on November 21, 2012, 09:03:44 pm
I was planning to allow players to control Black Hole inventions


controlling them would be a good start for an initial release and being able to capture them would be an update, however i can't seem to think on how a player would control a Black Hole Building without capturing first, ofcause i was more thinking of multi-player where you would capture them and use them as central staging points for massing operations against your opponent's H.Q, when i made multi-player maps i created something like cannons by using a Rocket surrounded by pipe sitting onto of a city cause i really wanted players to start off in like a fortified base which would take effective strategies to penetrate and that was the best i could do for fixed deference
Title: Re: [XP] Advance Wars Engine
Post by: KK20 on November 22, 2012, 05:31:29 pm
For the first release, I didn't plan on having that yet.
For controlling inventions, just give the player control of it before the battle begins (I mean, that's how they do it in the games).
Title: Re: [XP] Advance Wars Engine
Post by: KK20 on November 29, 2012, 01:59:53 am
Worked on the map select and CO select screens over Thanksgiving break. Going to rewrite the main battle processing and finish up on those last sub-menus. First beta release is mainly just to show off what I've got, get some playtests in, and just receive feedback. Scripters are welcome to edit it if they want (but that will be futile unless you share those edits with me since I've still got more updating to do).

I want to add that I'm kinda looking for spriters or anyone good with making graphics if you want to make the default systems look nicer/better. I'm not desperate, but if you like this project and feel you want to help make it look its best, I'd appreciate it ;) (otherwise, everyone will just have to love my amateur spriting).

Also, if you would like to make a logo for the project, go for it. The only program I've ever needed to used is Paint, so my experience with graphics is pretty much zero. Again, I'm not desperate, but if you would like to support, please <3
Title: Re: [XP] Advance Wars Engine
Post by: Memor-X on November 29, 2012, 04:15:48 pm
Quote from: KK20 on November 29, 2012, 01:59:53 am
kinda looking for spriters or anyone good with making graphics


you looking to create your own RTP or do you want sprites from Advance Wars, if so, here's a link to Advance War sprites

http://spriters-resource.com/gameboy_advance/advwars2/index.html

it's Advance Wars 2 but if you go back a level you can find Advance Wars
Title: Re: [XP] Advance Wars Engine
Post by: Zexion on November 29, 2012, 05:11:36 pm
I'm not like a pro or anything but here's an example of some stuff I've done.
Spoiler: ShowHide
(http://imageshack.us/a/img823/9138/wiptileset.png)

Spoiler: ShowHide
(http://imageshack.us/a/img9/3927/rikug.gif)

Spoiler: ShowHide
(http://imageshack.us/a/img843/6471/somev.png)

Most of my sprites are just minor or major edits of already made sprites. The animation is the exception because I had to make a complete new animation by simply looking at previous animations. The animal crossing tileset was made 100% by me (the grass texture was a rip that I recolored). The water itself was not made by me, but the autotiles were.

I can basically mimic most sprite styles if you give me references.
Title: Re: [XP] Advance Wars Engine
Post by: KK20 on November 29, 2012, 07:52:50 pm
@Memor-X
Oh I am well aware of that--probably pulled off a collection of sprites from there. Most of the sprites I've been using are from another AW project: Custom Wars.

@Zexion
It's nothing fancy that I'm looking for. Mainly just spicing up the simple graphics I've made (i.e. menu screens, status windows, cursor graphic, etc.). Basically I'm using the sprites from the original series and creating any makeshift graphics as the current placeholders for now; I won't update them unless someone would like to change them for the heck of it.

Here's an example of what I mean:
Spoiler: ShowHide
(http://i1067.photobucket.com/albums/u430/kirbykid20/CO_Select.png)
It does what it should do, but it's pretty plain in detail.

If you are willing to join the team, then I would greatly love your help!
Title: Re: [XP] Advance Wars Engine
Post by: Zexion on November 29, 2012, 09:27:31 pm
I'd like to join :) Just beware that I'm not 100% free all the time for 2 more weeks :P then I have a break from college for like 3 weeks or something.
Title: Re: [XP] Advance Wars Engine
Post by: KK20 on December 01, 2012, 01:26:29 am
No problem at all. I've still got another 2 weeks plus finals week.

I don't think I have anything for you to play around with until the first release though. It's probably way easier to find what could use some help when you actually play the game :P
Title: Re: [XP] Advance Wars Engine
Post by: Zexion on December 01, 2012, 02:04:09 am
Sounds good. Do you have an ETA for the first release?
Title: Re: [XP] Advance Wars Engine
Post by: KK20 on December 01, 2012, 02:17:10 am
Soon-ish? I can't really pinpoint a date yet as I'm not sure how much stuff I've got left in those three weeks. I guess if I really wanted to, I could release it now, but it's missing some key features as well as buggy at the moment (missile silos are wonky, cruisers and aircraft carriers don't work properly with loaded units, etc.).

Just keeping my fingers crossed I can get it out before the end of the year.
Title: Re: [XP] Advance Wars Engine
Post by: KK20 on December 05, 2012, 12:22:08 am
Recently recorded a match between my completely noob friend and I. It was done over the internet via Teamviewer, so we had to communicate over our built-in, low-quality mikes. Not sure if I should upload with or without audio...or just wait until we can play on the same computer and not have this issue.

~30 minutes long
Very weird, and possibly awkward, dialogue

Regardless, I'll still probably upload it to Facebook.
Title: Re: [XP] Advance Wars Engine
Post by: KK20 on December 18, 2012, 03:00:29 am
Added a 80-minute gameplay between me and my friend. No audio (A. whoops and B. too much space and time).

I think I'm about ready to release the playable beta. Granted, I don't have everything I wanted done, but (dammit) my friends want to play it and I do need feedback. I don't think it will be pretty enough for scripters to play around with it--this is more for testing the gameplay/engine itself.
Title: Re: [XP] Advance Wars Engine
Post by: G_G on December 18, 2012, 08:06:07 am
Sounds good KK20. Looking forward to it. :3
Title: Re: [XP] Advance Wars Engine
Post by: KK20 on December 28, 2012, 09:44:08 pm
BETA VERSION IS NOW AVAILABLE!


Finally, after nearly a year and a half of free time, I have completed the beta version! Looking back at all the progress I made, it feels amazing to see it come this far. What started as a challenge/bet has turned into something I can call my own.

The beta version is equipped with 2 players in mind. There are a few maps to play around in and all the COs are available. Fog of War is a little rough and is not an intended feature (however, if you edit the project, you can turn this feature on, located under Game_Map as the variable @fow). Not everything is finalized yet and is subject to change.

I am releasing this mainly to gather insight, suggestions, and any potential bugs. A list of things to-do is already being made for the next release. I'll work on the credits soon too.

Download: Here (http://dl.dropbox.com/u/58874459/AWXP_Engine%20v0.1b.rar)

Thank you and Happy New Years~  :)
Title: Re: [XP] Advance Wars Engine
Post by: Zexion on December 29, 2012, 02:37:03 am
I am running VERY low on bandwidth for the month...I am literally about to hit 90%, so I am going to wait to download this on the 3rd of January. Glad to see the file is only 60mb (roughly) as engines tend to get on the big side..
Title: Re: [XP] Advance Wars Engine
Post by: G_G on December 30, 2012, 10:08:54 pm
Damn KK20. You did an amazing job on this. Seriously, this is pretty amazing! I hope you keep at it.
Title: Re: [XP] Advance Wars Engine
Post by: KK20 on December 31, 2012, 01:27:39 pm
@G_G
I love how all your comments always make me smile :) I, too, hope that I finish it.

@Zexion
Alright, no rush. The audio makes up the majority of the file's size (~67 MB).

I'm currently planning on completing the rest of the base of the engine next (3-4 player, completed menu, animations, Fog of War, etc.), but I should also probably look into editting while I'm at it. I know a lot of my code is probably inefficient--there's so much going on that even I sometimes lose track of what does what. I kept an old copy of my project back in 2011 and it felt so much faster than what I have now. I dunno, maybe I should hold that off for later once I have everything pieced in (and when I take more classes in Computer Science... pre-requisites y r there so many of u?!)

Small steps at a time for now though.
Title: Re: [XP] Advance Wars Engine
Post by: G_G on December 31, 2012, 01:31:38 pm
Haha, I do a great job at making people smile. Anyways, just got done playing around with it some more. A friend and I played through a match. You know what, I'll have to make a video recording of us playing. Though quite frankly, neither of us didn't really have much of an idea. New to Advance Wars. xD
Title: Re: [XP] Advance Wars Engine
Post by: KK20 on December 31, 2012, 01:36:40 pm
Sounds like fun--already laughing at the idea of it xD
Thanks for being so awesome ~<3
Title: Re: [XP] Advance Wars Engine
Post by: KK20 on January 04, 2013, 08:23:44 pm
All the little things that I changed/planning/have been plaguing my mind:
Also, lots of work (by which I mean my part-time job) I must do this month. :<_<:

EDIT:
Hah, found the answer to the bug above (I was missing a return statement...fffffuuuu-) as well as another one that I already fixed. Only noticable if you have funds perfectly in between an Anti-Tank and a Medium Tank; the opacity levels are wrong. Was just a matter of forgetting to reset the opacity levels to 255 every time.
Title: Re: [XP] Advance Wars Engine
Post by: Zexion on January 05, 2013, 04:44:21 am
I am downloading this now :), so excited lol.
I might get advanced wars for the ds if I can just find someone to sell my damn runescape account to.. (but Idk if i get enough I might get mario kart 7).
Either way I will just download the rom eventually and play it on my pc to get an idea of graphics and what not.
Title: Re: [XP] Advance Wars Engine
Post by: mad.array on January 05, 2013, 06:41:08 am
Well, you've managed what I've dreamed about. When I saw GuBiDs TBS I had thoughts about an AW style modification, I just never knuckled down to it. I'm downloading now to have a good look at the progress, but I'm already impressed. I anticipate regressing back to my college years where I was so hooked on this I forgot about the rest of my life...



that's a good thing by the way :)
Title: Re: [XP] Advance Wars Engine
Post by: Blizzard on January 05, 2013, 07:21:43 am
Quote from: KK20 on January 04, 2013, 08:23:44 pm
Seeing as this project is more of an engine than an actual game (has no characters or plot), what must I do to see this moved to the Projects/ Games thread?


Actually I think this would be most suited in the script database since it is a script after all. A whole engine, but still a script.
Title: Re: [XP] Advance Wars Engine
Post by: KK20 on January 05, 2013, 04:10:16 pm
@Zexion
Yeah, it's definitely a good game to get. It's sad how not many people have played, or even heard, of it when I think it's one of Nintendo's best franchises. I look forward to your thoughts ;)

@mad.array
Haha thanks! I know Advance Wars took a good chunk of my life away (I got hooked since 7th or 8th grade and have been playing it ever since, which translates to roughly 7~8 years). I hope I was able to relive your past~

@Blizzard
Hm, I guess I could reformat the first post. I'll get started on that then.

I love you guys and your support! So many awkward hugs that must be given out :D
Title: Re: [XP] Advance Wars Engine
Post by: KK20 on January 17, 2013, 06:47:48 pm
Wow...finally a day off from work to actually work on this post.
Formatted the first post so that it follows the script database template. Requesting for this topic to be moved there. Thanks G_G~

Been thinking of the message system. I'm not sure if I should use some script for that or come up with something on my own. If you played Advance Wars before, you should know how the dialogue windows look. I'm just not sure if something like Ccoa's script would best suit it or not.

Anyways, it has been a while since I released the demo. Any findings or suggestions? What should I really work on next? Favorite Commanding Officers? Anyone OP'd or weak? How about units? It's tricky trying to balance things out correctly while giving each character a unique play style.

Zexion, have you spent enough time to understand what's going on yet? Just wondering since you haven't said anything since "I'm downloading it." :P I also understand how your project takes priority over mine so no rush/problem.
Title: Re: [XP] Advance Wars Engine
Post by: Zexion on January 21, 2013, 08:14:13 pm
I've messed around with it, but really I don't know how to play :P I finally managed to open a window last time I played lol. I need to like watch a tutorial or something. Graphically though I'd say I'd rate it about 6/10, only because I am kinda anal about things lining up, the titlescreen is a little bland, and the water is not animated (which I have no idea if it is supposed to be lmbo) but I mean from what I can see it looks solid it hasn't crashed or anything on me like 90% of rmxp games (and some demos). I have some time right now so I'll check it out again.
Title: Re: [XP] Advance Wars Engine
Post by: KK20 on January 21, 2013, 09:34:30 pm
For an engine that is about 25% done, I'll take what I can get. Alright, let's break down your post.
Quote...really I don't know how to play...

Yeah, you're better off playing one of the actual games first before jumping straight into this. Even after studying the game before playing it (like knowing the exact statistics of units and commanding officers), I still wasn't all that great the first time. The first Advance Wars on the GBA goes into much greater detail than the others. I guess my PDF didn't do a whole lot of good?
QuoteI finally managed to open a window

lolwut :O.o:
Quote6/10

Considering that 90% of the graphics are ripped from the game itself, I can't really talk about that. I can talk about windows and such.
Quotethings lining up

What do you mean by that?
Quotetitlescreen is a little bland

Go ahead and say it's dreadful. I whipped that up in like 10 minutes. We all know graphics are not my specialty. I just needed something to have as a title screen before releasing the demo.
Quotewater is not animated

Indeed. The water tiles are a bit strange in Advance Wars. I'm going to need to use a rewrite of the Tilemap class and make some edits. From what I have been seeing, and planning, it's much harder than it seems. That's why I moved it down further on the checklist. There are a number of other things as well: property lights are supposed to flash, beaches/shoals have different shapes, etc. And all of that while still needing to keep tile_id's to represent certain tiles (Plains, Sea, Woods, etc.) is tricky.
Quoteit looks solid

I made sure to playtest it a lot before releasing the demo. Although I have reported a couple bugs, I'm glad I didn't leave any serious errors (so far).

Planning for next release to include

unless this increases in popularity, then I'll have to cut the list short. It's a significant amount of work.
Title: Re: [XP] Advance Wars Engine
Post by: swan101 on January 27, 2013, 11:21:18 pm
This is brilliant in short .
Title: Re: [XP] Advance Wars Engine
Post by: Zexion on February 03, 2013, 03:22:16 pm
I was just playing right now :P It's naice. I finally learned how to play haha.
Title: Re: [XP] Advance Wars Engine
Post by: KK20 on February 04, 2013, 01:47:19 am
Simple right? :V: I'll post some graphic requests soon. Just need to find them and group them up together.

I considered writing up all the changes I made for the Advance Wars regulars. If I had more of them around here to test this out and give me balance issues, I would have done it no questions asked.

As for actual updates, I've been doing a lot of sprite ripping and getting started with implementing the inventions. Also been thinking of ways in how to make the map files a bit more...unique? Maps are the heart of Advance Wars; I need an easy way to read them in while still allowing users to share them with each other and such. I need to experiment with it more.
Title: Re: [XP] Advance Wars Engine
Post by: Zexion on February 04, 2013, 03:04:41 pm
Honestly when i first opened it i was expecting blue to be a computer :P So i waited for a while until I realised that it is 2p.. yeah.. but now I kinda get it and I'm kinda excited to get started on graphics :P

Spoiler: ShowHide
Btw were you going to want me to do the title screen sequence, or did you wanna have fun with that lol
Title: Re: [XP] Advance Wars Engine
Post by: KK20 on February 04, 2013, 03:13:49 pm
xD I thought I said that there was no AI built-in yet. I'm not THAT good.

Hmm...I haven't really given the title all that much thought yet. For sure I'm going to need some kind of "official" title screen though and not something that looks like it was done with copy-paste in Paint. As this is more of an engine and not a game, I don't think I need anything super fancy (full-blown animated intro sequence, etc.), just nice and presentable. If and when I make an actual game from this, I would definitely appreciate that.
Title: Re: [XP] Advance Wars Engine
Post by: PhoenixFire on August 08, 2013, 08:09:05 pm
Alright, well, I know it's been a while since your last post, and I'm not sure if you stopped/paused work on this, however, I like it quite a bit. Basic graphics, but playable. Not -too- hard to figure out, yanno, once you realize you have to install a font to get it to work properly =p I would say you can probably do some basic AI using common events, at least, that's what I would do.
Title: Re: [XP] Advance Wars Engine
Post by: KK20 on August 08, 2013, 08:17:07 pm
Yeah, I was busy for a long while, not to mention my hard drive died during the time I was really into it (don't worry, all my stuff is saved). I'll get back into the groove of things in the coming days. I had a lot of script requests in between that took my attention away from this. I was also working on some of the boring, more technical stuff as well (lots of experimenting coupled with trial and error).

I could implement a basic AI, but I would need to do quite a bit of programming first. Plus, I don't think there are script calls you can use via an event to manipulate certain functions.

lol I had a ReadMe file in there. First line says to install the font.

But thanks for the comment. I know I haven't updated in a long while, but that's because I never finished anything I had started in motion.
Title: Re: [XP] Advance Wars Engine
Post by: Gears on March 08, 2014, 10:23:58 am
Okay then, here we go.

I've been looking into this engine, and trying to add CO's. so far, I've had some marginal success, and am trying to push the engine's (CO) limits a bit and see what happens.  However, I've encountered a few roadblocks which i would like to see if you've got a solution for.

To start off, i've been tinkering with unit ranges. For instance, i've made a CO who simply adds +1 range to every unit, which instantly turned all my units into indirect units!  I guess the engine handles the difference between indirect and direct attack units simply with the unit ranges, with the maximum for direct attack units being 1. Is there a way to circumvent this using CO properties? I haven't been able to find exactly where in your code the difference between indirect and direct attack units was made, but it should probably be modifiable.

Another thing i encountered was the cost multiplier. Most normal advance wars CO's use an overall cost multiplier which affects all units cost. but what if i want to make, say, only infantry cheaper? Or only tanks? or make infantry more expensive while making tanks cheaper?

I've also been tinkering with the damage calculations code. It hit me that by modifying the code, it should be possible to make a CO who would be able to ignore the attack reduction normal units get when their health drops.  i did this by changing, for example:

if @ammo == 0 or target.damage_chart[0][@unit_type] == -1
damage = target.damage_chart[1][@unit_type].to_f * (unit_hp/10.0)
@weapon_use = 2



into:

if @ammo == 0 or target.damage_chart[0][@unit_type] == -1
       if @officer == CO_Test
       damage = target.damage_chart[1][@unit_type].to_f
       else
damage = target.damage_chart[1][@unit_type].to_f * (unit_hp/10.0)
       end
     
 ###########################################################################  
       @weapon_use = 2
       


While this code gives no errors, it doesn't seem to be affecting the game. I think i got the part where i try to define the CO all wrong. I gather it should be possible to make exceptions on certain things according to which CO you have, but i don't know the exact "if" statement to use for it. Would you know one?
Title: Re: [XP] Advance Wars Engine
Post by: KK20 on March 08, 2014, 11:49:03 am
Range: ShowHide

Did you look at how I did it with other COs that modify range? I mean, you should have obviously looked at Grit and saw how I did it.

def range_bonus(unit)
 return 0 if unit.max_range(false) == 1
 if @scop
   return 3
 elsif @cop
   return 2
 else
   return 0 #<== normally a 1 in the original games, but that's OP as hell
 end
end

You are correct about the max range for Direct combat. A direct combat unit is defined as having a max range of 1, so you have to check if the range of the unit is not 1 for indirects.

Cost: ShowHide

You will need to add another method of some sort that can handle individual costs. Something like this for the CO class

def unique_cost_mult(unit)
 return 1
end

For your custom CO class

def unique_cost_mult(unit)
 if INFANTRY.include?(unit.unit_type)
   return 0.9
 elsif unit.unit_type == TNK
   return 1.2
 else
   return 1
 end
end

And this modified cost method for the Unit class

def cost(no_cost_mult = false)
 return @cost if no_cost_mult
 return (@cost * @army.officer.cost_multiplier * @army.officer.unique_cost_mult(self)).to_i
end


Attack: ShowHide

You should try using
@officer.class == CO_Test

Without the class method, you're asking if the INSTANCE of @officer is equal to the constant CO_Test, which doesn't make any sense and evaluates as false.
Title: Re: [XP] Advance Wars Engine
Post by: Gears on March 08, 2014, 12:16:23 pm
Yeah, i used grit's code, i was just a little surprised to see all the direct units suddenly acting like indirect units, since i at first thought that difference would be defined by unit rather then range itself.
Title: Re: [XP] Advance Wars Engine
Post by: KK20 on March 08, 2014, 12:19:56 pm
I can see your reasoning behind that. I probably just didn't want to create another variable since it's pretty obvious that a direct unit should only have a max range of 1. Also wouldn't make sense giving an indirect unit a max range of 1 either.
Title: Re: [XP] Advance Wars Engine
Post by: Gears on March 10, 2014, 04:41:23 pm
I found several minor errors in the game itself. mostly concerning aircraft.

First of all, sometimes, once an aircraft dies due to fuel loss, an error seems to occur. It seems to have to do with the daily fuel equation, specifically, the part where it cycles trough units to determine which ones should die. It tries to check the daily fuel amoutn of the unit, and i suspect it does so again after it's killed the unit. Another weird thing is that airbases don't resupply aircraft, (and other buildings don't have their supply or repair mechanic working either sometimes), which is potentially annoying on aircraft maps. Lastly, stealth fighters cannot attack pipe seams. their unit script doesn't seem to be able to recognize the pipes in question.

Apart from that, there's some new new questions regarding CO's I've got to ask.

One is somewhat related to the move_bonus boon. i wanted to add move penalties, which would lower unit movement rates. Unfortunately, simply adding a minus before the usual bonus movement resulted in a strange error where ruby would not allow me to subtract anything, saying that nil cannot be coerced into a fixed number. some googling allowed me to find out that this (usually) means you cannot subtract zero from anything, yet i haven't been able to find a workaround. adding an a extra definition into the calculation (move_penalty) didn't work out either. have you got any workarounds?

Another thing is Player-specific variables. I was hoping i could introduce some sort of day counter that only works for certain CO's, and is player specific, meaning that even if two players play the same CO, the variables remain separate. Have you got any idea how to do that?
Title: Re: [XP] Advance Wars Engine
Post by: KK20 on March 10, 2014, 05:22:18 pm
I think the problem I had before was that I was just deleting the unit objects while evaluating the array of units at the same time (which is generally a very bad programming practice). I think I fixed that now.
I'm sure airbases can resupply and repair (as can all the buildings that should). Again, this is probably tied up with the bug aforementioned.
And yeah, the thing about pipe seams was brought to my attention a while back. Has something to do with the Unit#can_attack method being modified in certain unit classes. I also might not have inputted a damage value for when a Stealth attacks a pipe seam either.

But I think I have addressed those by now. I'll run a playtest in my current build and see where I'm at.

I'd have to see what you are actually doing for the negative move bonus. Nothing is screaming out to me at a glance.

Every CO is a separate instance, even if they are the same CO. It's just a matter of putting a "dud" in the base CO class and the actual value assignment/whatever you want to do with it in the character CO class.
Title: Re: [XP] Advance Wars Engine
Post by: Gears on March 11, 2014, 05:23:54 am
Well, for the move penalty, i'm either using:
Spoiler: ShowHide
  def move_bonus(unit)
 if VEHICLE.include?(unit.unit_type)
return -2
   end
 end

or trying to make it trough:


Spoiler: ShowHide
  def move_penalty(unit)
 if VEHICLE.include?(unit.unit_type)
return -2
   end
 end


with in the CO class
Spoiler: ShowHide
	def move_penalty(unit)
return 0
end
 

and in the unit script:
Spoiler: ShowHide
return @move + @army.officer.move_bonus(self) + @army.officer.move_penalty(self)


For the Player specific variables, i tried putting them in like that, using:

Spoiler: ShowHide
  def Chronocounter
    if @phase_preturn or @cop
     return @Chronocounter+=1
   end
   if @Chronocounter ==5
   $game_map.set_weather('snow', 1)
   return 0
   end
end

in the CO code of a test CO, and using
Spoiler: ShowHide

 def Chronocounter
   return 0
 end
 

in the general CO class code. The idea is that every start of the player's turn, a counter will slowly rise towards 5, at which point it will reset and summon snow. Using your COP also adds to the timer. It doesn't seem to work yet. I'm guessing i got the "start of turn" condition wrong. For that matter, how does the game define the start and end of a turn outside the Scene_Map script?
Title: Re: [XP] Advance Wars Engine
Post by: KK20 on March 11, 2014, 05:07:22 pm
Well now that nil into fixed number error makes sense. You're missing a return value for when the unit is not a vehicle.

  def move_bonus(unit)
    if VEHICLE.include?(unit.unit_type)
      return -2
    else
      return 0
    end
  end

Without the 'return 0', the method would return nil. In Ruby, nil is not the same as zero; it is its own class. Doing any arithmetic with nil in the equation will throw that error.

As of now, the only way to get the current turn phase is through $scene.phase, but that won't do you a lick of good for what you're trying to accomplish. Your chronocounter method needs to be called by the running process--it's not running in parallel to the game. You'll have to call the method in Scene_Map under phase 0 (Pre-turn).

elsif @preturn == 5
  @player_turn.officer.Chronocounter
  cursor.move_speed = 5
  @phase = 1
  @preturn = 1
end
Title: Re: [XP] Advance Wars Engine
Post by: Gears on March 13, 2014, 04:50:39 pm
Well, i managed to implement the Feature using the following code, but for some reason the += command refused to work, so i had to use this:

Spoiler: ShowHide
def Chronocounter
    if @Chronocounter == nil
      @Chronocounter = 1
    elsif @Chronocounter == 1
      @Chronocounter =2

      elsif @Chronocounter == 2
      @Chronocounter =3

      elsif @Chronocounter == 3
      @Chronocounter =4

      elsif @Chronocounter == 4
      $game_map.set_weather('snow', 1)
      @Chronocounter = 0
       elsif @Chronocounter == 0
      @Chronocounter =1
    end
end


it works for this specific CO, but it's kind of messy and ineffective if i intend to implement a larger counter number or something.
Title: Re: [XP] Advance Wars Engine
Post by: KK20 on March 13, 2014, 05:05:57 pm
+= should work. It's probably because you never initialized @Chronocounter to zero and was essentially doing nil = nil + 1.
There are two ways around it.

def Chronocounter
   # If counter is nil, initialize it to zero, otherwise does nothing
   @Chronocounter ||= 0
   @Chronocounter += 1
   if @Chronocounter == 4
     $game_map.set_weather('snow', 1)
     @Chronocounter = 0
   end
end

or, under the CO#initalize method, insert @Chronocounter = 0 somewhere.

Oh yeah, also wanted to add that the aircraft errors you pointed out have been fixed already.
Title: Re: [XP] Advance Wars Engine
Post by: KK20 on March 15, 2014, 02:16:43 am
So it's been a while since I've last updated the progress of this project. It has really been an off-and-on process. March 2013 was when my interest took a shot (it was also the time I had to halt doing anything since my HDD burnt out). I went months not doing a single thing. But I have steadily continued to make small changes here and there and I guess I'd like to share them.

First off, I recently (like 10 minutes ago as of typing this) did a comparison of how much faster I can draw move/attack ranges. I used a fighter with wide-open spaces as my test case due to its movement of 9 spaces (that's like 200+ tiles to evaluate and draw for). The first image is the current release version, the bottom my most current.
Spoiler: ShowHide
(http://i.imgur.com/0IYRspF.png)

I rewrote the entire move range calculation method from GubiD's TBS. I'll probably explain my method to get some feedback and possibly inspire a working game designer to create his own. I also decided to draw the sprites for the ranges only once and reference/make changes to them rather than doing the dispose and create process every time--which pretty much cuts out a TON of time.

3- and 4-player maps are now possible, although I have only tested 3-player. The CO Power bars (the stars you see next to your officer) have been aesthetically updated. They now bounce up and down and change colors. I also recently implemented a sliding effect of the officer tag and gray information window when the cursor moves to the other half of the screen. Lastly, the tilemap rewrite I created for Custom Resolution works perfectly fine. I'm still debating whether to continue to use it for implementing modified autotiles (sea-side cliffs, rivers, and shoal tileset graphics will benefit greatly from this).

All bugs reported from v.1b have been fixed to my knowledge. Some damage chart and CO changes here and there. Still a lot of sprite ripping to be done. I made one animation for activating a Super CO Power where it creates these sparks over your unit. I also think I'm using FMod as my new "sound player" script.

Now that everything is working, it's just a matter of cleaning up some of the code from my novice RGSS scripting days before pressing forward. I've got methods in here that don't make any sense for existing :P I have also been writing a ton of notes on AI, and I think I have a solid plan for attacking it. I just hope Ruby can handle the sheer amount of calculations.
Title: Re: [XP] Advance Wars Engine
Post by: Zexion on March 15, 2014, 02:47:13 am
Quote from: KK20 on March 15, 2014, 02:16:43 am3- and 4-player maps are now possible, although I have only tested 3-player. The CO Power bars (the stars you see next to your officer) have been aesthetically updated. They now bounce up and down and change colors. I also recently implemented a sliding effect of the officer tag and gray information window when the cursor moves to the other half of the screen.

Gettin graphical, lahve it!
Quote from: KK20 on March 15, 2014, 02:16:43 amNow that everything is working, it's just a matter of cleaning up some of the code from my novice RGSS scripting days before pressing forward. I've got methods in here that don't make any sense for existing Tongue I have also been writing a ton of notes on AI, and I think I have a solid plan for attacking it. I just hope Ruby can handle the sheer amount of calculations.

Sweet, AI is always tough, but I'm sure you can make it good lol.

Glad to see you've found interest in your project again. It's all too common in the rpgmaker community to loose interest due to life, and time, but it's awesome that you are still going for it. This also reminded me that I need to get back to work on your sprite-o's lol.
Title: Re: [XP] Advance Wars Engine
Post by: KK20 on March 15, 2014, 02:57:31 am
:) Thanks. It sure took me a while to find the passion for it again--maybe because all the script requests have died down a lot recently. Anywho, last school semester reminded how much I missed working on this. I really do hope I can have another demo to release during summer.

The AI process has been pretty rough, especially being a strategy AI. You can't really just move units in any which way and expect to be a challenge. After reading from this blog I found (http://www.checkmarkgames.com/2012/03/building-strategy-game-ai.html), I know I can write something up pretty similar. Probably the hardest thing will be testing my influence maps and picking values that work best. If I had a bunch of testers, that'd be great.

And lol, you forgot about the sprites again :3
Title: Re: [XP] Advance Wars Engine
Post by: Gears on March 15, 2014, 04:48:07 am
Ohohooo!

I'm looking forward to messing with THAT!

I wonder though. Does RPG maker allow you to (easily) create save files ingame and load them? Obviously this project is a long way from multiplayer just yet, but i'm wondering if it's possible to create a stopgap measure by having it save to a dump file every time it ends a turn. that way, you could theoretically bounce this file around to fight each other.
Title: Re: [XP] Advance Wars Engine
Post by: PhoenixFire on March 15, 2014, 08:36:10 am
Well, for multiplayer, I'm sure you could adapt rmx-os for that purpose. You would need to implement some sort of rudimentary token ring system to decide who's turn it is and such, but I think a script should be able to accomplish that =p
Title: Re: [XP] Advance Wars Engine
Post by: KK20 on March 15, 2014, 09:11:46 pm
Yeah, I'll be moving forward with RMX-OS no doubt. While I could write some kind of passable file, that's both tedious and impractical. I don't exactly have the means to keep a dedicated server up 24/7, so if people want to play with friends, they'll have to go through the entire RMX-OS process themselves.

In the meantime, if anyone has TeamViewer, I'll gladly slaughter you in a game. :P
Title: Re: [XP] Advance Wars Engine
Post by: Gears on March 16, 2014, 11:28:52 am
Teamviewer? That could indeed work as a way to play it. you'd still be able to see all your enemy's actions and stealthed units though. Or not?

On that subject. Is it possible to enable fog of war during an SCO? and then restore it to it's normal, map-based status?
Title: Re: [XP] Advance Wars Engine
Post by: KK20 on March 16, 2014, 01:21:40 pm
Yeah, that's the only downside. It's not that much of a problem though. FOW is out of the question though.

As of this moment, there is no way to alternate between FOW and normal vision. FOW is still highly experimental and probably won't be done for a while.
Title: Re: [XP] Advance Wars Engine
Post by: Gears on March 16, 2014, 02:12:29 pm
Poor Sonja.

  :evil:
Title: Re: [XP] Advance Wars Engine
Post by: KK20 on March 16, 2014, 02:42:53 pm
She still has a pretty awesome SCOP and D2D. Against the computer, however, she's not all that special.
I'm possibly considering changing the hidden HP rules to be "once attacked, the HP is displayed for the rest of your turn". Getting even more nerfed by the moment :P
Title: Re: [XP] Advance Wars Engine
Post by: Gears on March 17, 2014, 04:42:02 pm
Would it be possible to add a status effect that lowers both Offense and Defense simultaneously? As of now I've only been able to get one of either working, and though it should be possible by making two separate buffs, that might be a bit overblown.

Is it possible to make the buffs stack too?
Title: Re: [XP] Advance Wars Engine
Post by: KK20 on March 17, 2014, 05:04:51 pm
You should be able to. I wrote the script with that in mind. The configuration says how to have two stats be applied.
Increasing a unit's attack and defense by 20 for one whole turn would be
return [1, 'offense', 20, 'defense', 20]

And yes, they should stack with other status effects. (So if applied with a -20 attack and defense debuff, they would cancel out).
Title: Re: [XP] Advance Wars Engine
Post by: Gears on March 17, 2014, 06:17:39 pm
Would it be able to stack with itself?
Title: Re: [XP] Advance Wars Engine
Post by: KK20 on March 17, 2014, 06:28:47 pm
Looking at the code, yes it should.
Title: Re: [XP] Advance Wars Engine
Post by: Gears on March 17, 2014, 06:41:44 pm
Without any additions, just like that?  :O.o:
Title: Re: [XP] Advance Wars Engine
Post by: Zexion on March 18, 2014, 02:31:33 pm
A friend and I were playing a quick match before he went to class lol.(I was andy)
Spoiler: ShowHide
(http://i.imgur.com/NP3zXlG.png)


As you can see, I stupidly bought the missles when there was no airplane even in the game lol
Also, a small(?) but useful addition that could be made (even for this version): Save the game. Like for right now he had to go so it wouldve been cool if I could save and coninue later :P
Title: Re: [XP] Advance Wars Engine
Post by: Gears on March 18, 2014, 03:57:21 pm
That's up to the head honcho, though making save files is probably just as tedious as coding AI. Not that i would readily know that.

I managed something weird though. I managed to make a SCOP that mind-controls (some) enemy units, switching their owners around. the funny thing is that it doesn't switch the sprites around. Leaving you with units of another color in your control.  I'll have to find a way to manually update those.
Title: Re: [XP] Advance Wars Engine
Post by: KK20 on March 18, 2014, 05:06:14 pm
@Zexion: Yeah, when I get everything cleaned up, I'll try and figure out what's the best way to save games. But looking at that screenshot (which is awesome to see someone finally posting games), your friend had you good. You would probably have to resort to an Anti-Tank parked on a southern city to fend off the Megatank and Neotank and try to push your way south before he captures your north-western base and starts to build a siege force from there. What CO was he? Because to be able to have an army of that power, I'd expect he was Colin or Hachi.

@Gears: That's interesting. I didn't think something like that was entirely possible in the engine's current state. To change the sprites, you'll need to call its refresh method after changing the @army variable it belongs to. Of course, you'd need some kind of original_army variable to change it back and call refresh again.

I'd like to see your COs in a gameplay. :)
Title: Re: [XP] Advance Wars Engine
Post by: Gears on March 18, 2014, 05:28:09 pm
It mind controls permanently, so there's no need to turn it back with a variable. I might use non-permanent mind control in another way though. Time to find the refresh method.


HA, i think i got it. yup i did.
Title: Re: [XP] Advance Wars Engine
Post by: KK20 on March 18, 2014, 05:39:32 pm
I think a simple your_unit_variable_name.sprite.refresh would do the trick.
EDIT:  :ninja:
Title: Re: [XP] Advance Wars Engine
Post by: Gears on March 18, 2014, 05:58:43 pm
Here's how it works. It's pretty simple as far as code goes:

Spoiler: ShowHide
def use_scop
super
add_status(3, $game_map.units - @army.units)
   
    loc = $scene.find_best_missile_spot(0)
# Get all the spots where this missile hits
positions = $game_map.get_spaces_in_area(loc[0],loc[1],0)
positions.each{|pos|
# Get unit at this spot
u = $game_map.get_unit(pos[0],pos[1])
next if u.nil?
# Damage it and apply status effect
###########
      u.army = @army
      u.sprite.refresh
     
      #########################
     
}
$game_player.moveto(loc[0],loc[1], true)
   
end
   


As you can see, it's your Rachel missile aiming algorithm, but instead of damage, it changes the army class!
Title: Re: [XP] Advance Wars Engine
Post by: KK20 on March 18, 2014, 06:08:13 pm
Ah, I see. It just seeks out the highest cost enemy unit and converts its army. lol that's interesting xD I also see you have a status effect that targets all enemy units. What does that do? And wouldn't it affect your mind controlled unit?

How many stars is the SCOP?
EDIT: Rather, I should be asking what does your CO do in its entirety?
Title: Re: [XP] Advance Wars Engine
Post by: Zexion on March 18, 2014, 10:34:47 pm
Haha yeah he had me cornered. I don't know the co's name but he was le muscular dude. He was trying to teach me how to play. He's going to bring his gba game tomorrow. It's all great news because I'm starting to see how this should work lol (animation-wise)
Title: Re: [XP] Advance Wars Engine
Post by: KK20 on March 19, 2014, 12:13:35 am
Must be Max
Spoiler: ShowHide
(http://img4.wikia.nocookie.net/__cb20081012203858/advancewars/images/8/87/Awds-max.jpg)

I forgot I made him the default P2 CO when in my current build it's Olaf. Going off on a tangent here: Max is such a hard character to play. Against an evenly matched opponent, he ranks low on the tier list. I'm having a hard time trying to think of ways to balance him more without destroying his core style. Maybe if I didn't reduce his indirect unit attack range, make them 70/100 or something low.

That's cool :) Nothing like playing the original to understand how it works. If your friend suggests anything, be sure to tell me about it.
Title: Re: [XP] Advance Wars Engine
Post by: Gears on March 19, 2014, 11:41:15 am
The status effect would be applied to the unit with the code in question, had i not moved it a bit downwards yesterday. I was testing to see if the mind control worked first after all.

The CO in question has reduced day-to day units, but works by applying a -10% offense and defense debuff to every unit he attacks after damage calculation, this makes him more effective on subsequent attacks. his CO applies this debuff to all enemy units, and his SCO applies it twice, in addition to the mind control.


also, some minor things: aren't zeppelins also indirect units? they seem to be lacking in the INDIRECT type. Zeppelins also seem to state that it costs 3 fuel to move them, while the unit file uses 5 fuel as a variable.
Title: Re: [XP] Advance Wars Engine
Post by: KK20 on March 19, 2014, 12:12:03 pm
10% defense might be a lot at a time, especially if the effect carries over for a full day. I also don't recall if I made some preemptive measures should the defense be less than or equal to 0. I also think that it can be so overly abused with a meat shield and indirect units approach. Maybe if it was like -5% defense for every HP the enemy losses as damage.

Huh...I guess I overlooked some things for the Zep. I was conflicted whether to classify it as a copter or plane OR to make it a plane with copter fuel penalties (but I later figured that would break the AW mold so I decided to opt for 5 fuel a day). Probably fixed by now.
Title: Re: [XP] Advance Wars Engine
Post by: Gears on March 19, 2014, 12:47:14 pm
The defense and offense loss only stays during the CO's own turn, so once he ends his turn, all your units are returned to maximum strength (unless there's something else going on) I'll see if the defense suddenly turns negative or something.

Strategy-wise, this COc can indeed be used by indirects coupled with meatshields. However, as the regular units of this commander all have 10% less offense and defense, you'd have to either sacrifice some of that meatshield to apply the debuffs, or use less potent indirect attacks to finish them off with your meatshield. It all comes down to whether you need more then one attack to finish of the unit in question, and at the beginning of an assault, you're always at a disadvantage, even the next attack would only be on equal grounds (both units 90% of the normal offense and defense assuming some form of generic CO without bonuses).

Even if that proves OP, i'm not that worried. If all the CO's i make are OP, it'll balance itself out.
Title: Re: [XP] Advance Wars Engine
Post by: KK20 on March 19, 2014, 01:08:36 pm
I guess the true way to determine the level of OP-ness is test playing it on even grounds.

I came up with a defensive CO that lacks offensive power (80/130). His COP increased his defenses further and gave him defense luck. His 8 star SCOP halved all incoming damage and gave him the Pokemon equivalent of Sturdy--the unit always sustains 1HP before it can be destroyed. It didn't sound terribly strong, but a lot of test playing proved otherwise. I think the only CO who could stand on even ground with him was Kanbei.

I have a bunch of other CO ideas I want to flesh out and try some time. I'll probably reserve them for my game when I'm satisfied with the engine.
Title: Re: [XP] Advance Wars Engine
Post by: Gears on March 19, 2014, 01:31:16 pm
In the Meanwhile, i'll just barge ahead.  :naughty:

For that defensive CO, i've got something similar. No sturdy involved, but i have a CO whose vehicles have reduced offense and improved defense. (70/150) (never tested, so that 150 is probably going to drop), however, he also has reduced movement and increased fuel consumption, meaning this wall of nigh-destructible tanks aren't going to rush in like madmen, and reducing his best units to a crawl as well as making him reliant on APC's.
His APC's do heal every unit nearby for 1 on every of his standby turns though, making them priority targets. As his CO Powers only simply increase the defense and counterattack, you can simply evade his vehicles and focus his other units during his CO powers.

Unrelated question: if i want to injure a unit after it's attacked or has been attacked, where should i add the code for it?

Currently i'm trying to put


Spoiler: ShowHide
 if @officer.class == CO_Blahdieblahdieblah
     self.injure(@army.officer.recoil_damage(self),false)
     end
     

beneath the counterattack but above the "destroy" tags,
Spoiler: ShowHide
	# Figure in counter attack
if initialized and !target.army.officer.first_counter
nearby_units = $game_map.get_nearby_units(target.x,target.y)
if target.health > 0.0 and nearby_units.include?(self) and target.min_range == 1 and target.can_attack?(self)
target.fire(self, false)
target.injure(damage, false, initialized)
end
end
     
    if @officer.class == CO_Blahdieblahdieblah
     self.injure(@army.officer.recoil_damage(self),false)
   end
   
destroy if unit_hp <= 0                        
target.destroy if target.unit_hp <= 0
end
but that won't work.
Title: Re: [XP] Advance Wars Engine
Post by: KK20 on March 20, 2014, 01:47:23 am
Looks fine right there to me. I'll have to test it out when I'm on my computer.

EDIT: Oh, I see. Unit doesn't have an @officer variable. You should be using @army.officer instead.
Which is kinda funny since I'm sure you have seen that syntax used throughout the Unit class.
Title: Re: [XP] Advance Wars Engine
Post by: Gears on March 20, 2014, 05:05:44 pm
Degree of Derp: Derpin'


Welp, managed to make something new today. Anyone know the Harkonnen? Nope?

I managed to differ damage calculations for a particular CO, so he ignores his own Unit's health during his SCOP, effectively, this means that any and all units act as 10 HP units! I also managed to differ his calculations a bit during his COP and day to day power, lowering the effect the unit HP has by calculating the loss gain trough (20-unit_hp)/20 or (15-unit_hp)/15, this makes units hits slightly more then they should, and i did the same for defence!

kinda funky, really.
Title: Re: [XP] Advance Wars Engine
Post by: KK20 on March 20, 2014, 06:13:34 pm
I actually had an idea like that. I was planning on making that one of the starting COs in my campaign.

D2D:

Power:

Super:


For a CO with no weakness, I think it balances out nicely. If I make him a "Never give up!" kind of guy, it all fits well. I did contemplate making the super do full damage regardless of HP, but I'll need to test play that idea first.
Title: Re: [XP] Advance Wars Engine
Post by: Gears on March 20, 2014, 06:49:30 pm
Spoiler: ShowHide
### If this unit can attack another unit directly
if (unit.max_range == 1 and (unit.ammo > 0 or unit.secondary)) and (unit.army.officer.class == !CO_Renteria)
ranges = calc_pos(unit, "direct", cursor.x, cursor.y) #$game_map.get_nearby_units(cursor.x, cursor.y)
     
    ranges.each{|r|
next unless valid?(r[0],r[1])
# Get the unit and tile at this spot
u = $game_map.get_unit(r[0], r[1], false)
tile = $game_map.get_tile(r[0], r[1])
# If no unit exists at this spot
if !u.is_a?(Unit)
# If this is a tile that can be destroyed
if tile.is_a?(Structure) and tile.hp > 0 and unit.can_attack?(tile)
commands.push("Fire")
break
else
next
end
# If enemy unit (will need edit for allied armies)
elsif u.army != unit.army and unit.can_attack?(u)
commands.push("Fire")
break
end
}
     
   elsif unit.max_range == 2 and (unit.ammo > 0 or unit.secondary) and unit == $game_map.get_unit(cursor.x, cursor.y) and (unit.army.officer.class == CO_Renteria  and (unit.max_range == 2 and (unit.ammo > 0 or unit.secondary)))

     ranges = calc_pos(unit, "attack")

     
     
     ranges.each{|r|
next unless valid?(r[0],r[1])
# Get the unit and tile at this spot
u = $game_map.get_unit(r[0], r[1], false)
tile = $game_map.get_tile(r[0], r[1])
# If no unit exists at this spot
if !u.is_a?(Unit)
# If this is a tile that can be destroyed
if tile.is_a?(Structure) and tile.hp > 0 and unit.can_attack?(tile)
commands.push("Fire")
break
else
next
end
# If enemy unit (will need edit for allied armies)
elsif u.army != unit.army and unit.can_attack?(u)
commands.push("Fire")
break
end
}
### If this unit can attack indirectly
elsif unit.max_range > 1 and (unit.ammo > 0 or unit.secondary) and ((unit.army.officer.class == !CO_Renteria) and unit.max_range == !2)
unit == $game_map.get_unit(cursor.x, cursor.y) and
    # Get ranges by calling calc_pos. Then evaluate each spot.
# If it finds an enemy, push "Fire". Else, push "Fire " (can't fire).
ranges = calc_pos(unit, "attack")
ranges.each{|r|
next unless valid?(r[0],r[1])
u = $game_map.get_unit(r[0], r[1], false)
tile = $game_map.get_tile(r[0], r[1])
if !u.is_a?(Unit)
if tile.is_a?(Structure) and tile.hp > 0 and unit.can_attack?(tile)
commands.push("Fire")
break
else
next
end
elsif u.army != unit.army and unit.can_attack?(u)
commands.push("Fire")
break
end
}
     elsif unit.max_range > 2 and (unit.ammo > 0 or unit.secondary) and ((unit.army.officer.class == CO_Renteria))
unit == $game_map.get_unit(cursor.x, cursor.y) and
    # Get ranges by calling calc_pos. Then evaluate each spot.
# If it finds an enemy, push "Fire". Else, push "Fire " (can't fire).
ranges = calc_pos(unit, "attack")
ranges.each{|r|
next unless valid?(r[0],r[1])
u = $game_map.get_unit(r[0], r[1], false)
tile = $game_map.get_tile(r[0], r[1])
if !u.is_a?(Unit)
if tile.is_a?(Structure) and tile.hp > 0 and unit.can_attack?(tile)
commands.push("Fire")
break
else
next
end
elsif u.army != unit.army and unit.can_attack?(u)
commands.push("Fire")
break
end
}
commands.push("Fire ") if !commands.include?("Fire")
end


Quite obviously this pile of useless code isn't going anywhere. Can you guide me to the exact part of code that stops indirect units from firing after they moved?
Title: Re: [XP] Advance Wars Engine
Post by: KK20 on March 20, 2014, 07:08:14 pm

### If this unit can attack indirectly
elsif unit.max_range > 1 and (unit.ammo > 0 or unit.secondary) and
unit == $game_map.get_unit(cursor.x, cursor.y)  #<====== If unit is currently positioned where the cursor is at AKA unit hasn't moved

If you're going for a "indirect units can move and attack on the same turn" thing, you should probably do

### If this unit can attack indirectly
elsif unit.max_range > 1 and (unit.ammo > 0 or unit.secondary) and
(unit == $game_map.get_unit(cursor.x, cursor.y) || unit.army.officer.class == CO_Renteria)
Title: Re: [XP] Advance Wars Engine
Post by: Gears on March 20, 2014, 07:39:02 pm
that Does allow the option, though it states it can't fire. now to somehow actually allow it to fire. I'll try some different stuff tommorow.


Random thought: what if i change all instances of range (such as
unit.max_range > 1
)to unit type variables? You dd make those groups after all.

like this:
if unit.unit_type == INDIRECT 
Title: Re: [XP] Advance Wars Engine
Post by: KK20 on March 20, 2014, 07:49:22 pm
Then wouldn't you have to do a bunch of if-else statements for all those different types of units?
And I realize what I did. You will have to modify the calc_pos method for getting attack ranges. I'll be sure to consider that in the current build.
Title: Re: [XP] Advance Wars Engine
Post by: Gears on March 20, 2014, 08:03:51 pm
But doesn't the unit group variable cover all the indirects? Why would i need multiple if else statements?

Edit: I managed to make it refer to the unit groups, and it works, slightly. Indirect units act as normal, and direct units with added range do say they can attack, they just don't find targets. They can find targets if they haven't moved yet (In other words, they act like indirects, but say that they can fire)

Edit 2: I also found a slight bug in my mind controlling code. it appears to crash due to the unit index not responding properly once the unit is killed. I imagine i must somehow reset it's listing.
Title: Re: [XP] Advance Wars Engine
Post by: KK20 on March 24, 2014, 01:13:11 pm
Yeah, that's still a problem with calc_pos and determine_unit_commands. You'll need to edit those (or wait for me to release the update).

I think you have to delete the unit from the enemy army's unit array and add it to the player's. Array#delete and Array#push should do the job.

EDIT: Meanwhile, I'm working on ripping the last of the tile sprites. It's a slow and painful process staring at each tile making sure I'm not putting the wrong frame of animation in each group--because I've done that like 5 times now. Since my tilemap rewrite works fine, I'll write an add-on for autotiles to function a bit differently from RMXP's. This will probably make mapping in the editor a bit difficult now. Or maybe upon loading the game I'll read in map files and modify the data table and save it. I'll eventually have a built-in map editor some point down the road--maybe after I finish the AI and finalized all my event commands (e.g. Show Message after X Days, volcano strikes here every X day, hidden lab map on this city, etc.).
Title: Re: [XP] Advance Wars Engine
Post by: Gears on March 25, 2014, 11:29:36 am
I tried using sensei's code to manipulate the arrays, but i think i'm using the wrong parameters for U. should i somehow make a new variable for that? so instead of


Spoiler: ShowHide
	def use_scop
super
   
    loc = $scene.find_best_missile_spot(0)
# Get all the spots where this missile hits
positions = $game_map.get_spaces_in_area(loc[0],loc[1],0)
positions.each{|pos|
# Get unit at this spot
u = $game_map.get_unit(pos[0],pos[1])
next if u.nil?
# Damage it and apply status effect
###########

      # u.army.units[index]
      @army.u.delete(u)
      u.army = @army
      u.sprite.refresh
      @army.u.push(u)
      #########################
     
}
$game_player.moveto(loc[0],loc[1], true)
   
add_status(3, $game_map.units - @army.units)
end
   


i would have
Spoiler: ShowHide
 [spoiler][code]@army.u.push(unit)
[/code][/spoiler] with unit somehow mimicking sensei?
Title: Re: [XP] Advance Wars Engine
Post by: KK20 on March 25, 2014, 03:04:26 pm
I think it works like this:

u.army.units.delete(u)
u.army = @army
@army.units.push(u)

I'll eventually write something to make this process easier.
Title: Re: [XP] Advance Wars Engine
Post by: Gears on March 25, 2014, 03:23:23 pm
It's not exactly top priority yeah.

Huh. weird. I've been fooling around for some time now, and i have been using edited CO properties like perfect_movement without listing them in the  attr lists without problems. Is that list even needed?
Title: Re: [XP] Advance Wars Engine
Post by: KK20 on March 25, 2014, 05:17:20 pm
The parent class CO has all those variables initialized. You don't need to copy-paste the attr_ stuff in every new CO.
Title: Re: [XP] Advance Wars Engine
Post by: Gears on April 05, 2014, 09:48:37 am
Hostile lake seems to have a small inconsistency where the blue player has one more city at the start. Also, are tanks supposed to be able to cross rivers? (they can in famicom wars, but not in advance wars or AW:BR)

Oh, and a question. is it possible to somehow leave a exact copy of a unit on it's original place after it moves? should be possible during an SCOP or something.
Title: Re: [XP] Advance Wars Engine
Post by: KK20 on April 05, 2014, 01:13:41 pm
It's mainly for the first turn advantage that Orange Star has. Tournament players usually play maps that are symmetrical but still give Blue Moon some kind of advantage to stay balanced with Orange Star.

I did make Tread units cross over rivers. You can change the move cost of Rivers to disallow that if you want. I just felt it worked better and made maps like Lost River playable (no seriously, that map is so full of poop).

Not sure about that unit creation. I could probably figure it out, but it would be messy and unconventional. You'd have to make changes to the Scene_Map to even allow this to be possible.
Title: Re: [XP] Advance Wars Engine
Post by: Gears on April 05, 2014, 06:34:59 pm
On the tournament style, i´m not even sure being first in turn gives an advantage, as most maps i played on the gameboy-ds were all even and symmetrical. that´s where i base most of my knowledge off, same with the river issue. i can see why some maps would become more playable with passable rivers though, especially if it´s anything like ridge island with grit in the mountain passes.

As for the unit creation, drat. I guess i´ll have to see if i can write a loop using the APC code that randomly spawns copies near units. I´ve been messing in the unit files and scene map files for a while though, they allow for some funny things.
Title: Re: [XP] Advance Wars Engine
Post by: Laytruce on April 06, 2014, 05:42:44 am
I made an account just so I could participate in this thread. I've been playing around with this a lot, and wanted to share my findings.
I'm very inexperienced with Ruby, so bear with me.

First, a few bugs:

- Joining 2 units when FOW is on crashes the game. There's some code in Spriteset_Map's update_fow method which looks like this:


$scene.player_turn.units.each{|unit|
      next if unit.loaded
      sight = $scene.calc_pos(unit, "vision")
      around = $game_map.get_spaces_in_area(unit.x, unit.y)
      sight.each{
      ...
}
     }


Apparently, both to-be joined units are still present in the units array, one of which is now nil. It tries to check unit.loaded, but can't.
On my end, I simply added a unit.nil? check on the 'next if' line to prevent this, but it might be cleaner to have the 'joined up' unit removed from the array sooner. Don't know how plausible this is, though.

- When using a vision-increasing power, the FOW isn't updated until after you move or attack. I simply added a call to $spriteset.update_fow to the use_(s)cop methods to fix it.

Right. Aside from that, I've been training some new recruits who decided to show up:
Anyone know these jokers?: ShowHide

(http://i.imgur.com/HB6yXzO.png)


I think I've given them some interesting abilities.

Check out Lin's hax intel skills!: ShowHide

(http://i.imgur.com/F0JYVCr.png)


Forsythe only has a normal CO Power!: ShowHide

(http://i.imgur.com/Y73abkb.png)


Tasha's air units break the almighty 9 ammo barrier!: ShowHide

(http://i.imgur.com/omHi3vk.png)


I'll leave all CO summaries here in case someone's interested.

CO summaries: ShowHide

################################################################################
# Class Will
#   Army: Orange Star           Power Bar: x x x X X X
#
# - 110/100 Direct Ground Units
# - 100/90 Indirect Ground Units
#
# Power: Rally Cry
# - Direct ground units gain +1 movement
# - All units gain +2 offense for each unit Will has (max. 40)
#
# Super Power: New Era
# - Direct ground units gain +2 movement
# - All units gain +3 offense (max. 80) and +1 defense for each unit Will has
#   
################################################################################
################################################################################
# Class Brenner
#   Army: Orange Star           Power Bar: x x X X X
#
# - All units who gain terrain defense gain +1 terrain star
#
# Power: Reinforce
# - 100/130 Units
#
# Super Power: Lifeline
# - 100/130 Units
# - All units are healed 3 HP
#   
################################################################################
################################################################################
# Class Lin
#   Army: Orange Star            Power Bar: x x X X X X
#
# - All cities are visible to Lin in Fog of War
#
# Power: Scout
# - Makes all spaces bordering cities visible to Lin (including woods and reefs)
# - Recons gain +1 movement
# - 130/130 Recons
#
# Super Power: Night Vision
# - Makes all spaces bordering cities visible to Lin (including woods and reefs)
# - Recons gain +2 movement
# - Gives all units +10 offense and defense for each space of vision they have
#   
################################################################################
################################################################################
# Class Isabella
#   Army: Orange Star           Power Bar: x x x X X X X
#
# - 50% chance to not spend primary weapon ammo when firing
# - Primary weapons +10% firepower
# - Secondary weapons -20% firepower
#
# Power: Deep Strike
# - Units will not use primary weapon ammo this turn
# - Primary weapons +10% additional firepower
# - Deals 1 damage to all enemy units on deployable properties
#
# Super Power: Overlord
# - Units will not use primary weapon ammo this turn
# - Primary weapons +20% additional firepower
# - All units gain +1 movement and +1 vision
# - All indirect units gain +1 range
#   
################################################################################
################################################################################
# Class Tasha
#   Army: Blue Moon            Power Bar: x x x X X X
#
# - 120/90 Air Units
# - Air units carry +3 ammo
#
# Power: Fox One
# - Air units gain +1 movement
# - All units gain +10 offense for each HP lost
#
# Super Power: Sonic Boom
# - Air units gain +2 movement
# - All units gain +20 offense for each HP lost
#   
################################################################################
################################################################################
# Class Gage
#   Army: Blue Moon           Power Bar: x x x X X X
#
# - 120/120 Indirect and Naval Units
# - 85/100 Direct Air Units and Direct Vehicles
#
# Power: Long Shot
# - Indirect units gain +1 range
# - Indirect units' vision becomes equal to their maximum range
#
# Super Power: Long Barrel
# - Indirect units gain +1 range
# - Indirect units' vision becomes equal to their maximum range
# - All indirect units that have carried out an action may move again
#   
################################################################################
################################################################################
# Class Forsythe
#   Army: Blue Moon           Power Bar: x x x x
#
# - 110/110 Units
# - No Super Power
#
# Power: Inspiration
# - 130/130 Units
# - Units with more than 1 HP are able to survive fatal hits with 1 HP
#
# Super Power: None
#   
################################################################################
################################################################################
# Class Waylon
#   Army: Green Earth           Power Bar: x x x X X X X
#
# - 100/130 Air Units
# - 100/80 Vehicle and Naval Units
# - Units are unaffected by sand
#
# Power: Wingman
# - 100/220 Air Units
# - Air units are resupplied
#
# Super Power: Bad Company
# - 130/410 Air Units
# - Air units are resupplied
# - Opponents' properties are made unable to repair HP
#   
################################################################################
################################################################################
# Class Greyfield
#   Army: Green Earth           Power Bar: x x X X X X X
#
# - 100/120 Naval Units and Copters
# - Naval units have 99 max fuel
# - 90/100 Vehicles
#
# Power: Supply Chain
# - All units are resupplied
# - APCs gain +2 movement
#
# Super Power: High Command
# - All units are resupplied
# - APCs gain +2 movement
# - Naval units gain +1 movement
# - Naval indirect units gain +1 range
# - Unit costs are lowered by 20%
# - Enemy units lose 25% of their ammo and fuel
#
################################################################################
################################################################################
# Class Penny
#   Army: Yellow Comet           Power Bar: x x x X X X X
#
# - Units are unaffected by weather
#
# Power: Enigma
# - Summons random weather for 1 turn
# - Makes a random ground unit appear on Penny's HQ (if it's unoccupied)
#
# Super Power: Stormfront
# - Summons random weather for 3 turns
# - Reduces HP of 3 random units of each enemy army to 1
#   
################################################################################
################################################################################
# Class Tabitha
#   Army: Yellow Comet           Power Bar: x x x x x X X X
#
# - 110/100 Units
# - The charge rate of her Power Bar starts off lower than normal
#   and decreases more quickly
#
# Power: Firestorm
# - Deals 3 damage to all enemy units
# - Deals 1 damage to all of Tabitha's units
#
# Super Power: Apocalypse
# - Drops 5 bombs on enemy units. Each bomb deals 4 damage and has a radius of 1.
#   
################################################################################
################################################################################
# Class Caulder
#   Army: Yellow Comet           Power Bar: X X X X X X X X
#
# - 120/120 Units
# - Can repair up to 5 HP at the start of each turn
# - When 2 units are joined, the resulting unit gains 2 extra HP
#
# Super Power: Grand Mutation
# - Direct units are able to attack at range (2)
# - Newly built units are immediately able to move
# - All units heal 2 HP
#   
################################################################################


I didn't playtest these guys for balance much yet, so there's probably some issues there.
And yes, I went nuts with Caulder.
Title: Re: [XP] Advance Wars Engine
Post by: ShadeHunter on April 06, 2014, 08:57:39 am
Hello KK20!  :haha:  just brought rpg maker xp and it is incredible.

I also found this engine was really surprised how interesting game system this is.

:???:  have few questions about this engine. :???:

1. You have said that in the original game there can be 4 teams. Is this possible to do so in the engine?

2. How the fog of war can be turn on?

3. I do not really understand how those special CO powers work.

4. Is it possible to create more buildings in engine? Different nations could have different troops?

I only ask because I'm intending to create a game about World War 2 and especially about Winter War.

Thank you.  ;)
Title: Re: [XP] Advance Wars Engine
Post by: Gears on April 06, 2014, 11:45:25 am
@Laytruce: You're late in breaking the ammo barrier, i did that a  week ago! i did not manage to make the descriptions nice however, i simply bungled the ammuntion code for the unitfiles to include a extra multiplier, which resulted in me needing to make some extra pictures for the numbers 10 to 20. i'd be interested in learning how you made those numbers show up nicely.
Spoiler: ShowHide
(http://i.imgur.com/dpADmpR.png)
 
Spoiler: ShowHide
Totally not OP


I've got to give you proper applause though, you managed to make direct units hit a space further? Can you share how you've done that? And also how you managed to resupply for example only air units while not supplying all army units?

@ShadeHunter: I'm not KK20, but i can answer question 1 & 3: KK20 has a build which allows 4 player combat, i don't know if he's made some form of teamup yet (which would allow 2 VS 2 and 1 VS 2), but 4 players is a yes as far as i've heard.

The COP powers work rather quaintly. A COP generally has either buffs, an effect on activation or a "other" effect. Buffs are handled by the modifiers he made, you simply use the IF statements to determine how much a unit would gain from a specific stat during either the COP, SCOP, or day-to-day. a activation effect is used by the use_cop and use_scop definition. it's really just a case of looking into the vanilla CO's to see how it's generally done.

Also: traffic!
Title: Re: [XP] Advance Wars Engine
Post by: Laytruce on April 06, 2014, 03:07:07 pm
Quote from: ShadeHunter on April 06, 2014, 08:57:39 am
2. How the fog of war can be turn on?


Go to scripts, and look for the Game_Map script under [Engine]. Around line 70, you'll find a line which says @fow = false. Simply replace false with true.

Quote from: Gears on April 06, 2014, 11:45:25 am
@Laytruce: You're late in breaking the ammo barrier, i did that a  week ago! i did not manage to make the descriptions nice however, i simply bungled the ammuntion code for the unitfiles to include a extra multiplier, which resulted in me needing to make some extra pictures for the numbers 10 to 20. i'd be interested in learning how you made those numbers show up nicely.


Very simple, actually. I looked at how fuel was displayed and applied that to ammo. Fuel takes the tens and ones digits separately and places the two number graphics next to each other. The engine assumes ammo is a single digit by default, so I had to modify the code a bit so it does the same for ammo. It can go up to 99 now, but that would be crazy.

Quote from: Gears on April 06, 2014, 11:45:25 am
I've got to give you proper applause though, you managed to make direct units hit a space further? Can you share how you've done that?


Err...much trial and error, I'm afraid. I mostly made edits in the determine_unit_commands and calc_pos methods, so they could support units which can fire both directly and indirectly. Modifying calc_pos in particular is tricky, since it has multiple functions. It's hard to modify one of its functions without screwing up another.

Quote from: Gears on April 06, 2014, 11:45:25 am
And also how you managed to resupply for example only air units while not supplying all army units?


It's just a matter of passing only air units to the full_supplies method. In Jess's case, it says full_supplies(@army.units).
You can use the select method to pass only units which satisfy a certain condition. In Waylon's case, it's full_supplies(@army.units.select {|unit| AIR.include?(unit.unit_type)})
Title: Re: [XP] Advance Wars Engine
Post by: KK20 on April 06, 2014, 03:32:45 pm
OMG YUSSSS TRAFFIC xD
It's great to actually see some actual Advance Wars players here! Thank you all for your continued support :)

QuoteOn the tournament style, i´m not even sure being first in turn gives an advantage, as most maps i played on the gameboy-ds were all even and symmetrical.

Hoho, you are missing the amazing community out there. First Turn Advantage (FTA) is a serious thing. There are many articles written about it that you can easily find with Google. Think about it...if there's a missile silo in the middle of the map, who's going to get to it first?

Quote- Joining 2 units when FOW is on crashes the game.

Yep, already been aware of that one. I'm reworking the whole "determine when to remove unit from army's units" thing right now.
Quote- When using a vision-increasing power, the FOW isn't updated until after you move or attack. I simply added a call to $spriteset.update_fow to the use_(s)cop methods to fix it.

Yeah, that's the current fix to this right now. I'll probably add some kind of check somewhere later. FOW is on the backburner for now. I only worked on it just to see if my idea of using two tilemaps was possible (which turns out it is). I'm pretty sure I also mentioned it on my release post that FOW is highly experimental right now, so it's advised to not use it for serious use yet.

And those CO additions are sweet :D You also seem very knowledgeable with Ruby, so if you think you can implement something new, by all means, share it with me.

Quote1. You have said that in the original game there can be 4 teams. Is this possible to do so in the engine?

As Gears has pointed out, yep, it will be possible. Just not with the current beta version. It's also a bit tricky to setup since I have to be able to tell the map that there are 4 players, not 2 nor 3, playing on this map. I've resolved this by creating an event that takes in the map's properties through a Comment command. When I get around to making a Map-Builder, it'll be much easier to do this (not on the list of priorities though).
Quote3. I do not really understand how those special CO powers work.

After dealing a certain number of damage (or receiving a lot of damage), your CO Power Bar will fill up the stars at the top of the screen. These are the CO's "buff" so to speak that gives them an enhanced advantage for the day (or more if you code it that way). It's what I thought made the traditional Advance Wars much more fun--it gave each character a different play-style that was unique. They also add a level of strategy: do you want to use your power first or after the opponent? Should you use it to get rid of that powerhouse unit blocking your way or save it for when you can destroy half of your opponent's troops?
Quote4. Is it possible to create more buildings in engine? Different nations could have different troops?

Yeah, it should be possible, albeit, you will need to code that in yourself. I'll see if I can make that easier. The current way of determining what units you can build is kind of unconventional.
Title: Re: [XP] Advance Wars Engine
Post by: Laytruce on April 06, 2014, 03:56:52 pm
Quote from: KK20 on April 06, 2014, 03:32:45 pm
I'm pretty sure I also mentioned it on my release post that FOW is highly experimental right now, so it's advised to not use it for serious use yet.


Actually, aside from those few bugs, it seems to work really well.

Quote from: KK20 on April 06, 2014, 03:32:45 pm
And those CO additions are sweet :D You also seem very knowledgeable with Ruby, so if you think you can implement something new, by all means, share it with me.


Oh no, I've only been learning the basics of Ruby while creating these CO's. I am a programmer, but mostly in .NET, which is very different from Ruby. Still, I could look at the existing code and figure out how to do a lot of the things I wanted to do. The AWDS CO's provided some great examples.
Title: Re: [XP] Advance Wars Engine
Post by: Gears on April 06, 2014, 04:38:25 pm
@Laytruce: Thanks! That selection code should help me a lot. I'll simply wait untill the next release to fix my "ranged direct attack" commander. KK20 promised to rewrite the code using the Indirect unit type, which will make this as easy as "buff range"

I got some other things though. I've been running some playtests, and since my "stuff" is all based around a little community of wiki-people we've got going, i got some feedback on general things. Most people would like to see the name of the (selected) CO in the CO select screen if possible, it would clear things up greatly. Personally i've been wondering if it's somehow possible to edit the CO biography to include the daily income, like most games used to have. I've tried, but so far failed to define the correct subclass to get it referencing the Army class.
Title: Re: [XP] Advance Wars Engine
Post by: ShadeHunter on April 07, 2014, 08:49:44 am
Thank you for the answers! I apreciate your help!  :haha:

Yet I forgot a one very important matter.
Is there possible to fight against computer or it is just human versus human?
Title: Re: [XP] Advance Wars Engine
Post by: KK20 on April 07, 2014, 11:22:28 am
It's only human right now. The next release will also be that as well. AI for this game is a bit tricky since it's a bit more unconventional compared to other tactical games. I also need to make it so that any changes the user makes will be adapted to the AI as well--in other words, I can't write AI that uses specific condition checks like "if CO == Sami, then build more infantry". It'll have to be like "if CO is good with infantry, then build more infantry". This, of course, means more calculations and slower AI in general.

If I can't seem to find a reasonable way around it, I'll most likely have to have the user add AI conditions to the Unit and CO classes.
Title: Re: [XP] Advance Wars Engine
Post by: Gears on April 07, 2014, 01:34:06 pm
I think it would be best to have a general code that requires you to make specific alterations for each modified CO. it would allow us some freedom in how our CO AI's react, and could allow for alternate things. (for example, i have a CO that can use recons to capture things. in a "overall" AI, the AI would not be able to do that). It might be best to have the CO take a middle path, and determine it's unit usage/favorites by looking at the boons, and then having modifiable multipliers for unit usage and  extra add-ons in the CO's page.
Title: Re: [XP] Advance Wars Engine
Post by: KK20 on April 07, 2014, 02:42:37 pm
Quote from: Gears on April 07, 2014, 01:34:06 pm
for example, i have a CO that can use recons to capture things. in a "overall" AI, the AI would not be able to do that.

In that case, the code will just be

if unit.can_capture
  # if capturing, finish capture
  # else, look for property to capture
  # if no property to capture, consider attacking
end

But from some of the unique things you guys are coming up with, I'll still consider putting in an AI configuration for COs and Units.
Title: Re: [XP] Advance Wars Engine
Post by: Gears on April 07, 2014, 04:44:02 pm
That might have been a bad example yeah.


I noticed this some weeks ago, but forgot about it again; Where's Sturm?

Obviously Sturm's campaign version and his Black hole rising version are severely OP, but his VS version from the original is a very decent balanced CO, so i kinda wonder why he's not in here? We ought to give him a chance to kick VonBolt's arse, as that is as it should be. Palpatine VS Vader.

Sturm's stats: Advance wars: Units 80/120 and not affected by terrain, Meteor Strike deals 4 damage and makes his units 90/155

I'm certainly going to fix this over here, but i thought i'd mention it.
Title: Re: [XP] Advance Wars Engine
Post by: Laytruce on April 09, 2014, 01:17:21 pm
Quote from: Gears on April 07, 2014, 04:44:02 pm
I noticed this some weeks ago, but forgot about it again; Where's Sturm?

Obviously Sturm's campaign version and his Black hole rising version are severely OP, but his VS version from the original is a very decent balanced CO, so i kinda wonder why he's not in here? We ought to give him a chance to kick VonBolt's arse, as that is as it should be. Palpatine VS Vader.

Sturm's stats: Advance wars: Units 80/120 and not affected by terrain, Meteor Strike deals 4 damage and makes his units 90/155

I'm certainly going to fix this over here, but i thought i'd mention it.


Funny you should mention that...

Spoiler: ShowHide
(http://i.imgur.com/21ejfFl.png)


This is the AW2 version, though, complete with 8 damage meteor and amazing stats.

How many stars will your Sturm's power meter have? With 4 damage, 10 seems way too much, especially since KK20 bumped Ex Machina's damage up to 5.
Title: Re: [XP] Advance Wars Engine
Post by: Gears on April 09, 2014, 05:02:06 pm
I think i'll simply bump meteor strike's damage up a bit to either 5 or 6 to compensate, personally going for 6, as this version of Sturm focuses on his low offense but amazing strike/shock potential.

I guess Kanbei's 1.1 cost modifier instead of 1.2 can also be accounted to executive meddling?
Title: Re: [XP] Advance Wars Engine
Post by: KK20 on April 09, 2014, 06:47:16 pm
No CO nor unit was safe from my goal to balance things to hell. >=)
Title: Re: [XP] Advance Wars Engine
Post by: Gears on April 10, 2014, 02:33:54 pm
Funnily enough, it might have accidentally balanced them against my CO's, though my balance is sketchy at best.

Then again, if you make  everything OP it works out in the end.

Edit: I managed to fill most faction tabs with CO's. Anyone know how to make those buggers scroll?
Title: Re: [XP] Advance Wars Engine
Post by: KK20 on April 14, 2014, 12:15:01 pm
At the moment, it's not coded in. I'll be sure to work on that too. Unless I decide to make a new CO selection screen. If anyone has suggestions or is willing to graphic me some windows, chime in.

I mainly copied the style from Custom Wars (http://ctomni231.github.io/cwtactics/)
Title: Re: [XP] Advance Wars Engine
Post by: Zexion on April 14, 2014, 12:57:25 pm
Hmm you could just use the whole bust of the CO and scroll them horizontally (looping once at the end) which would allow you to have an unlimited amount o-o
Unless you want it to look super fancy with your teams and what not :b

Edit: I gimped you up something real quick to show what I mean. I decided against the bust just for the sake of not making you have to redo some old snips of code xD
Spoiler: ShowHide
(http://i.imgur.com/TNYT6IS.png)

You could even leave the tabs in at the top if you want and use L/R to switch teams/colors and have the graphics note that aswell.
Title: Re: [XP] Advance Wars Engine
Post by: KK20 on April 14, 2014, 04:00:47 pm
I can still throw the full body portrait in there. The thing is how would this look if I had multiple players? This would be good for single player, but awkward for more.
Title: Re: [XP] Advance Wars Engine
Post by: Zexion on April 14, 2014, 06:20:30 pm
Simple just put a p1 on top of the face pic when p1 is choosing and then same for p2 you would just have to choose one at a time
Title: Re: [XP] Advance Wars Engine
Post by: Gears on April 15, 2014, 06:21:54 pm
Wonder if we could implement CO specific pre - COP one-liners.
Title: Re: [XP] Advance Wars Engine
Post by: KK20 on April 15, 2014, 07:24:13 pm
As in "Pass me my wrench!" and "Time to roll up my sleeves."
Yeah, those are in the works. Once I have solidified how I'm going to handle the message system, that will be implemented. Basically I need text areas sliding in from top or bottom of the screen, one character at a time (pressing button displays full message), ability to select an item, and CO portraits with various expressions (which can be extracted from the CO picture files) to follow the traditional AW system. I'm not sure if anyone wants more than that.

Would editing Ccoa's UMS to fit my needs while still having other options that aren't exactly needed (but someone else may use them) be the best solution?
Title: Re: [XP] Advance Wars Engine
Post by: Gears on April 17, 2014, 04:57:08 pm
Honestly no idea, but additional options is ALWAYS a plus. i think the text enters letter by letter though. not sure on it, but that's how i remember it.

On that subject, how are we going to handle differently colored armies and the CO-power Letters on the flyover?
Title: Re: [XP] Advance Wars Engine
Post by: KK20 on April 17, 2014, 05:30:08 pm
Thing is I'm not sure what other extras could possibly be used. I will work on a very basic window right now. I'll see later if I can use Ccoa UMS. I'll add the basic fundamentals that all AW games have.

Is there anything you would like, personally, to see in the message system?

EDIT: Actually, after looking at it, Ccoa does some pretty weird things that would just shoot compatibility out the window. Looks like I have to write my own.
Title: Re: [XP] Advance Wars Engine
Post by: Gears on April 18, 2014, 05:22:20 am
Well, if everything that's in advance wars is in, it should be good enough. One thing that might be handy is to have some form of trigger that will allow you to create a conversation regardless of what's currently going on. that would allow things like capturing maps in campaign, or perhaps having some form of gloating once you destroy a key enemy unit.

Edit: i managed to break one of my CO's somehow. he was working properly, but not anymore. The idea is that he damages his own units at the end of his CO, i did this by using a activator in the preturn code in the scenemap, like this:

Spoiler: ShowHide
def phase_preturn
# ////////////////////////////////////////////////////////////
# // Reset values (turn off powers, weather, music, graphics
# ////////////////////////////////////////////////////////////
if @preturn == 1
# Do not process preturn phase until wait timer finishes
return if @wait > 0
     
############################################################
     if @player_turn.officer.scop == true
     @player_turn.officer.Core_Overclock_endscop
     end
     ############################################################
     
# Disable the units that have a disabled flag
@player_turn.units.each{|u|
if u.disabled
u.acted = true
u.disabled = false
end
}
# Play the player's CO theme music
$game_system.bgm_play(@player_turn.officer.name)
# Turn off COP and SCOP flags

     
     @player_turn.officer.cop = false
@player_turn.officer.scop = false

which links to this in the officer class:

Spoiler: ShowHide
def Core_Overclock_endscop

   if @Core_overclock_penalty == true
      (@army.units).each{|unit|
unit.injure(8, true, false, true)
}
   end
end

with @Core_overclock_penalty being a legitimate extra:
Spoiler: ShowHide
def initialize(army)
   @name = ""
   @cop = false
   @scop = false
   @cop_name = ""
   @scop_name = ""
   @description = []
   @cop_stars = 0.0
   @scop_stars = 0.0
   @army = army

# Define bonus effects that COs may have

@repair = 2
@income_multiplier = 1
   @cost_multiplier = 1.0
@no_snow_penalty, @no_PoisonGas_penalty, @no_rain_penalty, @no_sand_penalty = false, false, false, false
@build_on_cities = false
@perfect_movement = false
@pierce_fow = false
@last_stand = false
   
   @APC_repair = false
   @Core_overclock_penalty = false
   @reconcapture = false
   
   @gain_dmg_as_HP = false
 end
and the CO in question having it as "true"

Any ideas what's gone wrong?


Also, i just noticed now for some reason, but why is the daily fuel depletion carried out before the fuel resupply? this would cause aircraft to crash even if they reached an airport. Repair and resupply is a bit wonky in general. I had a match today using teamviewer, and am going to see if i can somehow share the recording with you. you'll notice one stupid oversight in my CO and a lot of wonky/not-activating repairs.Repairs are probably fixed in your version, i don't really remember. Still was a fun match though.
Title: Re: [XP] Advance Wars Engine
Post by: KK20 on April 18, 2014, 10:06:33 pm
That would really only apply if it was a campaign map. Of course, I'll make Campaign creation an available option along with being able to event in those messages wherever, whenever.

Just for a general rule of thumb, don't capitalize method and variable names; reserve those for classes and constants. If that didn't do anything, I'm not quite sure why it wouldn't be working. The game keeps running but the damage doesn't trigger?

And yes, you and I have mentioned that before. A long while ago.
Title: Re: [XP] Advance Wars Engine
Post by: Gears on April 19, 2014, 07:09:28 am
I see. The capitalization is rampant within my script. it all works though, so i'm not really anxious to change that.

I've got a question again. I've been tinkering on a part of code that should allow me to do collateral damage, making it so that on certain conditions, a CO's artillery pieces will also hit (practically fire at), units next to the target unit. The code seems to work, as the enemy units indeed do get damaged. however, they always get damaged for 1HP, while i specifically coded it to vary the damage depending on whether you're in your COP, SCOP, or not. here's how i tried it:

this is in the firing script, triggering if the unit attacks:
Spoiler: ShowHide
if @army.officer.class == CO_Chumbeque
     if INDIRECT.include?(unit_type)
     chumbeque_collateral(target.x,target.y)
     end
   end


and this is the specific function i created it links to:
Spoiler: ShowHide
  def chumbeque_collateral(g,h) # target x and y
     
                     target1= $game_map.get_unit(g-1, h)
                     target2= $game_map.get_unit(g+1, h)
                     target3= $game_map.get_unit(g, h+1)
                     target4= $game_map.get_unit(g, h-1)
      initialized = true
     if target1.is_a?(Unit)
               target = $game_map.get_unit(g-1, h)
   
         
                  if  DamageChart::PriDamage[@unit_type][target.unit_type] == -1
                   damage = DamageChart::SecDamage[@unit_type][target.unit_type].to_f * (unit_hp/10.0)
                   @weapon_use = 2
                 else
                   damage = DamageChart::PriDamage[@unit_type][target.unit_type].to_f * (unit_hp/10.0)
                   @weapon_use = 1
                 end
     # Damage calculations
damage *= offense_power
damage += luck_bonus
damage /= target.defense_power
damage *= target.terrain_defense
damage -= target.def_luck_bonus
damage /= 10.0
     if @scop
     damage *= 10000000
     elsif @cop
      damage /= 2.0
     else
       damage /= 4.0
     end
# Drop any hundredths and beyond numbers (5.556 => 5.5)
damage = sprintf("%10.1f", damage).to_f

     
# Calculate last stand
if target.is_a?(Unit) and target.army.officer.last_stand
if target.unit_hp > 1 and target.health - damage <= 0.0
damage = (0.1 - target.health).abs
end
end

      target.injure(damage, false, initialized)
     
    destroy if unit_hp <= 0    
       
     target.destroy if target.unit_hp <= 0
   end
   
   
   
       if target2.is_a?(Unit)
         target = $game_map.get_unit(g+1, h)
   
         
              if  DamageChart::PriDamage[@unit_type][target.unit_type] == -1
damage = DamageChart::SecDamage[@unit_type][target.unit_type].to_f * (unit_hp/10.0)
       @weapon_use = 2
               else
damage = DamageChart::PriDamage[@unit_type][target.unit_type].to_f * (unit_hp/10.0)
       @weapon_use = 1
               end
     # Damage calculations
damage *= offense_power
damage += luck_bonus
damage /= target.defense_power
damage *= target.terrain_defense
damage -= target.def_luck_bonus
damage /= 10.0
  if @scop
     
     elsif @cop
      damage /= 2.0
     else
       damage /= 4.0
     end
# Drop any hundredths and beyond numbers (5.556 => 5.5)
damage = sprintf("%10.1f", damage).to_f

     
# Calculate last stand
if target.is_a?(Unit) and target.army.officer.last_stand
if target.unit_hp > 1 and target.health - damage <= 0.0
damage = (0.1 - target.health).abs
end
end

      target.injure(damage, false, initialized)
     
    destroy if unit_hp <= 0    
       
     target.destroy if target.unit_hp <= 0
   end
   
        if target3.is_a?(Unit)
          target = $game_map.get_unit(g, h+1)
   
         
          if  DamageChart::PriDamage[@unit_type][target.unit_type] == -1
damage = DamageChart::SecDamage[@unit_type][target.unit_type].to_f * (unit_hp/10.0)
       @weapon_use = 2
    else
damage = DamageChart::PriDamage[@unit_type][target.unit_type].to_f * (unit_hp/10.0)
       @weapon_use = 1
     end
     # Damage calculations
damage *= offense_power
damage += luck_bonus
damage /= target.defense_power
damage *= target.terrain_defense
damage -= target.def_luck_bonus
damage /= 10.0
  if @scop
     
     elsif @cop
      damage /= 2.0
     else
       damage /= 4.0
     end
# Drop any hundredths and beyond numbers (5.556 => 5.5)
damage = sprintf("%10.1f", damage).to_f

     
# Calculate last stand
if target.is_a?(Unit) and target.army.officer.last_stand
if target.unit_hp > 1 and target.health - damage <= 0.0
damage = (0.1 - target.health).abs
end
end

      target.injure(damage, false, initialized)
     
    destroy if unit_hp <= 0    
       
     target.destroy if target.unit_hp <= 0
   end
        if target4.is_a?(Unit)
          target = $game_map.get_unit(g, h-1)
   
         
          if  DamageChart::PriDamage[@unit_type][target.unit_type] == -1
damage = DamageChart::SecDamage[@unit_type][target.unit_type].to_f * (unit_hp/10.0)
       @weapon_use = 2
    else
damage = DamageChart::PriDamage[@unit_type][target.unit_type].to_f * (unit_hp/10.0)
       @weapon_use = 1
     end
     # Damage calculations
damage *= offense_power
damage += luck_bonus
damage /= target.defense_power
damage *= target.terrain_defense
damage -= target.def_luck_bonus
damage /= 10.0
     if @scop
     
     elsif @cop
      damage /= 2.0
     else
       damage /= 4.0
     end
# Drop any hundredths and beyond numbers (5.556 => 5.5)
damage = sprintf("%10.1f", damage).to_f

     
# Calculate last stand
if target.is_a?(Unit) and target.army.officer.last_stand
if target.unit_hp > 1 and target.health - damage <= 0.0
damage = (0.1 - target.health).abs
end
end

      target.injure(damage, false, initialized)
     
    destroy if unit_hp <= 0    
       
     target.destroy if target.unit_hp <= 0
   end
   
 
 
 end


Note that the *10000 damage was changed to verify it worked, yet it didn't.
Title: Re: [XP] Advance Wars Engine
Post by: KK20 on July 09, 2014, 04:05:04 am
Oh my god dude, you should have posted another post or messaged me--didn't see this until now.

Have you tried putting print statements in between the code to see what numbers you're getting? For example:

      if @scop
      damage *= 10000000
      p(damage)


p(damage)
target.injure(damage, false, initialized)


I haven't looked at AWE in a while due to other programming projects I'm working on (which in the long run will benefit this project too) so I can't really see where the bug is happening. I should also inform you that you can push all those get_unit commands into an array and evaluate those one at a time rather than having 4 if statements.

targets = []
targets.push($game_map.get_unit(g-1, h))
...
targets.each{|target|
  if target.is_a?(Unit)
    # Continue with your code
  end
}
Title: Re: [XP] Advance Wars Engine
Post by: betman on July 21, 2014, 01:37:03 pm
Hi everyone.

Its great to see the success 8) of this and I will continue to support this with all my heart.
Just wanted to leave and error that I found when turning the Exe file on .


Problem signature:
  Problem Event Name:   APPCRASH
  Application Name:   Game.exe
  Application Version:   1.0.0.1
  Application Timestamp:   40d19497
  Fault Module Name:   StackHash_2264
  Fault Module Version:   0.0.0.0
  Fault Module Timestamp:   00000000
  Exception Code:   c0000005
  Exception Offset:   026fb530
  OS Version:   6.1.7601.2.1.0.768.3
  Locale ID:   1033
  Additional Information 1:   2264
  Additional Information 2:   2264db07e74365624c50317d7b856ae9
  Additional Information 3:   875f
  Additional Information 4:   875fa2ef9d2bdca96466e8af55d1ae6e


If anyone can help me with this it would be great. Thanks.
Title: Re: [XP] Advance Wars Engine
Post by: KK20 on July 21, 2014, 02:22:17 pm
Well, I can tell you that it's not the game's fault. Have you tried searching for solutions? A simple Google search for "Stackhash 2264" already led me to a bunch of solutions.
Title: Re: [XP] Advance Wars Engine
Post by: betman on July 21, 2014, 08:12:15 pm
I just figured it out. Thanks anyway.

Looking forward to the addition of a 3rd and 4th player to this.
Title: Re: [XP] Advance Wars Engine
Post by: KK20 on July 21, 2014, 10:38:19 pm
Thanks~
I believe it already works fine. Only thing I need to add are teams and that's done with. But for now, I am currently working on a Tilemap rewrite that I believe I need for this project--and at the same time for other people's RM projects (if you have seen the XPAce conversion thread). So I haven't really worked on much recently, but I hope that will change once I'm done.
Title: Re: [XP] Advance Wars Engine
Post by: Gears on August 04, 2014, 08:38:26 am
Quote from: KK20 on July 09, 2014, 04:05:04 am
Oh my god dude, you should have posted another post or messaged me--didn't see this until now.

Have you tried putting print statements in between the code to see what numbers you're getting? For example:

      if @scop
      damage *= 10000000
      p(damage)


p(damage)
target.injure(damage, false, initialized)


I haven't looked at AWE in a while due to other programming projects I'm working on (which in the long run will benefit this project too) so I can't really see where the bug is happening. I should also inform you that you can push all those get_unit commands into an array and evaluate those one at a time rather than having 4 if statements.

targets = []
targets.push($game_map.get_unit(g-1, h))
...
targets.each{|target|
  if target.is_a?(Unit)
    # Continue with your code
  end
}



I've been a bit busy lately, i think we probably all have. Thanks for the info!  I'll look to see if it works real soon!
Title: Re: [XP] Advance Wars Engine
Post by: KK20 on November 06, 2014, 05:28:29 am
So I finally did a thing after all these months.
Spoiler: ShowHide
And I'm surprised it took only a couple of days to make this:
(http://puu.sh/cFoeN/e9b296e287.gif)
And the code to set up this message system?

       @win.set_window("Andy")
       @win.add_text("Hey Nell. You called me?")
       @win.set_window("Nell")
       @win.add_text("Oh Andy, it's a good thing you're here. I need help with something.")
       @win.add_text("See that man over there?")
       @win.set_window("Flak", 1, false)
       @win.add_text("Hah hah hah...lady looking fiiiiiiiiine today.")
       @win.set_window("Nell", 2)
       @win.add_text("He's a total creep.")
       @win.set_window("Andy", 2)
       @win.add_text("What's so wrong about that?")
       @win.set_window("", 1)
       @win.add_text("He's just giving you a compliment. I agree that you are looking fine today too.")
       @win.set_window("Nell", 2)
       @win.add_text("...")

The update method is being called every time Graphics.update is.


Besides that, I have gotten around to cleaning up the code a lot, so much so that you guys editing the engine (that is if you still visit here anyways) might have to write up entirely new changes. Thank god I finally finished that XPA Tilemap so I can use it in this engine as well as transition over to XPA. However, people have reported that FMod causes errors for them in XPA (which is odd because my laptop has no problems but my desktop does), so I might have to revert to a different looping audio script.

It feels so good to work on this again.
Title: Re: [XP] Advance Wars Engine
Post by: Zexion on November 06, 2014, 05:19:13 pm
wat a creep

edit: fricken 1338 i totes missed 1337. o well gf me

Also, you gonna add interpreter commands? or liek wat how u do this
Title: Re: [XP] Advance Wars Engine
Post by: KK20 on November 06, 2014, 05:46:50 pm
Interpreter commands as in:

class Interpreter
  def add_text(string)
  # fancy code
  end
end

Cuz yeah, I'm going to do that. The way I did this is just load the commands into an array and fire them off one-by-one depending on the window's state:
MSG_IDLE = Nothing is happening. You can't see the message window at all.
MSG_RUN = Force the window to update and perform its commands.
MSG_DRAW = Currently drawing text.
MSG_WAIT = Stops the window from firing off the next command.
MSG_SWAP = Same as WAIT but this only occurs when the face graphic or the window itself are sliding on/off screen.

The instance you call 'add_text', the window will be put into the MSG_RUN state. On the next frame, Graphics.update is called, which in turn calls this window's update method. I use Array#shift to get the first command. If the command is a string, I can go right on ahead and draw the text. If it's an Array, I call another method that evaluates the array's contents, similar to how RMXP's Interpreter 2 works. From there, it's nothing but a bunch of other methods being called and variables keeping track of the animations (i.e. animation frame counters, if moving up/down, if closing window).

The main reason I aliased Graphics#update is so that I could create a global instance of this object and make calls to it regardless of the scene. And also to make it easier for development, not having to worry about creating an instance, having to remember to update it, etc.
Title: Re: [XP] Advance Wars Engine
Post by: Zexion on November 06, 2014, 08:28:03 pm
I swear that I didn't add that last bit lol. At least not on purpose xD "or liek wat how u do dis". I might have typed what I was saying out loud rofl.
Title: Re: [XP] Advance Wars Engine
Post by: Gears on December 12, 2014, 09:00:14 am
This poject is aiding me in ways i never saw coming.
Title: Re: [XP] Advance Wars Engine
Post by: Zexion on December 12, 2014, 09:07:49 am
O.O explain
Title: Re: [XP] Advance Wars Engine
Post by: KK20 on December 14, 2014, 02:16:15 am
Glad that you're still following this despite my lack of progress.

School is almost over with this year, so I plan to work on things over break naturally. I've been writing documents upon documents on structuring a solid AI opponent, and it's baffling me immensely, especially when I'm trying to write for potential changes and additions. I've generated influence maps, but finding the right values to use is going to be a lot of work.

Meanwhile, I've cleaned up the main process immensely and wrote a glowing range tile DLL add-on to my tilemap rewrite. Still a number of other things to do (like menus and windows).
Collection of images: ShowHide

Glowy tiles are applied to the entire tilemap graphic and rendered pre-game
(http://i.imgur.com/AJDLDWN.gif)
Glowy tiles in action (disregard the arrow path being drawn--fixed it)
(http://puu.sh/deMT4/60d4db3cbf.gif)
Influence Map idea
(http://puu.sh/dfbw2/1560c59202.png)
WIP Unit Stat list
(http://puu.sh/cKHDu/a0edb4fca2.png)
Title: Re: [XP] Advance Wars Engine
Post by: Gears on December 22, 2014, 04:55:52 pm
Now that's some grade A stuff. I've been having a ball replacing various textures and ending up with some of the most goofball units in the history of advance wars.

Edit: Managed to make the collateral artillery damage work.

EDIT: After playing a bit in regular advance wars 2, it seems units die quicker in this emulator, i'm not entirely sure of it but where did the damage calculation come from?
Title: Re: [XP] Advance Wars Engine
Post by: KK20 on January 10, 2015, 10:04:43 pm
Kind of a hybrid between the staple Advance Wars series and Days of Ruin. I didn't like how 200% defense equals perfect defense from attacks, down to the point where only luck damage can do anything. This made Javier impossible to play against. It also limits the amount of defense bonuses you can give to units. So I went with the Days of Ruin approach where 150% increased attack versus 150% increased defense negate each other out.

To keep terrain bonuses still a viable option, I kept it the same way as the original AW series; sitting on a mountain reduces maximum damage by 40%. It allows Lash to not be severely nerfed by the way how terrain defenses worked in DoR (yeah, she's still really good in the engine).

Luck was also balanced out to be applied BEFORE enemy defenses rather than AFTER. It just made Nell ridiculous to have infantry waltz up to Kanbei's SCOP'd Megatank and have a chance to instantly destroy it. Also, luck only does +5 rather than +10. This might change later.

The main contributor to quickly destroying units would have to be the damage chart though. Granted, I didn't really follow any game's table (cuz like Stealth Fighters and Bike Infantry didn't exist together, and Destroyers are an entirely new unit), but I tried fitting it close to what I'd expect the values to realistically be. You can also see how I nerfed the Medium Tank's power while making it cost slightly less (Tank units actually stand a chance against it now) and Recons do an extra 10 damage against infantry compared to the games (honestly, recons are almost as ignored as Missiles in non-FOW maps). It could also be that CO Powers are charging up faster than normal. AW:DS is known for it's pretty fast charge rates whereas AW2 filled up stars based on unit costs (1 star = 9000G = 1 Battle Copter destroyed on enemy's turn). The numbers I gave in the unit classes are, again, just made up values that haven't really been tested for balance.

One major goal of mine is to lower indirect unit damage and possibly defense. The fact that they can hit as hard as their direct-combat counterparts without fear of counters makes them too good (coughGritcough). I want them to be a support role, not a standalone sniper--except for Missiles... they need ridiculous damage to even be considered in battle.
Title: Re: [XP] Advance Wars Engine
Post by: Gears on January 12, 2015, 06:28:54 pm
I see. That explains some of the things I've been seeing. Another question entirely, did you disable the variations for fzero's weather script?
Title: Re: [XP] Advance Wars Engine
Post by: KK20 on January 13, 2015, 10:56:24 pm
I shouldn't have. I'm pretty sure I didn't touch a thing with it. I was just looking for some weather system that had rain, snow, and sandstorm.
Title: Re: [XP] Advance Wars Engine
Post by: Gears on January 14, 2015, 08:56:58 am
Then the problem must be on my side. I cannot get the variations to work. I might have to put some additional thought into it.
Title: Re: [XP] Advance Wars Engine
Post by: KK20 on June 09, 2015, 07:41:07 pm
Well it's about time I post something to this topic again. I finally decided to just put the project onto GitHub and truly make it open source. I'll most likely find a way to extract the scripts and put them in separate text files as soon as I find a reliable way to load them back into RMXP.

The repository can be found here: https://github.com/tcrane20/AdvanceWarsEngine

So yeah, have fun with the current (somewhat buggy) build that I have been working on and off for nearly 3 years.
Title: Re: [XP] Advance Wars Engine
Post by: Eliwan on June 13, 2015, 04:16:47 am
Having been trudging with this since March; I have found myself stuck.

In the last week, I've been trying to replicate HPD's Zed (http://forums.warsworldnews.com/viewtopic.php?f=15&t=511); but I got rather stuck. First I made a list of what I need to check from the CO's units; and added what I knew was needed:

I. Turn unit was produced (done)
II. Unit's X and Y position at turn start (done)
III. Unit's HP, Fuel, and Ammo at turn start [for SCOP] (done)
IV. If the unit was loaded at turn start (done)
V. What unit the unit was loaded in at turn start (maybe not necessary)
VI. What units the unit has loaded in it at turn start, and 1-5 for these units (done)

And what I need the power method to execute:

1. Un-produce all units that were produced this turn (destroy unit and add funds equal to the unit's price). (fully functional)
2. Revert all unit's X/Y positions to turn start. (mostly functional)
2a/3. Any units that were loaded need their sprite un-disposed (how?!)
4. Revert all unit's HP, Fuel, and Ammo counts to turn start, refresh/un-act if SCOP (functional).
5. Re-load any units that performed unload actions
6. Delete any units that were unloaded (currently just disposes their sprite without properly removing them)

To these ends I've added a number of variables: (and of course I've also -actually added them- to the unit methods)

# Disable the units that have a disabled flag, initialize day variables
@player_turn.units.each{|u|
  u.stx = u.x
  u.sty = u.y
  u.HPD = u.health
  u.stf = u.fuel
  u.sta = u.ammo
  u.stl = u.loaded
  u.stc = u.holding_units
  if u.disabled
    u.acted = true
    u.disabled = false
  end
}

And of course for health and fuel/ammo, those are changed when the unit gets repaired or resupplied via the daily method as well (and in the daily fuel method).

I also changed unit producing to include the day that the unit gets built, and this is stored as "madeday". (by changing initialize to include day as a fourth variable; because I couldn't think of a better way that certainly exists)

And the actual method looks like this presently:

  def use_scop
super
@army.units.each{|u|
  if u.madeday == $game_map.day #if it was made this day
      u.unmake
  else #if it wasn't
      u.holding_units.each{|v| #unit(s) v that u is holding [lander]
        v.holding_units.each{|i| #unit(s) that v was holding [with an apc]
          i.x = i.stx #[that has an infantry, i guess]
          i.y = i.sty
          i.loaded = false unless i.stl
          i.fuel = i.stf
          i.ammo = i.sta
          i.health = i.HPD
          i.acted = false
          i.holding_units = i.stc
        } #i
        v.x = v.stx
        v.y = v.sty
        v.loaded = false unless v.stl
        v.fuel = v.stf
        v.ammo = v.sta
        v.health = v.HPD
        v.acted = false
        v.holding_units = v.stc
      } #v
      u.x = u.stx
      u.y = u.sty
      u.loaded = false unless u.stl
      u.fuel = u.stf
      u.ammo = u.sta
      u.health = u.HPD
      u.acted = false
      u.holding_units = u.stc
    end #made this day
    } #u
  end

[In the unit class]
  # For Zed's use, since the current destroy method isn't quite right.
  def unmake
      @army.funds += cost(true)
      @holding_units.each{|u|
        u.holding_units.each{|i| #unloads units, just in case. >_>
          i.x = i.stx
          i.y = i.sty
          if @army.scop #resets them if it's SCOP
            i.fuel = i.stf
            i.ammo = i.sta
            i.health = i.HPD
            i.acted = false
          end
        } #i
      } #u
      index = @army.units.index(self)
      @army.units[index] = nil
      $game_map.set_unit(@x,@y,nil)
      @needs_deletion = true
      @sprite.dispose
  end


But this doesn't properly do everything as lamented above in 2a/3; I can't fully figure out step 5 either.

Currently, 2a/3 is impossible for me.

5, on the other hand, works... but it leaves a ghost unit where the unit was dropped off with no sprite. >< I'm sure I missed something that I need to do but I legitimately can't figure it out.

So I'm, unfortunately, asking for help.
Title: Re: [XP] Advance Wars Engine
Post by: KK20 on June 13, 2015, 02:54:54 pm
It's probably easier to do in the current build of the game I'm still working on. Anyways, there's a method in the Unit class called init_sprite that will probably do what you need.

For the unloaded units, you can probably do what you've been doing by adding another variable for units that holds a copy of the holding_units variable

@st_holding_units = @holding_units.clone

Title: Re: [XP] Advance Wars Engine
Post by: Kristoph on June 21, 2015, 08:59:34 pm
Do you have any plans to implement DoR COs/meter charging?  This is project is really awesome to see, good stuff
Title: Re: [XP] Advance Wars Engine
Post by: KK20 on June 22, 2015, 05:34:25 pm
Thanks for giving my project a look :)

I wasn't a huge fan of DoR's mechanics--it didn't really give the CO's much personality and felt like the same battles being played over and over again (considering no CO had a weakness and all units were 100/100 by default). Plus, it would mean more work and a different AI to write up.
Title: Re: [XP] Advance Wars Engine
Post by: Kristoph on June 22, 2015, 06:16:25 pm
Yeahhh, DoR definitely felt less 'vibrant' than the other games, both in its art and in aspects of its gameplay.  What about the Vet system though?  I liked that alot since it rewarded players for keeping a unit alive longer, and you could get a nice boost after 3 kills.

I see you did include DoR units though, which is greeeeeaaat.  Especially Bikes, those alone were such an improvement, definitely one of DoR's best additions.

Also ok zeppelins????  Wowww that was the dopest custom unit ever made, super love.
Title: Re: [XP] Advance Wars Engine
Post by: KK20 on June 22, 2015, 07:01:41 pm
The vet system is much more realistic to implement. I too like the idea, but wanted to make it a bit more interesting with a EXP type of setting. I didn't really think it was right that the last-hitting unit would be the one to get promoted (this made it harder for artillery and rockets to rank up as they are often appointed to "soften" the enemy units). It also made the strong one-hitters too powerful as well; the system does not favor the cheaper units at all, especially on larger maps and during the mid-late game.

I loved the Bike idea too. Not sure if you noticed, but I made sure they were slightly weaker than Infantry. This would, at least, give Infantry and Mechs some fighting chance against their "first-hit" advantage. Also Sami can't increase their movement either (7 move range + 1 turn capture = no friends).

Zeppelin was actually an idea I saw scattered around various boards and topics. Custom Wars was actually the one that implemented it (along with the Destroyer) so I adopted the idea into the engine. It's a pretty unique unit that's very helpful in the early-game push but falls short when Fighters and Cruisers can be mass-produced later on. The fact that it is currently the cheapest Plane-type unit also makes it great for body blocking.
Title: Re: [XP] Advance Wars Engine
Post by: Kristoph on June 22, 2015, 08:37:55 pm
I was big into Custom Wars back in the day; I never liked the hovercrafts or most of the custom COs, but the Zeppelin was amazingly fun.  <3
Title: Re: [XP] Advance Wars Engine
Post by: Gears on June 30, 2015, 06:23:54 pm
This isn't completely dead? Awesome! I'll take a look into the capabilities of this new release. See if i can come up with even more shenanigans then i did last time.
Title: Re: [XP] Advance Wars Engine
Post by: KK20 on June 30, 2015, 09:52:02 pm
Bruh, it's only dead when I say it's dead.

You're going to have a heck of a time adjusting to some of the new changes in the code's structure. And since I'm still updating some of the key parts of the engine, I wouldn't suggest adapting your current changes over just yet. Also, enjoy running on the smoother RGSS3 :P
Title: Re: [XP] Advance Wars Engine
Post by: Gears on July 01, 2015, 03:18:28 pm
It seems to run smoother indeed, but the text is all messed up and blurry. is that a bug?
Title: Re: [XP] Advance Wars Engine
Post by: KK20 on July 01, 2015, 05:44:33 pm
Can you screenshot it?
Title: Re: [XP] Advance Wars Engine
Post by: Gears on July 03, 2015, 12:29:53 pm
Sure thing:

(http://i.imgur.com/w9dZwtd.png)
Title: Re: [XP] Advance Wars Engine
Post by: KK20 on July 03, 2015, 02:09:50 pm
You want to use "Advance Wars Edit", not "Advance Wars Engine v0.1b".
Title: Re: [XP] Advance Wars Engine
Post by: cardcafex on July 08, 2015, 03:05:21 pm
So wait a second, this script is getting transferred to rgss3? Oh, the things that
are possible if that's the case! :haha:
Title: Re: [XP] Advance Wars Engine
Post by: KK20 on July 08, 2015, 03:23:35 pm
By transferred, if you mean "runs on RGSS3", then yes. It's not going to follow the same style or structure as the scripts in VXA (like how there's a Scene_Base class).
But since it runs on RGSS3, you can reference the VXA help file for newer methods introduced to some of the existing classes. My main reason for the transition is just the better performance and smoother frame rate.
Title: Re: [XP] Advance Wars Engine
Post by: cardcafex on July 08, 2015, 06:33:33 pm
For some reason, the VXAXP engine lags badly on my pc, But it doesn't matter... I downloaded a zip file of the contents on github, and I was impressed anyway. I originally the old version when you first released it, but I'm going to take a look at which I want to use. Another question: Does this mean rgss3 scripts for xp?
Title: Re: [XP] Advance Wars Engine
Post by: KK20 on July 08, 2015, 06:45:05 pm
For the most part, probably not. I don't really know of any RGSS3 scripts that I could even use (besides, I'd probably write my own). And there's a limit as to what RGSS3 scripts you can use--you're not going to have much success importing scripts meant for VXA into an XP game when the two don't have the same modular structure.

You were playing on the "Advance Wars Edit" version of the game, right? You're not using a super old computer are you?
Title: Re: [XP] Advance Wars Engine
Post by: Tyadran on July 17, 2015, 05:45:40 pm
I hate to ask, because I feel really dumb about it, but I cannot for the life of me get Advance Wars Edit to run properly.
As retrieved from github, can someone give me a quick explanation what I need to do to get it running?  :<_<:

I'm really looking forward to using it if I can make it work.

EDIT: Should probably be more specific, I keep getting '292 scripts successfully exported.' when I try to start it.
Title: Re: [XP] Advance Wars Engine
Post by: KK20 on July 17, 2015, 07:05:37 pm
Oh haha forgot to change the number.

In the "Script Import&Export", change the IMPORT_EXPORT_MODE to either 0 or 3.
Title: Re: [XP] Advance Wars Engine
Post by: Tyadran on July 17, 2015, 07:14:08 pm
Quote from: KK20 on July 17, 2015, 07:05:37 pm
Oh haha forgot to change the number.

In the "Script Import&Export", change the IMPORT_EXPORT_MODE to either 0 or 3.


Okay, well, like when I tried that before, I get 'The specified procedure could not be found.'. I figured maybe I had goofed up and needed to change something else too...but I would have no idea what.

I then continue to get the 'specified procedure' error, even when I change the number back to 1.  :huh:
Title: Re: [XP] Advance Wars Engine
Post by: KK20 on July 17, 2015, 07:29:14 pm
Open up the Game.ini file and look for the Library. It will say RGSS10_E.dll, where the underscore is some kind of number. For my version of RMXP, it's a 4. For you, it might be a 2. Anyways, whatever it is, look for the RGSS104E.dll file and rename it to what the Library is set to.
Title: Re: [XP] Advance Wars Engine
Post by: Tyadran on July 17, 2015, 07:49:07 pm
Ah, I seem to have solved the issue. The RGSS104E.dll in the Advance Wars Edit folder doesn't seem to work, but copying the one from v0.1b (which is a larger file?) allows it to launch properly. Thanks for pointing me in the right direction, and maybe check that out so no one else has the same issue?
Thanks!

~Tya
Title: Re: [XP] Advance Wars Engine
Post by: KK20 on July 17, 2015, 08:22:11 pm
That's weird. The v0.1b folder has RGSS104E and RGSS104E_301, the former being RGSS 3.0.0.1 (exact same one in the Edit folder) and the latter being RGSS 3.0.1.1. I wonder why your computer refuses to use the older version.

"But why use the older version when you can use the newer one? Shouldn't it be better?"

RGSS3 does NOT support game resolutions larger than 640x480, so someone hacked a 3.0.0.1 DLL file to allow this. This is packaged with the RMXP Ace project. I decided to just stick with it in case anyone wanted to modify the script to allow larger resolutions. If you don't want to go larger than 640x480, the 3.0.1.1 is fine (I think).
Title: Re: [XP] Advance Wars Engine
Post by: Tyadran on July 18, 2015, 11:42:04 pm
Alright, well, I'll be sure to let you know if I have any issues with it from this point on. I already have some questions about some CO capabilities and things, but I'll save them until I've spent some more time actually toying around in the engine and seeing what I can manage.

~Tya
Title: Re: [XP] Advance Wars Engine
Post by: Gears on July 19, 2015, 03:23:38 pm
I could show you my former build introducing new CO's but i'm not sure how up to date it is.
Title: Re: [XP] Advance Wars Engine
Post by: Tyadran on July 19, 2015, 03:27:52 pm
Quote from: Gears on July 19, 2015, 03:23:38 pm
I could show you my former build introducing new CO's but i'm not sure how up to date it is.


Well, right now I'm just building on v0.1b for the time being, since it's a little more solid at the moment and I can't get the music to play on the new one. I'm definitely interested to see anything you have to show, though.

~Tya
Title: Re: [XP] Advance Wars Engine
Post by: KK20 on July 19, 2015, 03:38:23 pm
All music on the Edit has been set to 0. You can find it in MODULE Config at the very bottom where I put a
volume = 0
Just remove that line and music will be back.

I've been busy with other projects (like ARC) that I haven't worked on it for a while. The last thing I was working on was starting the online multiplayer. Finding any bugs with the Edit build would be appreciated as well. :)

Also should note that v0.1b isn't the same as the download link on the first post, in case that wasn't clearly obvious.
Title: Re: [XP] Advance Wars Engine
Post by: Tyadran on July 19, 2015, 03:45:51 pm
I'm using v0.1b from the github link.

Maybe I'll switch over to the Edit version then so I can bug test while I work. A couple of questions:
- Has the issue with the game crashing when a unit runs out of fuel been fixed?
- Should there be any issues simply copying units/damage chart from v0.1b to Edit? I've added a few units already, and it'll be much more convenient to just make a handful of changes to the current version of them.

I have a few overall feature questions that I'm just curious if they were planned to be implemented eventually:
- Battle scenes and power activation scenes?
- Tag COs? I'm sure some people didn't like it, but I thought they were awesome. ^.^
- Any kind of alternate palette option for COs (user-implemented, of course)? Not a big deal, the people I play with are just fans of some extra customization.
I think I had a few more, but they've slipped my mind for the time being.

Also, is it possible to give primary and secondary weapons different ranges? I haven't seen anything that calls out to me how to do it, and I'm not sure how effectively it would actually function.

Thanks for any answers!

~Tya
Title: Re: [XP] Advance Wars Engine
Post by: KK20 on July 19, 2015, 03:58:01 pm
- The bug with crashing units should be fixed in the Edit. I remember working on that specifically.
- You should be able to copy over Units and the damage chart without trouble.

- Battle scenes reminiscent of the games is actually quite difficult to do while still keeping it easy to customize for users. Not to mention that I'm not exactly a person who does graphics and that's a LOT of animations I have to extract as well as create for the custom units. I could maybe make a template where all units use the same graphic and just leave it up to the user to make the animations themselves. Power scenes is planned, but I'm still questioning how I should do it.
- Tag COs were not originally planned. If I ever am satisfied with the official release, I'd consider adding it.
- Again, not a graphics person so that's up to the user to provide those. I can make the scenes to allow choosing a different palette or costume.

Since the games haven't done different ranges for different weapons, it's not something I really wanted to do. While I think I have written the code to make this easily possible with a few edits, I'm not sure I want to put it in the official release.
Title: Re: [XP] Advance Wars Engine
Post by: Tyadran on July 19, 2015, 04:04:21 pm
Alright, completely understandable. Tag COs and separate ranges aren't a necessity, just some things I personally would use (don't know if anyone else would). I'll just have to rework some of the units I was designing.

I would be perfectly fine with the battle scenes and alternate palettes/costumes being a template only. I'd be perfectly happy to supply whatever graphics I'd need to put into those if the code was there to work them properly. All I even had in mind for the alternate palettes/costumes was probably an additional two buttons on the CO select screen that would scroll through, for example, CO_Andy_1, CO_Andy_2, etc. if those files existed. I like the current build and it's by far the best Wars engine to use with RM, I'm just someone who likes a lot of features, so don't mind me.  :^_^':

Thanks for the responses, though!

~Tya
Title: Re: [XP] Advance Wars Engine
Post by: KK20 on July 19, 2015, 04:13:11 pm
Quote from: Tyadran on July 19, 2015, 04:04:21 pm
I like the current build and it's by far the best Wars engine to use with RM

Wait...there's more? :huh:
Title: Re: [XP] Advance Wars Engine
Post by: Tyadran on July 19, 2015, 04:16:10 pm
Quote from: KK20 on July 19, 2015, 04:13:11 pm
Quote from: Tyadran on July 19, 2015, 04:04:21 pm
I like the current build and it's by far the best Wars engine to use with RM

Wait...there's more? :huh:


Well, GTBS could be argued as functional. I've used it before, but it functions far better for Fire Emblem or Shining Force than Wars, even after wrangling it a lot. The Ace version does have nice battle scenes though.
Title: Re: [XP] Advance Wars Engine
Post by: Gears on July 19, 2015, 06:51:13 pm
Is 4 players still a possibility in the long run?
Title: Re: [XP] Advance Wars Engine
Post by: KK20 on July 19, 2015, 10:29:45 pm
More than possible. I just haven't really gotten to it since it's a pretty easy thing to do.
Title: Re: [XP] Advance Wars Engine
Post by: syldocaine on August 06, 2015, 07:53:05 am
OMG this is existing for so long already and I've never seen it.
Shame on me..

I love the advance wars games, put more than 1000 hours into them and still playing them time by time.
I think I have something to do now..
Title: Re: [XP] Advance Wars Engine
Post by: KK20 on August 06, 2015, 02:45:41 pm
lol serious shame. It's in my signature for crying out loud.
Title: Re: [XP] Advance Wars Engine
Post by: syldocaine on August 06, 2015, 06:47:12 pm
That's the fact which confuses me so hard.

You helped me alot with scripting issues and I've never realised that signature...

But it's never too late :D
Title: Re: [XP] Advance Wars Engine
Post by: Gears on October 28, 2015, 08:22:18 pm
I managed to fiddle some more during my downtime. Anybody got some interesting CO ideas?
Title: Re: [XP] Advance Wars Engine
Post by: G_G on October 28, 2015, 08:30:49 pm
KK, you need to remake this in MV. Node.js + socket.io.
Title: Re: [XP] Advance Wars Engine
Post by: KK20 on October 28, 2015, 11:10:43 pm
lol that would be ideal xP
I noticed someone was already in the works of creating the core for an MMO on the official RM forums.

I did already find a simple TCP server written in C that can just be executed alongside the game. I also took the Socket class stuff from RMX-OS and can pass messages between clients fairly easily. Believe me, I have been considering whether going along with MV would be best. I've said it before and I'll say it again: the engine is practically worth it.

I haven't gotten any further with the Engine due to other projects distracting me, especially now that MV is out. The idea of making a new MV editor is still on my brain at the moment. And now with my new job incoming, it's going to be hard to devote myself to more than one big project at this point.
Title: Re: [XP] Advance Wars Engine
Post by: ThalliumShine on November 30, 2015, 07:29:10 pm
I just discovered this now and this system wowed me. If I use the engine to make my game with it, would that be okay? I'm planning to make a tactical game like this but instead of modern one, I'd like to do some archaic viking style game :3
Title: Re: [XP] Advance Wars Engine
Post by: KK20 on November 30, 2015, 08:36:28 pm
Totally! That's what the whole point of this project was anyways.