Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Topics - Benxamix2

Pages: 1
Issues Help Desk / Weird sprite issue
« on: May 23, 2014, 11:11:28 pm »
This is my issue: I have this 144x24 spritesheet (heheh, quite simple).

If I try to load it as a normal sprite from PNG format, or as a strip from any format, next time I load my project it'll be a blank sprite within my resources.
It's not a critical issue, but it's very annoying, at least.

Ideas and Design / Game standards: Tutorials
« on: May 22, 2014, 11:37:22 pm »
Brief introduction.

By the 90's, some games were including tutorials, explaining how to play. Some were just explaining the most complex areas. Some weren't, but since they had control configuration one could figure it all out.
Today, most games are really explaining you how to do everything. While this remains mostly good for complicated games with loads of buttons and actions to do, there are things that shouldn't be told in my opinion, like "PRESS W TO MOVE FORWARD" (basically, everything that is too obvious already).

Some people consider that tutorials take away part of the essence about a game's fun factor; those prefer to learn by themselves. This is an issue I noticed since a group that's within a YouTube channel, loooong ago -I can't recall the name-, talked about this. What they said could be resumed in this:

Without tutorials, playing a game from the beginning to the end is like life itself. You first try to move on yourself. Smash buttons around, those you think that would be used for such purposes. When you discover how movement works (left-right, 4dirs, whatever), you then proceed to advance in that game; that's when you find boundaries/limits, obstacles, or death itself (in this last case you'll probably be within a game with multiple lifes so it doesn't matter). In the first case, it's a cycle until you get to any of the other 2 cases. In the second case, you'll have to get over that obstacle. This can result in learning a new part of the gameplay (like attacking or jumping), or stopping to figure out the obstacle, for the case of puzzles. You'll end repeating this formula until you end the game.

