The Echidna Tribe
September 09, 2010, 08:25:28 AM *
Welcome, Guest. Please login or register.

Login with username, password and session length
News: You are welcome to share anything you know or made.
 
   Home   Help Search Login Register  
Pages: [1]
  Print  
Author Topic: The State of Agora's Legends  (Read 801 times)
JTE
Tribe Leader
Member of the Tribe
*
Posts: 111



WWW
« on: September 22, 2008, 12:21:11 PM »

Yeah, there hasn't been an update on it in a while. I did work on the engine a bit more, but completely neglected, broke, and partially removed the ability to play over a network in the process. As you "might as well play normal Cave Story" if you're gonna do it alone, there was simply no reason to release a new version.

(If you're interested, I did add the ability for objects to be solid, such that you could stand on them and ride them around and so on, but it broke bullet detection, so when you shoot objects, your shots think they hit a wall when they shouldn't, an annoying 90% of the time.)

I am currently in the process of completely rewriting the engine from scratch. I started this shortly after its one year anniversary. For now, I am referring to it as "AgL++" and have been almost completely silent that it exists at all.

I am doing this in hopes that I can better fulfill the features I initially promised for Agora's Legends, as the system is now almost entirely Lua-scripted with modular, generic-ized subsystems in the C++ backend, all controlled by it.

This includes both a software (SDL) and hardware (OpenGL) rendering system, closed source (FMOD) and open source (SDL_Mixer) sound system, and whatever else I will need to interchange throughout development. (I'm open to suggestions.) The systems can be completely replaced without the game scripting even being able to tell the difference. (I would have included only SDL_Mixer, but unfortunately I have been unable to play ORGs through it due to a lack of frequency/pitch modulation...)

We now have a more detailed in-game menu system, mod select, and options which are saved and loaded automaticly. No command line parameters exist or are required. (As of yet. Unfortunately, subsystems are currently only changed at compile time; Not at run time.)

The engine is split into a client and a server, where the client has access to everything and the server only has access to the networking subsystem. Akin to Garry's Mod, they execute "cl_init.lua" and "init.lua" respectively, which in turn include "shared.lua" and everything else that is needed, with files that are included in both the client and the server able to tell which it is running from by checking the "CLIENT" and "SERVER" boolean variables.

In singleplayer mode (including whatever introduction map your mod shows), both the client and server are running in seperate threads of the program at the same time, directly linked to eachother without any of the networking stuff initialized at all, and generally the Lua scripts won't be able to (nor need to) tell the difference.

The server loads and runs all of the TSC scripts and object AI. For the most part, the client merely displays it all and tries to predict what the server will say next, except in the case of client-side objects such as the water droplets, which the server obviously shouldn't have to keep track of or tell clients about.

So, for example, ideally you will see a Critter hop when you walk in range of it, then the server will send the message when it actually hopped, and the client will correct its position and movement by a few pixels mid-air, and again when the server says "The Critter has landed" and means it more literal than a code phrase.

In order to be multiplayer, a mod will need to be specificly modified for it, mostly in the case of bosses and other non-respawning entities that you might want players to fight either alone or together, and in the case of tiles that are scripted to change between being solid and otherwise.

The server will also check the MD5 of a client's files when they try to join, and send anything (which is required by a client) that doesn't match, including map data (sans tsc scripts) and client-side Lua files, which will all be stored in a seperate directory according to their MD5 and loaded instead. Thus, a dedicated server can be running a custom multiplayer-only mod which the clients can download and play on that server without necessarily being able to run it in singleplayer.

The main concern is for speed, because the scripts now do all of the binary file loading and control nearly every aspect of rendering; Whenever you enter a new map, the server has to load all of the resources from that map, including objects, and send the objects to the client which has entered the map, then the client has to load all the tiles and render them all to a single static texture, and so on... This process can lag quite a bit, especially running Lua-side, and I am uncertain of how to deal with this.

Hopefully it won't be such an issue. I will likely be posting a short Flash video of my progress soon.
« Last Edit: September 22, 2008, 12:57:13 PM by JTE » Logged


andwhyisit
Quiet Traveller
*
Posts: 26


« Reply #1 on: September 29, 2008, 03:01:22 PM »

Can't wait. Grin
Logged
JTE
Tribe Leader
Member of the Tribe
*
Posts: 111



WWW
« Reply #2 on: April 15, 2010, 10:44:07 PM »

I had to start all over again since my harddrive crashed shortly after that post, was discouraged, went off to do other things across various communies, and finally came back to continue to try again recently. The results may turn out differently.

Have a picture or two.



It is currently capable of loading TrueType fonts by name (i.e. putting "Courier New" actually loads up C:/Windows/Fonts/cour.ttf or whatever) as well as using pixel image fonts (obviously similar to what Cave Story Wii does, as this is what you see in the above screenshots) but it can't actually display TrueType fonts yet, I'm just adding in all the bindings for basic SDL drawing stuff now (I also have a working bkMoon background and other things you don't see, of course~)
Logged


JTE
Tribe Leader
Member of the Tribe
*
Posts: 111



WWW
« Reply #3 on: April 16, 2010, 06:40:39 PM »

Devised a compatible font:


I'm planning on making it use this for previous mods, while using the larger one (possibly at half scale?) for new stuff, or something like that.
Logged


JTE
Tribe Leader
Member of the Tribe
*
Posts: 111



WWW
« Reply #4 on: May 13, 2010, 07:18:41 PM »



It uses Wii graphics when available (toggleable in Config.lua), contains a text console (still uses the larger font seen earlier in the thread, scaled down to half size so plenty of text can fit), and I added two better fonts based on Visitor-BRK- (from Userbars), the ones seen so far have been Arcadepix (from DeviantArt's character select-style IDs)

The framerate seems reasonably stable, but still doesn't feel right to me... I also haven't tested if it runs terribly on computers significantly less awesome than mine.

All of the entities are properly animated, but I haven't written the server part of it (which would do most of the physics and change which animations are playing) yet. They do no thinking and are only spawned client-side... No flags checking or anything yet.
Logged


Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.11 | SMF © 2006-2009, Simple Machines LLC Valid XHTML 1.0! Valid CSS!