• Welcome to Final Fantasy Hacktics. Please login or sign up.
 
December 13, 2024, 10:38:41 pm

News:

Please use .png instead of .bmp when uploading unfinished sprites to the forum!


TacticalRPG Engine

Started by HowDoGameDev, August 06, 2015, 08:45:17 pm

3lric

No need to apologize, as long as the posts are at least 24 hours apart.

I'll definately give this a try later tonight.
  • Modding version: PSX

Choto

I just popped it in real quick, it runs really smooth! I'm interested in this with it being written in C#...

my FPS ran around 60 or so. I did the AI test, and I think when it cycled back to my original character, it hung up and I got a "that laggy? 1" message a couple times in the console.

was this written using XNA? I think it was Eldiran that was saying C# was kind of inefficient and that XNA was getting phased out or something. C# is my best bet for writing my own game or something of the sort though, i love the language. What do you think?

HowDoGameDev

I'm currently unable to reproduce the slowdown, but I'll see what I can figure out. It's on the throne room map with the AI test, correct? 5 blue slimes vs 5 orange?

The game actually uses my own engine, which in turn uses OpenTK to interface with OpenGL. XNA was pretty awesome, but it is indeed dead. It has been replaced with Monogame and some other frameworks with cloned APIs.

I think C# is a fine language to use for just about anything. The major flaw that I can't really argue against is that the garbage collection can cause inconsistencies in performance. C# can stockpile objects that need to be disposed of and then decide to do it all at once, creating temporary lag. There are ways around it such as reusing objects and things like that.

I personally haven't ran into any real performance issues with C#. It's been fast enough for the pathfinding, AI, interfacing with OpenGL and just about everything else I've thrown at it.

Cheetah

Any chance of an OS X build for me to test?
Current Projects:

Angel

It's written in C#. To port to OSX, he'd need a Mac himself.
  • Modding version: PSX
* Angel should quit being a lazy bitch
<@Elric> I agree to that as well

nyanyame nyanyajuu nyanyado no nyarabide nyakunyaku inyanyaku nyanyahan nyanyadai nyannyaku nyarabete nyaganyagame
At the end of the day, are we not all trapped inside lemons?

potterness

Quote from: Choto on December 25, 2015, 09:10:30 am
I think it was Eldiran that was saying C# was kind of inefficient and that XNA was getting phased out or something. C# is my best bet for writing my own game or something of the sort though, i love the language. What do you think?


C# is basically the equivalent of Java, but due to being created by Microsoft it can gain some benefit from .NET. Both Java and C# are garbage-collection languages, which means that you can't use pointers (well, outside of "unsafe mode") and the "garbage" (unnecessary memory references) cleanses periodically outside of your control.

XNA's been unsupported for a number of years now. I started off my 2D tactical RPG using it in about 2011/2012 (only prior knowledge was 3 university C++ courses, didn't have a problem adjusting) but eventually abandoned it. Due to being a very light but powerful framework, a lot of people have tried to keep XNA alive ever since Microsoft gave up on it. In particular, Monogame was the torchbearer, but even now that's fizzled. The newest project to keep XNA supported (and open-source this time) is FNA, which you can read about here: https://plus.google.com/+flibitijibibo/posts/CB9tuYV1TnF

I've long since moved on to Unity3D (which also uses C#) so I haven't checked out Mono or FNA firsthand. There are a WHOLE lot of benefits to doing this genre in 3D that I could get into, but I'll just say that I probably wouldn't revert back to my old 2D XNA version ever. Anyway, the comment about C# being "inefficient" is slightly inaccurate. It's just as powerful as C++ typically (especially for a game, and even more especially for a trivial turn-based one) but the lack of control over pointers can be annoying sometimes. One example off the top of my head would be a pointer to the current unit in the turn queue, which could be handled fairly easily in C++, but you'd have to create a Queue<Unit> or whatever syntax in Java or C#. Honestly, if you're making a turn-based game, you really shouldn't be worried about the difference between C++ and C#.

HowDoGameDev

Quote from: Cheetah on January 05, 2016, 07:24:19 am
Any chance of an OS X build for me to test?


Might give the below a shot. A rebuild for OSX may not be necessary.
http://www.mono-project.com/docs/about-mono/supported-platforms/osx/

HowDoGameDev

January 19, 2016, 09:26:59 pm #47 Last Edit: January 21, 2016, 08:44:33 pm by HowDoGameDev
The "I'm not dead yet" Update
Been very busy as of late and haven't had a shred of time to work on the engine. I have had time to do some brain storming and come up with ideas for the skills/cinematic system, but those ideas won't be implemented anytime soon. This update isn't completely void of value though. I've spent my night modifying the source code for ShiShi (thanks melonhead and Glain) to dump frame data.

