mrudoy

LD20

Getting along well… mostly

I’m getting a bunch done. A lot of the things I had to do are finished. Right Now I’m up to making Ganon. This is gonna be the hard part.

Oh, and I came up with a name for my game:

The Legend of Zelda
–on Budget Cuts–


Mikhail Rudoy

I’m taking on a relatively big project

I never finish my games. There are exceptions of course, but even now, I have urges to let Minions or Champions or whatever I’m calling my LD0 catchup game fall into the past. I managed to finish two games when I was in middle school. Ugly, ugly things. My code for those two games was the most unprofessional thing I have seen to date, and the result wasn’t pretty. I got them sponsored, but I think games were easier to get sponsored back then. After a long break from game making, in 2009, I finished another game. It was pure mediocrity. But it was an improvement.  It’s still sitting on FGL waiting for a sponsor.  But my code was cleaner. And this year (school year; sorry but I go to school and that’s how my perception of time is ordered), I finished my miniLD25 entry, Blind, and my LD20 entry, The Legend of Zelda on Budget Cuts. I consider them to both be successes at least in terms of good coding practices. And in between this all, numerous, various projects have fallen into neglect and died. But this year, it’s not as bad as before.

So the question is: why? What changed? And I think I have the answer: both LDs, I was motivated to sit down and finish the job. In all cases — whether it was working through the night and till the deadline, or … scratch that “or”, I did that both times :) — I had a specific goal and a specific time period to finish. My other projects almost all got too ambitious. Each of these times, the project was exactly what I expected. Each time, I counted on spending part of the weekend working on the game, and got that exact amount done in practically the whole weekend. But I did get it done.

So I need to motivate myself. I need to set clearer goals and duedates. So I am resolving to take on a medium sized project (I’m not quite ready for major yet), and finish it before the summer is out. I haven’t decided what it is yet, but there are plenty of options. Note that I said project, but not game. I’ll get back to this in a minute.

This school year, I got a lot more serious about programming than I was before. I plan to double up on two CS classes next year. I will be taking the two semester AP compsci course, and the two single semester systems level programming and computer graphics classes. This means that on entering systems and graphics, all my classmates will have taken the AP class and I will have not. In order to be allowed to take the class, I have to learn Java and familiarize myself with all the standard data structures common to most languages. And this must be done by the start of class, so I have the summer to finish. This might be my project.

I also want to learn two (and a half) other languages/programs. I want to learn python, and also Unity in one form or another (most likely using javascript or Boo). The half is that I think mathematica might be worth knowing. Learning one of these properly might be my project.

Of course, I might simply make a rather complex game.

So why am I telling you this? Not because you have to care (though that would be nice) and not because I want to vent about how I never finish anything (though let me tell you, it really sucks), but because there’s no taking it back once someone reads this (assuming the amount I have typed does not scare every prospective reader away). This is it. I’m committing to doing something, and no more needs be said.


Mikhail Rudoy

P.S. Someone please remind me how to add the more tag so that I can edit it in and edit this postscript out.

Comments

Finity
08. May 2011 · 04:07 UTC
Let me know if you need a mirror for your entry. I can throw it up on my site. (paul.zaczkowski@gmail dot com)

LD21

I’m in (most likely)

I’m going to enter this miniLD! (most likely)

I’ll be using Flash, making graphics with something, and probably simply ignoring sound effects :)

I already have a game in mind, and I hope I’ll be able to finish it. It’s called Warmonger. More on that later…

I might start early or go for more than 2 days, because I’m afraid I might not be able to finish quickly enough. And I plan to actually post about it this time around so expect posts soon and at some minimum frequency.

By the way, the theme is great.


Mikhail Rudoy

so here’s the idea: The Warmonger

I have a concept for the miniLD. I’m not sure how much of it I will manage, but I am aiming for my end result to be a working prototype.

There’s a bit of background to this one that I’m not sure how I’ll introduce in-game. Here goes:

