Site admin writes a wall of text?
Mega can do that too!OK, quite honestly, I was amused by FSX's blog; both by it's length and it's content, and I made the decision right then and there… to write an 8000+ word blog.8000 words is a piece of cake, honest. I can spew forth Pretentious Waffle at a rate of about 120 WPM.Regrettably, I will begin this with the story of my life. Why the heck not? It's nowhere near as long/interesting as FirestormX's life, so fewer paragraphs :PI am of course neater than our beloved #2, therefore I am making liberal use of headers and hide tags.Organization is key, you know.My life
I was thinking of glossing over this with a blank space, or a blank image, but… I'll write something truthful for once about myself.For those of you who didn't know, I'm a South African. No I'm not black, no I'm not racist, and no… I'm not rich either.I live on the West coast of South Africa, which mimics closely the West Coast of America, so any of you living there knowwhat it's like. Some confusion has been caused before regarding my residence. I've mentioned before that my PC is 40 or so meters away from theADSL router, which leads people to believe that I must be living in a mansion or something, but the answer is a lot simple:I live on a sub-divided property, with my parents and siblings taking up residence in the one (small) building, and myself takingup residence in the other (slightly larger) building with my grandparents. This accommodation is not completely satisfactory, but hey, at least I get my own room which should be a damned right for anyhuman being over the age of 16 (And I'm almost twenty. So yeah).The only disadvantage is that my poor PC cannot access the router. Actually, in retrospect it's a good thing. You see, I have a majoraversion to Firewalls, Antivirus programs and any related bloatware in general. So my PC is completely unprotected…OK that's a lie. I'm protecting it with my eagle eye, unearthly knowledge of obscure command line commands and a lack of fear whenkilling threads (With fire, of course).Anyway. PC out of range of network == Good thing. I download stuff on the family PC, let it's overpowered frame do the virus checks onthe stuff I download, and then transfer that over to my PC via USB drive. The only real disadvantage is that I have to experience the horrorsof an Internet Cafe at home (Get booted off after 1 hour, circumvented thanks to unlimited access 'school' desktop. *awesomeface.jpg*Still have to fight with siblings over time though, and being the eldest does not help…)I came to this little town in 2003; my family liked doing the ol' moving ping-pong thing. We moved from one side of the country to the other about four times total before settling on the Western side. And by other-side-of-the-country I mean just that. This town I'm in now (Velddrif), is right on the coast; Durban (My birthplace and many-time home) is on the Eastern coast.Great fun. Enjoyed all the train-trips (Two days).I've mentioned all that stuff about how I started programming before, so let me spare you and shorten it:I acquired my programming knowledge by studying source code, reading books and finally by getting my hands on a decent internet connection.Yay.You know, I started off going to school around here; stayed in there for a year and a half then left to homeschool instead (School fees were too much).And you know what else? I'm so damned grateful that I got out of the local school system while I could; I wouldn't have been ableto learn nearly as much about programming, game development and most importantly math if I'd stayed in school (I started Algebra two years beforeI was supposed to, actually. Knew the basics after I figured Pascal out (Mathematical statements with variable substitution)).So since then I was happily homeschooled with nary a care in the world. And life wen- *INTERRUPTION*So a well-meaning family member (Not immediately related) decided that it was about time for me to do two things: > Write the Mensa entrance test (At the age of 14, if I recall) > Get back into a 'mainstream' school. FUCK.This is an interesting, emotional and sad bit of my history. A wasted two months of my life, and a scar that would last for a bloody long time.Mensa, Moving and School… againMy relative told me that I'd be writing the test in April (Ironic). Cool, that's fine. Go write the test (And scholarship applications for a few schools),come back home and resume my life for a while. I was content; I had just gotten my first PC, and was making great headway with OpenGL already. I was happy. Then, exactly one day before I was to leave for what I thought was merely a few days away for this testing shit, my grandmother asks through thewindow (Don't ask about my home layout. I'll post a photo sometime) if I'd packed everything. I said "Sure. I packed a weeks worth of clothing".Turns out that I was actually moving. ON MY OWN. RAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA-One hour Later-AAAAAAAAAAAAAAAAAAAAAAAAAAAGGGGGGGGGGGGGGGEEEEEEEEEEEEEEE!!!!!The main reasons for my anger were quite simple: > I thought I'd be actually moving the following year. > I wasn't allowed to take the PC with me (I can't remember why) > What was one supposed to pack when moving away on ones own at the age of 14? > I was in the middle of doing something awesome with OpenGL and frame-buffer manipulation at that point. > I had less than 10 hours to pack. Yeah. Fun. So next day I felt like a veritable thundercloud ready to lash out at anybody. That was nearly the mostsilent car-trip I've ever taken.Get to the city (Cape Town, actually), and I'm scheduled to write the Mensa test in a few days time. I did that. Fine. Results in a couple of weeks.Then I wrote a scholarship exam at a fancypants school called Reddam, which happens to be sitting rightnext to the American Embassy in South Africa. I passed the test, but was passed over for a scholarship.Probably something to do with the death-gaze I was dealing to everybody around me for a while. Oh, and my psychological report. Also, I was bad with group work, which turns out to be sooo important at South African schools. I can collaborate on a game-dev project, but do not ask me to collaborate on something like anessay or other school-induced 'project'.Meh. Regardless, I spent two fruitless and computerless months in Cape Town. Eventually, my relative pitched upat the school I was going (Which ended up being a Microschool, which is basically managed homeschool, so WTF was I doing there anyway?)with all my stuff packed in the car and told me that I'm going home. I was actually kinda peeved, because I was just beginning to enjoythe school (Also, it introduced me to Game Maker), and I recall kicking up quite a fuss.Also, get home and now I'm in trouble for my poor attitude towards the situation. So it was decreed "Thou, Mega, shalt not owneth thy own PC until we sayeth so".FFS.So I lost about a years total of time thanks to the family imposed 1-hour limit on PC activity, lack of internet, and my actual bad attitude towards mystudies. Heh. I'm not a social rolemodel, I can tell you that much.SWAG!Well, about that Mensa test? I passed it quite well. Yay me. Turned out to be very useful, because I was deemed a poor and disadvantaged boy withlots of potential as a programmer. What does this mean?Well, one day my dad received a phonecall from the head of the Mensa department in Cape town, who said that they wanted to give me my own computer. A modern computer. Of course, I wasn't told, because it was supposed to be a surprise.Anyway, I was bundled off to Century City (A large Casino/Hotel/Mall area in Cape Town's Montague Gardens district, with a theme park attached).And there I was met by the current Chairman of Mensa South Africa, and somebody else, and they had this large shopping trolley that was packed with stuff. Like… loads of stuff; A computer, speakers, wireless keyboard and mouse, and a TON of games and programs.Seriously, I got about 10 games with that, a disc with Ubuntu 6.2 on it (My first encounter with Linux), Microsoft Office Home and Student edition 2003(Which is too costly for us to buy, and my dad uses it still), and a few other things which I forget.Photos were taken, I was grinning from ear to ear (I was 15 at the time), and already thinking about what I was going to do.I had to wait for a while before my dad actually let me have the computer (Discipline can be harsh, but I cause my poor parents enough trouble growing up that I damned well deserved it).But when I did receive my first 'proper' computer, I was… overwhelmed. I hadn't exactly played any modern games up until that moment,and very little programming was done during that time (I spent a lot of time with Serious Sam, Quake 4, Battle for Middle Earth 2, World Racing 2…)Eventually the initial "Lol,games!" complex wore off, and I was able to settle down to some serious work. At that time I was making frequenttrips with my grandparents to the slightly-larger town "Vredenburg" (Each month, we'd go once, sometimes twice), to this really coolinternet cafe that had lots of computers, and best of all: Reduced prices for students. And since I was technically a student, I wasable to use the net using the money I managed to scrape together (Pocket money, I guess).I usually managed to use the net for about 2 hours a month, and that was like gold to me. Please, never feel ungrateful foryour 'shitty' internet conditions if you ever think you have them, because I'm sure there are tons of people like me who haveto go through that.Anyway, during this time (2008), I discovered YoYoGames, downloaded Game Maker, DevC++, GCC 3.X, allthe Megaman roms I could, and a ton of the tutorials from Jeff Molofe's (NeHe) site on GameDev.net.(http://nehe.gamedev.net if you're interested. OpenGL tutorials galore).And all was wellNOPE! There was another interruption, by the same benefactors: Mensa. This time they wanted to help me getinto a good school. *sigh*They had a list of schools, and the first one sounded great; it was called the "Cape Academy of Mathematics, Science and Technology". Itsounded awesome. They had excellent pass-rates, subjects that were non-existent in most schools, and they had a cool computer department.And I thought "I'm going there".There was one problem though: I'd have to be a boarder.Now, I was, and still am to a degree, both a xenophobe and a katagelephobe (It's a word. Look it up, wiseass).OK, the latter isn't true anymore. Do you honestly think I'd be on this site if that was the case? Also, a youth group I joined in 2010 helped (by force) with the former phobia. I still hate social gatherings though,preferring a mug of coffee and a book to company (Hence I was decreed a Twilight Sparkle by some of the annoying local bronies I met).Buck them :3Anyway, at the time I sucked it up and decided to go, because it sounded so awesome. I was allowed to take my PC this time.*sigh*But as always with anything that sounds 'perfect', it never is. My first day there, I realised something: I was the only white student,amongst a thousand. I'm not a racist at all, but a lot of the other students were. That was a very difficult 2 nights and 3 days I spent there…Anyway, that's not what ended it; I had decided to stick it out, but first I had a genuine complaint to lay with the headmaster: My roomhad a leak in the ceiling right above the foot of my bed. (OK, it was a room I had to share with three others, but it was MINE >:3)Also, I wanted to mention the problems I had with the public shower system. Not pleasant at all: There were no doors on the bathroom, the shower was basically a wall with drains underneath and anybody who happened to be wandering through the corridorscould watch. I see some of you thinking that the Girls dorm might have been very interesting in that case, right? Wrong. They had doors.Also, they had carpets. I hated them for that. The boys were situated in the oldest part of the school, which had previously been a dormitory for a Reformatory School for boys,and before that had been… a JAIL. Guess what? The doors looked like wood, but were actually metal panelled wood with a bitof paint, and the 3 inch thick steel bars were still on the windows. Oh, and the corridor gates. We were practically locked in at night.The girls got a nice new building, brickwork instead of those hollow-concrete bricks, they had heating, proper plumbing and carpets.Also, they had their own kettle in the common room, whereas the boys common room was so small that the kettle had to be removedto make space for the mandatory 'study time'.Anyway, when I layed my complaints to the headmaster, he sent me out and told me to wait on the steps of the school; he'd callmy aunt who lived nearby (The same aunt I was staying with in 2010, when I joined this site) to fetch me and I could resume mystudies as a day scholar instead (Which suited me perfectly. The school was en-route to my uncle's workplace).So I waited… and waited… and then… The school gates opened (Sliding gates), and to my horror, a red car that was alltoo familiar to me was rounding the bend, and the driver was looking pretty pissed off with me…My dad. The lying headmaster had called my dad and told him some sob story that I was an unsuitable student. I was expelled. Shortest expulsion ever, methinks. (2.5 days, since I got there on the evening of the first day).And that was absolutely the most silent car-trip I've ever suffered through, though my dad did buy me a Coke and someChips later on. (It's a 2 hour drive).ConspiracyThe headmaster had handed my dad all the papers that I had brought to the school (Prior reports, etc), but he also handedover a folder he wasn't supposed to; one that I still have. It's my lifelong school record, and it's supposed to be 'confidential'and not for my eyes. That's what it says on the top of the paper.I know why as well; some of my teachers and headmasters were really being bastards when it came to commenting on mylife and family. My mother was labelled as a useless teacher (From one of my earlier headmasters, 2004),I was a 'social nightmare' (Teacher, 2004), an 'impossible case' (Psychologist, 2005), and a 'Problem waiting to happen' (Teacher, 2005).After I read the whole set of documents, here's my summation of the reports:Daniel Lawrence is a misguided yet intelligent student. He lacks social capabilities of anykind, probably thanks to his poor upbringing (!). To rectify this it is recommended that hebe put into the kinds of situations that he isn't used to handling, such as group activities, andshould be seated next to the more sociable people in the classroom. That's the gist of it, though it went on a lot longer. Seriously, the psycho psychologists actually wanted to put me into a catalystsituation. I had a major problem with losing my temper, especially when somebody was annoying me. And nothing annoyedme more than the types of people who're flicking piece of paper at you all day, taking your pencil, copying your notes, and laughing at everything you do. And my mother was perfectly capable as a teacher, but faced the exact same problems the teacher did. Not with mysocial behaviour, but with my anger. Recently I've begun to calm down a lot, but believe me, cross my wires andpeople get out of my way very quickly. Scribbled by the latest headmaster, the one who expelled me (It was signed with his initials) was a note in Afrikaans, whichtranslated into English read "Problem Student, Take zero-tolerance approach". So he caught my 'complaint' as beingmy 'social' problem resurfacing, and decided to stick to his zero-tolerance approach. I've still got those documents somewhere in my boxes. It's such a pity that the government feels it's more importantto improve a school student's social ability, rather than their academic ability.It got worseSo I returned home, and thought "Good. Back to my life again."WRONG. My dad, feeling (Rightly so) that I had erred on the side of family justice again and was dragging the family name through the proverbial mud decided that my PC was to be confiscated and kept in the garage for anindefinite amount of time.To top it off, I was denied my old room (The one I'm now thankfully in), was forced to sleep on a thin mattress onthe floor, and I had to work at my first 'job'. I was thrown into manual labour at the local plant nursery. Fun [/sarcasm]. Of course, I actually wanted the job, and I was oflegal working age, but it wasn't fun busting my back for nothing. I got a pittance for my work, hurt myself often, gotheatstroke once and basically stalled my life for three months. I eventually got 'layed off' as was planned (It was disciplinary action, not a real job), which was fine by me, and then I thought "Yay Computer Tiem!".I was going to be tentatively allowed to use the PC, but it was to be set up in my parents house and I was only allowed1 hour a day. Well, that was the plan. Then as usual…Shit happenedYou see, a garage isn't necessarily the best place to store a PC. Turns out that it got damp at some point. It was dry when I checked up on it before I plugged it in (I'm very careful about that), but two days later, themotherboard and GPU fried because of a fault in the PSU. I think that was one of the only times in my life when I felt that I was being hounded by an evil army of anti-programmers who only wished to bring despair upon my head. That was my most depressed moment, I think.I remember at the time that I was resentful towards Mensa for trying to put me into a school; I blamed them forinterrupting my life. Actually, I'm thankful to them now. No point trying to change history; they gave me a tasteof a 'real' PC (My older one had been a Pentium 1), and they really tried to help me; they thought they were helping,and perhaps if I wasn't such a douche I would have been helped. :PBack to the presentEventually, my dad gave me a PC to use with my correspondence course, the one I did in 2010 (Though I did manage to patch up a little Celeron before that).Then I finally got my hands on a persistent internet connection, and The Great Assimilation began… dramatic sounding, isn't it?I have 3 gigabytes worth of PDF's on my HDD that pertain to programming, design and music.I also have about 2 gigabytes worth of saved informational websites (Thanks to wget; very useful for getting a bunch of articles of Gamasutra, Programmersheaven and GameDev.net).That's a damned lot of information, and each and every day I look for more. Crazy, I know, but I do like my studies. <3Seriously, who else in this decade would be studying the ancient VGA techniques that I never knew? And why would one seek to learn 6502 assembly? Or how to build a kernel? All in fun, I can assure you.
Mega's take on Art, both Traditional and Pixellated
You'll be needing this later:Would you believe that I've been an 'artist' for quite a while, before I started pixel art? I can draw any subject given merely two things: Paper and a pen.And a lot of what I've learnt about form has been taken from my 'real' art and used in my videogame work.But really, I'm a maverick. I never 'studied' art, the same way I had never studied music. Now, though, I'm starting to read more and more upon the subject. The current book I'm reading is the book "Drawing with Children", which I know sounds a bit… below my level, right? Wrong. It's for adults too, and teaches some excellent techniques for studying and drawing pictures; these techniques are alsoapplicable to game art, it turns out.The basic premise is that everything can be drawn using several basic shapes: Dots, Lines, Circles and Curves. All objects canbe logically broken up by surface and edge into these 'key' shapes, and since everybody I know can draw these basic shapes, it means you can draw anything. Though I'll admit that I only picked this book up two weeks ago, so it hasn't beenresponsible for my improvements. I'll get to that.The hardest thing I've ever drawn IRL is my cat. I did it for a birthday card; my dad's birthday, I believe.I used my awesome photography skills (Apparently I've got stable hands and a good photographic eye; don't take my word for it,because I haven't got a clue ^^') to take a still picture of the cat, and worked for 8 hours solid with nothing but my pencil setand a piece of paper. No eraser. Turned out excellently, actually; I had to approximate some of the features that I didn't capture in the photo; it wasn't a highresolution photo, and I needed to concentrate on the facial details. Believe me, once you can capture that smug, self-content look of a cat's face in your art, you're ready to try anything.Actually, that's a bit presumptious. Capturing the facial emotions of any living creature can be one of the most difficult aspectsof any representational drawing; game art included. It's usually the eyes, though mouths can be a pain in the ass to drawas well.Some random ideas about drawing anthromorphic characters for gamesThere's a reason people opt so quickly for the usual square-with-eyes or robot-thing when it comes to their games (Myself included).Fear of the anthromorphic shape. First one of you to think "Furries!" gets killed with dragonfire. Anthromorphic covers anything that resembles the shape of a humanbody. Let me go over a list of common mistakes I've made before (And since rectified): > The head must be round > The head must be square > The eyes must have whites > The eyes must have a pupil > There must be a mouth > The face must be shaded > There must be a recognizable nose. > There must be ears. > There must be a neck > The arms must be proportional (ditto for the legs) > The main character must wear a cloak. (A particularly heinous mistake). OK, these aren't all the possible misconceptions and design mistakes, but let me clarify why these are mistakes.Rez, Mush, Cesque, Cyrus… you have the right to flame me later, but for now READ. READ or BE READ [/sovietRussia]The shape of the headHave you ever seen anybody with a geometrically perfect head? Put your hand down down, [furry]. Minecraft doesn't count.With my mage character, and the spearman I made (Which you haven't seen. I might post a pic of it), and with all the characters I'mmaking now, I stick to a simple solution: Squashed ellipse with a shaped jaw. Also, ears.How does this help? Simple. The upper part of the head has a roughly elliptical shape, but if any of you have seen a picture of ahuman/animal jaw, that's where the basic geometry ends (Let's not even get started with eyesockets). Depending on the 'heavyness' of my character (READ: The macho marine factor), I'll make either a pointed, rounde or squared offjaw. My mage character has a flat/round jaw, because he ain't a marine, he's a scholar.What you can't see in my mage sprite is the ear, because I decided to put a book over it >:3But that's usually just a few pixels of area off to the left.The eyesEver felt like slapping sunglasses on your sprites quickly because the eyes are just too damned hard to draw? Whydo you think my high-res artworks (Like in my banner) always tend to have some form of Awesome[super]tm[/super]eye protection? I still can't drawn high-res eyes properly. Fortunately, I've been practicing in the pixel-art eye arena.There are so many types of eye, and each one, even though only a few pixels different, can make your characterlook so different it's ridiculous.The type of eye I use at the moment for my RPG characters is a simple 2x3 pixel eye + eyebrow that also allowsfor color to be added to the iris. Difficult to put into words, but here are some tips: > Don't oversize the whites, unless you want your character to look like he's surprised out of his wits. > Don't add the whites at all unless you have to, or can (Space constraints). > Mess around with different eye-types constantly. > If you have to have an iris color, don't make it stand out too much. I'm definitely going to post up my next sheet of humanoid spriting practice…Ears, Face and NeckFirst of all, ears are only necessary in the situation where the character has short hair, and only then if there is enough space to work with (I only bother if I'm working at 32x32 or higher resolutions).Ditto for the nose and neck. The neck is a bit more of a personal choice though. Depending on the clothes being worn and also the gender of the character, you may want to leave the neck out.Shading the face is tricky. Don't overdo it, and use non-contrasting colors. Why? Because any too-dark or too-light colors will draw attention to the cluster of pixelsthat contain that color and just highlight the fact that there isn't enough detail in the face. My mage character only used three colors for the face, and the dark onewas used to cast a shadow from the helm/band he's wearing. Body proportionsFirst, I'm casting *SHIELD* level 5. OK. Now, I'm going to reference a certain game called Yggdra Union, for the Gameboy Advance. It's got some excellent examples of human characters in it,and serves as a great reference.But wait, what is this? During my studies of the screenshots of this game, I noticed something that struck me as peculiar. The human swordsmansprite looks perfect, and is about 32x48 in size… OK. But the arms are only 2 pixels wide!?!Well, I discovered through experimentation that because you're not drawing attention to the arms and more so the armor, you can get away with this,especially at sub-64x64 resolutions. Same for the legs.The only time you have to draw attention to your character's beefed up arms is if they happen to be using them to punch the enemy's face in, and even then, it's morethe fist (Which should always be proportionate).CloaksDon't do it. It's cliche. BoundingNow I remember Cesque telling me off about the way I outline my characters.And naturally I thought it perfectly natural to outline every discernable shape in my characters with a dark color.Doing this has an unfortunate side effect: It makes your character look like a robot, and not in a good way (Fineif you're trying to draw a robot though).So through my constant observations of famouse pixel-art, I discovered something: Don't 'bound' the parts of acharacter/object, bound the object itself, and then only where contrast is needed. Observe my mage (again), and look at the tops of the shoulder-pads and the arms.Also, the headband, the top of the book and the bottom of the shoes. I can't really explain the reasoning behind it, other than that it looks more natural and appealing to the eye (Easier to view, actually).Anyway, I'm getting too sleep-deprived to write sensibly about art, so let me write nonsensically about a few other things and thenresume writing about something else of interest after my coffee kicks in…
What I'm listening to
People may be interested in this. I often change what I listen to, favoring a certain new song I've found over the hoard of others I've collected over the years. Right now according to WinCramp I'm listening to: Bronyfied - Brony Metal Medley - Buck yeah. Interstella 5555 (Daft Punk) - Love Daft Punk's music Da-chip - 8-bit Daft Punk. Megaman 3's soundtrack - in glorious NSF format Nightwish - Found them on my HDD again a few weeks ago Some of Mordi's music Some of sirXemic's music Even some of Stevenup's music… Hey, here's some of mine Ah, duped MM3 list. *deletes* Some others, like Machinae Supremacy, Rushjet1, and a boatload of Castlevania music from some of the NDS titles, in Stereo. Yay. And as usual, the PMV that turned me into a Brony to begin with. Oh yes, I saw the best comment ever on Youtube, on a page with some Brony-made metal, that went something like this:
Now before our esteemed Metal/Heavy/Death/Black fans start bombarding me with YT links, let me just point something out: I only like listening to music without loud lyrics; so 99% of the Metal genre is out most of the time. I've been carefully picking a few tracks that I like, on my own for several years (I believe that death introduced me to the genre).I work in sync with the music playing in the background, strange as it may be to som. The more frantic the music, the faster I type/draw/think. Of course, the only time I don't work with music playing in the background is when I'm composing my own music, for obvious reasons :3Of course, my mind rebels when it hears a lot of lyrics, attempting to figure out what the hell the singer is trying to say, breaking my intense focus and stalling my work. Now, we don't want that to happen, do we? ;p
Quote:
My Little Pony made me like Metal…Wait, wut?! O_O
Gaming
I still play a few games here and there, though admittedly far fewer than I used to a few years ago. I'm currently ploughing my way through: Final Fantasy Tactics A2 Ys books 1 & 2 (DS) Shining Soul 2 (With my brother in tow. Co-op) Megaman ZX Advent (Again). Secret HuntingAs you can see, they're all simple handheld games; I get tired of complicated high-resolution games that take forever to load. I still haven't finished Far Cry 2. So what do I mean by 'secret hunting' with MMZX Advent? Let me explain.The Megaman Zero games, by tradition, had awesome secrets that could be unlocked by us zealots players if we played long and hard enough (And near perfectly, in the case of Zero 1 and 2). Megaman ZX, the first game, also had an awesome secret: You could unlock Model O (Zero's original body, with awesome powers) if you had insane battle skills and could defeat Omega on Normal mode or higher, as well as some cameo battles (8 in total) from Megaman Zero 3 and 4.Megaman ZX Advent only has a lousy Biometal called 'Model a', note the lowercase, which allows you to play as what looks like a fan-made sprite-edit from Megaman 1, which is weak as hay, and isn't much of a secret. So I'm doing what I do best: Hunting for dem secrets. I uncovered the secret mode in Zero 1, and was in the process of doing so for Zero 2, a long time ago. Inti Creates like hiding little things like that in their games (The Dark/Junk armors in Zero 3 and 4, for instance, though crap were secrets. There may be more, but I haven't investigated).As you can tell, some games I love poking with a sharp pointy stick to see what I can get out of it. Specifically the Zero/ZX games. Mega is/was Megaman fan.Oh yes, Rez, I played Demon's Crest. Felt and played like it was built on the Megaman X engine (Which was a good thing), and had interesting gameplay. I finished it, with the Ultimate Form. Not quite as challenging as I had hoped though :PBut I will agree that the artwork was amazing. And it made a very interesting study, which reminds me…
More artsy stuff
If any of you have seen examples of my work from early/mid 2010, you'll agree that it's horrible. But yet, in a relatively short space of time, I've improved to the point where people like (most) of my artwork, and at the very least I don't feel ashamed of showing it to the public.So looking back, I have here a few tips for anybody who wants to "Learn how to draw pixel art". It's very simple: > Practice. Don't discard something you can't get quite right/complete on the spot. Keep it and try it again later. > Observe. See a character in a game that makes you think "Wow, I wish I could do that!" much? I know I do. So what do I do? Screenshots, either taken by yourself or from the internet. I examine the colors, curves, contrast, texture and general form of the art. > Duplicate. Try to duplicate art styles you like the look of. > Don't be perfect. If we were all perfect pixel artists who managed to abide by The Way of The Pixel's Law, what would be the ultimate difference between my Soldier and somebody else's soldier? > It should look correct, but not necessarily be correct. For instance, saturation. Most seasoned pixel-artists try to scare the living Color out of you the second you try to learn how to sprite. But we forget, all things have varying amounts of color in them, and almost any two surfaces under the same light source will still reflect varying amounts of light.Oh yes, another important one: Upload your artwork, and prepare for criticism. And take it seriously (To a point). Ignore any comments along the lines of "It's cool" or "y u no vector?" or "It sucks!".Those are not criticism, those are merely thumbs up (First case), thumbs down (Third case) and second finger up (Second and Third cases).A word on SaturationSaturation, I was told, is the root of all evil. This is the biggest load of crap I've ever heard, now that I look back at my work.The best way to think of Saturation is to think about how much 'energy' the object you're drawing has in it.Full saturation (Neon colors) are great for neon lights (Coursing with light energy). Ruined stoney structures have little, if any, energy in them.Another way to use saturation is as a way to simulate depth of field (Focus). Objects further away in the background can have fewer colors and less saturation, which gives the effect of them being blurry and indistinct (Not always the effect that you want).Bottom line: Don't be afraid of the saturation slider being anywhere above the 100 mark. Color temperaturesJust an interesting tidbit I thought I'd drop in here. Colors can look cold and hot, depending on how you make them (Yes, you 'make' your own color palette if you're serious about doing pixel-art).Some general palette tweaking can yield some interesting results; here's my reference table for some of the colors. BIAS: EFFECT: Red Hot Yellow/Orange Warm Gray (Low sat.) Dead Blue Dark/Cold Aqua/Cyan Water/Cold Green Living/Flora/Jungle (Filtered light) White Burns your eyeballs out Some basic animation techniquesI'll begin by saying that it's extremely difficult to write something like this. I just know how I do my animations, and it's difficult to… translate the information into an understandable bit of text.Anyway, I divide my animations up into three categories: Color, Texture and Shape.Color animations are a way to achieve apparent motion by merely changing the color of a few pixels in the image (AKA: Color cycling).A lot of old VGA games used this to simulate waterfalls/fire/etc.Texture animations are cycles that move pieces of a surface on the sprite around to emulate motion. A good example: The conveyor belt. The 'belt' moves, but if there is a border piece, it won't. Those two animation techniques are relatively trivial. It's the shape-transformations that can be a royal pain.But I have some guidelines: > Use GraphicsGale, and become acquainted with the Onion-skin feature. Only use GM if you have a great memory for the last known location of the player's foot. > Keep backups. If you've made something and you want to tweak it a bit, save a copy before trying. You'll save yourself a lot of trouble (This applies to V4 too *trollface.jpg*) > Don't be afraid to make dramatic movements. I tend to 'key' all the extreme motions of my animations first, then I draw a couple of 'in-betweens' to smooth them out. A lot of people tend to think that they have to move everything one pixel at a time. I know I did… > Emphasise. When your player is stabbing with a sword, make his feet slide back, his hair wave a bit and the sword arm thrust forwards dramatically. Speaking of guidelines, I tend to draw a mock frame that shows where the head of the character should be, ditto for feet and arms, and any accessories/weapons he holds (Just to keep the height more or less consistent).
Programming - Game Development Related
All that other crap was merely the cream off the top. I can write (and speak) volumes about this; heck, I can go on for hours about OpenGL on it's own, so… yeah. What say we call this now?JUST KIDDING! I have to write this stuff out!Now, instead of spewing forth random information, I'll focus specifically here on Data Structures, falling into the realms of Benign, Useful, Obscure and Arcane.I'll keep this simple with mere algorithmical representations of the concepts presented; implementations vary, and require the appropriate management and memoryhandling, even in C#.Actually, I'll resort to C++ code. :D For Python interpretations, mail-bomb PY.Linked ListsThe foundation of all the other dynamic data structures.They work on a very simple basis that lends itself remarkably well to Object Orientated programming languages.Consider this piece of I whipped up for the occasion (If you can't implement a basic data structure from memory, you're a lost cause…)
By the way, I wrote this in this document, but I tested it with GCC to make sure it was stable and safe; looks like I've still got it.The code will compile, run and produce the expected output. Anyway, that's your common or garden dynamically expanding data structure, but that is merely scratching the top of the pile.Dual-Linked ListsAlso known by other names, but this is merely a variation on the previous list that offers another link: prev.It's not really that useful in a game situation, but it's handy to remember in case you have data you needto transverse bi-directionally.Insert-sorted listsThese types of lists automatically sort themselves when you insert new elements. I used this type of list to depth-sort sprites in my Hydra engine, then traversed the list backwards. It depends on an extra bit of data, a 32-bit or 64-bit integer, that is used to sort the entries. In my implementation I treated it as 'depth, but hash-values can also be used.Here's a template of a simple Insert-Sort List:
The process basically involves starting at the root, and checking this->next->depth to see if it is greater than newInstance->depth. If it is, it inserts the new data into next somewhat like this:
OK, enough of that for nowI've already surpassed 8000 words. I'll keep going, but it almost feels like I'm cheating with this programming related babble. :PIf anybody wants a more eloquent and detailed blog series about implementing various data structures in multiple languages, I'll write 'em.As I said, this only scratches the top of the pile: Quad-trees, Octrees, Binary Trees (For BSP), Biased Trees, Trees in general, Circular Lists, etc.I know how to use almost all of them (I still haven't found a use for Circular Lists…)
// MXList
#include <stdio.h>
#include <string>
#include <iostream>
using namespace std;
template <class metaType>
class List
{
protected:
metaType* data;
public:
List* next;
List(metaType& a_data)
{
next = NULL;
this->data = new metaType(a_data); // This will work if you follow OOP copy-initialization guidelines.
}
~List()
{
// Deleting lists must be done properly and with care.
if(next)
{
delete next;
next = NULL;
}
}
List* tailNode()
{
// Recursive traversal
if(this->next == NULL)return this;
else return next->tailNode();
}
const metaType getData(int index)
{
static int iter = 0; // This is only initialized the first time
// you call the function, which is why
// I explicitly reset it to 0 when I'm done.
if(iter == index)
{
iter = 0;
return *(this->data);
}
if(iter < index)
{
if(next == NULL)
{
// Only for debugging
//cout << "Index out of bounds! (Max " << iter << ")" << endl;
iter = 0;
return "";
}
else
{
iter++;
return next->getData(index);
}
}
iter = 0;
return "";
}
};
int main(int argc, char** argv)
{
// Start with a root node
// Syntax for adding new nodes is a little screwed
// because I didn't bother adding in all the usual
// syntactic sugar.
List<string>* root = new List<string>(*(new string("Root")));
root->tailNode()->next = new List<string>(*(new string("First Node")));
root->tailNode()->next = new List<string>(*(new string("Second Node")));
root->tailNode()->next = new List<string>(*(new string("Last Node")));
cout << root->getData(0) << endl;
cout << root->getData(1) << endl;
cout << root->getData(2) << endl;
cout << root->getData(3) << endl;
// Recursive print
int index = 0;
while(root->getData(index) != "")
{
cout << root->getData(index) << endl;
index++;
}
delete root;
root = NULL;
return 0;
}
// ISList
template <class metaType> // I use templates often when dealing with many types
class ISList
{
private:
metaType* data;
public:
int depth;
ISList* next;
ISList(metaType& a_data);
ISList(ISList& a_copy); // Copy constructor
~ISList();
void Insert(ISList* prevInstance, List* newInstance, int newDepth); // Inserting a list element takes a bit more work than a unidirectional list does.
};
this->next->prev = newInstance;
newInstance->next = this->next;
newInstance->prev = this;
this->next = newInstance;
newInstance = NULL;
Brony section
Don't get butthurt about this. I'm keeping it hidden so you don't have to read it. Anybody who fears/hates Ponies and reads it is doing so of their own volition.As Rob said, this is mainstream now.
I'll say one thing: This is the craziest craze I've ever been involved in. Period.Anyway, regardless of the 'ban' placed on watching the show, I'm still watching the show (Buck the authorities)This also happens to be the most creative fan-community I've ever seen. If the Megaman community was even half-assed about the games, they'd have beenproducing high-quality fan-art, fan-games and fan-music. Anyway, pity that Season 2 is almost at an end; that means we have to wait a few months again like last time. Anyway, I'm definitely a Brony now, whether I like it or not. No turning back. Also, I'm a Rainbow Dash fan, even though I'm apparently more the type who'd gofor Twilight Sparkle. Although both were pretty close.Why am I writing such a pointless and inconclusive piece about this? I dunno. Tired much?
Music and busting fingers
I'm doing a lot of my composing (for main melodies) on my guitar now. Woot. My fingers, while more resilient are now less sensitive, which feels weird when typing.I spend about 30 minutes a day practicing. For what? Well I'm definitely not joining a band, or starting one. I have a phobia of singing in front of people, even thoughI used to be in a choir ages ago (When I was 8 >_>)Recently I've been messing around with FL Studio a bit. Interesting program; I can see why it's popular. I managed to make a few simple tunes in it, but the final result is always too messy IMHO. I love the clean sounds of the NES for a reason.Anyway, I find the composition process quite interesting, and I've decided that I can reasonably 'write' my music very much like I would write a story.For everybody this can be different, but I'm trying this pattern out at the moment for adventurous battle music: > INTRO: 'Defines a setting' (Dark, Bright, Indoors, Outdoors, Space, etc) > INTRO: Introduces a 'good' object (Hero, Town, etc) > MELODY A: Villainous misdeeds, disasters, etc (Sounds sad, dramatically so, with a 'question' at the end of the line) > MELODY B: The retaliation on the part of the 'good' sounds (A counterattack, more uplifting and a definite answer to the question) > CHORUS A: A mix of the previous two elements, sounding like a battle. > MELODY A: … > MELODY B: … > CHORUS A: … > CONCLUSION A: … > CONCLUSION B: … And end. It's an interesting way of writing music, but it works. And it helps me to interpret other music I hear better.Oh yeah, I still haven't found any good online resources that teach music theory. Links, anybody?
I'm still writing mine.
Your words about art where very helpful.I'm going to spend the rest of the month practicing pixel art before the competition.Good question!
*puts Cyrus into an informal settlement in remotest South Africa, with no weapon*Have fun!Based on your blog, I doubt you would like having a job, haha.
Unless you get a dream job, you will probably not feel like you're actually doing anything useful.I.. read the first two paragraphs.
That counts, right?I read most of that. And I thought *I* used to write long blogs…
Our schooling system is a mess. The whole Outcomes-Based Education thing was just South Africa taking Europe's mistakes, and don't even get me started on the "look and say" method of teaching reading. Private schools fare a bit better than the public ones, but still.I never liked group work either. Still don't really like working with people - they're too distracting, and I get my best work done when I can just lock myself in a room and do it without any interference.What are you using that makes those weird linebreaks? It's a little irritating.So you program, play guitar and draw? You multitalented folk make me feel bad.I don't know much about art, but too much saturation hurts my eyes.You're right about the insane talent of the brony community (my pony folder is >10GB). Have you seen some of the games? Fighting is Magic and The Cutie Mark Crusade look amazing. Not to mention the music is good, the art is pretty, Friendship is Witchcraft (the best redub/abridged series) is hilarious (and even has original songs) and some of the fanfiction is actually readable.I'm sure FSX did an 11 or 12k word blog or two back in the day. They're interesting reading.I was using my right index finger, to the best of my knowledge, to make those horrible line-breaks. Bad habit; I break the line myself instead of letting 64Digits do it for me. :P
I made the decision right then and there to not read this blog.