2D Sprite Support
I think I've dumped what data I needed from ShiShi. I'll need to organize things and group the frames up for the various animations. This shouldn't be too time consuming as only core animations (dead, walk, attack, cast) will be supported for now.

Current Focuses

  • 2D Support - Create all necessary sprite animation set files for TYPE1, TYPE2 and MON files

  • Overworld Module - Tie stages to locations and allow random encounters.

  • Overworld Module - Create basic party system

  • Battle Preparation Module - This'll be a new module and allow the placement of units.

  • Battle Module - Continue bug hunting



Some sprite progress

3lric

Glad to see you're still going strong, keep up the good work man.
  • Modding version: PSX

HowDoGameDev

Thanks. I hope to keep on trucking.

Update
I've recently been more consistent on coding for this. Most of the work is related to fixing some bugs with animation code. For now, animation will remain simple, with things like "Do y on frame x of animation" not being supported until later. Only major issues left for animation are when two animations are assigned to a unit at the same time and applying actions to all members affected by an attack instead of the first target in the list.

Current Focuses

  • 2D Support - MON support mostly implemented. Need to test with a few other sprite sets.

  • Overworld Module - Locations - Currently designing the structure for this

  • Overworld Module - Party System - Nothing yet

  • Battle Preparation Module - Nada.

  • Battle Module - Bugs - Don't know of any that aren't animation bugs.

Cheetah

Keep at it! Getting momentum with a project can be tough.
Current Projects:

Atma

Wanted to pop in and say Great Work!
I've been thinking of building my own engine and have been going through tutorials learning how.  You're off to a great start.  How customizable is it going to be for others to use?  Will be able to make larger Sprites?  I guess keeping the square tile size is the standard, and if you want to make them seem smaller you could just make a larger map and zoom the camera out, but as for the sprites, will they be textures displaying on a plane (therefore customizable to whatever size texture is allowed) or is it a fixed image?
I hope my meaning isn't too confusing.  Just want to know how "pretty" a finished project can be.  I love FFT (even after 18+ years), but we need engines that can handle hi-res images and preferably 3D models.
My name is Atma... I am pure energy... and as ancient as the cosmos.

HowDoGameDev

Thanks for the kind words guys.

Content in the game, such as characters, stage layout, animations, events and skills are defined by various XML files with a special schema defined for each XML file type.

Sprite support for characters is still very fluid and is a work in progress. As it stands, you need a PNG sprite sheet and some familiarity with XML files. 2D characters are drawn using a method called billboarding, which I believe is what you described. There's a lot of tweaking left to do with this system before I can say what will and won't be possible.

For the engine as a whole, square movement tiles are all that I plan on supporting. Overworld support will also be limited to a map with predefined paths and locations as opposed to free range movement like earlier Final Fantasy games.

3D animated character models are currently supported. If you're looking for some AAA quality end result, I don't think I'm skilled enough to reach that.

As for my normal updating, I hope to have another up to date demo out before the weekend is through. Mostly just bug fixes.

Darkholme

Woo! Looks great. I like the addition of animated sprites, and I look forward to your future releases.

HowDoGameDev

February 16, 2016, 08:46:17 pm #54 Last Edit: February 17, 2016, 01:48:46 am by HowDoGameDev


Update
Modeling completed for a new unit. I've got my tanky powerhouse unit for the forest figured out. You can guess the game that inspired the unit and just like its inspiration it'll be a low mobility powerhouse. Rigging and animation still need to be completed for the mushroom man and the mantis. I plan on having the mushroom man be very tanky, with very low mobility, but with an obscene strength stat. Perhaps it'd be capable of OHKOing units outside of something like a knight. I'll experiment more later.

Demo
I'm working on this right now. The plan is to just have two battles available. Both battles will be identical with a squad of orange slimes against blue slimes. The difference will be in one, orange is controlled by the "Berserk" AI. In the other, orange is controlled by the player. I will have this up before EOD and will update this post with a link to the Itch.Io download.

Demo is live

The demo is missing quite a few features. There is no victory condition, there is no way to back out of a battle. Only one of the skills has any kind of visual effect, and even then it's primitive. Currently have not added skill descriptions.

Job: Slimin

  • Goo Bomb - Short Range Delayed AOE (DMG:5HP Cost:16MP)

  • Goo Burst - Instant AOE (DMG:4HP Cost: 5MP Heals Self:5HP)

  • Goo Heal - Single Target Resurrection (Heal:5HP Cost:3MP 5HP)

  • Goo Touch - Single Target Poison


Jumza

Woah! Great work on those models dude! It's so awesome that you're keeping at this :)
  • Modding version: PSX