We know of the Greeks and Romans and their pantheon of gods. And of the Egyptians with theirs. We know of many ancient civilizations and we know of the gods they worshiped. But there is one civilization we know nothing about. And it is their pantheon’s fault. The king of their gods had but one name: The Warmonger. And it was due to him that his people were wiped out.

So that’s the background info. By the way, if anyone has suggestions for how to put story (like that ^) into a game, please comment.

Read on for the actual game play.

The screen is  a possibly side-scrolling side view onto the world. There might be terrain or it might just be flat ground all the way. On the ground are little stick-figures. The color of a stick figure represents its faction. The stick figures have weapons and they run around and make war. They have hp bars and other stats that either float above them or are accessible through roll-over or clicking. You play The Warmonger. As a god, you derive your power from being worshiped. As a god of war, people pray to you for military success. Since people only pray for military success during war, war is good. Your goal is for the war to go on for as long as possible. If everyone dies out or only one faction is left, you lose. So stalemates or near-stalemates are what you want.

At the side of your screen, you will have a power meter for each faction. Power goes up when individual people worship you. Whether they do so, and how much depends on several factors. Faction wide factors such as how hostile the faction is towards other factions, how much they need help, whether you’ve generally worked to help or hinder them, and how responsive you’ve been to previous prayers affect all people in a faction. In fact, I might even make some power come directly from the faction (i.e. from people off screen who I don’t actually code). Individual factors are exactly the same but with the individual. How hostile the person is, how low their or their opponent’s health is, and other such things can boost or decrease the power you get from an individual.

The purpose of power is to fuel actions. You can only do an action if you have enough of the correct type of power. For instance, you can’t smite a blue stick figure with a lightning bolt if the only power you have is blue power. In order to shoot a lightning bolt at a person, you need to have power from an opposing faction or individual (a specific red person might have disliked that specific blue person even though red and blue were not on hostile terms).

The actions are split into 4 categories: you can Bless, Curse, Cast, or Meddle.

Blessing: any blessing is a temporary buff. You could bless a whole faction or an individual (or a group of individuals). For example, you could bless the blue faction’s weapons and they do more damage for a limited time, or you could bless a specific blue person with invulnerability to arrows, or you could bless a specific area with critical hits and every person in the area at the time of the blessing will do critical damage as long as you could pay for that person.  The power comes from the faction that got the benefits. Afterwords, that faction/individual pray more.

Cursing: any cursing is a temporary debuff of a faction, person, or group. The cost is distributed over the enemies of the specific individuals affected and the enemies of their faction. Afterwords, those who were cursed pray less.

Casting: any casting falls into one of two categories: smiting and area effects. The difference is that for smiting you target a person and for area effects you target a location. This is the category for all the standard explosions, fires, lightning bolts, poison fog, etc… Those effected pray less afterword and their enemies pray more. The power cost for a smiting is distributed over the enemies of the person you smite and the enemies of his faction and the power cost for an area affect comes from a faction you chose. however, that faction gets invulnerability to that specific action.

Meddling: meddling refers to meddling with the factions. You could introduce dissent into a faction so that later you could split a faction into two with a rebellion. Introducing dissent and rebellion are two meddling actions. By meddling, you can improve or worsen relationships between factions as well as affect the stability of a faction. Factions with bad relations make war. Factions with really good ones can ally and join into one faction. Factions can surrender and become parts of another faction. Stable factions are less likely to surrender or split into two by rebellion. Unstable ones do. All these things occur in game without meddling, but Meddling lets you affect them. The power for meddle actions comes from a separate source that simply accumulates over time. There is also another very specific type of meddling. Teaching costs no power, but its impossible to take back. You can teach a faction certain things like a new unit or a better weapon or better resistance, but once they have it, they don’t get it back. The reason you might want to take back a teaching is because the things you teach also make your castings and curses less effective against that faction. For instance, if there is a flaming catapult on the red faction and you teach the blue faction fire-resistant armor, the fire resistance will also work against your fireball casting. Factions slowly learn things by themselves, with increased speed when they fight or ally with a faction which has something they don’t (they learn from each-other). Basically, if you over-teach, you won’t be able to affect the battle much afterward and whatever faction had the slight upper hand will quickly defeat the others (making you lose).

