Primary tabs

Comments by User

Thursday, August 1, 2013 - 03:02

Just did some small core optimizations - the engine can handle absurdly large maps now (I tried with 500x500 and it was rendering fine.) All those tiles were static - but there typically won't be many dynamic tiles in the world map.

 

Anyway, I'm implementing an inventory system for game characters now - along with that will naturally come along a looting and trading system for the RPG Extention.

 

Hopefully next week I can implement basic networking (really, the way the engine is structured right now, I don't think it will be much of a challange at all to inherit a few classes and implement a networked solution.) The engine partitions the CPU time into sectors and only renders visible sectors. All entities and dynamic tiles have their logic updated regardless to how visible they are though - it's only static entities\tiles (which is I'd say at least 85% of the map) that actually benifit from this optimization. Since nearly all tiles on a typical map are static, this is quite good.

Wednesday, July 31, 2013 - 14:44

If you're interested, what I think would be really useful is something like this:

A sprite application that does something similar to what you've done except also allows you to divide rows into animations. Then it would spit out an easily parsable file, like XML (or something even simpler) containing the following information for each frame:

Four numbers describing a rectangle that defines where on the sprite sheet that frame is.

The name of the animation that frame belongs to (and the order - or sput out the frames in order)

This is a simple tool I haven't really gotten around to making. But it would make my life much much easier when importing sprite sheets from OGA.

Wednesday, July 31, 2013 - 14:39

For anyone interested, I also maintain a blog on GameJolt where I plan to eventually publish this game:

 

http://gamejolt.com/profile/jeremywildsmith/blog/84041/

 

It is the only Java games platform I have found that supports Achievments and provides Cloud Storage. Any other ones floating out there that people are aware of?

 

Armor games is Flash only... hmm.

Wednesday, July 31, 2013 - 14:22

My screen recorder video did an outstanding job at absolutely wrecking the image quality of a playthrough video, so I instead decided I would just post screen-shots of the engine's progress.

 

Wednesday, July 31, 2013 - 01:19

Thanks for the input Charlie. I don't know where I stand on making this open-source. It is definitely something I would like to do and something I have considered - but I think it would be bold of me to make such a remark this early in development. So I'll leave it at: I hope so eventually. Until then, I know there are tons more powerful open-sourced Java isometric engines out there.

Here is where the game engine & game is so far, I intend on writing a few more quests - I want gameplay to be about an hour before I release the game.

http://www.youtube.com/watch?v=sjMPOPcpZzU

 

Some notable core changes:

While I said I wouldn't be making any more changes to the engine I am afraid today was forced to make a few:

- Moved the playSound script bridge routine from Actor to Entity. It didn't make sense to introduce this routine to objects only after they inherited Actor and I figured it made more sense to allow entities to also omit sounds.

- Introduced a leave() script bridge command in the entity object. Entity objects can now remove themselves from the scene via script. This is useful for when you want an entity to walk off of the map and then disappear.

 

Tuesday, July 30, 2013 - 06:27

I'm working on a little story I can implement into the engine to show-off and hopefully get some people for a different project that will use the same engine.

In that story, there are a couple scenes outside, I just quickly whipped this outside scene up (I am a horrible mapper\artist) using http://opengameart.org/sites/default/files/grassland_tiles.png in my map editor

Here is how it looks in-game:

 

Monday, July 29, 2013 - 21:26

Lots of progress since the last update - wow. Just been too busy to post the progress reports inbetween builds. I would psot a running applet, but at this stage, the process of obfuscating and protecting code has become much more complex and I will only put myself through it when I need to.

Lots of exicting stuff now. I just finished the four main components to the game\engine and have hopefully (for now at least) written the final lines of code for all of the them in terms of their core code.

I have implements the Character Dialog Editor, the Map Editor, completed the Core of the engine, and completed the RPG Game extention to the engine. This means from here on out, I am just editing map files\script files\other resource files to get the game I want running on the engine (you may see a resource request on OGA coming up soon.)

(The mouse effect isn't me, it is the video recorder.)

http://www.youtube.com/watch?v=0uwxNC3ZEaw

Throughout this video you will see all except for the Dialog editor which started throwing some exceptions last minute and I couldn't include into the video. Essentially though, the dialog editor allows you to create complex dialog paths and have parcticular events raised when an option is chosen, or when a route taken etc in the dialog. The NPC can then invoke the dialog starting at different entry-points based upon internal script logic (like how far is this character on quest X)

You can see in the scripts how quests are accessed etc (in the video).

In the video you see the RPG Extention - there is nothing stopping you from writing an RTS extention as well. Quests are not an intrinsic property of the engine, and they are implemented via the RPG Extention with just a few classes.

 

TLDR: Just watch the video here http://www.youtube.com/watch?v=0uwxNC3ZEaw and pelase leave some feedback - even if it is just full of complaints!

Friday, July 26, 2013 - 09:44

Just wanted to pop in and say it looks really great so far. I laughed at the dialog when I read "you are a sad, sad indivudal if you think..."

Thursday, July 25, 2013 - 09:59

JevaEngine seperates the dialog files from the entity scripts - and quest 'states' from dialog. This allows the creation of long, complex and branching dialog without creating messy scripts and IMO makes the game much more maintainable. The scripts on worry about what they need to, and the dialog does the same. Further, quests are seperated from dialog as well, and instead are driven by the scripted entities which also drive the dialog. Here is how it works:

First, an array of DialogNodes are created and stored in a document. Some DialogNodes are not connected to the same tree - tree roots act as entry-points for Dialog (entry points can be selected based by the entity script after it has polled a the user's quest state.)

Each DialogNode consits of Answers, each Answer links to another DialogNode or terminates the branch(end of dialog.) Each answer can also issue a DialogEvent (but doesn't have to.) when the DialogNode raises a DialogEvent, the driving script (can be an NPC, or any other entity) is informed that this event was raied by the dialog and has a chance to reroute the dialog, let it continue on its path, or just change some internal state (such as quest progress)

I'll grab my script files in a momment.

Here (I'm not using XML until I establish an editor):http://pastebin.com/ZHxpsN1u

Keeping track of the indexes is a pain in the ass, but eventually you'll wirte an editor for it.

Using this structure you can implement things like one's morality level while they traverse through their dialog tree and make individual decisions in dialog choice. For example, you could have two answers to a dialognode, one could be "Goodbye Friend" and the other "Get away sicko!" - the two would link to the same next dialog node (though they don't have to...) but they could raise different commands, one to raise morality, the other to decrease it.

 

I have been using this model and its incredibly flexible for me, and my scripts are very portable & easy to maintain.

Thursday, July 25, 2013 - 09:38

I did a bunch of work on it yesterday (and today), here is the progress report for yesterday - I'll post the one for today a little later...

 

Today, I implemented several things I am now very excited about. I am nearly ready to start working on the game and not just the game engine now!

Here are some features I added:

  • Implemented quest & quest task system. Quests are polled & issued to the player via Map Startup scripts (a new feature I added) and NPC Scripts.
  • NPCs are fully scriptable, their logic is defined in three individual files. The first is the js (javascript) script file which allows one to program logic such as dialog routing\driving & quest polling\tasking. Basic things like battle logic can also be described there. This file is linked to by a jnpc (jeva npc) file which describes basic attributes of the NPC such as View Distance, Field Of View, Visual Acuity, Visability Factor etc... This jnpc file also links to a jdf (Jeva dialog file) which describes different routes in dialog one can take when talking to a NPC.
  • Quests are now described in individual jqf (Jeva Quest File). Quests can contain several tasks - and are directed by the logic which issues\drives the quests (i.e, NPC, who can select its dialog via its jsf by polling the status of quests.)
  • Improved UI Element TextArea, now supports formatting characters such as \n (newline)

 

Below is a short video I created demonstrating this (what you see in terms of quest and NPC interactions is fully scriptable):

http://www.screenr.com/3zCH

Pages