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.


Messages - Unseen Machine

Pages: [1] 2 3 ... 11
1
QB64 Discussion / Why dont we collab?
« on: August 05, 2021, 04:54:33 pm »
Hi folks,

Some know me, some wont, either way it's irrelevant as my complaint and question would be valid irrelevant of my status in the community....

Some of us, are, to be fair and honest, F'ing amazing at coding. We've pushed the limits of QB64 and showed whats possible with BASIC. But how often do we work together or use each others code/libs to make projects? Apart from a few made with Fellippes' editor i've very rarely seen anyone pick up someone elses code and run with it. Why is this? How do we fix it? Why was my idea of a QB Blocks library ignored? Surely having an extended library of types and functions that people use as the basis for their libraries/programs isnt to far fetched an idea? (Its what every other freaking language has!)

Can we please address this!?

Whining over....

Unseen

2
Programs / Re: 3D World Game Engine
« on: August 05, 2021, 04:44:43 pm »
Quote
LOL... Yeah. The engine is in ALPHA stage.. Need to work a lot on this.

I will surely message you if I need any help from you.

Thank you for your feedback. :)


1. Say no more, i know dev is a long hard slog.
2. Cool, send me an email jmkonyon@gmail.com if you need anything...ive some nice 3d model loader code ive revamped for when you get to the enemies.
3. You're welcome mate, i did games programming for my degree and as you know game engines/tools are a hobby of mine....i cant wait to see the editor and your future updates...got to say im impressed and in awe of your achievements. Well done mate

Unseen

3
Programs / Re: 3D World Game Engine
« on: July 20, 2021, 04:42:53 pm »
Hi Ashish,

Firstly, it looks good in the video...reminds me of kens labyrinth which i very much enjoyed playing on my IBM 286 WAYYYY back in the day....I can see you've put a lot of work into the look of it (i analysed the code and noticed a few nice little touches! :) ) and it shows promise. I'm gonna be me though and suggest a few 'mods' (hope you dont mind)

1. The code we see should be MINIMAL! Make your work into a .bi and .bm library and your engine into a .bm that you call with a single command.

i.e

$include - lib headers

3D_Engine_ GO ("GamefileName")

$include - libs

This is all we should need to do to launch the underlying engine.

2. Level Editor - Once you've made your bi/bm lib files you can use them to make tools. A basic level editor is essential...your engine can be better than anyting out there but if people have to hard code it then it will flop...

3. GL - The way you're using GL is ok but with _MEM and the fact that qb64 supports es 2 commands (i dont know if it does it work with later versions of gl) but the methods it employs are way faster for rendering...

4. I wanna shot someone! Wheres the enemies bro!?

Good work and hit me up if you need help with the conversions...

Unseen

4
Wow! I wish my questions got so many replies!

But i digress, I'd suggest you start just playing with the demos in the HELP file to learn how commands work. Then just code one thing at a time, make that work and then add to it. It's not goof for all of use to tell you how to do it cause we all do it differently. I always try to use the OOP method...i'd  suggest you look that up too!

Good luck and happy coding.

Unseen

5
You cant store a command in an array, especially one thats not been dimensioned.

You need to create a uset defined type for the circle that contains all the required information, x,y, rdaius etc...and then you can use a for loop to store that info...use this and work on it.

Code: QB64: [Select]
  1.   X AS INTEGER
  2.   Y AS INTEGER
  3.   Radius AS INTEGER
  4.  
  5.  
  6. DIM Circs(9) AS Circle
  7.  
  8. FOR i% = 0 TO 9
  9.   Circs(i%).X = (RND * 300)
  10. '// You fill out the rest but know you can store a _RGB32 value in the RGB variable by
  11. '// Circs(i%).RGB _RGB32(.....
  12.  
  13.  

Unseen

6
QB64 Discussion / Re: help with arrays and DATA to make game maps
« on: April 24, 2021, 07:55:52 pm »








So...i'll try my best to help...

X% and y% are reset to 0 each time cause that's where drawing starts from. They are then increased by 20 pixels each loop of the FOR blocks. Try changing them and see the map move around, id suggest trying to make it auto center to the screen...for that you'll need

X% = half of _SCREENWIDTH minus (half size of the column count of the array * the block size (20))
Ill let you figure out Y%