I might start the game with this scenario: there is a cease fire between two factions because one is going to surrender. Because of the lack of fighting, you have no power. The factions start at opposite sides of the field, and if they meet, one will surrender. So your only choice is to teach them something (or you lose). If I have too much time or if I keep working on this after the 48 hrs, I might make a small cutscene thing where you lament that you had to give them something that makes them less vulnerable to your (fill in the blank) action.

Looking up, this seems like way too much for 48 hours. So expect something a lot more basic. As long as I have the power meters, at least some rudimentary individual and factional relationship system (relationships to other factions, other individuals, and to The Warmonger), some actions, and the people running around and fighting, it will be complete enough. I hope I can manage it :)

Comments, suggestions, ideas: please post 😛


Mikhail Rudoy

Comments

saluk
29. Jul 2011 · 04:56 UTC
Love where you say “if I have too much time”. I love the ideas though, it almost sounds like a reverse of my peaceful god scenario where the factions always want to fight and you don’t want them too. It sounds like you have a better idea of how to scale your grandiose imagination down for 48h than I do. Good luck!

Can’t participate

Unfortunately, stuff came up, and I didn’t find the time to do anything for this miniLD. I am not happy about that. I know I won’t be able to make my idea in only 1 day as even doing it in 2 was a stretch. I hope I will go back and make my idea at some point. I really don’t have anything more to say.

:'(

Postmortem for Real Live Avatars Inc

Hi everyone!

First of all, I’d like to say that I’m really happy with finishing my game. Unfortunately, due to the site’s issues, I couldn’t log my progress. I guess this isn’t just a postmortem but rather also an “I’m in” post. :)

So far, this is the third game I made for LD. I made a game for some miniLD or another (I don’t remember which), and another for LD20. However, I wouldn’t count either game as a “full” game (for some definition of full corresponding to the 48 hour time limit). The miniLD entry was a game where you shot enemies that came at you (sort of like asteroids but with people) but had no video feed; instead you had the audio of creepy footsteps, gunfire, and screams. While it didn’t turn out bad, it wasn’t quite complete because it had no graphics. As for the LD20 entry, I made an (almost) exact clone of part of the original Legend of Zelda game. So finished or not, it wasn’t really my game. That’s why I’m extra-proud of finishing this time.

Before I analyze what happened, go play my game :)
Here is the entry page:
http://www.ludumdare.com/compo/ludum-dare-21/?action=preview&uid=3743
and if you won’t vote anyway, here is the game:
http://mr.galacticgaming.net/Real%20Live%20Avatars%20Inc/Game.html

