Jump to content
MakeWebGames

Zeggy

Members
  • Posts

    401
  • Joined

  • Last visited

  • Days Won

    1

Everything posted by Zeggy

  1. What kind of help do you want or are you expecting? If you're looking for revenge, this isn't the place.
  2. So what you're saying is, if it came with everything you need, then it's a game engine. Yet, earlier you said: Either I'm misunderstanding (again) or you seem to have conflicting arguments. How does V1 being more complete make it more of an engine? And everything is adaptable if you put enough work in it ;) If you took mcc and renamed everything to be a different theme, all you've done is 'dressed it differently'. That's closer to taking a game and giving it a new name than taking a game and recoding it into something different.
  3. lol I don't think you read my posts at all.   That's exactly what I'm saying and what I've said in all my posts - a game engine is different from a complete game. Hence, mcc is not a game engine, it's a game script.   Well, I thought this was a debate on the definition of game engine in the context of web based games, and you seem to be arguing both sides. In case it wasn't clear, what I am arguing with you is whether or not mcc is a game engine. You think it is ("McCode is a text based gaming engine"), and I disagree. Here's why mcc isn't a game engine: One requirement (as we've agreed) is that a game engine needs to have the core features to run a game. Yes, mcc has the core features required to run a game. Every game has the core features. Just by letting people download the source of your game doesn't make it a game engine. An additional requirement is to be reusable. You cannot just reuse mcc code for a different kind of game because so many things have already been hardcoded into it - the theme, the features, all the gameplay. If you were to reuse mcc for a different type of game, you'd need to strip it down to the core features and make a lot of engines to the core features themselves. You've said it yourself: Game engine + Enhancements = Game Is MCC not a complete game? If you downloaded it and installed it, would you not be able to start playing immediately?
  4. Hmm.. So what's the 'core structure' of the mcc engine?   Well, this is where we disagree. I see game engines for web games to be analogous to game engines for video games. And game engines for video games are nowhere near complete games. You can download the source code to the quake engine, but you are still nowhere near having a complete game, let alone quake.
  5. You should be able to use the same game engine to create different games. Aren't all mcc games basically the same? Is there a strategy game coded from mcc, or a pet game coded from mcc? Would it be possible without a complete rewrite? I disagree with Taxed.   I don't see the difference. Both are complete game scripts. According to your definition, I can create a complete game, make it open source or sell it and call it an 'engine'. Then what's the difference between a game engine and a game script whose source code you distribute?
  6. Mccodes isn't an engine - it's a complete game script. MCC comes with features already included. That's why every mcc game is basically the same. As far as I know mcc doesn't have an underlying 'base engine' but I could be wrong (I haven't studied mcc code). Using an engine requires a lot of work because all it does is provide the groundwork. If you're using an engine you will need to implement all the game-specific features and decide on game mechanics. I'd say, if you were to make changes to an engine, those changes would affect the entire game in some way. If the changes you make are only related to a single file, or only affect a single feature of the game, then you haven't really touched the engine.
  7. How about a cloud vps with root access? You can install PHP and any libraries you need, as well as an sftp server or anything else you might want to install. http://www.gandi.net Click hosting, it's 11 pounds per month or so for 1 share which should be all you need. Setup with custom installation, choose an os, setup account details and wait :) It *is* paid by the month and your first month is free.
  8. Somebody uploads a file or executes a php script that allows the user to enter shell commands or lets the user edit files or whatever. That file is called a shell script because it's just a php script that provides a web interface to your shell. How to prevent this: Secure file uploads - don't allow PHP scripts to be uploaded Secure file reads - don't execute any uploaded files in any way. Read the contents of the file and echo them or similar, never eval or include uploads (even if they're 'image' files). Prevent remote file inclusion - don't ever include files where the filename isn't hardcoded. So don't accept include values from say, url parameters or POST values, etc.
  9. This is a bot battle mod. With this mod you can add battle opponents for your players to battle. The opponents are just bots whose details you can adjust - name, level, difficulty, exp/money rewards, bot stats, etc. Features: Bot battle system Win money/exp from battling Add/edit/delete bots from admin panel Easy installation/uninstallation Very customizable bots Some Screenshots: Download is attached.
  10. lol, well the user profile and mailbox were just simple examples! :P Besides, competition is healthy :D
  11. What you see in the release candidate are the only features that will be in the release. Mailbox is not planned, no. The only features in the engine are the engine framework, core features (like login/register) and example modules (like members list or stat points distribution). This isn't a complete game script like mccodes. :) So yeah, you could do something very simple like user profile, or something popular like a mailbox, or something very critical like a battle engine.
  12. Here's your chance to win a free domain name! All you need to do is write a mod (or more than one) for ezRPG! Anybody who writes a mod for ezRPG engine will have a chance to win a free domain name. Easy! Port over a popular mod from another engine or from your own code, write a new feature you've been wanting to try out, or use your imagination! Rules: You can submit as many mods as you want. You have 14 days to make submissions. (Last day for submissions is the 17th of March) Submissions will be judged by me, following a mystery criteria (could be the most mods written, could be best idea, most original, most popular, most downloads, best code, or none of these) The winner will have 3 days to decide which domain name they want, then I will register it and transfer ownership. Your free domain name can have any of the following TLDs: .com .net .info .uk .be .eu .tel .me .mobi .fr   Make your submissions by making a new Mod topic in the ezRPG forum here. Good luck! :D
  13. You should list what features it has, it can help decide how much somebody wants to pay for it :)
  14. If you don't want to use sessions/cookies, you can create a new column on the players table or create a new table (the better option) which will store the question ID chosen for each player. Then you can check the answer against the question saved in the database.
  15. ezRPG Release Candidate 2 has been released! Many critical bugs have been fixed, new library functions and more developer-friendly. http://code.google.com/p/ezrpg/downloads/list If you're already running RC1, just replace all the files except config.php or re-run the installer using the same database details (your tables will not be overwritten). Otherwise, the automatic installer is included. Please report any bugs or post any feedback, thanks!
  16. Zeggy

    Developer Guide

    Here are some things that you might want to know if you're developing for ezRPG! Developer mode: ezRPG by default turns off error reporting. As a mod developer, you will probably need to see errors. In config.php at the bottom you can see two constants defined: SHOW_ERRORS - set this to 1 to see PHP errors DEBUG_MODE - set this to 1 to see all your queries (you probably won't need to turn this on except in extreme cases) Documentation: If you're not sure what a class or function does, you can look it up in the documentation website. It's included in the Docs folder of ezRPG, or you could just view it on the internet here: http://ezrpg.googlecode.com/hg/Docs/index.html You should also notice that there are several predefined functions in ezRPG that you can use such as requireAdmin() to require admin level to access your module, or isUsername() to make sure something the user enters is a username.   I will add more to this post when I think of more stuff. If you have any suggestions, post them in a reply!
  17. Thanks, great find! Sothink's swf decompiler is awesome, now I can finally have a licensed copy :D
  18. Not all cron jobs should be cron jobs, so the below may not apply to every situation. If you're using timestamps to replace crons (cron jobs that really should be run as cron jobs), it will probably be best to use a separate table in a database just for this purpose, to keep track of the jobs that have already run so you don't run it twice. Even if you compare by time, it is possible that many people are online at exactly the same time, in which case your cron might run several times at once. Using a table in the database can help keep track of what has already been run.
  19. Zeggy

    Cya MWG

    All I can say is that this makes no sense :) Why would you leave MWG to learn those things? This is a great place to learn! If you're taking a 6 month course on web development then I could understand you might be around less, but at MWG you can learn so much and get help too. The best way to learn is to get experience.
  20. Add a column to your users table called 'admin'?
  21. Thanks guys :D Please let me know what you think of the engine when you've played around with it! :)
  22. Here's the basic one of just +,-,*,/: http://www.pastebin.com/m49e5444d Quite different instruction set than yours: The LI, LA and MOVE instructions are equivalent to MOV. There's three because each only handles a specific data source (immediate, register, memory, address, etc). The syscall is equivalent to int. The j,jr,jal are for jumping to different parts of the code.
  23. I learnt in university as well :) I don't know of any tutorials for x86 assembly, like I said, I learnt mips assembly which is for a different cpu architecture. Wikibooks looks pretty good though: http://en.wikibooks.org/wiki/X86_Assembly A good understanding of the hardware/cpu would definitely help, but isn't necessary. It can help you understand the program environment and visualize things better though, as assembly is quite close to hardware level. Using the debugger is useful because you can run your program one instruction at a time, and view what's going on in the registers, in the memory, etc. You don't even need to be debugging a program, run a working program through it and see what's happening with each instruction. If your program is bugging, you can go through the (very tedious) process of running your program line by line, and comparing the values in registers to see if they are correct at each step. I think x86 assembly is slightly more complicated because some instructions are actually many instructions put together into a 'macro' instruction. Then the language is easier to use but not as close to hardware level anymore. Your debugger should be able to show you what your instructions are being interpreted as though.   One of the first things I did was create a calculator. You can practice handling input, making calculations and displaying output. I also improved the calculator to handle more complicated expressions (reverse polish notation) by using the stack.
  24. I only have experience with MIPS assembly so can't really help you with specifics :P Might be able to help with general questions though. PS. assembly is a headache :P   Edit: The debugger is extremely useful. I don't know what debuggers you have for tasm but I'm sure there will be good ones. Learn to use the debugger and you'll be able to understand the code better, instruction by instruction. What level of understanding are you at right now and what do you need to know for your degree? Do you understand registers and interrupts? Anything cpu-level?
  25. Bank Module, Part 1 Now we have the basic module down, we'll move onto to the game logic - depositing and withdrawing money from the bank. First, we'll edit our start() function so it is able to handle more than one operation: public function start() { requireLogin(); if ($_GET['act'] == 'withdraw') $this->withdraw(); else if ($_GET['act'] == 'deposit') $this->deposit(); else $this->tpl->display('bank.tpl'); }   Now, if the browser visits index.php?act=deposit, our bank class will call the deposit() method. Next we need to write the withdraw and deposit functions. Both are fairly similar so I'll just go through the withdraw function only. You can try to implement the deposit function yourself! First off, we decide that people should only reach the withdraw() function if they submitted the withdraw() form. We can do this by checking if $_POST['amount'] is set. Our bank form had a field called 'amount' so if the form was submitted it should contain some amount data.   private function withdraw() { if (!isset($_POST['amount'])) { header('Location: index.php?mod=Bank'); exit; }   If there is no amount, then the player is redirected back to the Bank homepage as if nothing went wrong. Most likely, somebody visited a wrong URL so no harm done. We call exit right after the redirect so that no code after this will be processed. In the next part of the code, we need to check that the submitted amount is valid. It must satisfy several conditions: It must be a number It must be positive (you cannot withdraw negative amounts) It must not be more than what the player has in the bank (you cannot withdraw more than you own)   If the amount satisfies these conditions, then we can update the player database and change the player's amount of money on hand and in the bank.   $msg = ''; $amount = intval($_POST['amount']); if ($amount < 0 || $amount > $this->player->bank) { //No query, just error message $msg = 'You cannot withdraw that amount!'; } else { //Update player database $query = $this->db->execute('UPDATE `<ezrpg>players` SET `money`=?, `bank`=? WHERE `id`=?', array($this->player->money + $amount, $this->player->bank - $amount, $this->player->id)); $msg = 'You have withdrawn ' . $amount . ' money!'; } //Redirect back to main bank page, including the message header('Location: index.php?mod=Bank&msg=' . urlencode($msg)); exit; }   We use $msg to display an error message or success message to the user. We redirect the user back to the Bank homepage and pass $msg through the URL. $msg is automatically displayed at the top of the page for the user to see. This method is used because this will prevent a user from refreshing a page in order to withdraw more than once. In this case, refreshing a submitted form is harmless as you can't withdraw more than what you have, but in many situations, refreshing a form can cause problems (such as refreshing a registration form twice). Now you can try to implement the deposit() function yourself! You can copy the code with withdraw() and just make the needed changes. Some things to keep in mind: Check that the player isn't depositing more than what they have on hand. Edit the query so you are adding/subtracting the correct values. Edit the success/error messages so they make sense!   For the full code of the bank module, you can download the free Bank Module. There may be some extra code in there but it is mostly the same code used in the tutorial. Coming soon: Part 3 - Coding install/uninstall functions for your module, so you can sell them or give them away and let your customers install them easily!
×
×
  • Create New...