Nyzer: Alma teleports out of her own possessed body.
Raijinili: Remember that you're telling a modding community that the game they love could use some fixing.

Guru

I've been meaning to post on this for a while and it's very impressive that your designing your own engine and it looks like it's coming along nicely. I'll check out your demo soon when I get back on my own computer, but proly not much feedback I can give ya besides basic stuff.

Your models look great by the way! Especially that mushroom lol

Definitely looking forward to seeing your project progress though!

HowDoGameDev

Any feedback is welcome, even/especially if it's just "it doesn't run" or "it runs badly".

The demo is now out. Outside of any reported bugfixes, I probably won't release anything too substantial until I finish the rigging, animations and texturing for the mushroom and mantis.

Again, be forewarned that the demo is extremely barebones. The core game is there, but skill effects, any kind of polish and various features simply aren't implemented. There's no victory condition yet, there's no backing out of a battle and no missing skills. The demo is meant more to just make sure it works for people and there isn't something glaring that I've missed. As always, if you have any questions, comments, suggestions, etc, feel free to post them.

Thanks again for all your support.

Jumza

Speaking of it not running... :P

When I try to run the executable, I get this:

OpenGL V.4.3
Data\HowDoGameDev\Textures\tex_pointer.png
Data\HowDoGameDev\Textures\tex_pointer.png
Data\HowDoGameDev\Textures\tex_pointer.png
Data\HowDoGameDev\Textures\tex_pointer.png
Data\HowDoGameDev\Textures\tex_pointer.png
Data\HowDoGameDev\Textures\tex_pointer.png
Loading Program: stagePreview
Loading Shader: stagePreview.f
Info: WARNING: 0:1: '' :  #version directive missing



Loading Shader: stagePreview.v
Info: WARNING: 0:1: '' :  #version directive missing
ERROR: 0:5: 'assign' :  cannot convert from 'attribute 4-component vector of float' to 'varying 2-component vector of float'



Fatal exception on startup: Shader failed: 0| WARNING: 0:1: '' :  #version directive missing
ERROR: 0:5: 'assign' :  cannot convert from 'attribute 4-component vector of float' to 'varying 2-component vector of float'


Stack:    at HowDoGameDevEngine.TwoD.ShaderManager.LoadShader(ShaderType shaderType, String id, String code) in c:\Users\phillip\Dropbox\HowDoGameDev\HowDoGameDevEngine\HowDoGameDevEngine\HowDoGameDevEngine\TwoD\ShaderManager.cs:line 42
   at HowDoGameDevEngine.TwoD.ShaderManager.LoadProgram(String id, String vertexId, String fragmentId, Boolean isVertAndFragFilePath) in c:\Users\phillip\Dropbox\HowDoGameDev\HowDoGameDevEngine\HowDoGameDevEngine\HowDoGameDevEngine\TwoD\ShaderManager.cs:line 59
   at TacticalRpg.MenuStates.StageSelectState.Activate() in c:\Users\phillip\Dropbox\HowDoGameDev\HowDoGameDevProjects\TacticalRpg\TacticalRpg\MenuStates\StageSelectState.cs:line 102
   at TacticalRpg.MainState.Activate() in c:\Users\phillip\Dropbox\HowDoGameDev\HowDoGameDevProjects\TacticalRpg\TacticalRpg\MainState.cs:line 54
   at HowDoGameDevEngine.Core.GameCore.OnLoad(EventArgs e) in c:\Users\phillip\Dropbox\HowDoGameDev\HowDoGameDevEngine\HowDoGameDevEngine\HowDoGameDevEngine\Core\GameCore.cs:line 94
   at OpenTK.GameWindow.Run(Double updates_per_second, Double frames_per_second)
   at OpenTK.GameWindow.Run()
   at TacticalRpg.Program.Main(String[] args) in c:\Users\phillip\Dropbox\HowDoGameDev\HowDoGameDevProjects\TacticalRpg\TacticalRpg\Program.cs:line 26
  • Modding version: PSX
Nyzer: Alma teleports out of her own possessed body.
Raijinili: Remember that you're telling a modding community that the game they love could use some fixing.

HowDoGameDev

February 17, 2016, 11:55:36 pm #59 Last Edit: February 20, 2016, 12:02:59 am by HowDoGameDev
And the fun begins! I should have known some graphics cards wouldn't like that I'm sloppy.

Open this file in notepad:
[gameDirectory]\Data\Shaders\stagePreview.v

Change line 5 from:
vTexCoord = gl_MultiTexCoord0
to
vTexCoord = gl_MultiTexCoord0.xy

Also, figured I'd edit this to add my latest video.