If you resize the map array you need to resize the DATA blocks to the same size. Id suggest a REDIM SHARED for the map array and then before reading the map data read two extra bits of data to size the array. i.e for a level thats 6 * 8

Read Col%
Read Row%
REDIM SHARED MAP(Col%, Row%)
Load the data 

LevelOne: '// Line ref? For use with RESTORE so you can have data stored in any order you like and then just jump to it.
DATA 5, 7
DATA .....THE level data here,


You can easily make the for loop code into a SUB so you can call it repeatedly. The FOR loops would be changed to use the Col%/Row% values.

The drawing method is just the most basic method i could think of, in this sort of thing you would usually use a tile sheet and the DATA would be tile indices. For things like platform games you use multiple arrays for background, level, special objects, sprites etc...

Happy coding and reel free to ask anything else you need help with.

Unseen


7
I made them years ago, that code went with [abandoned, outdated and now likely malicious qb64 dot net website - don’t go there] cause i dont have any copies of the code any more. I made them using VQB and GDK...im actually making a new more generic editor now but im still on the GUI dev stage so it doesnt do much anything yet...if you wanna make something like the editors then i'd suggest that using InForm would save you all the head ache i have in just creating the interface. and you can then concentrate on the function...

Unseen

Here's my new one...dont try to run it cause it requires libs...

