Tuesday, December 29, 2009
quick post
Saturday, December 19, 2009
Progress
Monday, December 14, 2009
Court Week has finally arrived!
Tuesday, December 8, 2009
General FYI
Tuesday, November 10, 2009
The Universe is a Big Place ...
- 1 login server
- 1 chat server
- 1 AI server (?: possibly a cloud depending on the number of units it needs to control)
- 1 server for every X number of users
- 1 database server (?: possibly it's own separate cloud at a later point) to bind them all in darkness.
- (?: possibly) Star-map server. The only thing it does is path-finding as the star-map is fixed. Would be a behind-the-scenes server like the database-server.
- Each user is given a list of of user servers (#4) to poll for data, the system polls the list and uses the one with the fastest response time.
- The servers are re-polled every (x) minutes to help reduce server lag and overloading.
- Script will keep track of data return times and will force a re-polling in case of lag from a single server.
- Players are not given a starting world, they must find their own world to colonize (possible addition to 'autopilot' to a inhabitable planet.
- Players are given a copy of the the latest available copy of the compendium (all publicly available knowledge)
- You start as a colony of the faction you choose, not your own independent nation (this however does not mean you can't be attacked even as a noob).
- Technically speaking you can be a leach and never leave your colony and never perform any research at all. Factions share group knowledge with their members including leaches ... this however may make your leaders unhappy but that is up to the players themselves.
- New players will naturally migrate out towards the edge of the known galaxy.
- Their are fixed travel lines between stars (though it is possible later to circumvent these travel lines but it takes a much longer time)
- More than 1 player can inhabit the same planet ...
- That's right you can start on the same planet as your bestest buddie in the whole world.
- You don't have to colonize a planet, you can choose to build a space colony instead. Though this idea does have strategic advantages it comes with it's own obvious set of problems such as expense and habitation limitations.
- Shared Knowledge: Just via interaction with other players, trade ... ect. Knowledge is shared with each other in the form of bonus points, the time it takes to research something is reduced.
Monday, November 9, 2009
Moving, ugh!
Saturday, November 7, 2009
General Updates
Thursday, September 10, 2009
Moving On!
Sunday, September 6, 2009
FINALLLY! making progress
Friday, August 28, 2009
Life Get's in the way ...
Monday, May 11, 2009
General Updates
Nearly got my garden out! If you have a back-yard and you haven't planted a garden yet then get off your lazy ass and get out their and do it! I've started to late myself to get anything going from seed this year so we cheated and got some plants at Lowes. Not to badly priced either and some already have some little buds on them. Couple of years back when tomatoes got to $4 a lb i was really thankfull that mine only cost me about $8-$10 total for all the 'maters i could eat! If you do plant tomatoes make sure you plant some marigolds (a flower) with them, they are a natural pest deturent for tomatoes. Planting some mint nearby (pots?) will also help to deture insects from getting into your veggies. So not only do i get all the veggies i can eat, they're chemical free. ;-)
Tuesday, April 14, 2009
Matthew's Miracle Diet
On the plus side i think i've lost about 20 lbs now and just getting into my 3rd week working their. Not that i was really over weight but was starting to put on some pudgy marriage weight. :p
Tuesday, March 24, 2009
Perfectionism
Perfectionism, in psychology, is a belief that perfection can and should be attained. In its pathological form, perfectionism is a belief that work or output that is anything less than perfect is unacceptable. At such levels, this is considered an unhealthy belief, and psychologists typically refer to such individuals as maladaptive perfectionists.
Making good progress on getting the map to flow correctly though! What i've done is created 9 arrays that hold the basic map data. each of these arrays draws to a seperate canvas that is 2048x1024 ... i do this in order to speed processing. While i *could* try and make that canvas buffer larger that in itself would run into more problems, mainly having to go through map reloads. the 3x3 buffer allows me to reload and redraw areas off-screen and reduce the amount of time that the useri has to spend reloading data.
Also, the 3x3 array is dynamic ... meaning that the data as position 1,1 may not always be what's in the top, left corner. I simply have a pseudo-pointer (javascript doesn't do real pointers), that points to the current top-left of the drawing area. since the width and height of the array are fixed this allows me to draw the overflow sections by using 1st grade math ... p1+3 (right side), p1+1 (bottom), p1+4 (buttom right). Very simple!
The biggest trick is having to fit the pieces together smoothly. Because the minimap is click-able and draggable this changes a lot of the reference data. The good thing is that once i get this working, the same math applies to square tile-based layouts as it does to isometric tile based layouts.
And thus no code to show off today, perhaps soon though but again i only allow myself to work on this for a little while each week as bills come first. bleh!
Once i get this done, build some simple animation routines and get the basic collision working I will start making some mini-games in order to test the engine out properly. Not sure what i'm going to do first, i'm thinking perhaps a canvas-based tower defense game.
Friday, March 20, 2009
Guilds in RPG's
The whole point being in order to even make these expansions of what guild can do, you also have to expand the content available to them. The only real problem with any of this is the fact that it expands the possibility of cheaters and scammers, but the only real way to deal with that is with the help and support of your player base.
In addition to guild and town buildings/housing their should be ways to organize this ... for both the players and the guild owners. Here is a breakdown of my ideas ...
MMORPG Guild Structures ...
- Nation -> County -> Town
To form a Nation you have to have at least 2 Counties.
To form a County you have to have at least 2 Towns - Society -> Faction -> Circle
Societies are secret clans, they may not form cities (that would defeat the "secret" part).
Members of a circle cannot see members of other circles, only the officers and leaders can see this amount of structure.
A society themselves may be public and have an office so that they may give off a certain appearence. The factions and circles however, and their intentions, always remain secret. For example your Women's Society has a faction named the Black Widow's that is dedicated to only killing male players. - Clan -> Guild -> Squad
"Guild" is the starting point, they may break their members into squads if they wish. Multipul guilds can form a clan. You can be a Member of multipul guilds (i.e.: Your a member of Knights of Ni and the Gardening guild.)
Guilds are usually based in towns that they help to support, but they are not required (obviously unless the town you build your 'base' in requires your help).
Guilds can build bases in multipul towns ... for example Your Guild, The Brotherhood of Bronze has their main office built in Noviscus but a minor recruitment type office in nearly every other major town.
This is definatly the early stages of this idea and up for change. But i think you see the basic idea that I am getting too ... more possibilities for players and stop trying to limit them. They do all of this anyways!!! If you impose a limit of 15 players per guild, all they do is make multipul guilds. Impliment it into the game, keep their possibilities open and just let them have fun with it.
Wednesday, March 18, 2009
Expansion on Housing
I have played way too many mmorpg's in my life, quite a few of them in their early release and beta stages. A great many of them totally flop on their ideas for housing, perhaps due to a lack of understanding of the wants and needs of their player base? Or problems due to lack of available land, or allowing them to build houses pretty much anywhere. I remember one 3D FPS types mmorpg that some friends and I played, we put our house on top of a gigantic tree.
- Guild Housing.
Almost all players join a guild and as such they should be allowed special housing just for them! Any housing built for the guild is owned by the guild itself, not any one player. This is to prevent characters who go inactive but control the resources of the guild. - Hiring Workers.
Not all players will want to spend the time leveling up construction and building skills just to add a single room to their house. You should be able to hire other players to build your house for you! Not only does this encourage a few to work these skills, but it opens up a whole new market for the players beyond just crafting a billion arrows to sell. - Hiring NPC's.
In order to get people from spamming the town square with their goods they are wanting to sell you will have the ability to hire a merchant to sell them for you. This obviously is not a new idea for any of those who have played Ultima Online. In addition you can hire protection for your house, expecially seeing how you can be attacked by "monsters". - Traps and Magical devices.
Certain sensitive rooms you may wish to put traps on if you are part of a PvP town. Their will of course be areas that you can store your hard-earned items but anything stored your house withing this type of town is up for grabs by an expert thief. You may have to feed and pay an NPC guard untill the day they die, but an Iron Golem never sleeps and doesn't care for gold. - To Catch A Thief ...
In order to prevent a massive uprising of theives their has to be a way for players to bring them to justic. And as such your traps and NPC guards always have a chance to capture the player roaming around your home. This can lead to prison time or even public hangings, it is entirely up to the town. I'm sure their will have to be quite a bit of tweaking work in order to get it to run smoothly, but it is an idea that has been mentioned repeatedly across many different mmorpg's but has never been taken seriously. - Environmental Changes ...
Due to the fact that the map is saved on the server and delivered dynamicly you will be able to make some changes to the map itself. Things such as planting trees, cutting trees down that are in your way, leveling the ground out and more. Say for example your land area borders a mountain / cliff area. You do have the option to begin a tunnel and continue your town inside of the mountain. The downside, to that is if your town get's taken over by mob's, they also take over your new dunegon. - Unbuildable Areas ...
Their are none, but some areas may require a great deal more work to ... pacify .. than others. Not to mention if you just start throwing up a house just anywhere you may find the kings guards on your doorstep demanding their taxes and other fees. Or perhaps you build your house within a PvP town's area without their permission ... they now have the right to take the taxes out of your hide. - Underwater Cities ...
Yes, when i said you should be able to build anywhere ... with the right technology and skills ... you can build anywhere!
-M
Tuesday, March 17, 2009
Goal for Lychgate
Anyways, my primary goal for lychgate is PvE, not PvP. Almost all games that i've played concentrate more on PvP than anything else (except for graphics). Me, i'd rather have more of a real story-line and some real character buildup / skill base.
My ideas for remedying this? ...
- Super large maps / play area.
The Biggest problem with this idea, beyond the obvious server-storage issues, is movement time. This is easy to remedy though by allowing a more intriquite teleport and gateing system. Also allowing players to build transportation networks (roads, ships, ect.) to increase travel speed. - Housing Decay.
Yes, in real life if you don't properly maintain your house it will fall right on top of your head! Players who are inactive or just never visit their house will find that have decayed. While they will not dissapear entirely for quite some time, other players can take over the property and fix it up! - Housing Prices.
Prices for player housing in most of these games are way too cheap. Plus if you are within the bounderies of a kingdom you will have taxes to pay if the current king (emporer, mayor, whatever) deems it so. To offset these prices a rental system should be put in place as well. - PvE (Player vs Environment)
Built your house right on top of a goblin village? You may find the goblins attacking your new house then! If you build a house / town / anything, you will have to defend it, this is not a human-friendly environment untill you make it so. - PvP (Player vs Player)
If you are part of a town that participates in PvP then your house and town can be attacked by other players as well as "monsters". - Dynamic Construction
You are not limited to a prefabricated anything. Build up your house one room at a time or all at once. Don't forget to put a roof on it if you have wood floors though as that will increase the decay rate of your home. When you purchase rights to build within a kingdom, you actualy purchase a piece of land to build on, so if you wish you can build a stone wall around your entire lot.
Friday, March 13, 2009
Trying to slow down how much i was playing Atlantica ... way too addictive! Had a few friends of mine play it and I have barely seen them online since ... lol. Pretty much confirms to me that your game doesn't have to be exactly like 'WoW' in order to be popular. I already knew this but it is always nice to have real confrimation.
Ok, going to work on this some more but i doubt i have more to post quickly. If you want to look at the source code just go to the link above and view-source.
Wednesday, March 11, 2009
ASP IP Ban/deny list from .htaccess file.
Granted I did not search for very long for for those familiar with microsoft servers know that trying to use an .htaccess file with IIS just doesn't work. If you have direct access to the server then you can follow microsofts directions on how to do it, but alas not everyone can do that. So I decided to write a little include script to correct this issue.
So far the only thing in the .htaccess file that it pays attention too is 'deny from' and 'allow from', and it will work across an ip range ... example: 192.168.1.1/100
Just rename the .htaccess file that you want to use to htaccess.txt, save this script into a file that you can include in your asp pages. Very simple. If are not a developer and want this on your site then please visit my site and I will get it up their for you. If you are a developer than feel free to use this script! You cannot charge for the script itself though, or include this script in a larger package that you charge for without my express permission.
If there's something relating to .htaccess files that you want added to this script then please let me know and I will update it and repost it here.
If your looking for a list of ip addresses then visithttp://www.wizcrafts.net/htaccess-blocklists.html they have .htaccess files for several known spamming and scamming places, including ip's for several web-proxies to preven them from back-dooring into your site.
none yet requested.
::: SOURCE CODE ::: 11MAR2009
Friday, March 6, 2009
New javascript/canvas splash page
Not going to go through all of this, basicly i had to get the 3 points of the triangle(s) and run them through a barycentric calculation. If you want an explination on how that math works then visit these two sites ...
Now here's the main piece of code that has been added ...
If you read the last blog entry you should also notice that it doesn't draw the spikes from an image any longer, now javascript renders them to the canvas through a simple object prototype called 'Spikes' ...
yes, draw is a function not a string ... remember EVAL is EVIL, we don't use it. If you haven't used javascript prototypes before then you definatly will have to read up on them as i progress through this, or if you want to mess with anything in the google api.
Ok, i need a break and am going to go blow something up.
Thursday, March 5, 2009
AI Game Theory
My thoughts on how I want the default AI to work in my lychgate engine:
- Multiple levels of AI intelligence. Deer, and rabbits will not react as well as goblins, who will not react as well as dragons. I don't believe this should go by the default rule and just make them much stronger just to simulate this. Not going to do any JavaScript neural net programming ... i think that would possible be overkill. Instead the more creatures with more intelligence should have their own databases for battles with the characters marking successful and unsuccessful attack methods. Very simple, not real complicated programming and it has been proven to work in games such as computer chess.
- Animal Intelligence. Be default animals fear sentient creatures that attack them so as such herbivore and omnivore animals should by default make an attempt to run away. This will be a bit more difficult due to the battle style that I have chosen to go with but I'm sure with some trial and error in the alpha tests we can get this to work very well. Carnivores though, especially pack animals, may decide that attacking is their best choice so should run the simplest version of rule #1.
- Sub-Human. Goblins, and other related creatures will be classified as sub-human, and use the second simplest version of rule #1. They will though always travel in packs but may not always rush to help their friends due to their higher fear factor.
- Human. While it will never be close to real human intelligence, but through building it's own database of battle techniques to use against varying foes I believe we can simulate it very well. These and the other more intelligent foes always give more experience as well. The game should not be about the grind, every other game concentrates on that, i'm looking for more social interaction and group activities not just "hey, i killed 10,500 orcs and completed my noobie quest!"
- Above-Human. Better usage of the database, goal will be to be the big-blue of rpg battles. Yes, i have this problem where i dream to big. :p But if your going to dream that's the only way to do it.
- God-Like. Not only will it try to always choose the best usage of the database, they can influence all other creatures and can randomly be taken-over by the Admins! The rest of the god-like creatures will remain a secret ... for now.
Ok, that's enough ranting, some or all of these ideas may change depending on how will they work in actual implimentation ... but it's just me making this game at the moment and as such i'm the only one to bounce ideas off myself. :p
Wednesday, March 4, 2009
Busy Busy Busy
I've never had any luck with any of these job-posting sites though, only people who call me from them is the recruiters. Yes I'm still very much a geek and believe more and more things will migrate to the internet. But even in all it's glory it still can't beat the personal touch of actually meeting someone face-to-face when handing them a resume and shaking their hand.
Perhaps if my job interview this afternoon goes well then I'll be able to have more time to concentrate on my game engine. Otherwise my wife and I will end up homeless soon. Neither of us have any family close by, but one of our friends in an online game we play invited us to stay with them if we do get our butts kicked out the door.
Been playing a Korean made game called Atlantica though for some stress relief. It's pretty fun, reminds me of final fantasy a bit. The battles are somewhat more tactical than most mmo's I've played, but their pay is based off selling items and then calling it free. Which it is free, no real limitations and you don't have to buy anything. But you can also get to level 95+ in a couple weeks if you don't have a life at all. Seemed like it was a great concept but they got side tracked along the way.
Well got to get to work, will post my interview results tomorrow and spell check this later.
-edit: spelling must be getting better, only FF only spotted one real error. :-)
Wednesday, February 25, 2009
New Logo using JavaScript and Canvas
Been working on a new logo for my nemesisstar.com website. Well not changing the logo really, just adding a bit of flair to it without using flash. If you want to take a look at it you can find it here. Again, don't bother trying to look at it using IE, as the internet explorer browser does not yet support canvas, and no official work that i know of that IE8 will support it either.
Break down of how the script is working ...
Ok, for speed reasons I'm using 3 canvas's, not just one. All the base objects are wrapped in a div tag, the first 'img' tag inside the div will be used for those browsers that do not support the canvas object. For non-game stuff I have not reason not to provide some sort of backwards-compatibility support ... at very least so the search engines can still browse the site. the very last. I will throw everything into a nice style sheet and make it pretty a bit later.
Setup of the cavas objects ...
Because I'm fitting the canvas objects to the screen width and height i need to adjust these values so that they are transformed to their appropriate 000px values. Otherwise, on some browsers at least, everything will have to pass through the scale routines and for some reason things really start to slow down.
Any graphics you use need to be preloaded, or if you are loading them as you need them in your script you need to verify that they are actually loaded before you use them ...
The animation script ...
The ctxBG is the middle layer which is holding the static logo. It is not moving at all in this portion of the script so their is no reason to keep redrawing it. Plus by sandwiching it between the three layers we can simulate the 3d effect.
angCos[curAng] and angSin[curAng] ...
Very simple simple if you have worked on any sort of 3d application. It takes more time to access Math.sin than it does an array. So we pre-calculate any sin or cos value that we might need and put them into these two arrays. As for the rest of the formula it is a very simple circle drawing routine from basic math class ...
The fbuff variable simply stands for "flip buffer" which tells the screen whether to draw to the foreground or the background based on the 'y' (vertical) value. After that we do the actual drawing ...
The canvas.save() and canvas.restore() do exactly like the sound, they save the current state of the canvas, allow us to do our manipulations, then restore it. canvas.translate(x,y) moves the origin point so that when we call the canvas.rotate(radian) function it rotates around the correct point and not the top of the screen (0,0). canvas.drawImage(img,x,y) does exactly like it sounds ... draw's the little spike to the screen .. finally.
Above all that in the code is this piece which simply adjusts the vertcale scale value and re-centers the origin. The coupled with the buffer flipping is what gives us our pseudo-3d look without having to bother with full 3d code which is slow at best with the current canvas object. Full 3d support is to be added to the canvas object later, but they will have to get past the arguments about the standards first. Myself if i wanted to add full 3D i would just use Unity 3D even though I don't like plug-ins.
Speed of the canvas rendering ...
I've done everything that I've been able to think of to make this run as fast as possible and have a great more that I do wish to add. So far Chrome seems to run it the fastest for me by far and the few people I've had test it have said that a higher end video card does help in the rendering speed. The only thing I don't like is with the black on white it seems a bit shaky in the rendering. I could probably add in 2 more buffers and then flip the visibility after they are rendered to remove that but I'm not positive how that will work out.
Future additions ...
- Add interactivity so the user can play with the logo
* double-click top and it will spin top-to-bottom
* double-click side and it will spin left-to-right
* drag the spikes to increase or decrease the spinning speed.
* be able to click and select a spike
* add a highlight-glow to currently selected spike/icon - Add icons to the spikes
- Make the center image change according to the icon clicked on.
- See if i can get more speed by removing the canvas.scale() and converting the spikes to vector drawings instead of images.
- Convert the entire script into an animation object/class.
Will be using this same type of animation in the nemesis-star game so that i can add space-station and such around planets. When being used on a smaller scale like that the animation speed should drastically increase.
Tuesday, February 24, 2009
MMORPG Stories
Can you name any mmorpg that has an active story line that compels the player to play along with the story, not just walk around and randomly kill mobs, and skill?
Me, I could not think of one single game that did that. I asked a few of my friends and one of them suggested a new game in beta called Jumpgate in which he is participating in the beta. he said.
I also think the monsters/mobs themselves need a great deal more AI than what they have. How hard could it possibly be to script some action in the town and not just have everyone standing in one spot all day and night!
Also, I'm guessing no game designer has ever went deer hunting ... they don't freaking run to attack you! they run away! And a group of Orcs which would supposedly be sentient, i mean they built houses however crude they might be. But you can walk up and attack one, and the others don't run to help their buddy? yeah right. Yes adding some more realism would make it more difficult for the players, but in turn it would also make it a lot less "ok, only 57 more demons and I'll level up again", and a lot more "hey guys, let's go raid the Orc village together before they attack us!".
And in concerns with the deer, unless your stealth can surpass the alertness of a deer (not likely w/o magic), your not going to kill one with your "+10 vorpal sword of deer-slaying". Use tracking to find it, and a bow or some sort of traps to kill it (traps for smaller game). Or go out with friends, some will be sent around to flush the deer or other game to you. This would not be that difficult to program and I'm not sure why nobody really has yet. Just too much "kill, gain exp, kill, gain exp" and not enough game anymore.
I'll have a lot more comments on these ideas later. ;-) Feel free to post your ideas and comments about this!
Tuesday, February 17, 2009
Another jobless day
Anyways, did a bit more work last night on the canvas engine. Seems like Firebug has changed since I've lasted worked with the profile in the console. It no longer lists all the functions that are called like the old version. The old version would even list what classes were accessed, how often, and how much time it took. But alas I will have to just make due with it, just seems like their development progress took a step back. I have the mini map scrolling properly across the mm buffer, just need to get it updating the main map area fluidly.
if (notDrawing){drawDetails(obj, x, y, tx, ty)}
Ok, time to start wandering around Raleigh dropping off resumes to the local web business's. I was told by a recruiter that this looks desperate ... but then again he drives a Ferrari so I'm pretty sure that he hasn't tried to find a job in quite some time, especially in this economy.
Friday, February 13, 2009
Lychgate Roadmap
Lychgate - the JavaScript Game Engine
This is a portion of a Google document that I have created to assist me in my programming activities. I believe the first full game I will design this engine for will be for my Nemesis Star game. By doing this it will include support for ground, air and space activities across multiple planets. Nemesis Star however encompasses both RTS and RPG elements which should make the design of the basic engine a bit trickier but overall I think it would be a better final product for it.
I will be revising this as I go and put forth a more detailed road-map to a full fledged game, but at the current moment getting these few things done would allow me to open up some closed alpha testing and tweak the game till it works properly. I do have a list started for requests from people to be part of the closed alpha, but if you wish to participate you must make this request before it begins.
A few requirements I have laid down for myself ...
Classes
- Classes will be broken into groups based on what they do.
- These groups should work as independantly from each other as possible.
- Allow dynamic loading and unloading of these classes and scripts.
- Each group type will have basic get/put elements that are required for interaction with that group.
(this all allows multiple types of the same group.) - Cannot load more than one group type at the same time.
- Graphic animation strips should be small, 1 animation type/direction per file. This means multiple files however it does give a big speed processing. I've tested this quite a bit and the larger the file the more the slowdown when clipping from it.
- The graphics library must support dynamic buffering. This would be the dynamic creating/deletion of canvas objects where needed. Back-buffering is a very old trick but it does very much apply when using the canvas tag to render scenes and animations. By pre-rendering certain things you get a great improvement in performance.
- Dynamic loading and unloading of graphics. The map object will be designed to support a nearly infinite amount of different tile terrains. Because the base graphics are loaded into via smaller files the map engine itself can select what terrain tiles that it wishes to load. This allows the coder to put just what they want into the map from any terrain library that they wish.
- A simple web-based graphics editor. Not really so much for creating graphics as for clipping, arranging animations and such. Can make the graphics editor more complicated later.
- Web-based map editor. Their is none, map edits would be made by the GM/Owner in real time in the game world itself. Why create two version of the same thing.
The to do list ...
A Super-Basic RPG
Basic Client Side Graphics Development
Create the Draw Class
This class is responsible for all the drawing
Create the Sprite Class
This is an extension of the ‘Draw’ class as it gives it the ability to use tiny buffers to perform animations and movement.
Create the Timer Class
This is what controls the Sprite Class and Draw class in order to insure that everything runs at the same speed across all supported types of computer systems.
Map-Drawing Layers
Ground Layer
Object Layer
Mini-map
Character Map
Create the Panel Class, this utilizes the Draw class to display the panel information. But all the information itself is contained within this class. The “Overall Display” is a series of Panels so that they are more easily moved and migrated as required.
Primary Information Panel
Overall Generic Display Setup
Basic Server Side Database
Tables
MOB
Map
Player
NPC
Scripts
Encapsulation
Write DB Access scripts, ultimately should support SQL and postGreSQL, (access support would be useless to include, so don’t!)
Methods … (Check W3C? or another Open Source Solution first?)
Open
Get
Set
Properties
Basic Server Side Data Server
Basic AJAX setup, XML
Challenge-Pass.( Insure login through every connection via Sessions and Privacy Protection.)
XML Packages …
Note: Packages should ultimately be scriptable though an Admin section. The packages will be XML Templates with pre-programmed variables and scripting methods. This is done to ease later programming and increase the overall flexibility of the server.
MAP Package
Player Package
MOB Package
NPC Package
Script Package
Graphics Package
Navigating the Map
Now we add the ability to move around. Phase 1.1 is where we test our ability to draw the map. This is in all encapsulated in a draw class.
Create the MOB class, “Mobile Object”
Create the Player Class
Add ability for the player to move
Add animations
Create the NPC Class
This first instance is super generic and only displays the NPC as a static object. We give it the ability to move later in Phase 1.06.
Create the Collision Class
An extension of the Map Class but does no drawing.
Prevents the player from moving into certain area’s
Controls trigger areas
Create the Script Class
The script class load/unload scripts
Is what the Collision class activates, specifically triggers.
Our first battle
Loading from remote server
Battle-map
Players
The first battle this will be a single player
Enemies
Initial Monster will be the standard ole Green Slime. After that it will be a combination of slimes and/or goblins.
NPC’s
The NPC will be the second part to this phase, buy a mercenary from the shop and it will participate in the battle with you.
Initial Drawing Setup
Map
Mini-Map
Battle Panel Overlay
Pre-load and Pre-draw Common Animations for speed
Initiative Phase
Determine type of battle (turn-based or real-time)
Set Initial Initiative Matrix
Battle Sequence
Using Initiative Matrix begin the battle
When in turn-based mode everyone goes one-at a time.
When in real-time mode everyone goes at the same time.
Keep repeating until one team is victorious
Ending Sequence
Give out items and experience to winners if the player is victorious.
Cleanup
Close and destroy all object and classes created in this battle. Each object is stored in an object array called ‘trashcan’ when it is created.
Draw player onto map
Interacting with NPC’s
Simple NPC Shop
The NPC should already be drawn by this time.
Setup NPC animations
Setup shop window
Setup shop XML Package. Refer to 1.3.3.a for details on this
Retrieve Data Package from server for specific NPC