The VG Resource
Gamedev Lounge 0010 - Printable Version

+- The VG Resource (https://www.vg-resource.com)
+-- Forum: Archive (https://www.vg-resource.com/forum-65.html)
+--- Forum: July 2014 Archive (https://www.vg-resource.com/forum-139.html)
+---- Forum: Creative Zone (https://www.vg-resource.com/forum-86.html)
+----- Forum: Games Development (https://www.vg-resource.com/forum-22.html)
+----- Thread: Gamedev Lounge 0010 (/thread-19334.html)

Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28


RE: Gamedev Lounge 0010 - TheShyGuy - 08-29-2013

It seems like a good path right now. What did you need help with right now? If you have any issues with how to pull off concepts, I can try to help. But I can't help out with the implementation because, well, I've never used E02 before sorry.


RE: Gamedev Lounge 0010 - IndyGo - 08-29-2013

(08-29-2013, 02:27 PM)TheShyGuy Wrote: It seems like a good path right now. What did you need help with right now? If you have any issues with how to pull off concepts, I can try to help. But I can't help out with the implementation because, well, I've never used E02 before sorry.

The scrolling itself (I think I linked where)

Don't worry, I can always hear them out, thanks for your offer!


RE: Gamedev Lounge 0010 - TheShyGuy - 08-29-2013

Oh I saw the link. I didn't see it as I was making that post though, which is why I striked it out. For scrolling, I'd make the camera scroll according to a timeline. When you pause the timeline, the scrolling pauses. Speed up the timeline, and so does the scrolling. If you wanted enemies to pop up at a specific time, just add it in at a certain point according to the ...eh timeline lol.

If you're wondering how to move everything, just multiply all the objects by the inverse( I think?) of the camera's transform matrix. (Or just negate the camera position). With c#/xna, I just send in a view matrix (the camera matrix) and the GPU moves everything for me. To make sure the ship doesn't get left behind, multiply the ship's world matrix by the camera's matrix (I think). - assuming the ship doesn't actually move forward and remains in the local bounds of the window.


RE: Gamedev Lounge 0010 - Phaze - 08-31-2013

Well, since Ridge's project is called off for now, I reckon I should try to make headway on other things since I really need to start being useful again...

I've been thinking of picking up a project I started years ago since it seems like something I'd enjoy working on again, since I did in the past at least. Not sure if I mentioned it before, but it's called "Project Mask" which is a bit of a tongue-in-cheek jab at a similar project started ages ago (2007-2008 iirc) by someone else that didn't even make it beyond the planning stage.

It's essentially a playable game of a Mario TCG that a friend made the ruleset and card design for. I originally did it in Java and made many mistakes as I worked on it (along with an annoying bug that caused instantiated Item objects to have a Use count of 0 which made them unusable) so I decided to scrap it. I'm going to re-do it in C++... well, the master server at least.

I've been rethinking the design the last couple of days. I originally divided the problem of defining cards with unique attributes down to database entries and small "modules" called Effects that I could add to Abilities, Card Attributes like spikey or firey chars and Badges etc.
Ultimately, this would've prevented the need to have a separate Object for every damn card in the game, which seems like bad design to me.

I made a dumb though; I coded Effects as Java Objects so I would've had to recompile and restart the master server every single time I wanted to add a new Effect to enable a new card to exist... say, I had some Bowser card variation that summoned weak minions for stat boosts and stuff, or a Yux that throws up Mini-Yux to defend itself; I'd need to make a generic Effect like SummonMinions that I could apply arguments to in order to add that functionality to Mask. I've decided to add in a scripting engine to Mask v2 in order to allow me to add stuff to the game without even needing to restart the master server; just add the Effect, bugtest it, add Bowser's information to the database and then add the new Bowser card to the store for people to get to add to their rosters!

I've also been thinking about event notification and observer-type design to approach this problem. I was originally thinking of making a generic EventHandler interface with a method or two to handle events and respond to them (like when a card is damaged by an attack; might want to block it if the damaged has a spiked ability and the attacker has no spike shield badge), but I'm beginning to think that might not work out; to this end I think I might go with a separate function or method for each unique type of event like CardDamaged or ItemUsed; Effects could then listen for these events and react accordingly. It feels inefficient if it just notifies every Effect in play for every event though, so I was thinking of having a way to subscribe for event notifications from the game session itself.

Only problem here though is that I'll either need to make it to you need to explicitly tell the game what events this Effect in particular listens for (which could introduce puzzling bugs if I forget to subscribe to an event this Effect listens for) or I'll need to find some way to automatically detect when an Effect implements one of the event listener functions in the Effect script. I don't know what terms to search that could help me research this avenue though, so I was wondering if some of the talented programmers here could help me out? Shy

Also while we're on the talk of scripting, I still don't know what language I should use for this. I'm stuck between Python and Lua currently; both seem very good in their own rights and I can't decide right now. I admit I have some more experience with Lua though, never used Python. Are there any other scripting languages one might recommend, too?


RE: Gamedev Lounge 0010 - TheShyGuy - 08-31-2013

That's alot to read lol. I'm gonna reply to the last paragraph now before I reply to your overall post.

I just started using Lua(Interface) with c#. It's very easy to embed into c# and I've heard into any other language(C++). Both Lua and python are quite easy to understand and learn so that shouldn't affect your decision. However, I realized that I don't need scripting abilities just yet for the small game I'm working on. I plan to only allow scripting as a way for the end user to mod the game characters through a very simple and limited interface. Just go with what your comfortable with and make sure you actually need it.


RE: Gamedev Lounge 0010 - Phaze - 08-31-2013

(08-31-2013, 04:13 PM)TheShyGuy Wrote: That's alot to read lol. I'm gonna reply to the last paragraph now before I reply to your overall post.

I just started using Lua(Interface) with c#. It's very easy to embed into c# and I've heard into any other language(C++). Both Lua and python are quite easy to understand and learn so that shouldn't affect your decision. However, I realized that I don't need scripting abilities just yet for the small game I'm working on. I plan to only allow scripting as a way for the end user to mod the game characters through a very simple and limited interface. Just go with what your comfortable with and make sure you actually need it.

Indeed! I'm surprised it got go long.

It does seem like Python and Lua have easy-to-use bindings for C++, which is handy. I see arguments for both languages which is why I've had trouble deciding. I might go for Lua, though.

It's kind of funny how several of the projects I want to work on would really benefit from scripting, but it's Mask and a Four Swords thing I want to work on that would benefit the most from scripting.


RE: Gamedev Lounge 0010 - TheShyGuy - 08-31-2013

(08-31-2013, 03:46 PM)Phaze Wrote: Well, since Ridge's project is called off for now, I reckon I should try to make headway on other things since I really need to start being useful again...

Quote:say, I had some Bowser card variation that summoned weak minions for stat boosts and stuff, or a Yux that [summons a] Mini-Yux to defend itself; I'd need to make a generic Effect like SummonMinions that I could apply arguments to in order to add that functionality to Mask.

I altered your quot Wrote:I was originally thinking of making a Handler interface with a method or two to handle and respond to effects and attacks(like when a card is damaged by an attack; might want to block it if the damaged has a spiked ability and the attacker has no spike shield badge)
TL;dr I'm aware I didn't reply to all your questions. I don't really have any good experience in the issues you have, but I figured that I would describe how I would tackle some issues.


RE: Gamedev Lounge 0010 - Phaze - 08-31-2013

I actually had a StatModifier Effect in Mask v1 that allowed me to alter a particular stat or outright negate it by setting the StatModifier to a value of 0 (since why would you apply a StatModifier of 0 otherwise?).

Ultimately though, yeah I intend to have individual Cards and Effects attempt to do something, which other Cards or Effects could themselves attempt to veto, though this could be veto'd in itself! Tongue
It's like how in M&L or Paper Mario, jumping on a spiked foe negates your attack and inflicts damage on you instead! But if you got a Spike Shield Badge or equivalent, that attempt at negation is in itself negated.

But yeah, the game (or rather, the server) is the ultimate authority on this, which should prevent some bugs or hacks as everything is serverside and not decided on by individual Objects or clients. I'm glad processing concerns aren't a thing since the game isn't realtime unlike, say, LoZ.
I'd need more players than I'd ever expect before that becomes a concern; I honestly don't expect much of any players, though Boo Mansion's one was surprisingly popular for a forum-only TCG, so who knows vSmilev

Ultimately though, my concern isn't really with Effect interaction and design (since I sorta tackled this in Mask v1 but do intend to improve it in v2 by specifying damage types and such) but more-so how to research or implement the ability to detect if a script has implemented or overridden a specific function for responding to events. I wonder if the Lua or Python docs have anything on this, but I feel it'd be much easier if I knew the right terms to search.


RE: Gamedev Lounge 0010 - IndyGo - 09-01-2013

@Comedius: Added the basic movement now (though needs bit polishment).

On the other hand one of my problems is the source material presentation (or more simply put what franchises could I use in this game). So far I have a quite a mishmash: I thought things like making Mario and then Arche Klein from Tales Of Phantasia playable (based on her GROOVY Arche-weapons)- stages also range from Mario->Sonic->Axelay->Golden Sun.

I guess I could manage under this but I feel like I could use any ideas on what kind of characters from games I could use so people playing this game wouldn't feel completely disoriented or confused on what this game's "theme" is about. Once I thought about obscure/cult classic VG characters with weapon sets from other SHMUPS (from their respective companies if possible, e.g Milon from Milon's Secret Castle/Doremi Fantasy with Super Star Soldier-weapon set) with their own twists, but I still don't want to throw out other characters not fit in that category for sake of that (like aforementioned Mario and Arche above since I'd find them fun to translate in a Gradius-game).

What do you guys think? This would quite help me out to realize the scope for this project or at least know what kind of a game it'll be in means of representation and tributing.


RE: Gamedev Lounge 0010 - TheShyGuy - 09-01-2013

When you said polishing, the first thing that I thought of was this:


------
Phaze,


Quote: to research or implement the ability to detect if a script has implemented or overridden a specific function for responding to events.

[In the context of LuaInteface, which I have minimal experience with]
Can't you just subscribe to an event within Lua?(I haven't done this in Python)
--
You could also enforce every script to contain a function that returns the value representing the overriden functions. You then read that in and parse it (shouldn't be a string).
--
Using LuaInterface, I can check globals. Maybe you can do something with globals and tables to check if a function exists?


RE: Gamedev Lounge 0010 - Phaze - 09-01-2013

(09-01-2013, 12:03 PM)TheShyGuy Wrote: shouldn't be a string

I know that much at least, much quicker to process bytes, shorts enums or ints (not to mention use of switch case) Tongue


RE: Gamedev Lounge 0010 - TheShyGuy - 09-01-2013

Heh lol. I was using strings as an identifier a while back and didn't think it was that big of a deal.....At one point during development, I noticed the game lagging for no good reason and tons of memory being created.. After a bit of searching, I found that the issue was well the use of strings to identify some objects =/.


RE: Gamedev Lounge 0010 - Phaze - 09-01-2013

(09-01-2013, 10:00 PM)TheShyGuy Wrote: Heh lol. I was using strings as an identifier a while back and didn't think it was that big of a deal.....At one point during development, I noticed the game lagging for no good reason and tons of memory being created.. After a bit of searching, I found that the issue was well the use of strings to identify some objects =/.

While it can be no big deal in small cases, it can quickly get out of control. I learned if I NEED an identifier string I can just point to it with a numeric index or something. I did something similar when I messed around with a letter sequence generator.


RE: Gamedev Lounge 0010 - IndyGo - 09-03-2013

I dunno if I should ask this (because perhaps I feel that I should post about my game thing when it's really having a groundwork done on it), but am I allowed to post a development topic in this board from what I have so far done on my Comedius-game, along with my ideas and goals?


RE: Gamedev Lounge 0010 - TheShyGuy - 09-03-2013

Sure, go ahead, I don't see a reason why not.

---

Edit:

Hey Phaze (and Ridge?), here are a few images of the progress on the tool.

https://www.dropbox.com/sh/ujnz733i3flofko/9ZiC_U9mM5/random2

They are from a few days ago.