Code: QB64: [Select]
  1. '// UnseenGDK Tool - Level Designer v.01 \\
  2. '// By John Onyon a.k.a Unseen Machine \\
  3. '// #Rev : 0  \\
  4.  
  5. REM $INCLUDE:'VQB\VQB.bi'
  6.  
  7. VQB_Screen 0, 0, 1024, 768, _RGB32(200, 200, 255), "UnseenGDK Level Designer v.01"
  8.  
  9. '// DIMS \\
  10.  
  11. CONST Col_Max = 1024, Row_Max = 1024, Col_Standard = 256, Row_Standard = 256
  12.  
  13. '// GUI Elements \\
  14.  
  15. DIM Btn(9) AS Button, Map(3) AS Button
  16. DIM GridCBox AS CheckBox, GridSize AS INTEGER, GridBTN(1) AS Button
  17.  
  18. GridSize = 10
  19.  
  20. VQB_CheckBox_New GridCBox, 650, 20, 8, 8, TRUE
  21.  
  22. VQB_Button_New GridBTN(0), 720, 20, 20, 20, _RGB32(180, 180, 180), "-"
  23. VQB_Button_New GridBTN(1), 800, 20, 20, 20, _RGB32(180, 180, 180), "+"
  24.  
  25. '// Control variables \\
  26.  
  27. DIM Mouse(1) AS MouseInfo, GDK_Mouse(1) AS MouseState, KB(1) AS KeyBoardState, LMB_Mode AS _BYTE, RMB_Mode AS _BYTE
  28. '// And there is a basis for my new project QB Blocks. GDK mouse is different to VQB mouse so GDK mouse functions cant use the VQB typedef...
  29. '// QB Blocks will be the frame work on which all my libraries are going to be re-written/written so they all work seemlessly together.
  30. '// im hoping to add support for some stuff from InForm and hopefully some pyhsics etc...but thats all way down the road
  31.  
  32. DIM Col AS INTEGER, Row AS INTEGER '// Calculated when mouse is over editor screen
  33.  
  34.  
  35. '// File Setup - To be improved in the future!! \\
  36.  
  37.  
  38. '// DATA Arrays
  39.  
  40.  
  41.  
  42. '////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  43.  
  44. VQB_Frame 10, 10, 600, 600, _RGB32(0, 0, 0)
  45. VQB_Frame 10, 620, 600, 25, _RGB32(0, 0, 0)
  46. VQB_Frame 756, 18, 22, 22, _RGB32(0, 0, 0)
  47.  
  48.  
  49. EditorBCK& = VQB_StoreScreen& '// The stuff which doesnt change only needs to be drawn once and then stored.
  50.  
  51.  
  52. '// MAIN LOOP \\
  53.  
  54.  
  55.   '// Loop control \\
  56.   _LIMIT 60
  57.   _DELAY .005
  58.  
  59.   '// Control Logic \\
  60.  
  61.   '// Get Input \\
  62.   GDK_Keyboard_GetState KB(0)
  63.   GDK_Mouse_GetState GDK_Mouse(0)
  64.   VQB_Mouse_GetInfo Mouse(0)
  65.  
  66.   '// Event checking is based on the state of the input controllers and control variables \\
  67.  
  68.   '// Is mouse over editor window \\
  69.   IF Mouse(0).X >= 10 AND Mouse(0).X <= 610 THEN
  70.     IF Mouse(0).Y >= 10 AND Mouse(0).Y <= 610 THEN
  71.  
  72.       '// Calcuate col/row
  73.       Col = (Mouse(0).X - 10) / GridSize
  74.       Row = (Mouse(0).Y - 10) / GridSize
  75.  
  76.       IF Mouse(0).L THEN '// Left button clicked
  77.         SELECT CASE LMB_Mode
  78.           CASE 0 '// Place tile
  79.  
  80.           CASE 1 '// Clone tile
  81.  
  82.             '// For future expansion \\
  83.  
  84.         END SELECT
  85.       ELSEIF Mouse(0).R THEN '// right button clicked
  86.         SELECT CASE RMB_Mode
  87.           CASE 0 '// Delete
  88.  
  89.           CASE 1 '// Select tile for data edit
  90.  
  91.         END SELECT
  92.       END IF
  93.  
  94.     END IF
  95.   END IF
  96.  
  97.   '// Check buttons \\
  98.  
  99.   IF VQB_CheckBox_Click(GridCBox, Mouse(0)) AND NOT Mouse(1).L THEN
  100.     IF GridCBox.CheckValue = TRUE THEN
  101.       GridCBox.CheckValue = FALSE
  102.     ELSE
  103.       GridCBox.CheckValue = TRUE
  104.     END IF
  105.   END IF
  106.  
  107.   '// Copy the input states for comaprisons next loop.
  108.   KB(1) = KB(0)
  109.   Mouse(1) = Mouse(0)
  110.   GDK_Mouse(1) = GDK_Mouse(0)
  111.  
  112.  
  113.   '// End of control logic \\
  114.  
  115.   '// Render \\
  116.   CLS
  117.  
  118.   VQB_RestoreScreen EditorBCK&
  119.  
  120.   VQB_CheckBox_Draw GridCBox
  121.  
  122.   VQB_Button_Draw GridBTN(0)
  123.   VQB_Button_Draw GridBTN(1)
  124.  
  125.   '// Text \\
  126.   COLOR _RGB32(255, 20, 20), _RGBA32(0, 0, 0, 0)
  127.   _PRINTSTRING (15, 625), "Col : " + STR$(Col)
  128.   _PRINTSTRING (105, 625), "Row : " + STR$(Row)
  129.   _PRINTSTRING (665, 18), "Grid"
  130.  
  131.   IF GridCBox.CheckValue THEN
  132.     FOR y% = 10 TO 610 STEP GridSize
  133.       FOR x% = 10 TO 610 STEP GridSize
  134.         PSET (x%, y%), _RGB32(255, 10, 20)
  135.       NEXT
  136.     NEXT
  137.   END IF
  138.  
  139.  
  140. '// END OF MAIN LOOP \\
  141.  
  142. '///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  143.  
  144. REM $INCLUDE:'VQB\VQB.bm'
  145. REM $INCLUDE:'UnseenGDK.bm'
  146.  
  147. '////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  148.  
  149.  
  150. '// SUB contains all the programs TYPE defs \\
  151. SUB LVL_DES_TYPE_DEFS
  152.  
  153.   TYPE GAME
  154.     FileName AS STRING * 64
  155.     TAG AS _UNSIGNED _BYTE '// Version id...for now is 0
  156.     Levels AS _UNSIGNED _BYTE '// Max 255 levels - First level (0) will be made with GDK intro \\
  157.     TileSheets AS _UNSIGNED _BYTE '// Max 256 tile sheets
  158.     Sprites AS _UNSIGNED _BYTE '// Max 256 sprites - For future use \\
  159.  
  160.  
  161.  
  162.  
  163.  
  164.  
  165.  


8
QB64 Discussion / Re: help with arrays and DATA to make game maps
« on: April 23, 2021, 04:52:41 pm »
Thanks to everyone for answering, it's my bad cause yeah, my lack of comments...it's all ways been a bad side of my coding.

