I have been doing a lot of revision work on and off as of late… I haven’t been posting the updates, because I have been running into more errors and dead-ends then anything else. However, I did have several big break additions that work, and are helping to move the game way forward, and that much closer to an actual, playable release. I’m starting a class this fall that requires groups of students to work on a single project, and publish it at the end of the semester. I’m going to talk to my group, and try to convince them that this game should be our project, and if that’s the case, a 1.0 release will be on the android market by December (but remember, that’s IF they all agree we should do it… I don’t know why they would say “no”, who wouldn’t want to use a GAME as their project? We’ll see…). Anyways, here are the additions I have made to the client since last update:
Client:
- [Addition] – Player Corpses (fully working)
- [Addition] – NPC Spawn Routines (and I have started work on the NPC Editor Program)
- [Addition] – Encrypted Archives for the in-game artwork, this will make the game easier to update (Download a single file, then push it into the archive, rather than downloading a new archive or “set” of npcs/sprites/etc.)
- [Addition] – In-Game chat is almost fully working. There is still a few minuscule problems that need to be resolved.
- [Addition] – Map Names display on screen based on the type of map (safe maps, guild maps, attack maps, event maps, etc. all display in different colors. Currently there is no option to disable this, but it will be included shortly)
- [Addition] – Different debug variables can now be displayed on the screen, using the menu key you can enable/disable the different types of debug values for players/maps/chat/etc. the info that gets fed back is a bit sparse, but you can change it for yourself if you’re looking for different kinds of data output.
- [Optimization] – Changed a large amount of how the game thread handled and loaded the canvas and game surface, it loads about twice as fast now, and the lag on the inital loading of the map greatly decreased.
There are a ton more additions, and pieces of partial code (some of which aren’t working too well… uncomment at your own risk), but of course when i spend months between updating this blog, i tend to forget what has been added. The game is coming along quite nicely though.
For the testers. Using the ’1′ key while in-game will “kill” your player, using it again, will respawn you. When you’re dead, your player turns into a corpse, and cannot move. The part that delays player movement is client-side, however on the server, there will be a simple routine to check if they’re dead when they’re trying to move, if they are, they will be auto-banned for moving when the character is actually dead.
Server work has been extremely minimal. I’m going to focus on getting the player animations fully working, and start adding in the ability for players to start attacking NPCs. Initially no real interaction will occur, it’ll just be a “i pushed the button, and the guy on the screen actually swung his sword” kind of interaction, nothing too neat or fancy. Once all of the players animations are done (walking/attacking/fishing/etc.) I will begin setting up the basic client/server communication/authentication stuff, but for now it’s all about polishing up the client to work the way it’ll need to once the server does establish a connection to it.
The last note, is something I have been asked about by several people, and that’s the control scheme. Honestly, I’m not entirely sure how it will work for different devices. Right now, you are required to have a keyboard to interact with the game (beyond touching the screen and teleporting your player somewhere). What I think I will ultimately end up doing, is making the controls customizable by the user at the very beginning of the game, as part of the in-game tutorial as you get started. But it could be anything from an on-screen directional pad, to using the accelerometer, to WASD keys, or a directional pad, it’ll all be dependent on the end user, but hopefully I can find a way to work it out without too many issues.
Filed under: Applications, Endieko