View Full Version : JEPE - Game Engine
BonzaiRob
May 12th, 2007, 03:37 PM
Not strictly speaking a game, btu I'll try to meet thread requirements anyway. I was going to post this on the forum above this but decided this was safer.
Site: http://jepe.ptreasures.net
Sourceforge: http://sourceforge. net/projects/jepe-engine
Latest Screenshot: http://wikidex.ptreasures.net/index.php/Image:Latest.png
Demo: http://jepe.ptreasures.net/demo.php
JEPE, as you'll see if you visit the site, is a game engine designed specifically for pokémon games. It's made with Java and XML, and some parts will be C# (map maker) and possibly Objective-C (depending on OS). It's still in the baby stages, so we're willing to hire any coders who know Java, or another language and are willing to learn Java.
JEPE will include all the basic pokémon functionality (battle, contests, plot, pokédex, and so on) as well as some more advanced stuff, such as trading online, an email-like system, battling over the internet, and eventually seeing other players walking around the overworld (this will be optional, of course).
There is also the possibility for global connectivity (between games). You should be able to trade pokémon between games, sent emails even further, perhaps even battle. Obviously there are hurdles to work out here, such as new types and the somewhat mysterious Light-type which is in most fangames but seldom with the same type relations. Some games might even allow players to export previous characters to new settings.
So far we are working in Advance generation styles, but we'll be adding weather and times of day to this. We'll be converting to DS gen when it's been out for a few months and we can work out the newer stuff.
We're trying to make it as easy as possible for clients to make games using the engine; all that will be needed for a basic game will be knowledge of XML, which by most coding standards isn't terribly difficult to learn. Admins will also have control of how extensively the online functionality works; if the client hosts the game's online functions on their own servers, they will lose connectivity with other JEPE games (at least, that how it's looking now).
The reason I've posted here is to try and drum up sone interested coders; with the 3/4 we have now we can get the engine done, sure, but not quickly. The more coders, the faster it'll go. So, if you're interested (see the requirements above for hiring) please let us know here or post in our forums. Thanks!
RMXPUser462
May 14th, 2007, 09:12 PM
honestly, i have to say that this is very impressive, i went to the site, and looked at the features, and a lot of it sounds promising, as long as this is one of the few projects that actually get completed ;)
either way, keep it up, i'd LOVE to see this finished :)
Alistair
May 14th, 2007, 10:22 PM
Very nice, but I have some things to ask.
1.) Are you replacing all of Remy's graphics with ripped ones from the games? (If so, stick with one style. If you want to use R/S/E as your main style, then convert FR/LG graphics to the style, and vice versa)
2.) Are the contests going to be R/S/E style or D/P style?
Also, one suggestion: you should also include some templates for Pokémon, items, attacks, etc.
LegosJedi
May 15th, 2007, 07:59 AM
I think it should be packaged with different resources. Like if you want to download one with D/P graphics, you get the D/P version.
Flame Claw
May 15th, 2007, 01:34 PM
I give my full hope to this project, as a newbie, I owe people like you.
BonzaiRob
May 19th, 2007, 07:01 PM
Thanks for all the positive feedback :D
1.) Are you replacing all of Remy's graphics with ripped ones from the games? (If so, stick with one style. If you want to use R/S/E as your main style, then convert FR/LG graphics to the style, and vice versa)
Well, the screenshot was from Pokémon Treasures, a game using the engine (actually most of us were coders at PT and we decided to join forces with the Pokémon Topaz guy to make this engine for both to use).
Anyway. I'd say it's not really up to me but I guess it is. We won't be replacing all of REMY's sprites, but using them sparingly; I dunno if you go to the PT forums but REMY posted versions of the maps we'd got so far and they looked a bit off, and not really pokémon-styled, when all of his sprites were put together. However, used sparingly, the really make the maps look fantastic.
Mixing styles doesn't seem like a problem to me personally, but I guess some people mind. With the JEPE system images are easily replaceable, I guess we'll just see how it goes.
2.) Are the contests going to be R/S/E style or D/P style?
Everything will be Advanced-generation style until at least the first release. 3D stuff is programming headache, so at the moment we're going to aim for what we can reasonably achieve. The other thing is that three out of our four coders live in Europe, which won't see DP till July (*shakes fist at NOE*).
Also, one suggestion: you should also include some templates for Pokémon, items, attacks, etc.
Yeah, good idea. I think all of Nintendo's pokémon will come with the developer package, then they can pick which ones they use or don't use within the route/trainer settings. Likewise -most- moves (although since most fangames have a Light-type Solarbeam might be out) and -most- items (probably common ones between FRLG and RSE).
I think it should be packaged with different resources. Like if you want to download one with D/P graphics, you get the D/P version.
DP is tricky because bits of it are in 3D (or so we've gathered from screenshots, see earlier fist-shaking). If it's possible to package with different resources I'm sure we will, but that won't be until after most of the engine is done.
Thanks again, I'll be happy to answer any questions (or I'll try to anyway).
Dudedude
May 19th, 2007, 09:31 PM
This programme sounds cool! Really!
I really wish you the best of luck!
Can you give us statistics on how far you are into the project?
Oh and one more thing:
Would it be possible to add a function that allows you to take the default characters sprite and using tools on the programme customise the trainer for each game? That would be cool as then we wont see the same sprites in every game.
BonzaiRob
May 20th, 2007, 07:22 AM
Thanks ^_^
Can you give us statistics on how far you are into the project?
Like I said, we're in the baby stages:
The overworld is a basic map-parser (it changes the XML files and images into maps you can walk around on). You can bump into things but not interact with them; wildgrass and other tile actions will come next, and then objects. Currently maps join by warping rather than walking across from one to the other.
There are plans for allowing pokémon to follow trainers in the overwordld, and work is being done on a caterpillar system, but that's only around 10%. Overworld itself, I'd say... 40%.
There's a small draft battle simulator, and the real one is being worked on currently, I'd say that's about 40% done (we've got to allow for new types and abilities). I'm not the one working on it, so don't hold me to that XD
No work on contests yet.
Some pokémon and moves have been put into XML templates for us to test - battle animations are controlled by XML. There's a working pokédex, but it needs some work, because it was written before this project. ~70%
No plot implementation yet, and only basic menu systems. Menus are easy though. Overall, I'd say this project is 20-30% done, but we're working on a curve; as more work gets done, the whole thing gets easier. We're on the hard part right now, which is writing the stuff from scratch.
Would it be possible to add a function that allows you to take the default characters sprite and using tools on the programme customise the trainer for each game?
If you mean like the default trainer for each game, definitely :D If you mean a trainer for each player, I would say probably, but there are some online hassles with that. But it's very likely.
Dudedude
May 20th, 2007, 08:25 AM
Wow...that would be a cool feature...
I wish you all the best with yr game!
its the most promising thing I have ever seen!
BonzaiRob
May 22nd, 2007, 01:31 PM
Thanks a lot :D
Big news! We will be releasing a demo soon. It will be pre-compiled for Windows, Mac and Linux systems. Nothing really fantastic, just so people can see what we're up to. We'll be doing that when we've done the animation for when the player walks on wild grass. Hopefully this will be within the month (by which I mean four weeks, not the rest of May XD)
Neo-Dragon
May 22nd, 2007, 01:42 PM
Looking foward to seeing it in action.
BonzaiRob
October 8th, 2007, 09:57 AM
We've hit a few setbacks, but JEPE is still moving forward:
Wildgrass now interacts with the player, and the update includes a template for other actiontiles.
Maps now join smoothly together.
However, the update also went a little backwards; we have yet to put back the tile fills and objectsets, so our maps are looking a little sparse.
The demo will not be compiled, but instead will come with a run script (we've been having troubles compiling but not running). That should be out, objectsets or not, as soon as I see the head coder online and get the scripts from him.
Linkies: (I've been having some trouble accessing PT's server, I hope if doesn't last :/)
ht tp:// wikidex.ptreasures.net/index.php/Image:Latest.png - Latest Screenshot
ht tp:// ptreasures.net/xfiles/bonzairob/PT-demo.swf - 10MB SWF video
Neo-Dragon
October 8th, 2007, 11:43 AM
Those links don't work for me.
BonzaiRob
October 8th, 2007, 01:58 PM
They should be working now :/ I think the server was down for maintenance. You need to remove the spaces of course.
Neo-Dragon
October 8th, 2007, 05:46 PM
Yeah its working now. Bloody hell, that video is really impressive! As I said i nan earlier post, I was looking foward to seeing it in action. I wasn't disapointed. Looks like alot of work has been done.
Good job.
Pkmn_knight
October 9th, 2007, 05:39 AM
Nice, Will it work on windows?
I will look forward to this engine.
I might be able to the game i have always wanted on it.
Alistair
October 9th, 2007, 06:24 AM
It should be multiplatform, because it is in Java (So it will work in Windows).
Anyway, going by what Neo-Dragon says, this is going to be good. Can't wait to see the video (Sorry, I have dial-up. I'll have to watch the video at the library).
Pkmn_knight
October 9th, 2007, 06:47 AM
Unlucky you.
The video was good.
My suggestion is to zoom it a little closer. For in game
BonzaiRob
October 9th, 2007, 07:07 AM
I'm glad the video went down so well :D
- It will definitely work in Windows. Windows, Mac, and Linux are our target OSes, and anyone who wants to compile it for another system is free to do so.
- We've discussed zooming in, there's a lot of differing opinions about it. I think we'll make it an option, if we can. Personally I'd rather the pixels were 1:1, but I agree that 640 x 480 is quite a big window size. Right now the window can be resized to whatever size the game maker wants, but we were also thinking of putting like a speed bar around the edge - a quick way to get to your team's info or your bag, for instance.
The goal is to be as flexible as possible of course, so all of the above could be implemented. I'm really glad so many people liked the video :D
The screenshot was taken after the video, so the lower route and city look more filled out now; we recently rewrote a bit to get maps to join one another instead of warping between them, and that stopped part of the object loading working. You can group objects into sets to make it easier to write the map code, which is in XML. Nice and easy for beginner coders, but potentially powerful if you know what you're doing.
Thanks again for the positive feedback :D
Pkmn_knight
October 9th, 2007, 10:03 AM
How will the battle system work in the engine.
Is it custmisable?
Also is it possible to add pokemon and their sprites?
BonzaiRob
October 9th, 2007, 10:56 AM
Definitely possible to add in custom pokémon and sprites. We're making this with fangames in mind :D
As for customising the battle engine itself...you'd probably need to know java. We'll probably give clients/users the choice between generation mechanics (like RBY, GSC, RSEFRLG and DP) but it depends on how difficult that is. New moves will definitely be included, new abilities probably will. Abilities are harder, because tehy usually effect the battle mechanics themselves.
One thing we had thought of was AI - there will be about 4 or 5 different levels of it. wild pokémon, inexperienced trainers, experienced trainers, E4 member, champion... something like that. The first few will be essentially random with one or two rules, then e4 members will know all type weaknesses and use items, and champion will be pretty tough.
Pivot
October 9th, 2007, 11:30 AM
Fellow Java users! I downloaded your SVN and compiled it up a few weeks ago. Is the battle demo supposed to crash?
Pkmn_knight
October 9th, 2007, 11:32 AM
Hi pivot,
Bonzai could you suggest a java guide so i can learn it.
Pivot
October 9th, 2007, 12:17 PM
I'm glad the video went down so well :D
- It will definitely work in Windows. Windows, Mac, and Linux are our target OSes, and anyone who wants to compile it for another system is free to do so.
- We've discussed zooming in, there's a lot of differing opinions about it. I think we'll make it an option, if we can. Personally I'd rather the pixels were 1:1, but I agree that 640 x 480 is quite a big window size. Right now the window can be resized to whatever size the game maker wants, but we were also thinking of putting like a speed bar around the edge - a quick way to get to your team's info or your bag, for instance.
The goal is to be as flexible as possible of course, so all of the above could be implemented. I'm really glad so many people liked the video :D
The screenshot was taken after the video, so the lower route and city look more filled out now; we recently rewrote a bit to get maps to join one another instead of warping between them, and that stopped part of the object loading working. You can group objects into sets to make it easier to write the map code, which is in XML. Nice and easy for beginner coders, but potentially powerful if you know what you're doing.
Thanks again for the positive feedback :D
Er.. couldn't you just release a JAR file for other platforms? Java doesn't need to be recompiled. I'm also wondering what you'll use to distribute. We're using Java Web Start for now.
Also, you should be able to implement a resizable game (and I don't mean doubling up your pixels) if you're using Swing/AWT. Just make your interface elements reposition when the window resizes. I'm not sure how you're implementing scrolling maps, so I can't comment on it. We have offsets that are added to the map X and Y; they're added and subtracted along with the player position.
We're using the Tiled mapping format, which is XML-wrapped, but uses Base64 for tile data. Nice and space-efficient. It also has an existing map editor, which is a definite plus, as well as the ability to export back into pure XML if needed.
BonzaiRob
October 9th, 2007, 12:35 PM
Pkmn_knight: Hm... Not sure about an online Java guide. It kind of depends what you're using. There are quite a few good ones if you just type 'java beginner' into Google.
Pivot: What program are you working on?
Yeah the battle engine sucks right now XD I've got some work converted from a text-only engine I was writing while Jepe was getting started, but we're having some fonts issues so it won't display :/
It's being a right bugger to compile at all (to a JAR anyway), so for out demo at least we're using OS-specific scripts.
Resizing is possible but not probable... I mean, for one thing we don't want people cheating and expanding the window to see ways out of mazes. But that's another issue. I'm sure we'll look into it, thanks :D Yes, we're working with x/y offset values for the maps too.
I dunno if you looked at our maps in XML when you got the SVN, but it works pretty well. We want to keep it readable for beginners for now, at least until we add a map-maker to it. I'm not at all familiar with Base64, but it looks like maps written in that would be pretty hard for a beginner at XML to just look down them to see which grass tile is in the wrong place. Exporting back and forward sounds a little tedious. Thanks for mentioning it though, I'll pass it along to the other guys.
DrCoolSanta
October 9th, 2007, 12:47 PM
BonzaiRob, I am developing an engine as well, so kinda like we are competitors now, mine is based on SDL, but i realize that all your game is made in XML which is interpreted, right? Isn't it gonna be so easy to destroy a game by just editing it so easily?
I am interested so please do reply.
Pivot
October 9th, 2007, 12:54 PM
Working on http://pokecommunity.com/showthread.php?t=105235 .
I suppose we're the 'non-engine' games. There's also POL, obviously, Ekaiyo, and PokeQuest.
EDIT: Well, as for what DrCoolSanta said, there will always be ways to cheat in single-player PC games. I'm doing a multiplayer thing, so we can handle logic at the server side. However, even if you use binary for maps, some technically proficient guy can just bring up a hex editor and go to town. This is just an engine, anyway, so you should be able to edit your own maps.
Zofride
October 9th, 2007, 04:51 PM
yea looking sweet, anymore info?
BonzaiRob
October 9th, 2007, 05:12 PM
DCS: yeah we're thinking about that. We'll probably have an online repository, and compare between on and offline data whens someone logs in, and flag it for a mod if there's a big difference (depending on time). Anything really unusual will just get banned from the server. Pivot is right though, there's really not much we can do.
Zofride: What would you like to know?
Zofride
October 18th, 2007, 11:30 AM
Yeah this looks allright, keep going.
Improfane
October 19th, 2007, 06:55 AM
This would be awesome as an applet game. You'd be able to play in a web browser, integrate it with game rankings and you're set.
My only question would be, why XML?
I would never use XML for maps, only things like NPCs and shops lists.
BonzaiRob
October 19th, 2007, 10:22 AM
We're going to integrate with web rankings too, there'll be a new trainer rating system. There's been some starting work on an applet system but nothing major yet.
XML: because it's really easy to work with.
Here's a standard tile (typed from memory, it's easy)
<tile image="grass2.png" x="15" y="14" />
then a fill:
<area fill="grass2.png" x="15" y="14" width="20" height="10" />
Wildgrass is a bit more complicated:
<actiontile class="WildGrass" baseImage="wildgrass1.png" animComingOver="WildgrassComingOverAnim.png:4,1:250:false" imageOnOver="wildgrass1OnOver.png" imageComingUnder="wildgrass1OnUnder.png" x="13" y="20" />
(class is the type of tile, base is what's normally there, then with the rest: either animation or image; coming, on, leaving or off; over or under the player.
You can also fill actiontiles.
And then objects:
<object image="tree.png" x="9" y="-2" recty="1" rectheight="2" />
recty (and rectx) are the offset of the collision rectangle, and the hight and width are obviously the height and width. So for that tree, I've offset the rect down one and made it smaller so it doesn't stick out the bottom.
You can also group objects into sets with relative x and y, fill objects in a linear way like the tiles, or fill objects in a pattern (like offsetting a row of trees).
Maps also set the maps around them (for smooth map movement) and the offset, so maps don't all have to be the same width and height to line up. Our overworld to-do list is currently warps, actions and NPCs, layering, and objects that only work if you walk into them from a certain direction.
To be honest, we were considering something else for NPC scripting at one point.. might have been Ruby. XML is ok for that, but it'd use a lot of if clauses to read a simple plot, and it can't send out instructions (like 'move on to the next plot point').
Improfane
October 19th, 2007, 11:19 AM
As long as you know what you're doing.
My tiledata looks more like this:
[6,,,,,,,,,,,,,,,,,,,8,,8,,,,,,,7,,,,,,,,,,,,,,,4,, ,
It doesn't need to be parsed in the same way.
It's just a single dimensional array.
BonzaiRob
October 21st, 2007, 07:05 PM
How do you allow for the player walking in front and behind things? Do you have another array specifying which tiles can be walked on and which not?
Improfane
October 21st, 2007, 07:37 PM
Yes. I talk about it in my outdated article here (http://improfane.pwp.blueyonder.co.uk/projects/ijp.html).
The most up to date article can be found at the fangaming wiki (http://fangaming.wikia.com/wiki/Improfane's_Javascript_Pokemon).
Perhaps I'll transfer some of my data to your wiki if if it uses the general free documentation license too.
BonzaiRob
October 22nd, 2007, 04:38 PM
It does, yeah, but don't do it if it's a chore :P
AJUST
October 26th, 2007, 07:57 AM
This sounds amazing, and is something i've always waited for. One thing I'd like to ask is if it's possible that you could store the graphics as image files, so they're easily customisable.
BonzaiRob
December 4th, 2007, 09:54 PM
After a delay due to schoolwork, it's finally time for [Demos!] (http://jepe.ptreasures.net/demo.php)
JEPE should start moving again soon.
This sounds amazing, and is something i've always waited for. One thing I'd like to ask is if it's possible that you could store the graphics as image files, so they're easily customisable.
Definitely.
The Dash
December 4th, 2007, 11:22 PM
Just an FYI dude, the program won't run until it is updated, you should upload the working version and give people details on updating via SVN.
Edit:
I like what I'm seeing man, this is all your own work? Very nice.
One bug I noticed is that when you press Shift and try to run, your Character will be stuck at running speed, I'm sure you're aware of this though.
Good work!
BonzaiRob
December 16th, 2007, 08:12 PM
It says as much in the Readme, we know :p As for updating it, this is the updated version. So it should run... we've been getting some errors on some Windows PCs though, still working on that.
EDIT We have a new demo up! It's at http://jepe.ptreasures.net/demo.php .
Hopefully this should sort out the problems that were stopping some Windows users from running it, and yu can now warp between maps (the lab in Maplewood and Peachblossom Woods are the two examples we currently have).
Coming next will probably action objects, such as houses, and more actiontiles (signposts, footprints, water). Not to mention a battle engine, which is doing strange things atm.
Zerro
January 2nd, 2008, 02:42 PM
Im here to offer my support in anyway I can. Just let me know how I can help.
FMY
February 16th, 2008, 09:50 PM
Ok, as the second founding member and lead programmer of JEPE, I decided to answer some questions too.
Er.. couldn't you just release a JAR file for other platforms? Java doesn't need to be recompiled. I'm also wondering what you'll use to distribute. We're using Java Web Start for now.
I don't really know why Bonzai's saying we've got compiling problems, I can't recall having them once. I did compile one demo for java 1.6 once, instead of 1.5, but that's about the biggest compiling problem I've ever got. We haven't made any jars for now, but simple bash scripts to start the game. In the future, executables for windows and jars for other platforms will be available, though I don't know if we'll be using Java Web Start since linux's got problems with that.
Also, you should be able to implement a resizable game (and I don't mean doubling up your pixels) if you're using Swing/AWT. Just make your interface elements reposition when the window resizes. I'm not sure how you're implementing scrolling maps, so I can't comment on it. We have offsets that are added to the map X and Y; they're added and subtracted along with the player position.
True, but we don't want that to happen. Currently you can specify the window width & height when starting the game however,
We're using the Tiled mapping format, which is XML-wrapped, but uses Base64 for tile data. Nice and space-efficient. It also has an existing map editor, which is a definite plus, as well as the ability to export back into pure XML if needed.
Now this is something interesting. I wish I'd heard of this before. I'd like to use this format too, but I don't think it's worth the effort. After all, there's still a lot missing in the editor, using this format would mean a big rewrite of the engine and some change to the format to add things like our actionTiles.
As for why we're using XML: listen to Bonzai. The first version used 2-dimensional arrays, but that's not something you can write by hand easily, so I thought XML would be better.
@Zerro: great! Thanks man. The best way to help us is to help us with writing the engine, or to submit ideas for file formats to manage the pokémon data, item data, move data and ability data. I'm currently working on finishing the mapping language now, so other people can start mapping, write editors and help me with the parser. If you'd like to write the specs for another file format, it would be nice to do it in a similar way. Unfinished documents can be found here: h ttp://jepe.ptreasures.net/documents/ (remove the space)
Callydude™
February 17th, 2008, 03:07 AM
Grave Digger!!What is it with newbs and not reading the rules.Don't revie old threads.it is really annoying.
Yuoaman
February 17th, 2008, 04:42 AM
Well in all fairness I don't really consider what he did gravedigging... He's a founder of the project answering some questions...
FMY
February 17th, 2008, 08:44 AM
I checked the last post's date and didn't think Januari 8th was very old, so I thought it was be OK to reply to the thread. I'm really sorry if I did something wrong.
BonzaiRob
March 2nd, 2008, 08:19 AM
I thought I'd just mention a few little updates that will be available soon:
http://wikidex.ptreasures.net/images/1/1d/Battle-overworld.png
Battle: Currently migrating from a static test to dynamic variables, so that instead of always playing as Sputteren against Maudi, you choose a starter and fights are triggered on the overworld.
Cutscenes: It will be possible to program cutscenes, game intros and similar movies all in XML. The next dmo will have a small intro.
Flickers: The game tended to flicker on slower processors, but that's been rectified now, and the game runs much smoother.
There will most likely be some other stuff before the next demo, depending on programming time; NPCs, actionObjects(houses, signs), and water are next on the list.
Wichu
March 2nd, 2008, 09:24 AM
Change the text colour in the data boxes to black.
And what did you do to Rattata? T_T
BonzaiRob
March 11th, 2008, 07:52 PM
Thought I'd replied to this :/ Oh well.
The text will be changed as I migrate it to dynamic variables. Getting it coded was more important :) It'l also get put in the right place >.>
And that's not Rattata (the text is based on a text-only predecessor to this). It's Maudi, which has slightly lower attack but higher speed.