The way to do it to have different rooms like the first post describes would be to have the level data blocks (rooms) contain the room index and the size of the room then you could use a _MEM block to store all the data in a single array. Then with a simple method (i can think of a few) when you exit a room the map would contain the index of the room your moving into. You the just REDIM the map array, load the relevant data from the _MEM block and woosh...youve got a basic dungeon engine...it's easy enough to change the painted blocks to textures, and then if you wanna really push it you can easily make a Wolfenstein style raycaster and youre in 3D!

I'll have a look at maybe implementing a basic version of a multi room map but ill add more comments.

Unseen

9
It was a basic map editor i made for a game called 'Hot Air'....I got taught that tools, even basic ones like that, are the best way to make content for games...all it did was dump the tile number refs into a file but it made level development a lot easier than editing DATA blocks.

10
QB64 Discussion / Re: help with arrays and DATA to make game maps
« on: April 22, 2021, 07:53:01 pm »
Its only got the up arrow coded, you can do the rest...good luck and happy coding

unseen


Code: QB64: [Select]
  1. SCREEN _NEWIMAGE(400, 400, 32)
  2.  
  3. '// create map array 10 * 10
  4. DIM Map(9, 9) AS _BYTE
  5.  
  6. '// your position
  7. DIM You(1) AS INTEGER '// array index ref : 0 = column, 1= row
  8.  
  9. '// load the data
  10.  
  11. FOR row% = 0 TO 9
  12.   FOR col% = 0 TO 9
  13.     READ Block%
  14.     IF Block% < 9 THEN
  15.       Map(col%, row%) = Block%
  16.     ELSE
  17.       You(0) = col%
  18.       You(1) = row%
  19.     END IF
  20.   NEXT
  21.  
  22.  
  23.  
  24.  
  25.   _LIMIT 30
  26.   CLS
  27.  
  28.   KB$ = INKEY$
  29.  
  30.   SELECT CASE KB$
  31.     CASE CHR$(0) + CHR$(72) ' Up
  32.       IF You(1) > 0 THEN
  33.         IF Map(You(0), You(1) - 1) = 0 THEN '//you can move into the square
  34.           You(1) = You(1) - 1
  35.         END IF
  36.       ELSE '// Your path is blocked
  37.  
  38.       END IF
  39.     CASE CHR$(0) + CHR$(77) ' Right
  40.     CASE CHR$(0) + CHR$(80) ' Down
  41.     CASE CHR$(0) + CHR$(75) ' Left
  42.  
  43.  
  44.   '// drawing
  45.   y% = 0
  46.   FOR row% = 0 TO 9
  47.     x% = 0
  48.     FOR col% = 0 TO 9
  49.       IF Map(col%, row%) = 1 THEN
  50.         LINE (x%, y%)-(x% + 20, y% + 20), _RGB32(255, 120, 120), BF
  51.       ELSE
  52.         IF You(0) = col% AND You(1) = row% THEN
  53.  
  54.           LINE (x%, y%)-(x% + 20, y% + 20), _RGB32(55, 120, 120), BF
  55.         END IF
  56.       END IF
  57.  
  58.       x% = x% + 20
  59.     NEXT
  60.     y% = y% + 20
  61.   NEXT
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69. DATA 1,1,1,1,1,1,1,1,1,1
  70. DATA 0,0,0,0,0,0,0,0,0,0
  71. DATA 0,0,0,0,0,0,0,0,0,0
  72. DATA 0,0,0,0,0,0,0,0,0,0
  73. DATA 0,0,0,0,0,0,0,0,0,0
  74. DATA 0,0,0,0,9,0,0,0,0,0
  75. DATA 0,0,0,0,0,0,0,0,0,0
  76. DATA 0,0,0,0,0,0,0,0,0,0
  77. DATA 0,0,0,0,0,0,0,0,0,0
  78. DATA 0,0,0,0,0,0,0,0,0,0
  79.  

Dont cheat! Heres an edit, now as a basic "game", get the key to ope the door...