While I liked this concept, I'm perfectly aware that some people don't like putting all this "effort" into games (and as a product "seller", I'm trying to cover the most amount of public I can). The first moments of the game (if not the whole game) experience is greatly affected by the simple idea of tutorials. What I aimed to, in my game, was including some sort of help within the game, which shouldn't be in the first level, and either as a plain "help/controls screen". It was more like a "tutorial" option in a main menu. However, this method may be kind of annoying, at least to myself, because I wouldn't feel like I'm progressing in the game while in that tutorial - and that's what I hate the most.
There's also the idea of gameplay hints, which I'm using for my current early release (within the levels for now), trough the placement of signboards where it feels needed.

I'd like to read other points of view, though. I'm not really sure what to keep doing here.


How far should I go about tutorials on my platform game? Should I even include 'em? What do you think?

Off-Topic side note!

©2007-2012 The ENIGMA team
ENIGMA - home of lesbian seagull raps.

Didn't notice this before...

Programming Help / Instance Creation Codes
« on: May 13, 2014, 09:38:15 pm »
Hey there! I'll be straightforward.
I'm making multiple instances of an object in the same room. I want, however, to keep a specific variable different on each of them. I've set Instance Creation Codes in the room editor for this, but it seems to crash my game, "because there's an unspecified variable". I've made enough self-debugging in order to understand that this is what causes the error.

My question is: could you tell me the order of execution of these events, for future reference?
Instance Creation - Create - Room Start

I'm assuming it's the one showing up but I'm not sure.
However, if I'm right, I'd suggest to switch Instance Creation and Create, if possible. I don't see the point of it being different than that.

Off-Topic / Let's discuss videogames
« on: May 09, 2014, 08:18:52 pm »
I mean there's pretty much nothing to talk about around here, most of the time. Even if it's because you don't have much spare time, why don't we try to light some little fire? That's like the point of having a forum, isn't it; discuss stuff and keep the site active.

So, are you actually interested in the videogame industry, besides the making of 'em?

For my part, I do. I really am into it.
To put it simple, Team Fortress 2 is my favorite game, and I can tell you I spent over 1400 hours playing it within a year. Greatest FPS ever. Also, besides friends, I used to have a gf to play with as well; not just unknown people from the internet, so it just added to my enjoyment in that game. I'm no longer playing it but I still like it a lot.
As for other game types, I'm into Platform, Terror, RPG, Strategy and even Visual Novels. There was space for Music games like osu! and StepMania, but I'm done with them.
The only genres I don't like are Simulation (excepting several titles like most of Tycoon games) and Sports. They're absolutely obnoxious to me.

Goat Simulator is a real bad game. Random joke games are fun, sure, but such an incomplete -and actually stupid, going beyond the randomness- game, is not.

It's your turn. C'mon, say sumthin'! :P

Hi guys, it's me again.
I've been currently working on the code for my game, and I wanted to use the C++ inheritance. You know, to use less resources with specific variable declarations and so.
But I can't get my game to work, no matter what I do! The compiler keeps telling me the following errors:

Code: [Select]
In file included from SHELLmain.cpp:102:0:
C:/ProgramData/ENIGMA/Preprocessor_Environment_Editable/IDE_EDIT_objectfunctionality.h: In member function 'virtual variant enigma::OBJ_obj_player::myevent_step()':
C:/ProgramData/ENIGMA/Preprocessor_Environment_Editable/IDE_EDIT_objectfunctionality.h:83:10: warning: statement has no effect [-Wunused-value]
C:/ProgramData/ENIGMA/Preprocessor_Environment_Editable/IDE_EDIT_objectfunctionality.h:88:110: error: expected ')' before ';' token
     allowjump = place_meeting(x, jumpcheck = keyboard_check_pressed(enigma::varaccess_gamekey(int(core))(2) );
C:/ProgramData/ENIGMA/Preprocessor_Environment_Editable/IDE_EDIT_objectfunctionality.h:117:10: warning: statement has no effect [-Wunused-value]
mingw32-make.exe[1]: Leaving directory `D:/ENIGMA/enigma-dev/ENIGMAsystem/SHELL'
mingw32-make.exe: *** [Game] Error 2

These are my object codes:

Code: [Select]
**** Events ****

  Create (3 Lines Of Code) :
0 Execute a piece of code (3 Lines)
------ BEGIN ------
------  END  ------

Code: [Select]
**** Events ****

  Create (8 Lines Of Code) :
0 Execute a piece of code (8 Lines)
------ BEGIN ------
global float vs=0;
global float hmulti=6;
global float grav=1;
global unsigned short int maxfallsp=20;
global signed short int jumpsp=-14;
global unsigned short int moves=0;
------  END  ------

  Normal Step (37 Lines Of Code) :
0 Execute a piece of code (37 Lines)
------ BEGIN ------
hs=(keyboard_check(core.gamekey[1])-keyboard_check(core.gamekey[0])); //Left-Right movement in a single line

//Horizontal movement result
if hs!=0 {
    moves=abs(hs)*hmulti; //"moves" is the amount of horizontal pixel movement performed in this frame!
while ((moves>0)==true && place_meeting(x+hs,y,obj_block)==false) {
//A perfect and good-looking code to avoid block tresspassing

//local bool allowjump=place_meeting(x,y+1,obj_block);
local bool allowjump=place_meeting(x,y+1,obj_block);
local bool jumpcheck=keyboard_check_pressed(core.gamekey[2]);
if (allowjump==true) && (jumpcheck==true) {
else if (place_meeting(x,y-1,obj_block)==true && vs<0) || (allowjump==true && (vs>=0)) || (keyboard_check_released(core.gamekey[2])==true && vs<0) {  //Vertical block hit; jump cancelation
else if (vs+grav)<maxfallsp { //Keep the 20px/frame falling speed limit
else {

//Vertical movement result
if vs!=0 {
moves=abs(vs); //"moves" is the amount of vertical pixel movement performed in this frame!
local signed short vdir=sign(vs);
while ((moves>0) && !place_meeting(x,y+vdir,obj_block)) {
------  END  ------

Hello there, guys. I have a question regarding the ENIGMA funcionality about graphics.

If you find any leak of information, please advice me. For I'm what I have learned from experience and not reading books, I may be wrong in many, many ways...

You see, I've noticed that when you go into a sprite/background properties, there's an indicator called "Memory", next to "Zoom" and "Height". I want to figure out what does it really mean, and what's its impact in the use of computer resources.
From deduction, I'm thinking this refers to the amount of video memory usage done by that one graphical resource.

This should tell me that the best method to save VRAM is to avoid huge images. In the case of backgrounds; trying to use tile-able ones (this is my current). For instance, the least video memory-consuming background (besides single colors) would be a 1px-wide gradient.
However, repeating the background drawing "screen-width" times should have a negative effect in the processor side; more operations per second.

There's this other method, which would be using more hard drive space and video memory, but as I'm concerned using less processor as well. It's the background image being as big as the screen size. It only needs to be drawn once per frame, but it would relay on more video memory, since it needs to be allocated for a fast read.

These are my conclusions. Can you tell me if I'm right about all of this? Is it really a good idea to keep my backgrounds as reducted as possible?
Thanks in advance.

Works in Progress / PIT²
« on: May 04, 2014, 10:47:59 am »
PIT² is a platform game I'm currently developing under ENIGMA.

I released a little preview of the game.
It's in a very early state, but it's playable.

You can download it here.

You can also see screenshots of how it progresses over time.

May 3: The very first tileset I ever made, some spriting and the basics of gameplay coding.

May 4: Set my color palette to Atari. GIMP simplifies a bit my job, since it helps a lot with auto-dithering.

May 9: Done loads of research, worked on my school side, and then came back to this. I'll be working on a Sega Mega Drive/Genesis ambient: 320x224 screen, using a 512 colors palette, with a 64 screen color limit (I don't know if I'll be able to accomplish that limit thing), and 50fps (there's no real reason for this framerate, I simply like it). Also, made a new gradient, nearly from scratch. I put real effort on it and took great amounts of time, but it came out good enough to my likings! Also, incomplete new tileset because the old was too hard to draw and keep track on its color count without looking terribad.

May 13: Not something to show, but to say. Yesterday and today I've been working, arranging the first game obstacles and gimmicks (which are basic power-ups).

May 18: First public release. It's a very basic game, but it's progressing and I think I'll get something good out of it. Worked out a signboards system to help understand the gameplay.

May 20: Messed up some more with coding and got a new object working, finally: platforms.

Tips, Tutorials, Examples / Setting up External Editors
« on: September 05, 2013, 02:55:58 pm »
If you didn't know, LGM allows to use your own editors for coding, image editing, background editing, and sound editing.
This isn't issued within the wiki, so I'm making a tutorial here.

To find your external editors, you have to go to "File > Preferences" in the LateralGM menu. There, you'll see a tab called "External Editors".

To set an external editor, you have to make an execution command for it. What do I mean? Well, do you know how does Windows shortcuts work, don't you? They store a "destination" value, more likely a Windows command, to be executed when you double click them. These destinations are formatted so they compose of 2 noticeable elements:

  • Address. This is what the shortcut points to; whether an application, a webpage, etc... It's always set within quotes.
  • Parameters (also called launch options), is a group of specific variables that the adress receives. And is never within quotes.

The "execution command" for external editors work pretty much the same as the shortcuts' destination.

Now you will ask me, "how do I get those destination things?"... I'll do an example for you.

I will be configuring Paint.NET as my Sprite Editor.
  • Go to the location where the software is located, via your Windows File Explorer. In my case, Hard Drive (C:) > Program Files > Paint.NET.
  • Now, click on the address bar. It will turn into an address to that location.

  • Copy and paste that address to the external editor field you want to setup. Don't forget to add the quotes.

  • Now, add a backslash to that address, and write the full filename of the application you're going to run (obviously, it has to be located inside the folder you just addressed).

  • Finally, add a  %s  to the field, after address outside the quotes. That %s is a parameter. It will force the program to start up AND open a file given by LGM. So, when you click into sprite editing, it will send a temporary file to the program. It's a bit complicated to explain, but I'm trying to make it understandable.

And that's how it's done.
If you have any problems, feel free to ask!

Pages: 1