What went wrong:

  1. Sound – I wasn’t planning to make sounds and I didn’t, so no loss here.
  2. Community – I didn’t even say that I was in :(
  3. Physics Bugs – There are two bugs with the physics in my game. Because the rest of the physics went well, I’ll address these bugs in the What went right section.
  4. Presentation of the story – First off, I’m about to talk about the plot of the game, so if you haven’t played it and will, skip this part for now because there are SPOILERS here. The story turned out to be almost exactly the same as I envisioned it when I came up with the idea.Real Live Avatars Inc is a company who pray on weak civilizations. They abduct people and take control of their bodies via implants. The controlled people are then sold to members of more developed civilizations as avatars for a game. I had hoped to create a cutscene for the start of the game. It would feature people talking about what they would do if the rumors of the company coming to your home planet to abduct people turned out to be true. All the things I explained could thus be introduced. Then the screen would shake and the game would begin with you running away from the company. A side effect of this is that in the process of running, you could see all the other people from the conversation caught and abducted.When you won the game, a person would walk in from the right (throughout the game you run to the right and away from the right-advancing enemy) and proclaim that your implants are working perfectly; just look how well you did in all the tests. If delivered well, this could have resulted in a realization of the futility of the situation; Even as you were “escaping,” you were actually only being tested. The player, who was supposed to sympathize with the abducted peoples, would be horrified to find that they were actually controlling one of these people in the exact way that Real Live Avatars Inc would.Whenever you lost, you would be presented with that same person saying something about testing implants which would make sense in the context of escape, but would take on a whole new light in the context given by the “winning” cutscene.Of course, I didn’t get to ANY cutscenes. Instead, I have Bob, an employee of the company:
    Bob
    While Bob got across all the facts I provided above, I doubt he got any of the emotion across.
  5. Level generation – The procedural generation of the obstacles in a level made winning or losing a level sometimes a simple matter of luck. Also, I wanted to include caves into the floor (I wanted the ability to have more than 1 floor at a certain x coordinate and potentially have ceilings). As it stands, the framework only supports a single floor height and no ceilings per x. Inherent in the idea of ceilings is the idea of low ceilings; the player was supposed to be able to roll or crawl, depending on their speed, under such obstacles by pressing down.

What went right:

  1. Graphics – I think the graphics were a great success. At this point, those of you who have played the game are probably raising an eyebrow and wondering whether this was supposed to be item 6 in the above list and only ended up here accidentally. For those who haven’t, here’s a screenshot:
    screenshot
    Frankly, the graphics suck. Despite being a person, the player has no head and no appendages, and only a rectangle for a body. Similarly, Real Live Avatars Inc, who by virtue of traveling the galaxy we know must be very technologically developed, are represented by a simple beam into the sky. The reason the graphics are so bad is two-fold. First of all, I’m not an artist; my best is only ever programmer art. And second, I took Baby McFunkypants’s advice. I didn’t waste time fleshing out the graphics, but rather tried getting something playable ASAP. Had I spent time on impressive machines on the part of the company, or appendages on the part of the player, I might not have finished.
  2. Physics – I made it from scratch without any tutorials, libraries, or previous experience with in game physics. Each case in the algorithm for deciding the player’s motion is based on real physics, but by virtue of it being composed of various cases, the result is “weird” (the first person to play the game said that they liked the weird physics, so I don’t mind the label). Since I made the thing from scratch, there are several idiosyncrasies which probably contribute to the weirdness. For example, while jumping, none of the keys do anything.Another example is how jumping works. When you press up, a vector in the direction of the normal to the surface where you are standing is added to the current velocity vector. Thus jumping on an upward slope pushes you back towards getting caught. In order to find the normal, I needed to find the slope of the tangent to the surface where you are standing. I approximated by using the secant between the point on the ground one to the right of you and the point on the ground one to the left  of you. Unfortunately, this results in the first bug: If you stand right before the ground drops off, then when you jump, the point one in the direction of the drop is much lower, resulting in the jump propelling you almost horizontally. I have no clue what caused the second bug: sometimes, you get stuck on the edge of a drop. You would expect to fly off, but instead, you suddenly stop.
  3. Code – Quite accidentally, my code ended up very organized. Usually, it sort of builds up in a couple of classes. This time it didn’t. I could probably tell you exactly where in the code any specific functionality came from, and what any piece of cod does. I could probably draw a diagram of the way the game was structured without looking at the code.
  4. Hosting – I placed my last LD entry on my dad’s website. It kept crashing and people couldn’t get to the game. This time, I got lucky. the31 graciously offered to lend me a sub-domain of his website to hold my game. I took him up on that offer, and my game can now be reliably be accessed. Thank you the31!
While there are more cons than pros, closer examination shows that the pros are much more significant. Hence, regardless of how Real Live Avatars Inc gets rated, I’m satisfied :)

Thanks for reading,


Mikhail Rudoy

Tags: flash