Code: QB64: [Select]
  1. SCREEN _NEWIMAGE(400, 400, 32)
  2.  
  3. '// create map array 10 * 10
  4. DIM Map(9, 9) AS _BYTE
  5.  
  6. '// your position
  7. DIM You(1) AS INTEGER '// array index ref : 0 = column, 1= row
  8.  
  9. '// load the data
  10.  
  11. FOR row% = 0 TO 9
  12.   FOR col% = 0 TO 9
  13.     READ Block%
  14.     IF Block% < 9 THEN
  15.       Map(col%, row%) = Block%
  16.     ELSE
  17.       You(0) = col%
  18.       You(1) = row%
  19.     END IF
  20.   NEXT
  21.  
  22.  
  23.  
  24.  
  25.   _LIMIT 30
  26.   CLS
  27.  
  28.   KB$ = INKEY$
  29.  
  30.   SELECT CASE KB$
  31.  
  32.     CASE CHR$(0) + CHR$(72) ' Up
  33.  
  34.       IF You(1) > 0 THEN
  35.         IF Map(You(0), You(1) - 1) = 0 THEN '//you can move into the square
  36.           You(1) = You(1) - 1
  37.  
  38.         ELSEIF Map(You(0), You(1) - 1) = 2 THEN
  39.           Map(You(0), You(1) - 1) = 0
  40.           HaveKey% = -1
  41.           You(1) = You(1) - 1
  42.         ELSEIF Map(You(0), You(1) - 1) = 3 THEN '// the exit
  43.           IF HaveKey% THEN
  44.             '// Win level
  45.             END '// exit
  46.           END IF
  47.         END IF
  48.       END IF
  49.  
  50.     CASE CHR$(0) + CHR$(77) ' Right
  51.  
  52.       IF You(0) < 9 THEN
  53.         IF Map(You(0) + 1, You(1)) = 0 THEN '//you can move into the square
  54.           You(0) = You(0) + 1
  55.         ELSEIF Map(You(0) + 1, You(1)) = 2 THEN
  56.           Map(You(0) + 1, You(1)) = 0
  57.           HaveKey% = -1
  58.           You(0) = You(0) + 1
  59.         ELSEIF Map(You(0) + 1, You(1)) = 3 THEN '// the exit
  60.           IF HaveKey% THEN
  61.             END '// exit
  62.           END IF
  63.         END IF
  64.       END IF
  65.  
  66.     CASE CHR$(0) + CHR$(80) ' Down
  67.  
  68.       IF You(1) < 9 THEN
  69.         IF Map(You(0), You(1) + 1) = 0 THEN '//you can move into the square
  70.           You(1) = You(1) + 1
  71.  
  72.         ELSEIF Map(You(0), You(1) + 1) = 2 THEN
  73.           Map(You(0), You(1) + 1) = 0
  74.           HaveKey% = -1
  75.           You(1) = You(1) + 1
  76.         ELSEIF Map(You(0), You(1) + 1) = 3 THEN '// the exit
  77.           IF HaveKey% THEN
  78.             '// Win level
  79.             END '// exit
  80.           END IF
  81.         END IF
  82.       END IF
  83.  
  84.     CASE CHR$(0) + CHR$(75) ' Left
  85.  
  86.       IF You(0) > 0 THEN
  87.         IF Map(You(0) - 1, You(1)) = 0 THEN '//you can move into the square
  88.           You(0) = You(0) - 1
  89.         ELSEIF Map(You(0) - 1, You(1)) = 2 THEN
  90.           Map(You(0) - 1, You(1)) = 0
  91.           HaveKey% = -1
  92.           You(0) = You(0) - 1
  93.         ELSEIF Map(You(0) - 1, You(1)) = 3 THEN '// the exit
  94.           IF HaveKey% THEN
  95.             '// Win level
  96.             END '// exit
  97.           END IF
  98.         END IF
  99.       END IF
  100.  
  101.  
  102.   '// drawing
  103.   y% = 0
  104.   FOR row% = 0 TO 9
  105.     x% = 0
  106.     FOR col% = 0 TO 9
  107.       SELECT CASE Map(col%, row%)
  108.         CASE 1
  109.           LINE (x%, y%)-(x% + 20, y% + 20), _RGB32(255, 120, 120), BF
  110.         CASE 2 '// the Key
  111.           COLOR _RGB32(0, 255, 0)
  112.           _PRINTSTRING (x%, y%), CHR$(0) + CHR$(135)
  113.  
  114.         CASE 3 '// The exit
  115.           LINE (x%, y%)-(x% + 20, y% + 20), _RGB32(0, 255, 0), BF
  116.  
  117.         CASE ELSE
  118.           IF You(0) = col% AND You(1) = row% THEN
  119.  
  120.             LINE (x%, y%)-(x% + 20, y% + 20), _RGB32(55, 120, 120), BF
  121.           END IF
  122.       END SELECT
  123.  
  124.       x% = x% + 20
  125.     NEXT
  126.     y% = y% + 20
  127.   NEXT
  128.  
  129.  
  130.  
  131.  
  132.  
  133.  
  134.  
  135. DATA 1,1,1,1,1,1,1,1,1,1
  136. DATA 1,0,0,0,1,0,0,0,0,1
  137. DATA 1,0,1,0,0,0,1,1,0,1
  138. DATA 1,0,1,1,1,0,1,0,0,1
  139. DATA 1,0,1,0,1,0,1,0,1,1
  140. DATA 1,0,0,2,1,0,1,0,0,0
  141. DATA 1,0,1,1,1,0,1,0,1,1
  142. DATA 1,0,1,0,0,0,1,0,1,1
  143. DATA 9,0,1,0,0,0,1,0,0,3
  144. DATA 1,1,1,1,1,1,1,1,1,1
  145.  

