tag:blogger.com,1999:blog-91372316502501702452024-03-13T21:55:20.142-07:00Creating A Digital WorldLyslehttp://www.blogger.com/profile/17124733255448699345noreply@blogger.comBlogger25125tag:blogger.com,1999:blog-9137231650250170245.post-63850325242287213822015-02-17T01:39:00.003-08:002015-02-17T01:43:31.731-08:00<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"><tbody>
<tr><td style="text-align: center;"><img border="0" src="http://2.bp.blogspot.com/-JfPrO4wice0/VOMI6ar-mJI/AAAAAAAAANY/aVhsCcnJGAo/s320/bounding-box-limbs.png" height="178" style="margin-left: auto; margin-right: auto;" width="200" /></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Limb bounding box and rotation points</td></tr>
</tbody></table>
<span style="clear: right; float: right; font-family: Helvetica Neue, Arial, Helvetica, sans-serif; margin-bottom: 1em; margin-left: 1em;"></span><br />
<b><span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">What I've been up to</span></b><br />
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">I've been playing as usual. One of my favorite projects that ended too soon is <a href="http://www.potter-bo.com/">www.potter-bo.com</a>, my harry potter site where you can create a character, play mini games, multiplayer quidditch, earn clothes, broomsticks, and wands, and sell them to other players. All of these things are still functioning, but it was never flushed out to the extent I would have liked. I w</span><span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">ish I could continue the site, but since its all written in AS3, its hard to convince myself that its the right thing to do. AS3, the programming language of adobe flash, is not only inefficient but its quickly dying out. It's time to say good-bye.</span><br />
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"><br /></span>
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">The real problem is: there is no real successor to AS3. Of course, everyone wants to talk about HTML5, but HTML5 is steeped so deep into javascript and it completely lacks object orientation. Since the code needed to do a basic game is much more complex and lengthy than in AS3, that last point is especially bad. Until HTML5 and object oriented programming come together, I don't think I am interested in learning.</span><br />
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"><br /></span>
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">One of the strangest phenomenon I have noticed: HTML5 is slow. As slow, if not slower than AS3. Of course, nothing is slower than adobe flash. That is one of the cardinal rules of the internet. So saying that HTML5 could be worse is nothing short of blasphemy. But one only needs to browse the HTML5 art engines and HTML5 game tutorials to realize that its difficult if not impossible to make a complex game in HTML5 with a steady frame rate.</span><br />
<div class="separator" style="clear: both; text-align: center;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif; margin-left: 1em; margin-right: 1em;"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif; margin-left: 1em; margin-right: 1em;"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif; margin-left: 1em; margin-right: 1em;"><img border="0" src="http://3.bp.blogspot.com/-cz2AS4F-_VY/VOMI6l75ncI/AAAAAAAAANc/7hyTSGdk8VE/s320/character-samples.png" height="73" width="400" /></span></div>
<br />
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">So for now I will continue with C# and my interest in programming for Windows 8. So for fun, I am putting together my classic brooms online characters into C# Monogame. I haven't gotten very far, but I would like to do it right as I might use them for multiple projects in the future.</span><br />
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"><br /></span>
<a href="http://3.bp.blogspot.com/-4SxmpawMt3w/VOMJQA82NVI/AAAAAAAAANo/aZCTu5NnY6M/s1600/truth.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"><img border="0" src="http://3.bp.blogspot.com/-4SxmpawMt3w/VOMJQA82NVI/AAAAAAAAANo/aZCTu5NnY6M/s320/truth.png" /></span></a><br />
<b><span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">Star Sky. Sorta</span></b><br />
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">I am still actively working on Star Sky: Liberty... An open RPG version of my Windows 8 arcade shooter. But little progress there. You can collect credits from destroying ships, venturing further away from the single station to come across more difficult enemies, then spend the credits on items, ships, weapons, and weapon attachments you purchase at the station. The cadvet? I still haven't gotten the game to successfully save, nor have I got the co-op mode to work. So it isn't going to be published anytime soon.</span><br />
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"><br /></span>
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">No, in reality I have barely worked on star sky.</span><br />
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"><br /></span>
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">I have done some non-game projects though. Luckily, programming is not my day job as I am not very good at it. For my day job, I am an eye doctor. One of the things I've noticed while doing upgrades to my office is that certain things are oddly expensive. For instance, the Visual Acuity chart that you read off of to measure how good your vision is... Those cost at least $550, with some up to $1500. This is the part where I take a cheap surface RT laptop and combine it with a cheap bluetooth keyboard to create my own chart for a fraction of the price.</span><br />
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"><br /></span>
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">And I am selling it online: <a href="http://www.simpleacuity.com/">www.simpleacuity.com</a></span><br />
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"><br /></span>
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">Lss</span>Lyslehttp://www.blogger.com/profile/17124733255448699345noreply@blogger.com0tag:blogger.com,1999:blog-9137231650250170245.post-27054021206985875522014-09-16T03:54:00.000-07:002014-09-16T03:55:28.219-07:00Joyrider: Credits & Ship Upgrades<div class="separator" style="clear: both; text-align: center;"><a href="http://1.bp.blogspot.com/-bzHB_to5nK8/VBgVR1cjHMI/AAAAAAAAANA/OjsgozB0HJ8/s1600/joyrider-update1-ss1.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" src="http://1.bp.blogspot.com/-bzHB_to5nK8/VBgVR1cjHMI/AAAAAAAAANA/OjsgozB0HJ8/s200/joyrider-update1-ss1.png" /></a></div>
<p>Take a look at the attached picture. There you will find the ultimate minimalist RPG experience: Items that can be replaced with stronger items that are bought and sold.
<p>Joyrider is getting its first update soon, and that screenshot is from it.
<p>I am adding a 'docked at space station' screen between every 3 levels in the game. This will allow you to relax a moment, regain your shields, and spend the in-game credits you have earned. Exactly what you'll be spending your credits on is not set in stone yet, but I already have multiple ships and weapons in the shop and hope to add more.
<p>These 'station' visits are actually a step towards making this game an RPG. Of course, after removing the linear progression 'levels' from the game, it will need to be renamed and published under a different name. For now though, we can incorporate some RPG elements into an otherwise arcade-y game.
<p>LssLyslehttp://www.blogger.com/profile/17124733255448699345noreply@blogger.com0tag:blogger.com,1999:blog-9137231650250170245.post-66116046317811799252014-09-14T01:33:00.000-07:002014-09-14T10:12:44.578-07:00Star Sky: Joyrider<P>I just submitted my first game to the Windows 8 store for approval. I call it joyrider.
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-8_uXs7S0vpg/VBVSSePlhYI/AAAAAAAAAMg/AMzHetX-2cY/s1600/ss1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://1.bp.blogspot.com/-8_uXs7S0vpg/VBVSSePlhYI/AAAAAAAAAMg/AMzHetX-2cY/s200/ss1.png" /></a>
<a href="http://3.bp.blogspot.com/-z9s9nBXXMbU/VBVSS5a7kWI/AAAAAAAAAMo/TqeRIKISh1E/s1600/ss3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://3.bp.blogspot.com/-z9s9nBXXMbU/VBVSS5a7kWI/AAAAAAAAAMo/TqeRIKISh1E/s200/ss3.png" /></a>
<P>
<a href="http://3.bp.blogspot.com/-alhK36YqN3Q/VBVSS74CMLI/AAAAAAAAAMk/ErUBXajJsJ8/s1600/ss4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://3.bp.blogspot.com/-alhK36YqN3Q/VBVSS74CMLI/AAAAAAAAAMk/ErUBXajJsJ8/s200/ss4.png" /></a></div>
<P><font size=+2><center><a href=http://apps.microsoft.com/windows/en-us/app/joyrider/50d60c96-cbe8-4e25-ba53-a1ef53cb59b5>Click Here to Get it From Windows Store</a></center></font>
<P>In this game, the player is given a small ship and is put up against 12 levels of other ships; sometimes fighting 10-20 enemy ships at a time. The game objectives unfolded as I experimented with asteroid-like space physics and a flexible ship/weapon system that could be used in a future RPG-esqe game. This game is a simple arcade shoot em up though, it certainly is not a 'digital world' game.
<P>Joyrider is written in C# using the MonoGame module. I am finding it to be very enjoyable programming in C#, once I passed some original hurdles. It now comes as naturally to me as Actionscript3.
<P><a href=http://www.monogame.net/>http://www.monogame.net/</a>
<P>Joyrider is a return to my multiplayer space shooter, <a href=http://lysle.net/ss/>Star Sky</a>, but with a very key component missing... The multiplayer. I am using Joyrider to learn C#, but it has turned out really good, so I went ahead and submitted it for publishing to the Windows store.
<P>LssLyslehttp://www.blogger.com/profile/17124733255448699345noreply@blogger.com0tag:blogger.com,1999:blog-9137231650250170245.post-10973796958248884222014-07-12T23:33:00.001-07:002014-07-12T23:33:12.035-07:00Design Concepts for Future Projects<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-H_Z_AhzY0zA/U8InwxwpTqI/AAAAAAAAAK8/ibIZJ05La7Q/s1600/Design+File+Thumbnail.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" src="http://4.bp.blogspot.com/-H_Z_AhzY0zA/U8InwxwpTqI/AAAAAAAAAK8/ibIZJ05La7Q/s320/Design+File+Thumbnail.png" /></a></div>
I often want to make another game. I see it as an inevitability.
<br />
<br />
It is such a beautiful and natural thing to do, to delve into designing a game. To fantasize about making every detail just as I would like. It is euphoric. I hope it is something everyone gets to enjoy.
<br />
<br />
I can just take out a pen and paper and start drawing diagrams, tables, imagery, writing scripts for dialog, story, characters, notes for music, etc. I can lose myself for hours or days in such a feat. I just hope with all my heart I can make the ideas into substance someday.
<br />
<br />
Until then,
<br />
<br />
LssLyslehttp://www.blogger.com/profile/17124733255448699345noreply@blogger.com0tag:blogger.com,1999:blog-9137231650250170245.post-34263178317468503022013-02-28T00:42:00.000-08:002014-07-12T23:34:47.460-07:00Illegal Cyber Squatting by GoDaddy.comI have been working on bringing all my sites back up the last week. Mostly this means getting my game servers up which have been offline for some time since I host these servers at my own home. I came across another problem though... I would like to describe it to you to help you not make the same mistake in the future and to ask you to please not support a website called godaddy.com.
<P>My website, Xanthians Online, was registered to a certain domain name for the last 5-10 years. The domain name was extremely obscure and only made sense to those who were interested in a niche set of fantasy books about 'Xanth' written by Piers Anthony. You probably have not heard of these books. I ran a fansite since I was in 5th grade for fans of the series to come together and discuss the books. It was a great site, my very first website ever.
<P>Last year, I missed the emails warning me to renew my domain for this website, and I lost the domain. Immediately after losing the domain, a company called GoDaddy bought the domain, even though they do not have any explicit reason to. This is referred to as cyber squatting and is it illegal. They buy the website that was accidentally put up for sale and then try to sell it back to the original owners for as much as they think they can get. They price it so that paying them is less expensive than suing them, because what they are doing is illegal.
<P>Out of principle, I started filing a complaint with the organization that handles these cases before they go to court; the WIPO. After filling out strange complicated legal documents (incorrectly filling them out, I am sure) for about an hour, I tried to submit my complaint to the WIPO. It said that it failed due to me failing the 'human verification' at the bottom. The verification was extremely simple and I absolutely typed it in correctly, so there must be something wrong with the WIPO website. Sadly, I could not reload the page without losing an hours work filling in boxes here and there and typing my story. You can see the ridiculous, broken WIPO website here:
<p><center><a href=http://www.wipo.int/amc/en/domains/filing/udrp/eudrpcomplaint.jsp>http://www.wipo.int/amc/en/domains/filing/udrp/eudrpcomplaint.jsp</a></center>
<P>I will not try to file the complaint because I know it will lead nowhere. Reading about it online, these organizations are in the pocket of large corporate entities like godaddy.com and the only real way to settle this without giving godaddy money is through the US court system which could cost thousands of dollars. I will be moving my website to xanthonline.net. Please do not support godaddy.com in any way.
<P>LssLyslehttp://www.blogger.com/profile/17124733255448699345noreply@blogger.com0tag:blogger.com,1999:blog-9137231650250170245.post-15126024923626993862012-09-22T00:54:00.001-07:002012-09-23T12:28:28.371-07:00AppleIt has been a few years since I got a phone and its time to upgrade. I've been watching the new phones get announced the last few months and I have been excitedly waiting for a cool Windows Phone 8 device. WP8 is a gorgeous platform. So far we have seen a few good phones that utilize WP8, but all are heavy and bulky with large screens. /Sigh. I really like my 3.7" Droid screen. I don't want to 'upgrade' to something that is larger and weighs more. The Lumia 920 looks awesome. I love its features, I love its look. I would recommend it to others. Yet I am almost certain when I hold it in my hand next month I will hate its size. That leaves me with the iPhone 5. Oh Apple, how many hours has your terrible iTunes program wasted of my time? How many iPods have broke shortly after purchase, to be returned broken to me after warranty replacement? 4. That is how many. I have had bad experiences with Apple, their excessive marketing annoys me, their culture of greed annoys me, and the way people look up to Steve Jobs (a rather bad person) annoys me.
<br><br>That being said, I recently bought some Apple stock and will probably buy an iPhone 5 this holiday season (to my possible regret). Why?
<br><br><b>Stock</b>
<br>Their stock resembles a bubble, but even when it bursts the company will continue making phones, tablets, TV boxes, and computers. The company will survive. How much longer the bubble has left is hard to say; it might never pop as long as things continue the way they are now.
<br><br><b>Phones</b>
<br>With phones, Apple doesn't have to innovate anymore. It is the standard. This quarter, innovations from other phones just seem like gimmicks. Features like NFC, image stabilization and wireless charging are just not important enough to people and won't be until Apple joins in. The Nokia Lumia 920 is awesome, but Apple controls the playing field, and this years rules are that we don't need new features all we need is a nice slim phone.
<br><br>Apples competitors don't seem to be able to compete directly with the iphone. There is no AAA 3.7"-4.3" phones coming this season except the 4.3" HTC phone, which is much larger and heavier than Apples phone. Apple has obviously invested in making their phones small and light while competitors fail to keep up and/or choose to add bulk with new features. But Apple tells consumers what features (if any) are important, so Apple will continue to dominate the phone market during the next 2-3 years until competitors compress their devices.
<br><br><b>Intel vs ARM</b>
<br>Right now Intel is on the path to building smaller, faster chips than ARM by around 2014. ARM is investing in the next thing in microprocessing. Intel is investing in the thing after the next thing. When this happens, if Apple is not an early adapter of these new chips, there will be a huge opportunity for Apple to lose control of the market. Or maybe intel will never make a comeback, but that is unlikely.
<br><br><b>Tablets</b>
<br>Meanwhile in the tablet market, iOS as is is no match for Windows RT as a productivity and consumption platform, and I am interested to see where that goes. It is so hard to tell though, because Microsoft has so many hurdles to pass (start screen pushback on W8, lack of RT apps, lack of tablet branding, new interface people don't want to learn) despite having an amazing product. In the end the branding could make this a huge struggle for Microsoft. Everyone thinks apple 'just works'. Even if RT works better, there is always a learning curve when switching to new devices and almost everyone has used iOS and gets it now.
<br><br><b>TV</b>
<br>Finally, Apple is likely to release a new iTV product and if they can wrestle good deals with cable networks the way they have dominated deals with the music industry and wireless carriers (Carriers give Apple a $400 subsidy for every phone, compared with just $250-$300 given to other smartphones) then iTV could be really popular. Right now there are some good TV devices out, but none that are truely polished and well known. There is a lot of opportunity. It is prime for Apples strategy of placing their brand on an emerging market and pushing their excellent marketing until their brand is synonymous with that market. I wish Microsoft would re-brand xbox more completely into a media center and add more cable network deals to their xbox service and they could prevent iTV from being Apples next big product, but they probably will not. Xbox is a great media center right now for TVs but it is still seen as a gaming console. The next media centers (iTV) will be seen as a REPLACEMENT to CABLE.
<br><br>What does this have to do with programming multiplayer RPGs? Not much. I do think that the future of gaming relies heavily on Windows RT tablets and these TV/media center boxes though. As for my game, I have not had time to work on it over the summer.
<br><br>LssLyslehttp://www.blogger.com/profile/17124733255448699345noreply@blogger.com0tag:blogger.com,1999:blog-9137231650250170245.post-53569723538456311172012-02-21T05:57:00.000-08:002012-02-21T05:58:03.013-08:00Commentary on Zelda Series<P>In this post, I want to draw some attention to an article by Tevis Thompson about the Zelda series or the evolution of RPGs then its worth the read or skim:
<P><center><font size=+2><a href=http://tevisthompson.com/saving-zelda/>http://tevisthompson.com/saving-zelda/</a></font></center>
<P>If you can't tell yet, WORG is meant to be an open world action RPG, which is the sort of game I like, which is why I mostly agree with this article.
<P>I do not especially agree that Zelda should be 'harder', because the difficulty of modern games has been dictated by the modern player: We want easy games. I am annoyed by it too sometimes, but it is something we have to come to terms with for big titles like Zelda.
<P>But what I got most out of his article was from this paragraph:
<TABLE cellpadding=5 cellspacing=5 bgcolor=black><TR><TD>Modern Zeldas are translations of their 2D forbearers; they’ve never been fundamentally reconceived in 3D from the ground up. In choosing what elements made Zelda fundamentally Zelda, Nintendo chose poorly. They took the puzzles instead of the action, the conventions instead of the world, the items instead of the spirit.</TABLE>
<P>You may feel insulted by his article because in your opinion, the fundemental Zelda is puzzles. Telon notes, Zelda I and II were devoid of puzzles. This is where a contention may created between old and new fans of the series, because older Zelda fans like myself see Zelda fundementally as an action open-world RPG with endless secrets and interests... But that just isn't the direction the series went.
<P>Although Zelda is doing well financially still, I agree with the article that it would be doing better and be a higher quality game if it had stuck to its original fundementals. But that is difficult to tell...
<P>Also arguably the technology/design saavy just was not there to make OoT more action centric like we see in action RPG's today... Which in my opinion explains the direction that Zelda has taken as a 'puzzle' and 'fetch quest' game.
<P>LssLyslehttp://www.blogger.com/profile/17124733255448699345noreply@blogger.com0tag:blogger.com,1999:blog-9137231650250170245.post-67136090184325478372012-01-30T11:30:00.000-08:002012-01-30T11:33:27.799-08:00How Not to Create a WorldYesterday I was playing on my favorite surivival minecraft server, and a new player to the server got killed twice in a row by another player. His kill logs popped up first, and then the complaining started.
<P><TABLE CELLPADDING=5 CELLSPACING=5 BGCOLOR=#111111><TR><TD BGCOLOR=#000000>
<B>"Why didn't I see the PKer on dynmap?? He isn't on the map."</B>
<BR>"Because he is a donator, he can hide himself from the map"
<BR><B>"That's not fair he is giving $$ to be more powerful"</B>
<BR>"If you don't think its fair then you should donate too and he won't be able to find you to kill you"
<BR>"He is contibuting to the server, he deserves it"
</TABLE>
<P>About 3-4 people on the server put in their 2 cents, telling the new player to deal with it and that donations "are to help the server". I was the only person who told him that I agree, but put a disclaimer to him that this server isn't nearly as bad as many others. Which was true, I know because I spent weeks looking for a minecraft server that fits all my personal specifications, and I found myself right back where I started. A good half of the servers I visited during those weeks have donator incentives that make them god-like (sometimes literally), admin powers, and unlimited items/blocks.
<P>The next day I visited the forum of my minecraft server to see that the same newbie complaining about donators being able to make themselves invisible on the minimap had posted 2 threads asking to be unbanned. One thread was created after the other one was locked; it was locked after he mentioned donator incentives being unfair. Apparently, he had been 'whining' too much. Sorta true, I thought to myself... When I was online the day before he was going on about it quite a bit more than I would... And he must have continued doing that because I was not there when he was banned.
<P>So why does this bother me so much? Maybe it is because I am a little jaded, having spent 5-10 years casually programming websites and multiplayer video games myself from scratch yet making only $25 or so a month despite all this work, which I put back into advertising the game, whereas a minecraft server has more advertising outlets like server listings. I see my minecraft server raking in $50 every few days and it makes me cringe. Maybe I feel bad for the original creator of minecraft, who is seeing none of the money (like many, this server is a cracked server, meaning you can play it with or without a purchased copy of minecraft) while some random guy is 'raking it in'. Maybe it is because I have run servers before for first person shooters, and I run servers for my own multiplayer games now, and I know that a lot of the time these are being hosted off of our home computers and are costing us $0 but making us gods in our own little world. I see people playing on this minecraft server and tip-toeing around the owner and moderators, kissing up to them, etc and think to myself, they don't really deserve this. The work they have put in does not deserve the reward they have been given (not that this is unusual in the U.S.). I wonder if maybe I should open my own server (I know it takes a lot less time than some of the players say it does), but it would be difficult being so bogged down with grad school, so I don't open one yet. I am far beyond getting thrills out of being 'powerful' in a game community anyways, so I would just be doing it for the $$ and enjoyment of playing with some new software.
And I keep playing on this server, and I donate myself because I need those perks to enjoy the game to its fullest, but I feel a tinge of guilt knowing that I am contributing to something twisted. That leads me here to rant about it because we all know that if I posted this on my servers community forum that it would be ridiculed and locked.
<P>I am not arguing against a free-to-play structure, but against original games being exploited for money by players hosting multiplayer servers. This is only worsened by the pay-to-win attitude that comes a long with many of these servers, which I am also strongly against.
<P>LssLyslehttp://www.blogger.com/profile/17124733255448699345noreply@blogger.com0tag:blogger.com,1999:blog-9137231650250170245.post-32203533130914498532012-01-16T22:38:00.000-08:002012-01-16T22:40:54.943-08:00Immersion<P>I want to draw attention to recent article by Raph Koster, known for his work in MMORPG's and MUD's as lead designer and his '<a href=http://www.theoryoffun.com/>theory of fun</a>'. His work as a game designer has helped mold the first 20 years of online RPG's, and hopefully we will see more of his influence in the future.
<P>The article is about immersion, what it is, and how developers have lost video games immersion in exchange for a wider audience. You can read the first part of the article <a href=www.raphkoster.com/2012/01/13/is-immersion-a-core-game-virtue/#more-3942>here</a> and the second part <a href=http://www.raphkoster.com/2012/01/14/faq-on-the-immersion-post/#more-4027>here</a>.
<P><TABLE CELLPADDING=5 CELLSPACING=5 BGCOLOR=#111111><TR><TD BGCOLOR=#000000>
"Games didn’t start out immersive. Nobody was getting sucked into the world of Mancala or the intricate world building of Go. Oh, people could be mesmerized, certainly, or in a state of flow whilst playing. But they were not immersed in the sense of being transported to another world. For that we had books.
<P>... "Things that we once considered essential to games drift in and out of fashion. And I think immersion is one of those.
<P>"Immersion does not make a lot of sense in a mobile, interruptible world. It comes from spending hours at something. An the fact is that as games go mainstream, they are played in small bites far more often than they are played in long solo sessions. The market adapts — this reaches more people, so the budgets divert, the publishers’ attention diverts, the developers’ creative attention diverts."
</TABLE>
<P>I thought that the article was incredibly insightful and and chilling. It really does describe the current climate of MMOs and the way that things have changed from making immersible virtual worlds into making quick cash. It probably started in 2002 and 2003, when MEO was cancelled to be replaced by the linear LOTRO and World of Warcraft was released. And of course in 2004 when SWG was changed to be more mainstream.
<P>The people in charge of these game companies used to be gamers, and once contributed to industry with interesting, immersive games. Now they squabble to follow mainstream market trends and copy previous successes to a T.
<P>Heres something interesting that reveals some of Raph's feelings about the direction his industry has gone in:
<P><TABLE CELLPADDING=5 CELLSPACING=5 BGCOLOR=#111111><TR><TD BGCOLOR=#000000>
I mourn. I mourn the gradual loss of deep immersion and the trappings of geekery that I love. I see the ways in which the worlds I once dove into headlong have become incredibly expensive endeavors, movies-with-button-presses far more invested in telling me their story, rather than letting me tell my own.
</TABLE>
<P>I truly feel sorry for Raph. Our industry deserves better, and he deserves better. He didn't write that because he wants pity, he wrote it because he is truely passionate about virtual worlds and it is difficult for someone like that to participate in today's gaming climate professionally. I have always been a game designer at heart and now I am very glad that I am going to optometry school instead of attempting to participate more heavily in the game industry. I often wonder why it has been so long since Raph has worked on a AAA mmorpg; he could probably get a decent job as a designer; he has a ton of experience. And I think I understand now that he is unwilling to sell out the way other MUD/game designers have.
<P>I hope that WORG can someday be seen as a glimmer of hope in what has become a mechanical and calculating industry.
<P>LssLyslehttp://www.blogger.com/profile/17124733255448699345noreply@blogger.com0tag:blogger.com,1999:blog-9137231650250170245.post-30554677738951820892012-01-14T22:52:00.000-08:002012-01-15T00:59:19.410-08:00GamificationI have been reading an interesting set of powerpoint slides by Richard Bartle, who you may have heard of because he is the person who came up with the 4 types of gamers... Achievers, socializers, explorers, and killers. In his presentation he talks about what he calls 'Gamification'. Anything can be gamified by adding rewards to it, even if it is not intrinsically enjoyable. We see this done to get kids to do their homework, etc, and to draw RPGs out so the game lasts longer. Check out the article <a href="http://gamification-research.org/2011/05/richard-bartle-on-gamification-too-much-of-a-good-thing/" style="font-family: Georgia, 'Times New Roman', serif; text-align: center;">here.</a>
<P>It starts to get good a little before halfway through. Here is quote that you might need to read some of the power point before you get completely:
<P><TABLE CELLPADDING=5 CELLSPACING=5 BGCOLOR=#111111><TR><TD BGCOLOR=#000000>"Gamification is basically bribery... You reward someone for doing something that you want them to do. It can be regular or irregular. Regularity: “pull this handle 20 times and we’ll give you £1”. Examples of this is your everyday employment: Vanilla gamification. Irregularity: “pull this handle and there’s a 5% chance of winNing £1”. This is like gambling, which is advanced gamification. This is starting to look like a variable ratio reinforcement schedule, a psychological topic of study. You might know it as Operant conditioning, which is very interesting if you have stuff to sell.
<P>"Game designers studiously avoid operant conditioning (for extrinsic rewards). It’s not really fun- fun is intrinsic, not extrinsic. It’s an admission of failure. It means the gameplay is too weak on its own. Also it’s only usable on naive players, and once they’ve learned the pattern, they avoid it. Finally, it’s immoral!"</TABLE>
<P>I think that this is interesting at the least.... And very real in todays MMO climate. In other parts of the industry as well: With all the games coming out for phones, etc, operant conditioning is at its peak. I am sure a lot of you have played these games that are on phones these days, and they are not like the games that came out on the early game systems in the 90's, despite the controls being simple and graphics being 2D. Many of these top selling games have been molded into mathmatical perfection. Simplistic, quick, and with all those bells and whistles to peak your excitement at all the right times.
<P>And we see this in MMOs today, big time. If you read the slide I put here on the right, it basically is a prediction by Bartle that casual gamers will eventually catch on to the conditioning they are being put through by these games, and become bored with them. That would mean the $$ that is to be made from using over-gamification would no longer be useful on the masses (just children, I suppose).
<P>
<a href="http://3.bp.blogspot.com/-jC4oqoekE4o/TxJ2fqE3LRI/AAAAAAAAAGk/okz4340AgJ0/s1600/gamification2.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="141" src="http://3.bp.blogspot.com/-jC4oqoekE4o/TxJ2fqE3LRI/AAAAAAAAAGk/okz4340AgJ0/s200/gamification2.png" width="200" /></a>
Lets take World of Warcraft for example; just because a lot of people play warcraft does not mean it is a good game. Firstly,warcraft'smarketing was astronomical. But aside from that,the vast majority ofwarcraftplayers have never encountered a game with so much gamification- reward systems based on operant psychological conditioning, and therefore they fall prey to it easily. One reason why they might not migrate to another
warcraft-like game is because they are starting to see through the mundane meaningless conditioning system that
warcraftused on them and they are unwilling to fall prey to another game in that same way.
<P>I think that he is being a little too optimistic. But I am focusing 99% on intrinsic value for my game anyways. I want to create game play that makes activities in the game valuable on their own and according to each player.
<P>LssLyslehttp://www.blogger.com/profile/17124733255448699345noreply@blogger.com0tag:blogger.com,1999:blog-9137231650250170245.post-14558918070717570952012-01-13T18:59:00.000-08:002012-01-15T01:01:32.201-08:00amfPHP Woes<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"><tbody>
<tr><td style="text-align: center;"><a href="http://4.bp.blogspot.com/-5iF4v9wbhc8/TxDvlos28wI/AAAAAAAAAGU/2VNVLxOC70g/s1600/Untitled-1sdfsd.png" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><span style="font-family: Georgia, 'Times New Roman', serif;"><img border="0" height="106" src="http://4.bp.blogspot.com/-5iF4v9wbhc8/TxDvlos28wI/AAAAAAAAAGU/2VNVLxOC70g/s200/Untitled-1sdfsd.png" width="200" /></span></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><span style="font-family: Georgia, 'Times New Roman', serif;">the simple and helpful amfPHP UI. </span></td></tr>
</tbody></table>
<P>I have finally finished going over all 22 of my PHP scripts that act as intermediaries between the game client and server. Now its time to work on the client! It has been taking a lot more time than I previously thought but it is still worth it.
<P>It is amazing how messy the code was before compared to after integrating amfPHP. I am very excited to see the change and can honestly say that my code is starting to look professional.
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="http://1.bp.blogspot.com/-mTXysmjwdP4/TxHu6DPfmhI/AAAAAAAAAGc/MdYltlnPkIc/s1600/amf-php-standards.png" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><span style="font-family: Georgia, 'Times New Roman', serif;"><img border="0" height="118" src="http://1.bp.blogspot.com/-mTXysmjwdP4/TxHu6DPfmhI/AAAAAAAAAGc/MdYltlnPkIc/s200/amf-php-standards.png" width="200" /></span></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><span style="font-family: Georgia, 'Times New Roman', serif;">Major pieces of code and general</span><br />
<span style="font-family: Georgia, 'Times New Roman', serif;">game structures are documented.</span></td></tr>
</tbody></table>
<P>On the right is an excerpt from the games documentation. I have been documenting information about the creation of this game so that in the distant future I can continue work on the game at my leisure, and so that another programmer could take over or assist with the project someday. I will do a blog post about my views on documenting sometime. You might also notice it says "grass1" as a variable being sent into amfPHP. That is a discrepancy from mapping not being completed. Right now, every area always has grass. Eventually I would like there to be several backgrounds to choose from for different parts of a world.
<P>LssLyslehttp://www.blogger.com/profile/17124733255448699345noreply@blogger.com0tag:blogger.com,1999:blog-9137231650250170245.post-62009788348448689612012-01-08T02:29:00.000-08:002012-01-15T01:04:24.535-08:00Client to Game Database Communication and amfPHP<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"><tbody>
<tr><td style="text-align: center;"><a href="http://4.bp.blogspot.com/-A_Agw0QgPsM/TwlrBdJjgPI/AAAAAAAAAGM/s3vJNdl-WLI/s1600/firstamf.png" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><span style="font-family: Georgia, 'Times New Roman', serif;"><img border="0" height="150" src="http://4.bp.blogspot.com/-A_Agw0QgPsM/TwlrBdJjgPI/AAAAAAAAAGM/s3vJNdl-WLI/s200/firstamf.png" width="200" /></span></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><span style="font-family: Georgia, 'Times New Roman', serif;">Client side scripts as done in <a href="http://gotoandlearn.com/play.php?id=78">this </a><br />tutorial, which I do not recommend<br />as it is outdated.</span></td></tr>
</tbody></table>
<P>Today I am going to post a bit about how the game client communicates with the game database. It is going to be pretty technical.
<P>WORG will feature a ton of information from the games database, and the client will be constantly communicating with the server to update each other on what is going on in the game world. More than ever, I needed a good way for the client and server database to communicate, but until today I lazied it up using the same old newbie URL calling.
<P>I am not very good at adopting 3rd party scripts, but in this case it was incredibly easy. Easier than doing it the traditional method, in fact. I should have done this years ago. I am now using amfPHP, and this is not a real review of it as I am not a real programmer, technically speaking, but wow is it handy.
<P>Before explaining how amazing amfPHP is, let me explain how I used to have my client software communicate with my servers database. Using traditional URL calls, the client would send any variables needed to a PHP file on my website. This URL call would be 10-15 lines long, depending on how many variables are being sent because each variable had to be given a name and a value in its own line on the client code. Variables could be string only, so if I wanted to send an array I would need to first convert it to a string. Most of the time they are arrays, often they are 3D arrays, and I have never been able to get the serialize() function in AS3 to work for me, so I combine the array manually using .join() and .split(). If you are a professional programmer, you are laughing right about now.
<P>The PHP file takes the variables and looks at one in particular, $request. $request tells my PHP files what my client wants to do... There are just so many actions at this point in my games that clients need to do that I did not want each action to be associated with its own PHP file, so I try to group them and then within the PHP use $request to split up each action. It worked pretty well. But now we have this intermediary variable that was sent from the client, and it may or may not be named the same name as it is in the client, and it may or may not be named the same name as in the server database. Usually not. I would decode the array using split, play with the files, save them to the database, request things from the database, encode those arrays into strings with join, and using variables like &var=value&var2=value2 send them back to the client. The client would have to once again split up the arrays etc...<br /><br />Super messy. And difficult to debug because if I want to test the PHP I have to manually type in variables and values into the URL, and remember all of the variables, and include the $request, and also a $debug=1 because I need to see details that shouldnt normally be shown to the client. And its easy to forget the variables names when you are debugging!! Especially because they are arbitrary... They are often not the names used in the client or on the database.
<P>But no longer! I have known I needed to update this system for a while now... Ever since I made a script I call MonkeyShark which interfaces mediamonkey and grooveshark's playlist and media libraries. Grooveshark had this beautiful API to work with, which is essentially a way for 3rd parties (clients) to communicate with the grooveshark database. You could send requests to it and it would reply using multidimensional (5+) arrays that were very standardized and easy to use. Why can't I have that??
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="http://4.bp.blogspot.com/-VPMj4fG1-rM/TwlqdTRbjgI/AAAAAAAAAGE/sAHmlq_BQV4/s1600/amfphp.png" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><span style="font-family: Georgia, 'Times New Roman', serif;"><img border="0" height="160" src="http://4.bp.blogspot.com/-VPMj4fG1-rM/TwlqdTRbjgI/AAAAAAAAAGE/sAHmlq_BQV4/s200/amfphp.png" width="200" /></span></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><span style="font-family: Georgia, 'Times New Roman', serif;">The interface allows you to test your <br />PHP scripts with ease.</span></td></tr>
</tbody></table>
<P>And now I do! Not only have I totally cut out a variable from the PHP intermediary, but the client side script, which you can see in the picture to the left here, is about 2 lines long of very clean code that looks much like a simple function call. Compare that to what I used to use, 10 or so messy lines of traditional URL retrieval. And look at this great interface, it is so easy to test my PHP.
<P>To sum up how it works, because this post is running a little long... amfPHP basically allows my client to call to PHP functions as if they were just another function in my client.
<P>I am now converting all my old PHP scripts for Mario, World Builder, and WORG to amfPHP. I meant to do debugging today, but this is some serious code optimization and is also very important part of my current debugging phase. Not using amfPHP would have driven WORG out of control with messy code.
<P>LssLyslehttp://www.blogger.com/profile/17124733255448699345noreply@blogger.com0tag:blogger.com,1999:blog-9137231650250170245.post-11487746872677262632012-01-04T20:20:00.000-08:002012-01-04T21:58:42.403-08:00Dynamic Warfront & Clans<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="http://1.bp.blogspot.com/-knGGGB3O-hE/TwUfKJnreGI/AAAAAAAAAFw/N161O1pUoDM/s1600/firstminimap.png" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" src="http://1.bp.blogspot.com/-knGGGB3O-hE/TwUfKJnreGI/AAAAAAAAAFw/N161O1pUoDM/s1600/firstminimap.png" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">WORG's very first map. Black represents<br />
one low level clan, and red represents<br />
another. Can you guess where the red<br />
clans stronghold is?</td></tr>
</tbody></table>
<b>Warfront</b><br />
What you see to your right doesn't look like much, but it is a visual representation of this world beginning to come to life. Everything in this post is already in the game, although I must admit it is pretty buggy.<br />
<br />
I have recently programmed in the preliminary code to control the movement of NPCs, Tree Species, and Clans across the game world. Each world is broken into a 20x20 grid like the one you see here and each piece of the grid is up for grabs by clans. Clans choose certain zones as strongholds and focus their forces at these strongholds, engaging other nearby clans in battle.<br />
<br />
<b>Clans are Unique</b><br />
Clans are dynamic groups of NPC's with personalities and traits that dictate their movements in an inter-clan war for territory. So far there are several traits in the server code that are controlling the clans activities...<br />
<ol>
<li>Civil Unrest controls how likely the clan is to split up into 2 clan groups, one with (Rebel) at its end.</li>
<li>Arrogance controls how likely the clan is to choose a target stronghold to attack which is currently owned by a clan with higher level and momentum.</li>
<li>Aggression controls how likely a clan is to attack wandering players or go to war with other clans.</li>
<li>Wanderlust controls how nomadic the clan is, if the clan has a high wanderlust they will change their stronghold more often.</li>
<li>Level controls how powerful the clans NPCs tend to be.</li>
<li>Momentum controls how well the clan is fairing in war against other clans.</li>
<li>Professional Preference controls what types of professions NPCs of that clan tend to be.</li>
<li>Name Loyalty controls how likely a clan is to change their name. Rebel clans have a very low loyalty to their name and will change it quickly. In the future, I hope to make it possible for players to influence the choice of their favorite clans name, and even become the leader of that clan.</li>
</ol>
<div>
<b>NPCs Travel and Battle</b></div>
<div>
Even when players are not playing WORG, the NPCs are battling against each other for control of strongholds and zones. NPCs tend to stay close to their stronghold, and if that stronghold moves then the NPC will attempt to move with it, travelling across zones. If the NPC battles with another NPC or with a player and loses, they will die and that specific NPC will be gone from the world forever.</div>
<div>
<br /></div>
<div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"><tbody>
<tr><td style="text-align: center;"><a href="http://4.bp.blogspot.com/-gBnInxsENms/TwU6__3DmtI/AAAAAAAAAF8/2vTWvNwKJL8/s1600/worg-map-2.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="198" src="http://4.bp.blogspot.com/-gBnInxsENms/TwU6__3DmtI/AAAAAAAAAF8/2vTWvNwKJL8/s200/worg-map-2.png" width="200" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Here is a newer map with 4 clans. The<br />person symbols are strongholds, the<br />shield is a town, the lightning is a<br />clan's target for their moving stronghold. </td></tr>
</tbody></table>
<b>Players Influence the Outcome of Clan Warfare</b></div>
<div>
By killing clan members you harm that clan. If you and your friends target a clan long enough, you might even drive it out of existence entirely. This process could take months, however, And other players who have invested time in building reputation with the clan you hope to destroy will no doubt work to stop you.</div>
<div>
<br /></div>
<div>
Right now this is all in the game, except for reputation building between players and clans. This is a huge part of what I have been hard at working doing over the winter break, and I am not going to get another chance to work on the game until February. In February I will be focusing on bug fixes before working on network play.</div>
<div>
<br />
<b>A note about these Maps</b><br />
The maps I show pictures of in this blog post are of day 0. As time passes, battlefronts will become more rigid because the zones surrounded by enemy influence will fall easier than the ones surrounded by allies.<br />
<br /></div>
<div>
Until then,</div>
<div>
<br /></div>
<div>
Lss</div>Lyslehttp://www.blogger.com/profile/17124733255448699345noreply@blogger.com0tag:blogger.com,1999:blog-9137231650250170245.post-63807321929480794062011-12-18T00:56:00.000-08:002011-12-18T13:58:16.235-08:00Loading Zones<span style="font-family: Georgia, 'Times New Roman', serif; text-align: center;">Let me try to elaborate on where I am in the games development right now, as I feel I have not discussed that in a while on this blog.</span><br />
<span style="font-family: Georgia, 'Times New Roman', serif; text-align: center;"><br /></span><br />
<br />
<span style="font-family: Georgia, 'Times New Roman', serif; text-align: center;">I have just completed the zoning system for the default world. There is only 1 world in the game right now, but it would be easy to add more. The games first world is split up into blocks, and the players view follows the character around, keeping the character centered on the screen unless he is up against the sides of that zone. When you reach the edge of the zone and push up against the side, the game pauses for 1 second as it swipes over to the next zone. I tried to make this effect as much like Zelda 3 as possible from SNES. </span><br />
<span style="font-family: Georgia, 'Times New Roman', serif; text-align: center;"><br /></span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-nGGweggSWCI/Tu2sS9OqlQI/AAAAAAAAAFc/i6vU6rHU63Q/s1600/mmorpg+comic.gif" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="214" src="http://3.bp.blogspot.com/-nGGweggSWCI/Tu2sS9OqlQI/AAAAAAAAAFc/i6vU6rHU63Q/s320/mmorpg+comic.gif" width="320" /></a></div>
<span style="font-family: Georgia, 'Times New Roman', serif; text-align: center;">There will not be loading screens between zones, thanks to preloading of the 4 surrounding zones. I have found however that there is sometimes a short period of time when when you first enter a zone that you cannot enter a new zone. This is because the surrounding zones have not finished preloading yet. I think this is still vastly superior to a system like that of my last big online game, CND. The sliding into the new zone also creates a unique effect that few games have used since Zelda.</span><br />
<span style="font-family: Georgia, 'Times New Roman', serif; text-align: center;"><br /></span><br />
<span style="font-family: Georgia, 'Times New Roman', serif; text-align: center;">Here is an overview of my progress so far. I tried to put it in order of when I did what:</span><br />
<br />
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="http://3.bp.blogspot.com/-_VNXop5mljI/Tu2sTOTSayI/AAAAAAAAAFk/4cOaJM_lG-U/s1600/video_games.png" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" height="320" src="http://3.bp.blogspot.com/-_VNXop5mljI/Tu2sTOTSayI/AAAAAAAAAFk/4cOaJM_lG-U/s320/video_games.png" width="256" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">I know this is a boring post so here is a comic.</td></tr>
</tbody></table>
<ol>
<li><span style="font-family: Georgia, 'Times New Roman', serif;">Map making client</span></li>
<li><span style="font-family: Georgia, 'Times New Roman', serif;">Game client loads in map</span></li>
<li><span style="font-family: Georgia, 'Times New Roman', serif;">Game client loads in player</span></li>
<li><span style="font-family: Georgia, 'Times New Roman', serif;">Player basic movement</span></li>
<li><span style="font-family: Georgia, 'Times New Roman', serif;">Player collision with map/walkable areas</span></li>
<li><span style="font-family: Georgia, 'Times New Roman', serif;">Screen centers on player</span></li>
<li><span style="font-family: Georgia, 'Times New Roman', serif;">NPCs in game</span></li>
<li><span style="font-family: Georgia, 'Times New Roman', serif;">NPCs wander around</span></li>
<li><span style="font-family: Georgia, 'Times New Roman', serif;">Action.as allows for actions such as swinging a sword</span></li>
<li><span style="font-family: Georgia, 'Times New Roman', serif;">Added fireball action</span></li>
<li><span style="font-family: Georgia, 'Times New Roman', serif;">Moved data for actions to webserver</span></li>
<li><span style="font-family: Georgia, 'Times New Roman', serif;">Moved data for NPCs to webserver</span></li>
<li><span style="font-family: Georgia, 'Times New Roman', serif;">NPC Perma-death / replaced by new NPC</span></li>
<li><span style="font-family: Georgia, 'Times New Roman', serif;">Worked heavily on Mario World Builder</span></li>
<ol>
<li><span style="font-family: Georgia, 'Times New Roman', serif;">Tons of bug fixes</span></li>
<li><span style="font-family: Georgia, 'Times New Roman', serif;">Tile System totally overhauled</span></li>
<li><span style="font-family: Georgia, 'Times New Roman', serif;">Multi-select groups of tiles at a time</span></li>
</ol>
<li><span style="font-family: Georgia, 'Times New Roman', serif;">Decided to use Mario World Builder for both WORG2 and Mario2</span></li>
<li><span style="font-family: Georgia, 'Times New Roman', serif;">Adjusted World Builder to work with WORG</span></li>
<li><span style="font-family: Georgia, 'Times New Roman', serif;">Adjusted WORG to work with World Builder maps (still no collision with world tiles)</span></li>
<li><span style="font-family: Georgia, 'Times New Roman', serif;">Overhaul of classes and re-organization of code</span></li>
<li><span style="font-family: Georgia, 'Times New Roman', serif;">Major bug fixes</span></li>
<li><span style="font-family: Georgia, 'Times New Roman', serif;">Reprogrammed CharacterVisual.as classes entirely... Now based on spritesheets</span></li>
<li><span style="font-family: Georgia, 'Times New Roman', serif;">Wrote 5~ pages of lore for world and class backgrounds</span></li>
<li><span style="font-family: Georgia, 'Times New Roman', serif;">Decided on a combat system and drew out classes/combat structure</span></li>
<li><span style="font-family: Georgia, 'Times New Roman', serif;">Put classes and other data into webserver database</span></li>
<li><span style="font-family: Georgia, 'Times New Roman', serif;">Re-zoning in game</span></li>
<li><span style="font-family: Georgia, 'Times New Roman', serif;">Re-zoning with zelda-like sweeping effect</span></li>
</ol>
<div>
<span style="font-family: Georgia, 'Times New Roman', serif;">So whats coming next? Here are 4 things I have in mind right now, in order of how I plan to execute them:</span></div>
<div>
<ol>
<li><span style="font-family: Georgia, 'Times New Roman', serif;">Assign classes to NPCs so they use different skills</span></li>
<li><span style="font-family: Georgia, 'Times New Roman', serif;">Empty zones self-populate with trees and NPCs</span></li>
<li><span style="font-family: Georgia, 'Times New Roman', serif;">NPCs at further zones are higher level</span></li>
<li><span style="font-family: Georgia, 'Times New Roman', serif;">Bug Fixes (Esp. collision detection with map / Improvements to World Builder FLA)</span></li>
</ol>
<span style="font-family: Georgia, 'Times New Roman', serif;">Sadly I do not think I will be able to get through all these things this quarter because I only have a couple weeks off to think about this and then I am back to grad school. However, I do hope to have these 4 things done by Spring and to start working on Multiplayer. Oh, and I have like 20 topics for blog posts written down somewhere... Haha.</span></div>
<div>
<span style="font-family: Georgia, 'Times New Roman', serif;"><br /></span></div>
<div>
<span style="font-family: Georgia, 'Times New Roman', serif;">Lss</span></div>Lyslehttp://www.blogger.com/profile/17124733255448699345noreply@blogger.com0tag:blogger.com,1999:blog-9137231650250170245.post-61051261854643560182011-12-18T00:37:00.000-08:002011-12-18T00:38:15.469-08:00Data Management<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="http://4.bp.blogspot.com/-zqS73LbqMv4/Tu2fa_RhjxI/AAAAAAAAAE0/rxBErpZXsVg/s1600/actions.png" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><span style="font-family: Georgia, 'Times New Roman', serif;"><img border="0" height="320" src="http://4.bp.blogspot.com/-zqS73LbqMv4/Tu2fa_RhjxI/AAAAAAAAAE0/rxBErpZXsVg/s320/actions.png" width="152" /></span></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><span style="font-family: Georgia, 'Times New Roman', serif; font-size: xx-small;">the action table, this is where the magic<br />happens, literally.</span></td></tr>
</tbody></table>
<span style="font-family: Georgia, 'Times New Roman', serif;">So as I continue developing my combat and class system in my mind, I have been starting to move some of it to my games database. When I say game database, what I am talking about is my webservers mySQL databases, which are accessed in game via php.</span><br />
<span style="font-family: Georgia, 'Times New Roman', serif;"><br /></span><br />
<span style="font-family: Georgia, 'Times New Roman', serif;">I am excited to share these tables related to this project that I current have in my database. I created some scripts on cnd-online.net to make it easier for me and other administrators of the site to make modifications to these tables... The thought being that if the tables are saved on my webhost and easily accessible via the website then it will be much easier to make modifications in the future when I am not feeling like re-compiling the finished game over and over to do simple things like add or modify skills, classes, character visuals, etc. Likewise, my moderators on the site can make changes if they are needed, such as nerfing a skill that is overpowered, etc.</span><br />
<span style="font-family: Georgia, 'Times New Roman', serif;"><br /></span><br />
<span style="font-family: Georgia, 'Times New Roman', serif;">I can't help but notice that even in the AAA MMORPGs they have to bring the servers down just for some simple updates to how much damage a spell does, etc. I find that annoying. In fact, in the ideal Online RPG, skills and classes would be set up to balance themselves automatically. I have a lot of ideas on how to do that, and I may bring them into this game (especially because the open class system I am using in this game will be difficult to balance), but that will have to be left for another blog post.</span><br />
<span style="font-family: Georgia, 'Times New Roman', serif;"><br /></span><br />
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="http://4.bp.blogspot.com/-elHU_VMXSHA/Tu2fcGyWDwI/AAAAAAAAAFM/SDw1D2uCV1M/s1600/sheets.png" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><span style="font-family: Georgia, 'Times New Roman', serif;"><img border="0" height="173" src="http://4.bp.blogspot.com/-elHU_VMXSHA/Tu2fcGyWDwI/AAAAAAAAAFM/SDw1D2uCV1M/s320/sheets.png" width="320" /></span></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><span style="font-family: Georgia, 'Times New Roman', serif; font-size: xx-small;">the character sheet table contains the information of <br />the hundreds of playable characters and creatures</span></td></tr>
</tbody></table>
<span style="font-family: Georgia, 'Times New Roman', serif;">So lets go over some of these tables, shall we? In the top right we have the actions table, where spells and skills are carried out. It is one of the more complex tables because I really wanted to make spells vary. For instance, using what is already established here in the game and on this table, you could have a skill fire a spell which floats in front of the player for 1 second, then explodes in all directions. Or how about one that fires at the enemy, and when it hits the enemy it fires back at you and heals you when it hits you. How about one that shoots a strong projectile straight ahead but has poor homing capabilities so is less likely to hit the target? Or one that slowly accelerates forward, and if it doesn't hit the enemy within a few seconds comes back to you? It is all possible because of the Action.as class and this handy database.</span><br />
<span style="font-family: Georgia, 'Times New Roman', serif;"></span><br />
<span style="font-family: Georgia, 'Times New Roman', serif;"></span><br />
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"><tbody>
<tr><td style="text-align: center;"><a href="http://3.bp.blogspot.com/-ybzb8kniOyg/Tu2fbV8f9_I/AAAAAAAAAE8/M3ml0DJvews/s1600/attributes.png" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><span style="font-family: Georgia, 'Times New Roman', serif;"><img border="0" height="157" src="http://3.bp.blogspot.com/-ybzb8kniOyg/Tu2fbV8f9_I/AAAAAAAAAE8/M3ml0DJvews/s200/attributes.png" width="200" /></span></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><span style="font-family: Georgia, 'Times New Roman', serif; font-size: xx-small;">the attributes table, this is where you 'level up'</span></td></tr>
</tbody></table>
<span style="font-family: Georgia, 'Times New Roman', serif;"> To the left here is a table to hold the attributes. In this game, attribute points are everything (this is especially true since there is no item or inventory system in the game yet, Ha!). They decide what your profession is, what your skills are, and how powerful you are. You can choose to raise one of your attribute points each time you level up.</span><br />
<span style="font-family: Georgia, 'Times New Roman', serif;"><br /></span><br />
<span style="font-family: Georgia, 'Times New Roman', serif;">Below this text is the skills table. It is pretty lonely right now as I still just have two skills in the game, a simple swinging of a sword and a fireball attack. I just added this skills table in tonight because I wanted my NPC's to be a bit more functional: Before tonight they would always swing a sword at me in retaliation, and I would only have the Fireball spell. Now NPC's are assigned a profession and they use the skill associated with that profession. So since there is just two skills, all the magic users are shooting fireballs and the other professions are swinging a sword. :-)</span><br />
<span style="font-family: Georgia, 'Times New Roman', serif;"><br /></span><br />
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="http://4.bp.blogspot.com/-DqsuTE_CFHg/Tu2fcQhD_oI/AAAAAAAAAFU/KetCC54kKt4/s1600/skills.png" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><span style="font-family: Georgia, 'Times New Roman', serif;"><img border="0" height="190" src="http://4.bp.blogspot.com/-DqsuTE_CFHg/Tu2fcQhD_oI/AAAAAAAAAFU/KetCC54kKt4/s320/skills.png" width="320" /></span></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><span style="font-family: Georgia, 'Times New Roman', serif; font-size: xx-small;">the skills table contains just two skills right now, these two.</span></td></tr>
</tbody></table>
<span style="font-family: Georgia, 'Times New Roman', serif;">Finally is the professions table, below. This <span style="text-align: center;"> </span><span style="text-align: center;">is where information </span><span style="text-align: center;">about each class you can play as is stored,</span><span style="text-align: center;"> </span></span><span style="text-align: center;"><span style="font-family: Georgia, 'Times New Roman', serif;">including a description to help players choose a class and for the game's future website to catalog the possible classes you can play as. I say class in its loosest sense. I believe strongly that in a real virtual world that there are no classes, but instead various choices of paths you can take. Players should be free to mix and match their choices as they please. That is what a true sandbox is like. </span></span><br />
<span style="text-align: center;"><span style="font-family: Georgia, 'Times New Roman', serif;"></span></span><br />
<span style="text-align: center;"><span style="font-family: Georgia, 'Times New Roman', serif;"></span></span><br />
<span style="text-align: center;"><span style="font-family: Georgia, 'Times New Roman', serif;"><br /></span></span><br />
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="http://4.bp.blogspot.com/-eWklsD0z-CI/Tu2fbtkEZ3I/AAAAAAAAAFE/DNhpPXSXqX0/s1600/classes.png" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><span style="font-family: Georgia, 'Times New Roman', serif;"><img border="0" height="125" src="http://4.bp.blogspot.com/-eWklsD0z-CI/Tu2fbtkEZ3I/AAAAAAAAAFE/DNhpPXSXqX0/s200/classes.png" width="200" /></span></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><span style="font-family: Georgia, 'Times New Roman', serif; font-size: xx-small;">the professions table.</span></td></tr>
</tbody></table>
<span style="text-align: center;"><span style="font-family: Georgia, 'Times New Roman', serif;">If you click on this image you will get a little hint at one of my chosen professions for this game, the Elicitator. The name means <i>to bring out the best or to motivate others</i>, which is why the Elicitator is a buffer. I want to bring varied and interesting classes to this game. This may mean that each class will only start out with one or two spells, but since you can mix and match classes this will not really be a problem. The silly thing is that in most games, players end up just using one or two spells anyways. When you are designing an indie game you cannot afford to make content that people are not going to or are unable to experience. That is why it is important that each skill put into the game is utilized by players and there are no 'useless skills'.</span></span><br />
<span style="text-align: center;"><span style="font-family: Georgia, 'Times New Roman', serif;"><br /></span></span><br />
<span style="text-align: center;"><span style="font-family: Georgia, 'Times New Roman', serif;">Lss</span></span><br />
<div class="separator" style="clear: both; text-align: center;">
</div>Lyslehttp://www.blogger.com/profile/17124733255448699345noreply@blogger.com0tag:blogger.com,1999:blog-9137231650250170245.post-8498255965081213852011-12-02T02:45:00.001-08:002011-12-02T03:28:47.807-08:00Roles in Multi-player RPGs<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;">When making a games combat, there are some very key decisions to be made about roles in combat. Typically, the 'Holy Trinity' is used in MMORPG combat: The tank takes damage, healer heals warrior, nuker kills the bad guys.</span><br />
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"><br /></span><br />
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;">In this article I will be taking a break from talking about the technicalities of making my RPG and discussing its future combat gameplay.</span><br />
<div style="text-align: -webkit-left;">
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;">
</span><br />
<div>
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; text-align: right;"><tbody>
<tr><td style="text-align: center;"><span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"><img border="0" height="120" src="http://3.bp.blogspot.com/-NsMdTQn-Pmg/TtiuNfqLLmI/AAAAAAAAAEo/sae094dPA4U/s320/agrro-quote.png" style="margin-left: auto; margin-right: auto;" width="320" /></span></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;">A quote by someone; not me.</span></td></tr>
</tbody></table>
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;">So where did the holy trinity come from? In Dungeons and Dragons I don't remember ever rolling to see whether the warrior was maintaining aggro. In fact, if you go into a difficult combat in D&D, the last thing you want to do as a warrior is try to get EVERYONE attacking just you. That's suicide even if you are tougher than anyone else (because you aren't tougher to the extreme that the Holy Trinity requires, and the healer couldn't keep up with that damage). It's generally a good thing for damage to get spread around a decent bit in D&D.</span></div>
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;">
</span><br />
<div>
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"><br /></span></div>
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;">
<div>
So where does the 'holy trinity' 3-role system come from? It evolved in early MMO's such as Everquest. Everquest was developed with a D&D class system in mind and there was no intention for having the holy trinity within the game. However, the 3-roles were an inevitability as players got into higher end raiding and the need and <u>availability</u> of specialization increased. This level of specialization is simply not available in D&D... Probably due to healing spells not being as powerful, and all classes having larger amounts of health and no mana regeneration.</div>
<div>
<b><br /></b></div>
<div>
<b>The holy trinity does not make sense on most levels</b></div>
<div>
<div>
It is unrealistic to pretty much any setting, whether you are in a fantasy world or flying around in spaceships. It may break immersion to some degree.</div>
<div>
<br /></div>
<div>
But even more problematic is making your gameplay unique and interesting under a system that has been used by at least 50 major online RPG's by now. As an indie developer it is incredibly important that every feature in your game is in itself <i>unique</i> and fun gameplay... The holy trinity is <i>not.</i> </div>
<div>
<br /></div>
<div>
<b>Roles help build a connection between players and their game</b></div>
<div>
So should an indie developer scrap the Holy Trinity? <a href="http://www.gamasutra.com/view/feature/4219/rethinking_the_trinity_of_mmo_.php?print=1">Here is an article that thinks so</a>, and it outlines how to create roles without the Holy Trinity. In the place of a 3-role system it wants to add several more features to create many new roles for players. Many of these new features would require an AAA budget to incorporate. Given the poor economy of 2011, no AAA game designer would touch something that has not already been proven to work several times over... So I am not even sure who this article is addressing.</div>
<div>
<br /></div>
<div>
Let me discuss for a moment why roles are important. Simply put, they work on a social level. Players really enjoy feeling 'needed'. I have actually read about and experienced myself friends talking about how good it felt when their group 'needed' them. Girls especially seem to become territorial when someone with the same role as their character tries to join the group. Ie, if your group has a warrior already and another warrior joins, they will be aggressive or passive-aggressive towards the other warrior. You see this in normal social circles in real life as well. If you are the jester of your group of friends and another person shows up who also enjoys entertaining everyone, you may feel threatened by them. The sense of having a role within your group builds a connection whether its in a circle of friends in real life or in-game.</div>
<div>
</div>
<div>
<b><br /></b><br />
<b>Conclusion</b></div>
<div>
I would like to move away from the holy trinity, but the concept of it is compelling and I think it is something that developers can evolve as oppose to completely remove. Having ROLES that make players feel NEEDED is good game development. The holy trinity is just one way of doing this. It is the job of an indie multiplayer RPG developer to find simple yet effective ways of creating roles that fall outside the mainstream 'holy trinity'.</div>
</div>
<div>
<br /></div>
<div>
I will explain how my RPG will do this in a future article.</div>
<div>
<br /></div>
<div>
Lss</div>
</span></div>Lyslehttp://www.blogger.com/profile/17124733255448699345noreply@blogger.com0tag:blogger.com,1999:blog-9137231650250170245.post-68100203014990226612011-11-04T18:52:00.000-07:002011-12-02T03:34:53.078-08:00Merging Ideas<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;">Over the last few weeks I have been finding time to program again, with a focus on my Mario World game... </span><span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;">Or more specifically, the World Builder for this game, which I will soon be using for my unnamed RPG project, WORG, as well. Hence why I am back at the blog! I will have a video overview and some information on the blog coming soon about the new world builder.</span><br />
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"><br /></span><br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="http://3.bp.blogspot.com/-ElGDL8IOs5U/TtVu6S-cX0I/AAAAAAAAAEg/_PcIJJSQncQ/s1600/4x2_1.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="213" src="http://3.bp.blogspot.com/-ElGDL8IOs5U/TtVu6S-cX0I/AAAAAAAAAEg/_PcIJJSQncQ/s320/4x2_1.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">This character sprite sheet is automatically chopped up so<br />
the characters are instantly playable using the <br />
'characterVisual' class.</td></tr>
</tbody></table>
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;">This post will be deticated to the new character importing system. As you can see in the picture to the right, I have many sheets with characters like these ones to be imported into the game. I wanted to create an easy way to get a lot of characters into the game quickly, and thats when I created my CharacterVisual class, or 'sheet sprite' system. What it does is it takes sheets like this one and chops them up automatically into characters so that I do not have to do it manually in flash.</span><br />
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"><br /></span><br />
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;">This will make it easier for players to create custom characters and NPCs in the future. I think I will keep the ability to upload these sheets as administrative-only though, for quality control.</span><br />
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"><br /></span><br />
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;">Below is the function that I found online which makes it very easy to extract individual frames from this larger image.</span><br />
<blockquote class="tr_bq">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;">private function cropBitmapData(sourceBitmapData:BitmapData, startPoint:Point, width:Number, height:Number):BitmapData {</span><span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;"> var croppedBD:BitmapData = new BitmapData(width, height);</span><span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;"> croppedBD.copyPixels(sourceBitmapData, new Rectangle(startPoint.x, startPoint.y, width, height), new Point(0, 0));</span><span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;"> return croppedBD.clone();</span><span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;"> croppedBD.dispose();</span><span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;">}</span></blockquote>
<div>
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;"><br /></span><span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;">You can read about it more <a href="http://www.kirupa.com/forum/showthread.php?321055-crop-my-bitmap-data">on this webpage</a>. This method of importing characters makes importing new characters easy and is vastly superior to my old method of having a 'character' movieclip, and placing each character on a different frame of this movieclip, then in a movieclip within that movieclip having different frames for the different walking animations. Not only is this new method less resource intensive, it will be much easier to import characters. I have already imported over 100 characters, and have spent maybe 1/20th of the time doing it as I did in my Chip N Dales MMORPG game!!!</span><br />
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"><br /></span><br />
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;">Lss</span></div>Lyslehttp://www.blogger.com/profile/17124733255448699345noreply@blogger.com0tag:blogger.com,1999:blog-9137231650250170245.post-67136598484879125562011-08-26T01:12:00.000-07:002011-08-26T01:13:25.565-07:00Perma-NPC's<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"> Making a game solo on a tiny time budget isn't easy. It requires you to take a new path in almost every decision you make, because every moment spent building something that's already been done is essentially not good enough. How could a single programmer compete directly with real developers? Uniqueness is the only way.</span><br />
<a href="http://3.bp.blogspot.com/-KaMutj5pZ8U/TldSRgHcVEI/AAAAAAAAADU/2WKqeQemAus/s1600/untitled16.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"><img border="0" height="147" src="http://3.bp.blogspot.com/-KaMutj5pZ8U/TldSRgHcVEI/AAAAAAAAADU/2WKqeQemAus/s200/untitled16.png" width="200" /></span></a><br />
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;">Which makes it even harder for this game, because I want it to feel like a traditional RPG. I will be adding twists as I go and trying to spend as little time as possible on things that have already been done. Thats when I came across <a href="http://www.kismetrose.com/dnd/pdfs/KismetsFantasyNames.pdf">This Page</a>. A list of over 7,000 bad-ass fantasy names.</span><br />
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"><br />
</span><br />
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;">So they have now been loaded into a database for my game, and marked with a timestamp when they are used so not to use them multiple times. Now when an NPC is generated in the game, it pulls a name from that list and assigns it a visual (and in the future, other stats). This newly formed NPC is added to another database where other NPC's information sits. When players play the game, they will interact with these generated NPCs. When an NPC dies, it will not respawn- Instead, a new NPC will be generated to replace it.</span><br />
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"><br />
</span><br />
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;">So what does that do for the game? Well, nothing yet. But it could have some major implications for where the game heads from here, because now I am committed to this path. Now I will be looking for ways to invest players into NPC's that might not always be around. Here are some wild ideas:</span><br />
<ul><li><span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;">NPC's have an opinion on you depending on your actions. It takes hard work to get an NPC to like you, but you benefit in different ways from this.</span></li>
<li><span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;">When another NPC/player kills an NPC that likes you you can choose to carry that high opinion on to the NPCs friends/family by avenging the NPC's death</span></li>
<li><span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;">Bosses could still exist but would always be unique</span></li>
<li><span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;">Certain NPC's that are especially powerful, live in high player population areas and well liked by players would become targets for players to try and kill</span></li>
</ul><span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;">The above are definitely not plans; they are just things I came up with as I am typing and will probably make a point to not look at them again. But these are the possibilities and it is choices like this that makes an RPG stand out. But for now I will be content with killing all of the NPC's that have dumb names, and leaving the ones with cool names and cool looking sprites to live. That is simple, but in a strange way I am already feeling like this game is a true world where I have an impact. What bigger impact is there than world permanence? Isn't it ironic that NPC impermanence creates world permanence?</span>Lyslehttp://www.blogger.com/profile/17124733255448699345noreply@blogger.com0tag:blogger.com,1999:blog-9137231650250170245.post-35284517321662719762011-08-18T02:09:00.000-07:002011-08-26T01:15:26.117-07:00Combat Decisions<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;">Choosing a structure for combat is important because it builds the general feel of the game. For this game, I have opted for something that resembles the popular phone game zenonia. I would say that this is a mix between traditional RPGs and diablo.<br />
<br />
I wanted fast-paced combat with a lot of visual cover-ups, because this is an online game and there are several different character avatars and I do not want to create sprites unique to every avatar performing every combat move. So there has to be a lot of explosions and visuals that will cover up the characters underneath. This probably means taking arcade style aim is out (because we want our characters to be difficult to see), which is good anyways because having to aim at enemies doesn't work well with online rpgs because of latency issues. Latency issues means we will need a targetting system like those seen in most RPGs. But the game will still feel like an arcade game because of the fast pacing, auto-targetting and over the top (character covering) visuals. I prefer my games to have an arcade, retro feel. I also like them to not require a mouse because two hands on the keyboard is more conducive to typing, and encourages chat.<br />
<br />
<b>Auto-Targetting</b><br />
Our player tar</span><br />
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="http://2.bp.blogspot.com/-FB8sfl3Vp2c/TldV76TSSAI/AAAAAAAAADY/8mR_zOfUAFY/s1600/Untitled-9.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="158" src="http://2.bp.blogspot.com/-FB8sfl3Vp2c/TldV76TSSAI/AAAAAAAAADY/8mR_zOfUAFY/s200/Untitled-9.png" width="200" /></a></td></tr>
<tr><td class="tr-caption" style="font-size: 13px; text-align: center;">a red circle appears under the closest<br />
enemy- the one you have selected.</td></tr>
</tbody></table><span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;">gets NPCs and objects of interests using a simple check to see what object is cloest to our player. I quickly noticed that this causes problems because our target often ends up being behind the player while intuitively we would hope to be targetting an enemy that is standing in front of the player. So I added a modifier to my function that checks distances between things so that it considers a point 50 pixels in front of the player (depending on the direction the player faces). Also, dead NPCs are given less priority (their 'distance' is multiplied by 5).<br />
<b><br />
Adding Depth</b><br />
Classic games that are built on twitch (player skill at aiming) arguably do not need as much depth because the player can enjoy their improvement over time in their aim, etc. But since my game will feature targetting instead of manual aiming, it will need to capture depth that RPGs tend to have. Even more so, because unlike many RPGs this game will primarily use an auto-targetting system, so we will not have that added strategy in choosing targets that many RPGs have. In the future I may wish to add this functionality, but right now I am seeing it as an unnecessary complication.<br />
<b><br />
RPG's Are Complicated For a Reason</b><br />
That reason is that learning is fun. Players want to feel like they have achieved something and that they are doing so more efficiently than the normal player (or at least more efficiently than they did last time they played). Although an RPG is not twitch based, it is important that players still feel that they are improving at the game. Watching their characters improve is simply not enough, because then the game feels like a timesink that anyone could do. Which makes you feel better? Knowing that you spent X amount of time more in a game than a friend, or that you are X amount better at a game than a friend?<br />
<br />
This translates to complex combat systems that play off of realistic/intuitive ideas such as: Killing enemy healers and nukers before tanks, conditions such as poison that drain life over time if not cured, positioning your player strategically, switching poses/stances to match the fight, complex skill trees, attributes, resists, etc.<br />
<br />
<b>Why Aren't there More Indie RPG Games?</b>Well, I already answered my own question: RPG's are really complex! Anybody can program a hunting game where you have to quickly shoot ducks that pop out behind bushes, etc. And those games are easy to program and can be very rewarding to play. They work off of the players own progression of improvement of their hand/eye coordination to make the game fun. RPG's need a lot of depth to make up for this areas where it lacks.<br />
<br />
So when you take on a RPG project you have to realize what you are getting in to. How can one add depth and complexity to an RPG's gameplay while minimizing the complexity of it's code? Well, I am not entirely sure yet myself. But I have 3 strategies that I am thinking of using right now:</span><br />
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"> </span><br />
<ol><li><span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;">Replace traditional life/mana bars with a new system that is easy to program but will add complexity to the game. (my HAMS system) </span></li>
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;">
<li>Dumb down attributes, classes, skill trees, etc into a system that is both functional and easy to code. (my skillpoints system) </li>
<li>Lower the games expected audience age. A game like this will never reach the same realistic complexity that someone would expect from current MMORPGs or Dungeons & Dragons, and setting realistic goals is important. </li>
</span></ol><span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;">I will be going into more detail about points 1 and 2 when appropriate, but for now we need to think about programming those first few skills!</span>Lyslehttp://www.blogger.com/profile/17124733255448699345noreply@blogger.com0tag:blogger.com,1999:blog-9137231650250170245.post-14093561910857400192011-08-11T15:36:00.000-07:002011-08-11T15:41:35.704-07:00Wandering NPCs<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="http://3.bp.blogspot.com/-GRP7thMEhwk/TkRacTOli9I/AAAAAAAAADQ/13e2kOpSbSc/s1600/untitled15.png" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" height="188" src="http://3.bp.blogspot.com/-GRP7thMEhwk/TkRacTOli9I/AAAAAAAAADQ/13e2kOpSbSc/s200/untitled15.png" width="200" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Click the link in the main text to play</td></tr>
</tbody></table><span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;">There really isn't a game yet, so I suppose it depends on your definition of playable... But I am going to post it anyways. Try <a href="http://lysle.net/worg2/08-03-2011_manyNPC_ex.swf">this example of the game</a>, the first build ever of my new game.</span><br />
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"><br />
</span><br />
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"><b>Why So Many NPCs?</b></span><br />
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;">In this example, there are many many NPCs wandering around. I had some fun increasing the amount of NPCs to see what the game can handle before it starts to slow down, and you should get a totally normal framerate with that many NPCs. In fact, I was able to go up to 400 NPCs before I started seeing the framerate drop. Once all the other elements of the game are added in (especially multiplayer networking) this won't be the case, but right now it was fun to see so many characters on the screen at once without lag. Lag is a serious problem when you are coding a game with AS3, especially one that is online multiplayer with real time combat (as opposed to turn based combat). I will definitely write another article about that in the future.</span><br />
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"><br />
</span><br />
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"><b>Class Structure & Pathfinding</b></span><br />
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;">So I started working on my client, obviously, and quickly flushed out a movement system for the character. The character you control is of class 'Player' which is extended from class 'Character'. Class 'NPC' also extends class 'Character'. I can already tell that the class 'Character' is going to be one of my biggest, messiest classes that the game revolves around.</span><br />
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"><br />
</span><br />
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;">Because I want both NPCs and Players to be capable of pathfinding to a given spot on the map, all my movement and pathfinding has to be part of the Character class. In fact, right now my player class is very very small. It simply checks to see what keys the user is pressing, and passes that on to the Character class via an (x,y) point variable, p. p.x=-1 is analogous to pressing the left arrow key, etc. Theres only about 10 lines of functional code in class Player so far.</span><br />
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"><br />
</span><br />
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;">I was seriously considering spending a LOT of time on this and making sure the pathfinding algorithm was perfect. To do that I would need 3rd party code, and I considered it a while. I think in the future I will need to adopt 3rd party code and a better system. Right now, the Character class can be told to go to a tile, but if there is an object blocking it's way it will fail to reach its intended target. If I choose to make a quest system, cinematic system, or multiplayer content then this could be a serious problem. Characters would constantly get stuck on things, and then I would have to put in some quick fix code to make the character jump to their intended location. It would be buggy and messy looking. So its something to keep in mind for the future.</span><br />
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"><br />
</span><br />
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="http://1.bp.blogspot.com/-eHHgD1n77-4/TkRVPn6MHVI/AAAAAAAAADM/9nfRvV_rgUE/s1600/wanderradius+explaiend.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"><img border="0" height="133" src="http://1.bp.blogspot.com/-eHHgD1n77-4/TkRVPn6MHVI/AAAAAAAAADM/9nfRvV_rgUE/s320/wanderradius+explaiend.png" width="320" /></span></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;">Click for full size image. This diagram shows real results<br />
from use of my wander radius code</span></td></tr>
</tbody></table><span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"><b>Wander Radius</b></span><br />
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;">So I have a basic NPC movement code that moves the NPC to their target location (part of the Character class). I still needed to add in code to have the NPCs decide where to walk. Thats when I did my wander radius thing that you can read about in the picture attached to the right.</span><br />
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"><br />
</span><br />
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;">The NPC wanders randomly around, and if they move too far from their origin point then they will only wander in directions towards that point. A value I call wanderRadius controls how far away from that point they like to wander. The code for this is about 50 lines long.</span><br />
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"><br />
</span><br />
<b><span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;">Physics</span></b><br />
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;">I am opting to use real physics like I usually do for this game. So there is acceleration, velocity, and location variables for each object (players, NPCs, and moving spells) in the game. But I have the friction coefficient up so high right now (0.5 per looping frame) and the acceleration so high (2) that you cannot tell. I chose to use real physics because I know I might want to have some slippery ice floor or something of that sort in the future in the game. :-)</span><br />
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"><br />
</span><br />
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;">Lss</span><br />
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"></span><br />
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"></span>Lyslehttp://www.blogger.com/profile/17124733255448699345noreply@blogger.com0tag:blogger.com,1999:blog-9137231650250170245.post-34515381414695569682011-08-06T18:55:00.000-07:002011-08-06T18:57:29.184-07:00The Map Editor Version 2<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;">Let me point out that at the time of writing this I am actually 3 or 4 blog posts ahead of myself so I am sort of back tracking to talk about the current version of the map editor.</span><br />
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"><br />
</span><br />
<br />
<div class="separator" style="clear: both; text-align: center;"><span class="Apple-style-span" style="clear: right; float: right; font-family: Georgia, 'Times New Roman', serif; margin-bottom: 1em; margin-left: 1em;"></span></div><table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="http://1.bp.blogspot.com/-JH_eTAmM8xI/Tj3nGCJU_JI/AAAAAAAAADI/Lou27cWy9Qc/s1600/Untitled-13.png" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"><img border="0" height="57" src="http://1.bp.blogspot.com/-JH_eTAmM8xI/Tj3nGCJU_JI/AAAAAAAAADI/Lou27cWy9Qc/s200/Untitled-13.png" width="200" /></span></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;">The tilesheets (top) each have their own<br />
frame in a tile mc. That mc is masked.</span></td></tr>
</tbody></table><span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;">The first version of the map editor worked, but I opted to expand it a little more before beginning to program my game client. I knew that I could not make more than a tiny area using the 'click to circulate through tiles' method and I needed an easier way to navigate my tiles. Also I had a ton of tiles that I wanted to use (most which I found on google images), but no way to import them into flash without going through each one and removing each tile from the tile sheet one at a time and creating a new movieclip for that tile (or actually a new frame within one movieclip). Then using gotoAndStop(frame), the tile was selected. Now, the tilesheet is selected in the same way, and then the tilesheet is masked so that only one of many tiles on it can be seen.</span><br />
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"><br />
</span><br />
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="clear: right; float: left; margin-bottom: 1em; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="http://4.bp.blogspot.com/-uxk-4cWmguo/Tj3nFd6XWNI/AAAAAAAAADA/5IHZYrE6wG4/s1600/Untitled-11.png" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"><img border="0" height="153" src="http://4.bp.blogspot.com/-uxk-4cWmguo/Tj3nFd6XWNI/AAAAAAAAADA/5IHZYrE6wG4/s200/Untitled-11.png" width="200" /></span></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;">Some of many tile sheets. Some had to be <br />
resized so their tiles were 32x32 pixels</span></td></tr>
</tbody></table><span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;">This is a questionable way to code a tile system, at best. But it is a good way to quickly program such a game. Ideally however, the tilesheets would be split apart using a 3rd party program, uploaded to the internet, and then reorganized together into the map editor. Then when the game client is loading it gets a list of the tiles used in each zone and while that zone loads it loads in each individual tile. Instead of using one mc that contains all the tiles, each tile would be loaded separately. It would help a lot with lag and just be smarter programming, and I did use this system with my Online Mario World game, as seen on CND-Online.net. However, it took me a lot of time to program this and now it is so large that after looking at it I decided against adapting the system for this game. Instead I am starting fresh with this simple masking system, and if in the future lag becomes a problem because of too many of these performance heavy tiles, or if I want to make larger maps with more tiles, then I will adopt a better tile system. Sometimes short cuts have to be used when you don't have a lot of time to program. </span><br />
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"><br />
</span><br />
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="clear: left; float: right; margin-bottom: 1em; text-align: left;"><tbody>
<tr><td style="text-align: center;"><a href="http://3.bp.blogspot.com/-HXcbIeH80m0/Tj3nFyOE8gI/AAAAAAAAADE/FzG59sEd9vA/s1600/Untitled-12.png" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"><img border="0" height="102" src="http://3.bp.blogspot.com/-HXcbIeH80m0/Tj3nFyOE8gI/AAAAAAAAADE/FzG59sEd9vA/s200/Untitled-12.png" width="200" /></span></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;">The mc is relocated so that the tile we<br />
want falls under the 32x32 px mask.</span></td></tr>
</tbody></table><span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;">The 'correct' way of doing it took me 5 or so AS3 classes, a 3rd party program, and a couple php scripts. The simple masking system I am using for this game takes only a few lines of code, as seen in the picture to the right. So if you read my last post about the 3D grid, you might find it interesting that each element of the 3D grid now has 3 variables: the tilesheet, and the x & y location on that tilesheet where our tile is located.</span><br />
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"></span><br />
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"> </span><br />
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;">Another modification I quickly realized I needed was to add another shortcut (I used M) to switch between two modes. One mode where dragging the mouse while holding the mouse button drags the map (so you can create zones bigger than the small screensize) The other where dragging the mouse while holding the mouse button fills in any tiles you move over. That way you do not have to click each tile just to place grass, etc. It saved a lot of time and headache.</span><br />
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"><br />
</span><br />
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;">So right now I have a nifty map editor with 3 layers, 5 or so tilesheets, and many key shortcuts: I, E, S, M, T. You can test this version out here:</span><br />
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"><a href="http://lysle.net/worg2/08-06-2011_ex_editor.swf">http://lysle.net/worg2/08-06-2011_ex_editor.swf</a></span><br />
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"><br />
</span><br />
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;">It uses a different zone specially for this test version, so it does save correctly. The map editor is not meant for players to use though, so there are bugs that I ignore since it is just for my use right now.</span><br />
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"><br />
</span><br />
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;">Lss</span><br />
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"></span><br />
<div class="separator" style="clear: both; text-align: center;"></div>Lyslehttp://www.blogger.com/profile/17124733255448699345noreply@blogger.com0tag:blogger.com,1999:blog-9137231650250170245.post-548060652058937882011-08-03T19:14:00.000-07:002011-08-03T20:38:33.606-07:00The Map Editor Version 1<b><span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;">The Code</span></b><br />
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;">The map editor is a stand-alone client apart from the main game client. They will not be sharing any code. I have broken the map editor down into 6 classes: Main, Map, References, SaveMap, TileChooser, Ui. Most of the interface happens on the Map class, and you can probably guess what the rest is for. </span><br />
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"><br />
</span><br />
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;">Within the Map class is a 3D array called grid. This array contains the visuals of all the layers of the map; it is essentially the data of the map... So it will be what is uploaded to the games database and saved in the end of the day, and the only piece of the map editor that the real game client will ever see. Since this is a tile-based game, each tile has its own element on the grid array. grid[0][1][2] would be represent layer 0, x location 1, y location 2. The value will be an integer based on what tile is chosen for that location on the grid.</span><br />
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"><br />
</span><br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://1.bp.blogspot.com/-auGFqNZTDKM/TjoULqGs_AI/AAAAAAAAAC0/Dbe8oYWA4xc/s1600/Untitled5.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" src="http://1.bp.blogspot.com/-auGFqNZTDKM/TjoULqGs_AI/AAAAAAAAAC0/Dbe8oYWA4xc/s1600/Untitled5.png" /></a></div><span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;">This is pretty standard stuff and can be seen on most RPG making tutorials. A similar 3D array holds the instances of each tile (the visual representation of each tile), which I call images. It is important that the array is 3D, not 2D. Obviously the game is 2D, but I want to have some layers on top of the players character and some behind. I will probably be sticking with 4 layers: Layer 0 will contain the basic background tiles (usually grass or cobblestone). Layer 1 will contain objects like bushes, houses, and doodads like tree trunks. Layer 2 will contain the player and interactive objects like NPCs or signs. Layer 3 will contain foreground objects like the top of trees. That way when the player walks behind a tree the tree stays in front of the player.</span><br />
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"><br />
</span><br />
<b><span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;">Using It</span></b><br />
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;">Clicking on the map goes through the tiles. So if you click on a piece of grass, it turns into a barrel. If you click on a barrel, it turns into a stone. If you click on a stone, it turns into nothing. If you click on nothing it turns into grass. There are only these three tiles. During my next expansion to the map editor, I will be adding more tiles and a new system for choosing your tile, because once there are 100+ tiles the map creator really will not want to click so many times just to find the single tile he wants.</span><br />
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"><br />
</span><br />
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="http://2.bp.blogspot.com/-Ol8fJKJ__VA/Tjn_DVFrBkI/AAAAAAAAACE/qcBeNR8vdEg/s1600/Untitled3.png" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"><img border="0" height="108" src="http://2.bp.blogspot.com/-Ol8fJKJ__VA/Tjn_DVFrBkI/AAAAAAAAACE/qcBeNR8vdEg/s320/Untitled3.png" width="320" /></span></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;">This code takes the mapdata already retrieved from the</span><br />
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;">server and adjusts it so that the grid is the correct size</span></td></tr>
</tbody></table><span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;">Right now there is a small box labeled 'circulation'. This is a temporary fix for the problem where I do not want to click through the tiles. If circulation is empty, then all tiles can be clicked through. If you fill it in with a number like '1', then only that corresponding tile will be in the circulation when you click a tile. So entering '1' alone in the circulation box effectively makes any tile clicked into grass. If you press I (for ID), whatever tile is being hovered over is added into circulation. If you press E (for eyedropper), the circulation is cleared and the hovered tile is added to circulation (alone). Other keys include T to toggle map editing (so that you can easily drag the map around and see different areas of the map without making accidental modifications), and S to save the map.</span><br />
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"><br />
</span><br />
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;">It is effective enough to make a small map, but I think I will be working on making it better before I start working on the game client.</span><br />
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"><br />
</span><br />
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; text-align: left;"><tbody>
<tr><td style="text-align: center;"><a href="http://3.bp.blogspot.com/-btCeje5ST-M/TjoC4hO-sOI/AAAAAAAAACs/XP8Z-kiCfeY/s1600/Untitled2.png" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"><img border="0" height="113" src="http://3.bp.blogspot.com/-btCeje5ST-M/TjoC4hO-sOI/AAAAAAAAACs/XP8Z-kiCfeY/s200/Untitled2.png" width="200" /></span></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;">This is version 2 of the map editor. I don't</span><br />
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"> have any screenshots of version 1 saved.</span></td></tr>
</tbody></table><span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;">The maximum map size right now is 100x100 tiles. I don't think it would be a problem to make that bigger, but I probably wont go over 200x200 because of lag. 200x200x4 layers could mean 160,000 tiles in one zone! That is actually not very much compared to what is seen in some games, but because we are working with AS3, that is quite a bit. AS3 is notorious for not being able to handle a lot of movieclip objects at once. So instead the game will need to be broken down into zones, which is a good idea anyways, because I may want it to be that players can enter houses or dungeons in the future. I included zones in my scripting, but right now the game always refers to the same zone: 'testzone2'.</span><br />
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"><br />
</span><br />
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;">We will see an example swf that you can actually play with in the next blog post.</span><br />
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"><br />
</span><br />
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;">Lss</span>Lyslehttp://www.blogger.com/profile/17124733255448699345noreply@blogger.com0tag:blogger.com,1999:blog-9137231650250170245.post-2996159215402771192011-08-03T18:18:00.000-07:002011-08-09T20:33:20.908-07:00Why Programmers Suck & My #1 Strategy<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"><b>Why Programmers Suck</b></span><br />
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;">You can think of me as an anti-programmer. I did not learn to program in school, and I would never recommend programming as a career. I do not want to become stuck in the monotonous world of making software for other people. Or just having a boss in general. The only bosses I want to have are the ones at the end of a dungeon in Zelda: A Link to the Past. The only time I want to program something for anyone but me is NEVER.</span><br />
<br />
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="http://3.bp.blogspot.com/-ib_dzdK9vVM/TjnxphL1yaI/AAAAAAAAABc/9i6Xfda0dOU/s1600/computer_science_major.PNG" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" height="320" src="http://3.bp.blogspot.com/-ib_dzdK9vVM/TjnxphL1yaI/AAAAAAAAABc/9i6Xfda0dOU/s320/computer_science_major.PNG" width="301" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Why I've never taken a CS class</td></tr>
</tbody></table><span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;">If I do program a game I don't want to be making it for myself, even. As in, I do not want to design an elaborate game and then have to spend months programming something that is already planned.</span><br />
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"><br />
</span><br />
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"><b>My Strategy</b></span><br />
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;">Which brings in my programming strategy for this game: Do not plan.</span><br />
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"><br />
</span><br />
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;">Planning destroys the fun of seeing what happens next. When I am already thinking about the skill system for my game, then how am I going to find the motivation to program the basic combat? When I am already imagining how my elderworld will operate, how does one find the patience to debug a simple map editor? Getting ahead of myself has been my achilles heel of every game I have ever programmed. I start getting too excited, and then I end up disappointed that things aren't moving along faster. Don't get me wrong, I will be writing this intelligently, with comments and with room for adding in whatever I might dream up in the future... But leaving //?? comments all over my code is a sure way to get burnt out, so I will not design the game details ahead or make decisions until they come up in the code.</span><br />
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"><br />
</span><br />
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;">For any aspiring programmers I encourage you to start small, and do not let yourself plan out anything too elaborate until you have laid down the basics. You, like me, are a game designer first, and a programmer second. But we don't have a legion of chinese sweatshop workers to do our grunt work for us, so you need to find a way to enjoy coding. That means dispersing choices, decisions, and game design throughout the coding experience. Also, keep clean, well structured code that you will be able to read later. You do not want to feel frustrated at any part of development. Frustration can easily lead to working ahead of yourself, short-cuts, messy code, and bugs. Make sure each part of the game is smooth and working how you want it to before moving on to the next, exciting part.</span><br />
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"><br />
</span><br />
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;">Lss</span>Lyslehttp://www.blogger.com/profile/17124733255448699345noreply@blogger.com0tag:blogger.com,1999:blog-9137231650250170245.post-56703990064833913552011-08-03T18:02:00.000-07:002011-08-06T19:05:14.663-07:00The Structure, RPG Maker, and Other Languages<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"><b>Why Not RPG Maker?</b></span><br />
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;">I like to code everything from scratch, which might seem tedious given the availability of game creating programs like RPG Maker, etc, but I just can't stand trying to figure out how to do what I want to do in those programs. Even if there is a way to customize things how I want, I can't stand figuring it out. Since I am not a professional programmer, I have a difficult time understanding the complexities of other peoples codes or syntax of new languages.</span><br />
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"></span><br />
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"> </span><br />
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="http://2.bp.blogspot.com/--xdltvbXWJk/TjoDjz1S7KI/AAAAAAAAACw/45T5mVfnl94/s1600/tilea2+%25281%2529.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"><img border="0" height="149" src="http://2.bp.blogspot.com/--xdltvbXWJk/TjoDjz1S7KI/AAAAAAAAACw/45T5mVfnl94/s200/tilea2+%25281%2529.png" width="200" /></span></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;">Some tilesheets I've found for the</span><br />
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;">game online, 32x32 square tiles.</span></td></tr>
</tbody></table><span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;">For example, I am using blogger for this blog. I am going against a huge part of me that wants to code this blog by hand in HTML. Why? Because there are a lot of simple little things that I cannot stand for the life of me about this blogger website that I am already noticing, only a few minutes into using it. Some I can fix, some I cannot. I suppose it comes down to stubbornness and a passion to control every element of my design. I recognize that as a fault, but I still can't help but be amused when I am at a party and somehow a conversation takes a wrong turn into programming (it happens more than we are willing to admit, doesn't it?)... And I get asked what software I use to code my websites. I reply 'HTML' and 'PHP'. They look at me, shocked... WHAAT!</span><br />
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"><br />
</span><br />
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;">So I am programming this game in Actionscript 3, the flash based programming language. And I encourage any kids looking to get into programming as a hobby to learn a real (object based) language like AS3 or C sharp. It is more difficult at first but more rewarding in the long run. On second thought, I encourage you not to get into programming at all, I'm sure you have better things to do. Also I will be using PHP for database communication and (if I decide to make it multiplayer) the game server.</span><br />
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"><br />
</span><br />
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"><b>The Game Structure</b></span><br />
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;">To begin, the game will be broken into 2 flash based clients. One for making maps and one for playing the game. The Map Editor right now is not built for anyone but me to use... It is really complicated. In fact, I was pretty confused how to use it myself. Oh and it has bugs. The game client I will start posting on this blog when I have working versions done. Then if I make the game multiplayer there will be a game server written in PHP, but I will also be making an additional flash client to use as a game master: Ie. control the NPCs and any other dynamic content within the game. I know that it would be possible to have this incorporated directly in the PHP server, but from previous games I have made I realize now that messing with the server is a bad idea. It is too difficult to debug in its current state. I am sure I will be writing a lot more on that if I get around to making this a multiplayer game in the future.</span><br />
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"><br />
</span><br />
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;">Lss</span>Lyslehttp://www.blogger.com/profile/17124733255448699345noreply@blogger.com0tag:blogger.com,1999:blog-9137231650250170245.post-62383426376003120132011-08-03T17:53:00.000-07:002011-08-06T18:59:43.362-07:00Getting Started<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"><b>An Introduction to Me and this Game</b></span><br />
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;">Today I will be starting to create a new game, which is untitled. I know nothing about it yet except that it is to be an RPG built using flash actionscript 3.<br />
</span><br />
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="http://3.bp.blogspot.com/-o2PoDMU5Fco/TjnsOGvn-eI/AAAAAAAAABU/0vyC-lktgBU/s1600/Untitled2.png" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"><img border="0" height="200" src="http://3.bp.blogspot.com/-o2PoDMU5Fco/TjnsOGvn-eI/AAAAAAAAABU/0vyC-lktgBU/s200/Untitled2.png" width="190" /></span></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;">My Website, http://www.lysle.net</span></td></tr>
</tbody></table><span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;">My name is Lysle Shaw-McMinn, I am not a professional programmer, but I have been making websites since I was 11 years old and games since I was 14. I made my first multiplayer browser based game when I was 17, which was quite an accomplishment at that time when multiplayer browser games were very rare. I am now 24 years old and in grad school to become an optometrist.</span><br />
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"><br />
</span><br />
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;">You can find my games on my website, http://www.lysle.net and maybe someday you will find the game I am working on in this blog there too! More likely: I will never finish this game. </span><br />
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"><br />
</span><br />
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;">Why program it if I don't plan to finish it? I program for relaxation and fun, and when this game becomes neither, I will stop. If this is my last post on this blog then holy shit, I got bored quickly, didn't I?</span><br />
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"><br />
</span><br />
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;">Lss</span>Lyslehttp://www.blogger.com/profile/17124733255448699345noreply@blogger.com0