11
Well, whilst you can indeed learn a lot from examples i am willing to bet youll learn more from trying to do stuff yourself...start with the basics and then...well if youre like me youll end up with a whole load of half made stuff that you only quit on cause when you got that far you realised a better way or needed to go build a new tool and that led down another path!!!!

So game design eh...well as i did that for my degree ill say a few words....

First have and idea. Then SET your goals...and make them realistic, want fancy 3d graphics with god rays and ray tracing but you dont know how to load textures...well i'd prepare myself for a lot of head scratching and trying to decode C++ demos into QB64...basically just dont reach to far or it will all become to much and youll not enjoy it!

Write pseudo code first...this helps break down the build into sections and is easier to keep track this way.

Keep it simple...Yes mario has a lot of different animations but do you really need to implement them all before even checking your tile engine works?

Do one thing, finish it and then have coffee!

So, get your idea, plan your design, 2d, 3d, iso, etc...write pseudo code and then if your still stuck ill happily help out and im sure the others will too...

I've attached pics, if anything is along the lines of the games you listed then let me know and ill dig up the code.

Unseen

12
QB64 Discussion / QB Blocks?
« on: February 22, 2021, 10:50:19 pm »
Hi folks,

Anyone interested in collabing on a "Blocks" project? i.e. Standardising the existing and setting a standard for future libraries so they all work together?

For example, id like to incorporate the 2d physics engine with GDK but without having to write wrappers or other things to make it work....

So i figured...if we all contribute to a library or attempt to make our projects use the standard we create then we will all benefit!

i.e.  a 2d point in my opinion is

Type Point2D
X as Double
Y as Double

blah, blah, blah....

I guess type definitions of standard basic types would be first and then everyone can use/expanded them and create/modify their functions/libs!

Is this a good idea?

Thoughts?

Unseen


13
QB64 Discussion / Re: Super Mario 64 level rendered in QB64 (no opengl)
« on: February 22, 2021, 10:02:43 pm »
WTF!!!

How this got only 4 single line replies is beyond me!

OMG! I use project64 when i want that old skool gaming experience, i never believed that QB64 would ever run, or that any one would ever make a decompiler/encoder for N64 games....i'm a ID games engine guy so thats why i've focused my 3d work on their models/levels....when i get a chance i cant wait to ahvea look through this...

Unseen

14
QB64 Discussion / Re: QB64 on Chrome Book???
« on: February 14, 2021, 12:08:25 pm »
Thanks but thats just confused me even more. Im to old to go learning a new kernel so even though ive figured out how to load a console window i just cant be bothered...back to the XP craptop...Thanks for the responses though folks.

15
QB64 Discussion / Re: QB64 on Chrome Book???
« on: February 14, 2021, 11:44:44 am »
It's  not that im swapping os, work offered me a Mac but i HATE apple so i asked for a basic laptop instead and they got me a Chromebook. To be honest it works really well and the battery lasts forever!

So i've just decided to give it a shot and see what happens!

Thanks though folks,

Unseen

Pages: [1] 2 3 ... 11